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 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) voidvoidvisitAssertStatement(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, visitMethodCallExpressionMethods inherited from class org.spockframework.compiler.StatementReplacingVisitorSupport
getSourceUnit, replace, replaceAll, replaceVisitedStatementWith, visitCaseStatement, visitCatchStatement, visitDoWhileLoop, visitForLoop, visitIfElse, visitSwitch, visitSynchronizedStatement, visitTryCatchFinally, visitWhileLoopMethods inherited from class org.codehaus.groovy.ast.ClassCodeVisitorSupport
addError, visitAnnotations, visitBreakStatement, visitClass, visitClassCodeContainer, visitConstructor, visitConstructorOrMethod, visitContinueStatement, visitField, visitImports, visitMethod, visitObjectInitializerStatements, visitPackage, visitProperty, visitReturnStatement, visitStatement, visitThrowStatementMethods 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:
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)
-