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
public class DeepBlockRewriter extends AbstractDeepBlockRewriter
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 Constructor Description DeepBlockRewriter(IRewriteResources resources)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected 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
visit(Block block)
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 Detail
-
DeepBlockRewriter
public DeepBlockRewriter(IRewriteResources resources)
-
-
Method Detail
-
visit
public void visit(Block block)
- 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)
-
-