public class InnerBreakAndContinueReplacer extends JavaASTVisitor
break l, where l is a
 specified label. It is used in the transformation of a for loop to a while loop.LoopApplyHeadRule, 
LoopContractImpl| Modifier and Type | Class and Description | 
|---|---|
private class  | 
InnerBreakAndContinueReplacer.DefaultAction  | 
| Modifier and Type | Field and Description | 
|---|---|
private Break | 
breakInner
The break statement used to replace continue statements. 
 | 
private Break | 
breakOuter
The break statement used to replace break statements. 
 | 
protected static java.lang.Boolean | 
CHANGED  | 
private java.util.Stack<MethodFrame> | 
frames  | 
private int | 
loopAndSwitchCascadeDepth  | 
private java.util.Stack<Label> | 
loopLabels  | 
private StatementBlock | 
result  | 
private java.util.Stack<ExtList> | 
stack  | 
services| Constructor and Description | 
|---|
InnerBreakAndContinueReplacer(StatementBlock block,
                             java.lang.Iterable<Label> loopLabels,
                             Label breakLabel,
                             Label continueLabel,
                             Services services)  | 
doAction, performActionOnAbstractProgramElement, performActionOnAllFields, performActionOnAllObjects, performActionOnArrayDeclaration, performActionOnArrayInitializer, performActionOnArrayLengthReference, performActionOnArrayReference, performActionOnAssert, performActionOnBinaryAnd, performActionOnBinaryAndAssignment, performActionOnBinaryNot, performActionOnBinaryOr, performActionOnBinaryOrAssignment, performActionOnBinaryXOr, performActionOnBinaryXOrAssignment, performActionOnBlockContract, performActionOnBlockContract, performActionOnBooleanLiteral, performActionOnCatchAllStatement, performActionOnCharLiteral, performActionOnClassDeclaration, performActionOnClassInitializer, performActionOnComment, performActionOnCompilationUnit, performActionOnConditional, performActionOnConstructorDeclaration, performActionOnContextStatementBlock, performActionOnDivide, performActionOnDivideAssignment, performActionOnDLEmbeddedExpression, performActionOnDoubleLiteral, performActionOnEmptyMapLiteral, performActionOnEmptySeqLiteral, performActionOnEmptySetLiteral, performActionOnEmptyStatement, performActionOnEquals, performActionOnExactInstanceof, performActionOnExecutionContext, performActionOnExtends, performActionOnFieldDeclaration, performActionOnFieldReference, performActionOnFieldSpecification, performActionOnFloatLiteral, performActionOnForUpdates, performActionOnGreaterOrEquals, performActionOnGreaterThan, performActionOnGuard, performActionOnImplements, performActionOnImplicitFieldSpecification, performActionOnImport, performActionOnInstanceof, performActionOnInterfaceDeclaration, performActionOnIntersect, performActionOnIntLiteral, performActionOnIProgramVariable, performActionOnLessOrEquals, performActionOnLessThan, performActionOnLocationVariable, performActionOnLogicalAnd, performActionOnLogicalNot, performActionOnLogicalOr, performActionOnLongLiteral, performActionOnLoopContract, performActionOnLoopContract, performActionOnLoopContract, performActionOnLoopInit, performActionOnLoopInvariant, performActionOnLoopScopeBlock, performActionOnMergeContract, performActionOnMergePointStatement, performActionOnMetaClassReference, performActionOnMethod, performActionOnMethodBodyStatement, performActionOnMethodDeclaration, performActionOnMethodReference, performActionOnMinus, performActionOnMinusAssignment, performActionOnModifier, performActionOnModulo, performActionOnModuloAssignment, performActionOnNegative, performActionOnNew, performActionOnNewArray, performActionOnNotEquals, performActionOnNullLiteral, performActionOnPackageReference, performActionOnPackageSpecification, performActionOnParameterDeclaration, performActionOnParenthesizedExpression, performActionOnPassiveExpression, performActionOnPlus, performActionOnPlusAssignment, performActionOnPositive, performActionOnPostDecrement, performActionOnPostIncrement, performActionOnPreDecrement, performActionOnPreIncrement, performActionOnProgramConstant, performActionOnProgramElementName, performActionOnProgramMetaConstruct, performActionOnProgramMethod, performActionOnProgramVariable, performActionOnReturn, performActionOnSchematicFieldReference, performActionOnSchemaVariable, performActionOnSeqConcat, performActionOnSeqGet, performActionOnSeqIndexOf, performActionOnSeqLength, performActionOnSeqReverse, performActionOnSeqSingleton, performActionOnSeqSub, performActionOnSetMinus, performActionOnSetUnion, performActionOnShiftLeft, performActionOnShiftLeftAssignment, performActionOnShiftRight, performActionOnShiftRightAssignment, performActionOnSingleton, performActionOnStringLiteral, performActionOnSuperArrayDeclaration, performActionOnSuperConstructorReference, performActionOnSuperReference, performActionOnThisConstructorReference, performActionOnThisReference, performActionOnThrow, performActionOnThrows, performActionOnTimes, performActionOnTimesAssignment, performActionOnTransactionStatement, performActionOnTypeCast, performActionOnTypeReference, performActionOnUnsignedShiftRight, performActionOnUnsignedShiftRightAssignment, performActionOnVariableDeclaration, performActionOnVariableReference, performActionOnVariableSpecificationdepth, rootprotected static final java.lang.Boolean CHANGED
private final Break breakOuter
private final Break breakInner
private final java.util.Stack<ExtList> stack
private final java.util.Stack<Label> loopLabels
private final java.util.Stack<MethodFrame> frames
private int loopAndSwitchCascadeDepth
private StatementBlock result
public InnerBreakAndContinueReplacer(StatementBlock block, java.lang.Iterable<Label> loopLabels, Label breakLabel, Label continueLabel, Services services)
block - a block that begins with a loop.loopLabels - all labels belonging to the loop.breakLabel - the label used for break statements.continueLabel - the label used for continue statements.services - services.public StatementBlock replace()
start()public void start()
start in class JavaASTWalkerreplace()public StatementBlock getResult()
protected void walk(ProgramElement node)
JavaASTWalkerwalk in class JavaASTVisitornode - the JavaProgramElement the walker is atpublic java.lang.String toString()
toString in class java.lang.Objectprotected void doDefaultAction(SourceElement x)
JavaASTVisitordoDefaultAction in class JavaASTVisitorx - the node described abovepublic void performActionOnContinue(Continue x)
performActionOnContinue in interface VisitorperformActionOnContinue in class JavaASTVisitorpublic void performActionOnBreak(Break x)
performActionOnBreak in interface VisitorperformActionOnBreak in class JavaASTVisitorpublic void performActionOnLocalVariableDeclaration(LocalVariableDeclaration x)
performActionOnLocalVariableDeclaration in interface VisitorperformActionOnLocalVariableDeclaration in class JavaASTVisitorpublic void performActionOnStatementBlock(StatementBlock x)
performActionOnStatementBlock in interface VisitorperformActionOnStatementBlock in class JavaASTVisitorpublic void performActionOnWhile(While x)
performActionOnWhile in interface VisitorperformActionOnWhile in class JavaASTVisitorpublic void performActionOnFor(For x)
performActionOnFor in interface VisitorperformActionOnFor in class JavaASTVisitorpublic void performActionOnEnhancedFor(EnhancedFor x)
performActionOnEnhancedFor in interface VisitorperformActionOnEnhancedFor in class JavaASTVisitorpublic void performActionOnDo(Do x)
performActionOnDo in interface VisitorperformActionOnDo in class JavaASTVisitorpublic void performActionOnIf(If x)
performActionOnIf in interface VisitorperformActionOnIf in class JavaASTVisitorpublic void performActionOnSwitch(Switch x)
performActionOnSwitch in interface VisitorperformActionOnSwitch in class JavaASTVisitorpublic void performActionOnTry(Try x)
performActionOnTry in interface VisitorperformActionOnTry in class JavaASTVisitorpublic void performActionOnLabeledStatement(LabeledStatement x)
performActionOnLabeledStatement in interface VisitorperformActionOnLabeledStatement in class JavaASTVisitorpublic void performActionOnMethodFrame(MethodFrame x)
performActionOnMethodFrame in interface VisitorperformActionOnMethodFrame in class JavaASTVisitorpublic void performActionOnSynchronizedBlock(SynchronizedBlock x)
performActionOnSynchronizedBlock in interface VisitorperformActionOnSynchronizedBlock in class JavaASTVisitorpublic void performActionOnCopyAssignment(CopyAssignment x)
performActionOnCopyAssignment in interface VisitorperformActionOnCopyAssignment in class JavaASTVisitorpublic void performActionOnThen(Then x)
performActionOnThen in interface VisitorperformActionOnThen in class JavaASTVisitorpublic void performActionOnElse(Else x)
performActionOnElse in interface VisitorperformActionOnElse in class JavaASTVisitorpublic void performActionOnCase(Case x)
performActionOnCase in interface VisitorperformActionOnCase in class JavaASTVisitorpublic void performActionOnCatch(Catch x)
performActionOnCatch in interface VisitorperformActionOnCatch in class JavaASTVisitorpublic void performActionOnDefault(Default x)
performActionOnDefault in interface VisitorperformActionOnDefault in class JavaASTVisitorpublic void performActionOnFinally(Finally x)
performActionOnFinally in interface VisitorperformActionOnFinally in class JavaASTVisitorprivate void changed()
private void addChild(SourceElement x)