public override void OutAIfThenStm(AIfThenStm node)
 {
     bool value;
     if (IsConst(node.GetCondition(), out value))
     {
         if (value)
         {
             node.ReplaceBy(node.GetBody());
         }
         else
         {
             node.Parent().RemoveChild(node);
         }
         changedSomething = true;
     }
 }
 /*public override void CaseAValueReturnStm(AValueReturnStm node)
 {
     GetNode(node);
     PStm stm = GetNext(whileStm);
     if (stm != null)
         graphNode.AddSucc(GetNode(stm));
 }*/
 public override void CaseAIfThenStm(AIfThenStm node)
 {
     //Create graph node
     Node graphNode = GetNode(node);
     //Process inner if
     node.GetBody().Apply(this);
     //Add successor and predessors
     PStm stm = GetFirst(node.GetBody());
     if (stm != null)
         graphNode.AddSucc(GetNode(stm));
     stm = GetNext(node);
     if (stm != null)
     {
         Node nextGraphNode = GetNode(stm);
         graphNode.AddSucc(nextGraphNode);
         List<PStm> stms = GetLast(node.GetBody());
         foreach (PStm pStm in stms)
         {
             nextGraphNode.AddPred(GetNode(pStm));
         }
     }
 }
 public override void CaseAIfThenStm(AIfThenStm node)
 {
     node.GetBody().Apply(this);
 }
 public override void CaseAIfThenStm(AIfThenStm node)
 {
     InAIfThenStm(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);
     }
     OutAIfThenStm(node);
 }
 public override void CaseAIfThenStm(AIfThenStm node)
 {
     Write("if(");
     node.GetCondition().Apply(this);
     Write(")\n");
     node.GetBody().Apply(this);
 }