public interface GroovyCodeVisitor
Defines the visitor interface for traversing and processing Groovy AST nodes using the visitor pattern. Implementations can perform compilation, transformation, code generation, or analysis by implementing visit methods for specific statement and expression types. The interface provides both required abstract methods and default convenience methods for handling generic collections and null values.
| Type Params | Return Type | Name and description |
|---|---|---|
|
public void |
visit(Statement statement)Convenience method to visit a statement if it is not null. |
|
public void |
visit(Expression expression)Convenience method to visit an expression if it is not null. |
|
public void |
visitArgumentlistExpression(ArgumentListExpression expression)Visits an argument list expression (method arguments). |
|
public void |
visitArrayExpression(ArrayExpression expression)Visits an array expression. |
|
public void |
visitAssertStatement(AssertStatement statement)Visits an assert statement. |
|
public void |
visitAttributeExpression(AttributeExpression expression)Visits an attribute expression (object@property, accessing direct field without getters). |
|
public void |
visitBinaryExpression(BinaryExpression expression)Visits a binary expression (left op right). |
|
public void |
visitBitwiseNegationExpression(BitwiseNegationExpression expression)Visits a bitwise negation expression (~expr). |
|
public void |
visitBlockStatement(BlockStatement statement)Visits a block statement (list of statements enclosed in braces). |
|
public void |
visitBooleanExpression(BooleanExpression expression)Visits a boolean expression. |
|
public void |
visitBreakStatement(BreakStatement statement)Visits a break statement. |
|
public void |
visitBytecodeExpression(BytecodeExpression expression)Visits a bytecode expression (direct JVM bytecode instructions). |
|
public void |
visitCaseStatement(CaseStatement statement)Visits a case clause within a switch statement. |
|
public void |
visitCastExpression(CastExpression expression)Visits a cast expression ((Type) expr). |
|
public void |
visitCatchStatement(CatchStatement statement)Visits a catch clause within a try-catch statement. |
|
public void |
visitClassExpression(ClassExpression expression)Visits a class expression. |
|
public void |
visitClosureExpression(ClosureExpression expression)Visits a closure expression. |
|
public void |
visitClosureListExpression(ClosureListExpression expression)Visits a closure list expression. |
|
public void |
visitConstantExpression(ConstantExpression expression)Visits a constant expression (literal value). |
|
public void |
visitConstructorCallExpression(ConstructorCallExpression expression)Visits a constructor call expression. |
|
public void |
visitContinueStatement(ContinueStatement statement)Visits a continue statement. |
|
public void |
visitDeclarationExpression(DeclarationExpression expression)Visits a declaration expression (variable declaration with initialization). |
|
public void |
visitDoWhileLoop(DoWhileStatement statement)Visits a do-while loop statement. |
|
public void |
visitEmptyExpression(EmptyExpression expression)Visits an empty expression. |
|
public void |
visitEmptyStatement(EmptyStatement statement)Visits an empty statement. |
|
public void |
visitExpressionStatement(ExpressionStatement statement)Visits an expression statement (an expression used as a statement). |
|
public void |
visitFieldExpression(FieldExpression expression)Visits a field expression. |
|
public void |
visitForLoop(ForStatement statement)Visits a for loop statement. |
|
public void |
visitGStringExpression(GStringExpression expression)Visits a GString expression (string with interpolations). |
|
public void |
visitIfElse(IfStatement statement)Visits an if-else statement. |
|
public void |
visitLambdaExpression(LambdaExpression expression)Visits a lambda expression. |
|
public void |
visitListExpression(ListExpression expression)Visits a list expression. |
|
public void |
visitListOfExpressions(List<? extends Expression> list)Convenience method to visit a list of expressions. |
|
public void |
visitMapEntryExpression(MapEntryExpression expression)Visits a map entry expression (key: value pair within a map). |
|
public void |
visitMapExpression(MapExpression expression)Visits a map expression. |
|
public void |
visitMethodCallExpression(MethodCallExpression expression)Visits a method call expression. |
|
public void |
visitMethodPointerExpression(MethodPointerExpression expression)Visits a method pointer expression ({@code object. |
|
public void |
visitMethodReferenceExpression(MethodReferenceExpression expression)Visits a method reference expression (obj::method). |
|
public void |
visitNotExpression(NotExpression expression)Visits a not expression (! |
|
public void |
visitPostfixExpression(PostfixExpression expression)Visits a postfix expression (expr op). |
|
public void |
visitPrefixExpression(PrefixExpression expression)Visits a prefix expression (op expr). |
|
public void |
visitPropertyExpression(PropertyExpression expression)Visits a property expression (object.property). |
|
public void |
visitRangeExpression(RangeExpression expression)Visits a range expression. |
|
public void |
visitReturnStatement(ReturnStatement statement)Visits a return statement. |
|
public void |
visitShortTernaryExpression(ElvisOperatorExpression expression)Visits an Elvis operator expression (shorthand ternary with implicit condition check). |
|
public void |
visitSpreadExpression(SpreadExpression expression)Visits a spread expression (*expr, spreading collection elements). |
|
public void |
visitSpreadMapExpression(SpreadMapExpression expression)Visits a spread map expression (*:map, spreading map entries). |
|
public void |
visitStaticMethodCallExpression(StaticMethodCallExpression expression)Visits a static method call expression. |
|
public void |
visitSwitch(SwitchStatement statement)Visits a switch statement. |
|
public void |
visitSynchronizedStatement(SynchronizedStatement statement)Visits a synchronized statement. |
|
public void |
visitTernaryExpression(TernaryExpression expression)Visits a ternary expression (condition ? |
|
public void |
visitThrowStatement(ThrowStatement statement)Visits a throw statement. |
|
public void |
visitTryCatchFinally(TryCatchStatement statement)Visits a try-catch-finally statement. |
|
public void |
visitTupleExpression(TupleExpression expression)Visits a tuple expression (comma-separated expressions grouped in parentheses). |
|
public void |
visitUnaryMinusExpression(UnaryMinusExpression expression)Visits a unary minus expression (-expr). |
|
public void |
visitUnaryPlusExpression(UnaryPlusExpression expression)Visits a unary plus expression (+expr). |
|
public void |
visitVariableExpression(VariableExpression expression)Visits a variable expression. |
|
public void |
visitWhileLoop(WhileStatement statement)Visits a while loop statement. |
Convenience method to visit a statement if it is not null. Delegates to the statement's visit method.
statement - the Statement to process, or null to do nothingConvenience method to visit an expression if it is not null. Delegates to the expression's visit method.
expression - the Expression to process, or null to do nothingVisits an argument list expression (method arguments).
expression - the ArgumentListExpression to processVisits an array expression.
expression - the ArrayExpression to processVisits an assert statement.
statement - the AssertStatement to processVisits an attribute expression (object@property, accessing direct field without getters).
expression - the AttributeExpression to processVisits a binary expression (left op right).
expression - the BinaryExpression to processVisits a bitwise negation expression (~expr).
expression - the BitwiseNegationExpression to processVisits a block statement (list of statements enclosed in braces).
statement - the BlockStatement to processVisits a boolean expression.
expression - the BooleanExpression to processVisits a break statement.
statement - the BreakStatement to processVisits a bytecode expression (direct JVM bytecode instructions).
expression - the BytecodeExpression to processVisits a case clause within a switch statement.
statement - the CaseStatement to processVisits a cast expression ((Type) expr).
expression - the CastExpression to processVisits a catch clause within a try-catch statement.
statement - the CatchStatement to processVisits a class expression.
expression - the ClassExpression to processVisits a closure expression.
expression - the ClosureExpression to processVisits a closure list expression.
expression - the ClosureListExpression to processVisits a constant expression (literal value).
expression - the ConstantExpression to processVisits a constructor call expression.
expression - the ConstructorCallExpression to processVisits a continue statement.
statement - the ContinueStatement to processVisits a declaration expression (variable declaration with initialization).
expression - the DeclarationExpression to processVisits a do-while loop statement.
statement - the DoWhileStatement to processVisits an empty expression. Default implementation does nothing.
expression - the EmptyExpression to processVisits an empty statement. Default implementation does nothing.
statement - the EmptyStatement to processVisits an expression statement (an expression used as a statement).
statement - the ExpressionStatement to processVisits a field expression.
expression - the FieldExpression to processVisits a for loop statement.
statement - the ForStatement to processVisits a GString expression (string with interpolations).
expression - the GStringExpression to processVisits an if-else statement.
statement - the IfStatement to processVisits a lambda expression.
expression - the LambdaExpression to processVisits a list expression.
expression - the ListExpression to processConvenience method to visit a list of expressions. Iterates through the list and calls the visit method on each non-null expression.
list - the list of Expressions to process, or null to do nothingVisits a map entry expression (key: value pair within a map).
expression - the MapEntryExpression to processVisits a map expression.
expression - the MapExpression to processVisits a method call expression.
expression - the MethodCallExpression to process Visits a method pointer expression (object.&methodName).
expression - the MethodPointerExpression to processVisits a method reference expression (obj::method).
expression - the MethodReferenceExpression to processVisits a not expression (!expr).
expression - the NotExpression to processVisits a postfix expression (expr op).
expression - the PostfixExpression to processVisits a prefix expression (op expr).
expression - the PrefixExpression to processVisits a property expression (object.property).
expression - the PropertyExpression to processVisits a range expression.
expression - the RangeExpression to processVisits a return statement.
statement - the ReturnStatement to processVisits an Elvis operator expression (shorthand ternary with implicit condition check).
expression - the ElvisOperatorExpression to processVisits a spread expression (*expr, spreading collection elements).
expression - the SpreadExpression to processVisits a spread map expression (*:map, spreading map entries).
expression - the SpreadMapExpression to processVisits a static method call expression.
expression - the StaticMethodCallExpression to processVisits a switch statement.
statement - the SwitchStatement to processVisits a synchronized statement.
statement - the SynchronizedStatement to processVisits a ternary expression (condition ? trueExpr : falseExpr).
expression - the TernaryExpression to processVisits a throw statement.
statement - the ThrowStatement to processVisits a try-catch-finally statement.
statement - the TryCatchStatement to processVisits a tuple expression (comma-separated expressions grouped in parentheses).
expression - the TupleExpression to processVisits a unary minus expression (-expr).
expression - the UnaryMinusExpression to processVisits a unary plus expression (+expr).
expression - the UnaryPlusExpression to processVisits a variable expression.
expression - the VariableExpression to processVisits a while loop statement.
statement - the WhileStatement to process