Class ExpressionReplacingVisitorSupport

java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.spockframework.compiler.StatementReplacingVisitorSupport
org.spockframework.compiler.ExpressionReplacingVisitorSupport
All Implemented Interfaces:
org.codehaus.groovy.ast.GroovyClassVisitor, org.codehaus.groovy.ast.GroovyCodeVisitor

public class ExpressionReplacingVisitorSupport extends StatementReplacingVisitorSupport
Groovy AST visitor that allows to replace both statements and expressions.
Author:
Peter Niederwieser
  • Constructor Details

    • ExpressionReplacingVisitorSupport

      public ExpressionReplacingVisitorSupport()
  • Method Details

    • replaceExpr

      public org.codehaus.groovy.ast.expr.Expression replaceExpr(org.codehaus.groovy.ast.expr.Expression expr)
    • replaceAllExprs

      protected <T extends org.codehaus.groovy.ast.expr.Expression> void replaceAllExprs(List<T> exprs)
    • replaceVisitedExpressionWith

      protected void replaceVisitedExpressionWith(org.codehaus.groovy.ast.expr.Expression other)
    • visitBlockStatement

      public void visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement stat)
      Specified by:
      visitBlockStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitBlockStatement in class StatementReplacingVisitorSupport
    • visitForLoop

      public void visitForLoop(org.codehaus.groovy.ast.stmt.ForStatement stat)
      Specified by:
      visitForLoop in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitForLoop in class StatementReplacingVisitorSupport
    • visitWhileLoop

      public void visitWhileLoop(org.codehaus.groovy.ast.stmt.WhileStatement stat)
      Specified by:
      visitWhileLoop in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitWhileLoop in class StatementReplacingVisitorSupport
    • visitDoWhileLoop

      public void visitDoWhileLoop(org.codehaus.groovy.ast.stmt.DoWhileStatement stat)
      Specified by:
      visitDoWhileLoop in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitDoWhileLoop in class StatementReplacingVisitorSupport
    • visitIfElse

      public void visitIfElse(org.codehaus.groovy.ast.stmt.IfStatement stat)
      Specified by:
      visitIfElse in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitIfElse in class StatementReplacingVisitorSupport
    • visitTryCatchFinally

      public void visitTryCatchFinally(org.codehaus.groovy.ast.stmt.TryCatchStatement stat)
      Specified by:
      visitTryCatchFinally in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitTryCatchFinally in class StatementReplacingVisitorSupport
    • visitSwitch

      public void visitSwitch(org.codehaus.groovy.ast.stmt.SwitchStatement stat)
      Specified by:
      visitSwitch in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitSwitch in class StatementReplacingVisitorSupport
    • visitCaseStatement

      public void visitCaseStatement(org.codehaus.groovy.ast.stmt.CaseStatement stat)
      Specified by:
      visitCaseStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitCaseStatement in class StatementReplacingVisitorSupport
    • visitSynchronizedStatement

      public void visitSynchronizedStatement(org.codehaus.groovy.ast.stmt.SynchronizedStatement stat)
      Specified by:
      visitSynchronizedStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitSynchronizedStatement in class StatementReplacingVisitorSupport
    • visitCatchStatement

      public void visitCatchStatement(org.codehaus.groovy.ast.stmt.CatchStatement stat)
      Specified by:
      visitCatchStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitCatchStatement in class StatementReplacingVisitorSupport
    • visitMethodCallExpression

      public void visitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression expr)
      Specified by:
      visitMethodCallExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitMethodCallExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitStaticMethodCallExpression

      public void visitStaticMethodCallExpression(org.codehaus.groovy.ast.expr.StaticMethodCallExpression expr)
      Specified by:
      visitStaticMethodCallExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitStaticMethodCallExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitConstructorCallExpression

      public void visitConstructorCallExpression(org.codehaus.groovy.ast.expr.ConstructorCallExpression expr)
      Specified by:
      visitConstructorCallExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitConstructorCallExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitBinaryExpression

      public void visitBinaryExpression(org.codehaus.groovy.ast.expr.BinaryExpression expr)
      Specified by:
      visitBinaryExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitBinaryExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitTernaryExpression

      public void visitTernaryExpression(org.codehaus.groovy.ast.expr.TernaryExpression expr)
      Specified by:
      visitTernaryExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitTernaryExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitShortTernaryExpression

      public void visitShortTernaryExpression(org.codehaus.groovy.ast.expr.ElvisOperatorExpression expr)
      Specified by:
      visitShortTernaryExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitShortTernaryExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitPostfixExpression

      public void visitPostfixExpression(org.codehaus.groovy.ast.expr.PostfixExpression expr)
      Specified by:
      visitPostfixExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitPostfixExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitPrefixExpression

      public void visitPrefixExpression(org.codehaus.groovy.ast.expr.PrefixExpression expr)
      Specified by:
      visitPrefixExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitPrefixExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitBooleanExpression

      public void visitBooleanExpression(org.codehaus.groovy.ast.expr.BooleanExpression expr)
      Specified by:
      visitBooleanExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitBooleanExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitNotExpression

      public void visitNotExpression(org.codehaus.groovy.ast.expr.NotExpression expr)
      Specified by:
      visitNotExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitNotExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitClosureExpression

      public void visitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression expr)
      Specified by:
      visitClosureExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitClosureExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitTupleExpression

      public void visitTupleExpression(org.codehaus.groovy.ast.expr.TupleExpression expr)
      Specified by:
      visitTupleExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitTupleExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitListExpression

      public void visitListExpression(org.codehaus.groovy.ast.expr.ListExpression expr)
      Specified by:
      visitListExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitListExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitArrayExpression

      public void visitArrayExpression(org.codehaus.groovy.ast.expr.ArrayExpression expr)
      Specified by:
      visitArrayExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitArrayExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitMapExpression

      public void visitMapExpression(org.codehaus.groovy.ast.expr.MapExpression expr)
      Specified by:
      visitMapExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitMapExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitMapEntryExpression

      public void visitMapEntryExpression(org.codehaus.groovy.ast.expr.MapEntryExpression expr)
      Specified by:
      visitMapEntryExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitMapEntryExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitRangeExpression

      public void visitRangeExpression(org.codehaus.groovy.ast.expr.RangeExpression expr)
      Specified by:
      visitRangeExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitRangeExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitSpreadExpression

      public void visitSpreadExpression(org.codehaus.groovy.ast.expr.SpreadExpression expr)
      Specified by:
      visitSpreadExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitSpreadExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitSpreadMapExpression

      public void visitSpreadMapExpression(org.codehaus.groovy.ast.expr.SpreadMapExpression expr)
      Specified by:
      visitSpreadMapExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitSpreadMapExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitMethodPointerExpression

      public void visitMethodPointerExpression(org.codehaus.groovy.ast.expr.MethodPointerExpression expr)
      Specified by:
      visitMethodPointerExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitMethodPointerExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitUnaryMinusExpression

      public void visitUnaryMinusExpression(org.codehaus.groovy.ast.expr.UnaryMinusExpression expr)
      Specified by:
      visitUnaryMinusExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitUnaryMinusExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitUnaryPlusExpression

      public void visitUnaryPlusExpression(org.codehaus.groovy.ast.expr.UnaryPlusExpression expr)
      Specified by:
      visitUnaryPlusExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitUnaryPlusExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitBitwiseNegationExpression

      public void visitBitwiseNegationExpression(org.codehaus.groovy.ast.expr.BitwiseNegationExpression expr)
      Specified by:
      visitBitwiseNegationExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitBitwiseNegationExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitCastExpression

      public void visitCastExpression(org.codehaus.groovy.ast.expr.CastExpression expr)
      Specified by:
      visitCastExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitCastExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitDeclarationExpression

      public void visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression expr)
      Specified by:
      visitDeclarationExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitDeclarationExpression in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitPropertyExpression

      public void visitPropertyExpression(org.codehaus.groovy.ast.expr.PropertyExpression expr)
      Specified by:
      visitPropertyExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitPropertyExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitAttributeExpression

      public void visitAttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression expr)
      Specified by:
      visitAttributeExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitAttributeExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitGStringExpression

      public void visitGStringExpression(org.codehaus.groovy.ast.expr.GStringExpression expr)
      Specified by:
      visitGStringExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitGStringExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitArgumentlistExpression

      public void visitArgumentlistExpression(org.codehaus.groovy.ast.expr.ArgumentListExpression expr)
      Specified by:
      visitArgumentlistExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitArgumentlistExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitClosureListExpression

      public void visitClosureListExpression(org.codehaus.groovy.ast.expr.ClosureListExpression expr)
      Specified by:
      visitClosureListExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitClosureListExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitAssertStatement

      public void visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement stat)
      Specified by:
      visitAssertStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitAssertStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitExpressionStatement

      public void visitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement stat)
      Specified by:
      visitExpressionStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitExpressionStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitReturnStatement

      public void visitReturnStatement(org.codehaus.groovy.ast.stmt.ReturnStatement stat)
      Specified by:
      visitReturnStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitReturnStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitThrowStatement

      public void visitThrowStatement(org.codehaus.groovy.ast.stmt.ThrowStatement stat)
      Specified by:
      visitThrowStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitThrowStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitListOfExpressions

      protected void visitListOfExpressions(List exprs)
      Overrides:
      visitListOfExpressions in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitBreakStatement

      public void visitBreakStatement(org.codehaus.groovy.ast.stmt.BreakStatement stat)
      Specified by:
      visitBreakStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitBreakStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitContinueStatement

      public void visitContinueStatement(org.codehaus.groovy.ast.stmt.ContinueStatement stat)
      Specified by:
      visitContinueStatement in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitContinueStatement in class org.codehaus.groovy.ast.ClassCodeVisitorSupport
    • visitConstantExpression

      public void visitConstantExpression(org.codehaus.groovy.ast.expr.ConstantExpression expr)
      Specified by:
      visitConstantExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitConstantExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitClassExpression

      public void visitClassExpression(org.codehaus.groovy.ast.expr.ClassExpression expr)
      Specified by:
      visitClassExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitClassExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitVariableExpression

      public void visitVariableExpression(org.codehaus.groovy.ast.expr.VariableExpression expr)
      Specified by:
      visitVariableExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitVariableExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitFieldExpression

      public void visitFieldExpression(org.codehaus.groovy.ast.expr.FieldExpression expr)
      Specified by:
      visitFieldExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitFieldExpression in class org.codehaus.groovy.ast.CodeVisitorSupport
    • visitBytecodeExpression

      public void visitBytecodeExpression(org.codehaus.groovy.classgen.BytecodeExpression expr)
      Specified by:
      visitBytecodeExpression in interface org.codehaus.groovy.ast.GroovyCodeVisitor
      Overrides:
      visitBytecodeExpression in class org.codehaus.groovy.ast.CodeVisitorSupport