e.g. continue; continue $a;
continue; continue $a;
ContinueStatement : continue [no LineTerminator here] [Identifier] ;
This class represents a continue statement in the storedprocedure language. It extends the Statement that could part of a block.
Statement
29952996299729982999300030013002
} } } else { error(toLocation(t), "Superfluous continue, no valid enclosing statements open"); } stmt = new ContinueStatement(flowPeek(), toLocation(t), label, depth, target, expr); StatementModifier(stmt); }
213214215216217218219220221222223224225226
return breakStatement; } protected ContinueStatement processContinueStatement(StatementContext context) { ContinueStatement continueStatement = createNode(context, ContinueStatement.class); TerminalNode identifierNode = getTerminalNode(context, JavaParser.Identifier); if (identifierNode != null) { continueStatement.setLabel(getAdapter(IdentifierAdapter.class).adapt(identifierNode)); } return continueStatement; }
115116117118119120121122123124125
breakBlock= referer.block; } if (edge.isBackEdge()) { breakBlock.appendChild(new ContinueStatement(labeledBlock)); } else { breakBlock.appendChild(new BreakStatement(labeledBlock)); }
208209210211212213214
identifier = parseIdentifier(); } readTokenSemicolon(); return new ContinueStatement(identifier); }
2930313233343536373839404142434445
super(name); } public void testContinueStatement() throws CompilerException { assertParserOutput( new ContinueStatement( null ), "continue;" ); assertParserOutput( new ContinueStatement( new Identifier("loop") ), "continue loop;" ); }
717273747576777879808182
BreakStatement element = (BreakStatement) iter.next(); if (element.getLabel().equals(label)) iter.remove(); } for (Iterator iter = continueLabels.iterator(); iter.hasNext();) { ContinueStatement element = (ContinueStatement) iter.next(); if (element.getLabel().equals(label)) iter.remove(); } visitedLabels.add(label); }
149150151152153154155156157158159
} protected void assertNoLabelsMissed() { //TODO: report multiple missing labels of the same name only once for (Iterator iter = continueLabels.iterator(); iter.hasNext();) { ContinueStatement element = (ContinueStatement) iter.next(); addError("continue to missing label",element); } for (Iterator iter = breakLabels.iterator(); iter.hasNext();) { BreakStatement element = (BreakStatement) iter.next(); addError("break to missing label",element);
8399840084018402840384048405840684078408
protected void consumeStatementContinue() { // ContinueStatement ::= 'continue' ';' // continue pushs a position on this.intStack in case there is no label pushOnAstStack( new ContinueStatement( null, this.intStack[this.intPtr--], this.endStatementPosition)); }