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, performActionOnVariableSpecification
depth, root
protected 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 JavaASTWalker
replace()
public StatementBlock getResult()
protected void walk(ProgramElement node)
JavaASTWalker
walk
in class JavaASTVisitor
node
- the JavaProgramElement the walker is atpublic java.lang.String toString()
toString
in class java.lang.Object
protected void doDefaultAction(SourceElement x)
JavaASTVisitor
doDefaultAction
in class JavaASTVisitor
x
- the node described abovepublic void performActionOnContinue(Continue x)
performActionOnContinue
in interface Visitor
performActionOnContinue
in class JavaASTVisitor
public void performActionOnBreak(Break x)
performActionOnBreak
in interface Visitor
performActionOnBreak
in class JavaASTVisitor
public void performActionOnLocalVariableDeclaration(LocalVariableDeclaration x)
performActionOnLocalVariableDeclaration
in interface Visitor
performActionOnLocalVariableDeclaration
in class JavaASTVisitor
public void performActionOnStatementBlock(StatementBlock x)
performActionOnStatementBlock
in interface Visitor
performActionOnStatementBlock
in class JavaASTVisitor
public void performActionOnWhile(While x)
performActionOnWhile
in interface Visitor
performActionOnWhile
in class JavaASTVisitor
public void performActionOnFor(For x)
performActionOnFor
in interface Visitor
performActionOnFor
in class JavaASTVisitor
public void performActionOnEnhancedFor(EnhancedFor x)
performActionOnEnhancedFor
in interface Visitor
performActionOnEnhancedFor
in class JavaASTVisitor
public void performActionOnDo(Do x)
performActionOnDo
in interface Visitor
performActionOnDo
in class JavaASTVisitor
public void performActionOnIf(If x)
performActionOnIf
in interface Visitor
performActionOnIf
in class JavaASTVisitor
public void performActionOnSwitch(Switch x)
performActionOnSwitch
in interface Visitor
performActionOnSwitch
in class JavaASTVisitor
public void performActionOnTry(Try x)
performActionOnTry
in interface Visitor
performActionOnTry
in class JavaASTVisitor
public void performActionOnLabeledStatement(LabeledStatement x)
performActionOnLabeledStatement
in interface Visitor
performActionOnLabeledStatement
in class JavaASTVisitor
public void performActionOnMethodFrame(MethodFrame x)
performActionOnMethodFrame
in interface Visitor
performActionOnMethodFrame
in class JavaASTVisitor
public void performActionOnSynchronizedBlock(SynchronizedBlock x)
performActionOnSynchronizedBlock
in interface Visitor
performActionOnSynchronizedBlock
in class JavaASTVisitor
public void performActionOnCopyAssignment(CopyAssignment x)
performActionOnCopyAssignment
in interface Visitor
performActionOnCopyAssignment
in class JavaASTVisitor
public void performActionOnThen(Then x)
performActionOnThen
in interface Visitor
performActionOnThen
in class JavaASTVisitor
public void performActionOnElse(Else x)
performActionOnElse
in interface Visitor
performActionOnElse
in class JavaASTVisitor
public void performActionOnCase(Case x)
performActionOnCase
in interface Visitor
performActionOnCase
in class JavaASTVisitor
public void performActionOnCatch(Catch x)
performActionOnCatch
in interface Visitor
performActionOnCatch
in class JavaASTVisitor
public void performActionOnDefault(Default x)
performActionOnDefault
in interface Visitor
performActionOnDefault
in class JavaASTVisitor
public void performActionOnFinally(Finally x)
performActionOnFinally
in interface Visitor
performActionOnFinally
in class JavaASTVisitor
private void changed()
private void addChild(SourceElement x)