public override void OutAWhileStm(AWhileStm node)
 {
     bool value;
     if (IsConst(node.GetCondition(), out value) && !value)
     {
         node.Parent().RemoveChild(node);
         changedSomething = true;
     }
 }
 public override void CaseAWhileStm(AWhileStm node)
 {
     InAWhileStm(node);
     if (node.GetBody() != null)
     {
         node.GetBody().Apply(this);
     }
     if (node.GetCondition() != null)
     {
         node.GetCondition().Apply(this);
     }
     if (node.GetToken() != null)
     {
         node.GetToken().Apply(this);
     }
     OutAWhileStm(node);
 }
 public override void CaseAWhileStm(AWhileStm node)
 {
     Write("while(");
     node.GetCondition().Apply(this);
     Write(")\n");
     node.GetBody().Apply(this);
 }