Class StatementReplacer
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.transform.tailrec.StatementReplacer
- All Implemented Interfaces:
GroovyCodeVisitor
Tool for replacing Statement objects in an AST by other Statement instances.
Within @TailRecursive it is used to swap ReturnStatements with looping back to RECUR label
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintgetWhen()voidvoidsetClosureLevel(int closureLevel) voidsetReplaceWith(Closure<Statement> replaceWith) voidvoidVisits aBlockStatement, traversing each contained statement in order.voidvisitClosureExpression(ClosureExpression expression) Visits aClosureExpression, traversing parameter initializers and the closure code block.voidVisits aDoWhileStatement, traversing the loop body before the boolean condition.voidvisitForLoop(ForStatement forLoop) Visits aForStatement, traversing the collection expression and loop body.voidvisitIfElse(IfStatement ifElse) Visits anIfStatement, traversing the condition, if-block, and optional else-block.voidvisitWhileLoop(WhileStatement loop) Visits aWhileStatement, traversing the boolean condition and loop body.Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
afterSwitchCaseStatementsVisited, afterSwitchConditionExpressionVisited, visitArgumentlistExpression, visitArrayExpression, visitAssertStatement, visitAttributeExpression, visitBinaryExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBreakStatement, visitBytecodeExpression, visitCaseStatement, visitCastExpression, visitCatchStatement, visitClassExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitContinueStatement, visitDeclarationExpression, visitEmptyStatement, visitExpressionStatement, visitFieldExpression, visitGStringExpression, visitLambdaExpression, visitListExpression, visitMapEntryExpression, visitMapExpression, visitMethodCallExpression, visitMethodPointerExpression, visitMethodReferenceExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitReturnStatement, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitSwitch, visitSynchronizedStatement, visitTernaryExpression, visitThrowStatement, visitTryCatchFinally, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpressionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.GroovyCodeVisitor
visit, visit, visitEmptyExpression, visitListOfExpressions
-
Constructor Details
-
StatementReplacer
-
-
Method Details
-
replaceIn
-
visitClosureExpression
Description copied from class:CodeVisitorSupportVisits aClosureExpression, traversing parameter initializers and the closure code block.- Specified by:
visitClosureExpressionin interfaceGroovyCodeVisitor- Overrides:
visitClosureExpressionin classCodeVisitorSupport- Parameters:
expression- the closure expression
-
visitBlockStatement
Description copied from class:CodeVisitorSupportVisits aBlockStatement, traversing each contained statement in order.- Specified by:
visitBlockStatementin interfaceGroovyCodeVisitor- Overrides:
visitBlockStatementin classCodeVisitorSupport- Parameters:
block- the block statement to visit, may contain multiple statements- See Also:
-
visitIfElse
Description copied from class:CodeVisitorSupportVisits anIfStatement, traversing the condition, if-block, and optional else-block.- Specified by:
visitIfElsein interfaceGroovyCodeVisitor- Overrides:
visitIfElsein classCodeVisitorSupport- Parameters:
ifElse- the if-else statement
-
visitForLoop
Description copied from class:CodeVisitorSupportVisits aForStatement, traversing the collection expression and loop body.- Specified by:
visitForLoopin interfaceGroovyCodeVisitor- Overrides:
visitForLoopin classCodeVisitorSupport- Parameters:
forLoop- the for loop statement
-
visitWhileLoop
Description copied from class:CodeVisitorSupportVisits aWhileStatement, traversing the boolean condition and loop body.- Specified by:
visitWhileLoopin interfaceGroovyCodeVisitor- Overrides:
visitWhileLoopin classCodeVisitorSupport- Parameters:
loop- the while loop statement
-
visitDoWhileLoop
Description copied from class:CodeVisitorSupportVisits aDoWhileStatement, traversing the loop body before the boolean condition.- Specified by:
visitDoWhileLoopin interfaceGroovyCodeVisitor- Overrides:
visitDoWhileLoopin classCodeVisitorSupport- Parameters:
loop- the do-while loop statement
-
getWhen
-
setWhen
-
getReplaceWith
-
setReplaceWith
-
getClosureLevel
public int getClosureLevel() -
setClosureLevel
public void setClosureLevel(int closureLevel)
-