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); }