public class OuterBreakContinueAndReturnReplacer extends JavaASTVisitor
Modifier and Type | Class and Description |
---|---|
private class |
OuterBreakContinueAndReturnReplacer.DefaultAction |
Modifier and Type | Field and Description |
---|---|
private java.util.Map<Label,ProgramVariable> |
breakFlags |
private Break |
breakOut |
protected static java.lang.Boolean |
CHANGED |
private java.util.Map<Label,ProgramVariable> |
continueFlags |
private java.util.Stack<MethodFrame> |
frames |
private java.util.Stack<Label> |
labels |
private int |
loopAndSwitchCascadeDepth |
private StatementBlock |
result |
private ProgramVariable |
returnFlag |
private ProgramVariable |
returnValue |
private java.util.Stack<ExtList> |
stack |
services
Constructor and Description |
---|
OuterBreakContinueAndReturnReplacer(StatementBlock block,
java.lang.Iterable<Label> alwaysInnerLabels,
Label breakOutLabel,
java.util.Map<Label,ProgramVariable> breakFlags,
java.util.Map<Label,ProgramVariable> continueFlags,
ProgramVariable returnFlag,
ProgramVariable returnValue,
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, 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 breakOut
private final java.util.Map<Label,ProgramVariable> breakFlags
private final java.util.Map<Label,ProgramVariable> continueFlags
private final ProgramVariable returnFlag
private final ProgramVariable returnValue
private final java.util.Stack<ExtList> stack
private final java.util.Stack<Label> labels
private final java.util.Stack<MethodFrame> frames
private int loopAndSwitchCascadeDepth
private StatementBlock result
public OuterBreakContinueAndReturnReplacer(StatementBlock block, java.lang.Iterable<Label> alwaysInnerLabels, Label breakOutLabel, java.util.Map<Label,ProgramVariable> breakFlags, java.util.Map<Label,ProgramVariable> continueFlags, ProgramVariable returnFlag, ProgramVariable returnValue, Services services)
public StatementBlock replace()
public void start()
JavaASTWalker
start
in class JavaASTWalker
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 performActionOnBreak(Break x)
performActionOnBreak
in interface Visitor
performActionOnBreak
in class JavaASTVisitor
public void performActionOnContinue(Continue x)
performActionOnContinue
in interface Visitor
performActionOnContinue
in class JavaASTVisitor
private void performActionOnJump(LabelJumpStatement x, java.util.Map<Label,ProgramVariable> flags)
private boolean isJumpToOuterLabel(LabelJumpStatement x)
public void performActionOnReturn(Return x)
performActionOnReturn
in interface Visitor
performActionOnReturn
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)