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 voiddoVisitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression expr)protected voiddoVisitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement stat)protected voiddoVisitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression expr)static booleanisImplicitCondition(org.codehaus.groovy.ast.stmt.Statement stat)voidvisit(Block block)voidvisitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement stat)voidvisitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement stat)voidvisitDeclarationExpression(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:
visitin classAbstractDeepBlockRewriter
-
visitAssertStatement
public void visitAssertStatement(org.codehaus.groovy.ast.stmt.AssertStatement stat)
- Specified by:
visitAssertStatementin interfaceorg.codehaus.groovy.ast.GroovyCodeVisitor- Overrides:
visitAssertStatementin classorg.codehaus.groovy.ast.ClassCodeVisitorSupport
-
doVisitExpressionStatement
protected void doVisitExpressionStatement(org.codehaus.groovy.ast.stmt.ExpressionStatement stat)
- Overrides:
doVisitExpressionStatementin classAbstractDeepBlockRewriter
-
doVisitClosureExpression
protected void doVisitClosureExpression(org.codehaus.groovy.ast.expr.ClosureExpression expr)
- Overrides:
doVisitClosureExpressionin classAbstractDeepBlockRewriter
-
visitBlockStatement
public void visitBlockStatement(org.codehaus.groovy.ast.stmt.BlockStatement stat)
- Specified by:
visitBlockStatementin interfaceorg.codehaus.groovy.ast.GroovyCodeVisitor- Overrides:
visitBlockStatementin classStatementReplacingVisitorSupport
-
visitDeclarationExpression
public void visitDeclarationExpression(org.codehaus.groovy.ast.expr.DeclarationExpression expr)
- Specified by:
visitDeclarationExpressionin interfaceorg.codehaus.groovy.ast.GroovyCodeVisitor- Overrides:
visitDeclarationExpressionin classorg.codehaus.groovy.ast.ClassCodeVisitorSupport
-
doVisitMethodCallExpression
protected void doVisitMethodCallExpression(org.codehaus.groovy.ast.expr.MethodCallExpression expr)
- Overrides:
doVisitMethodCallExpressionin classAbstractDeepBlockRewriter
-
isImplicitCondition
public static boolean isImplicitCondition(org.codehaus.groovy.ast.stmt.Statement stat)
-
-