예제 #1
0
 public virtual void OutAContinueStm(AContinueStm node)
 {
     DefaultOut(node);
 }
 public override void CaseAContinueStm(AContinueStm node)
 {
     Node graphNode = GetNode(node);
     AWhileStm whileStm = Util.GetAncestor<AWhileStm>(node);
     graphNode.AddSucc(GetNode(whileStm));
 }
예제 #3
0
 public virtual void CaseAContinueStm(AContinueStm node)
 {
     DefaultCase(node);
 }
예제 #4
0
 public virtual void InAContinueStm(AContinueStm node)
 {
     DefaultIn(node);
 }
예제 #5
0
 public override void OutAContinueStm(AContinueStm node)
 {
     AWhileStm whileStm = Util.GetAncestor<AWhileStm>(node);
     if (whileStm == null)
         errors.Add(new ErrorCollection.Error(whileStm.GetToken(), currentSourceFile, LocRM.GetString("ErrorText189"), false));
     base.OutAContinueStm(node);
 }
예제 #6
0
 public override void CaseAContinueStm(AContinueStm node)
 {
     InAContinueStm(node);
     if (node.GetToken() != null)
     {
         node.GetToken().Apply(this);
     }
     OutAContinueStm(node);
 }
예제 #7
0
 public override void CaseAContinueStm(AContinueStm node)
 {
     AForStm forStm = Util.GetAncestor<AForStm>(node);
     AABlock pBlock;
     if (!(node.Parent() is AABlock))
     {
         pBlock = new AABlock(new ArrayList(), new TRBrace("}", node.GetToken().Line, node.GetToken().Pos));
         ABlockStm blockStm = new ABlockStm(new TLBrace("{", node.GetToken().Line, node.GetToken().Pos), pBlock);
         node.ReplaceBy(blockStm);
         pBlock.GetStatements().Add(node);
     }
     pBlock = (AABlock) node.Parent();
     pBlock.GetStatements().Insert(pBlock.GetStatements().IndexOf(node), forStm.GetUpdate().Clone());
 }
 public override void CaseAContinueStm(AContinueStm node)
 {
     Continues.Add(node);
 }
 public override void CaseAContinueStm(AContinueStm node)
 {
     Write("continue;\n");
 }
예제 #10
0
 ArrayList New300()
 {
     ArrayList nodeList = new ArrayList();
     ArrayList nodeArrayList2 = (ArrayList) Pop();
     ArrayList nodeArrayList1 = (ArrayList) Pop();
     TContinue tcontinueNode2 = (TContinue)nodeArrayList1[0];
     AContinueStm pstmNode1 = new AContinueStm (
       tcontinueNode2
     );
     nodeList.Add(pstmNode1);
     return nodeList;
 }
 public override void CaseAContinueStm(AContinueStm node)
 {
     AABlock pBlock = (AABlock) node.Parent();
     ALocalLvalue replaceVarRef = new ALocalLvalue(new TIdentifier("whileVar"));
     ASimpleInvokeExp clone = (ASimpleInvokeExp)Util.MakeClone(this.node, data);
     AAssignmentExp assignment = new AAssignmentExp(new TAssign("="), replaceVarRef, clone);
     data.LocalLinks[replaceVarRef] = replaceVarDecl;
     data.ExpTypes[assignment] = data.LvalueTypes[replaceVarRef] = replaceVarDecl.GetType();
     pBlock.GetStatements().Insert(pBlock.GetStatements().IndexOf(node), new AExpStm(new TSemicolon(";"), assignment));
     replacementExpressions.Add(clone);
 }