Package org.spockframework.compiler
Class DeepBlockRewriter
java.lang.Object
org.codehaus.groovy.ast.CodeVisitorSupport
org.codehaus.groovy.ast.ClassCodeVisitorSupport
org.spockframework.compiler.StatementReplacingVisitorSupport
org.spockframework.compiler.AbstractDeepBlockRewriter
org.spockframework.compiler.DeepBlockRewriter
- All Implemented Interfaces:
org.codehaus.groovy.ast.GroovyClassVisitor
,org.codehaus.groovy.ast.GroovyCodeVisitor
Walks the statement and expression tree to:
- rewrite explicit conditions,
- rewrite interactions,
- rewrite core language primitives (members of class Specification)
- Forbid
Also records whether conditions and interactions were found.
- Author:
- Peter Niederwieser
-
Field Summary
Fields inherited from class org.spockframework.compiler.AbstractDeepBlockRewriter
block, conditionFound, currBinaryExpr, currClosure, currExprStat, currMethodCallExpr, currSpecialMethodCall, currTopLevelStat, foundExceptionCondition, interactionFound, lastSpecialMethodCallStat, thenBlockInteractionStats
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
doVisitClosureExpression
(org.codehaus.groovy.ast.expr.ClosureExpression expr) protected void
doVisitExpressionStatement
(org.codehaus.groovy.ast.stmt.ExpressionStatement stat) protected void
doVisitMethodCallExpression
(org.codehaus.groovy.ast.expr.MethodCallExpression expr) static boolean
isImplicitCondition
(org.codehaus.groovy.ast.stmt.Statement stat) void
void
visitAssertStatement
(org.codehaus.groovy.ast.stmt.AssertStatement stat) void
visitBlockStatement
(org.codehaus.groovy.ast.stmt.BlockStatement stat) void
visitDeclarationExpression
(org.codehaus.groovy.ast.expr.DeclarationExpression expr) Methods inherited from class org.spockframework.compiler.AbstractDeepBlockRewriter
doVisitBinaryExpression, getFoundExceptionCondition, getThenBlockInteractionStats, isConditionFound, isExceptionConditionFound, visitBinaryExpression, visitClosureExpression, visitExpressionStatement, visitMethodCallExpression
Methods inherited from class org.spockframework.compiler.StatementReplacingVisitorSupport
getSourceUnit, replace, replaceAll, replaceVisitedStatementWith, visitCaseStatement, visitCatchStatement, visitDoWhileLoop, visitForLoop, visitIfElse, visitSwitch, visitSynchronizedStatement, visitTryCatchFinally, visitWhileLoop
Methods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitAnnotations, visitBreakStatement, visitClass, visitClassCodeContainer, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitField, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitThrowStatement
Methods inherited from class org.codehaus.groovy.ast.CodeVisitorSupport
visitArgumentlistExpression, visitArrayExpression, visitAttributeExpression, visitBitwiseNegationExpression, visitBooleanExpression, visitBytecodeExpression, visitCastExpression, visitClassExpression, visitClosureListExpression, visitConstantExpression, visitConstructorCallExpression, visitEmptyStatement, visitFieldExpression, visitGStringExpression, visitListExpression, visitListOfExpressions, visitMapEntryExpression, visitMapExpression, visitMethodPointerExpression, visitNotExpression, visitPostfixExpression, visitPrefixExpression, visitPropertyExpression, visitRangeExpression, visitShortTernaryExpression, visitSpreadExpression, visitSpreadMapExpression, visitStaticMethodCallExpression, visitTernaryExpression, visitTupleExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitVariableExpression
-
Constructor Details
-
DeepBlockRewriter
-
-
Method Details
-
visit
- Overrides:
visit
in classAbstractDeepBlockRewriter
-
visitAssertStatement
public void visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement stat) - Specified by:
visitAssertStatement
in interfaceorg.codehaus.groovy.ast.GroovyCodeVisitor
- Overrides:
visitAssertStatement
in classorg.codehaus.groovy.ast.ClassCodeVisitorSupport
-
doVisitExpressionStatement
protected void doVisitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement stat) - Overrides:
doVisitExpressionStatement
in classAbstractDeepBlockRewriter
-
doVisitClosureExpression
protected void doVisitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression expr) - Overrides:
doVisitClosureExpression
in classAbstractDeepBlockRewriter
-
visitBlockStatement
public void visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement stat) - Specified by:
visitBlockStatement
in interfaceorg.codehaus.groovy.ast.GroovyCodeVisitor
- Overrides:
visitBlockStatement
in classStatementReplacingVisitorSupport
-
visitDeclarationExpression
public void visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression expr) - Specified by:
visitDeclarationExpression
in interfaceorg.codehaus.groovy.ast.GroovyCodeVisitor
- Overrides:
visitDeclarationExpression
in classorg.codehaus.groovy.ast.ClassCodeVisitorSupport
-
doVisitMethodCallExpression
protected void doVisitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression expr) - Overrides:
doVisitMethodCallExpression
in classAbstractDeepBlockRewriter
-
isImplicitCondition
public static boolean isImplicitCondition(org.codehaus.groovy.ast.stmt.Statement stat)
-