public static Statement stmt(Expression expr) { return new ExpressionStatement(expr); }
public static Statement safeExpression(Expression fieldExpr, Expression expression) { return new IfStatement( equalsNullX(fieldExpr), new ExpressionStatement(fieldExpr), new ExpressionStatement(expression)); }
public static Statement returnS(Expression expr) { return new ReturnStatement(new ExpressionStatement(expr)); }
public static Statement ifS(Expression cond, Expression trueExpr) { return ifS(cond, new ExpressionStatement(trueExpr)); }
private Statement createVariableDeclarationStatement(VariableExpression var) { DeclarationExpression throwableDecl = new DeclarationExpression( var, Token.newSymbol(Types.ASSIGN, -1, -1), EmptyExpression.INSTANCE); return new ExpressionStatement(throwableDecl); }
public void call(ArgumentListExpression arguments, Parameter[] newParams, MethodNode method) { ConstructorNode ctor = (ConstructorNode) method; ConstructorCallExpression expression = new ConstructorCallExpression(ClassNode.THIS, arguments); Statement code = new ExpressionStatement(expression); addConstructor(newParams, ctor, code, node); } });
protected Statement methodCall(AST code) { Expression expression = methodCallExpression(code); ExpressionStatement expressionStatement = new ExpressionStatement(expression); configureAST(expressionStatement, code); return expressionStatement; }
protected Statement variableDef(AST variableDef) { ExpressionStatement expressionStatement = new ExpressionStatement(declarationExpression(variableDef)); configureAST(expressionStatement, variableDef); return expressionStatement; }
private Statement createMockControllerCall(String methodName) { return new ExpressionStatement( new MethodCallExpression( getMockInvocationMatcher(), methodName, ArgumentListExpression.EMPTY_ARGUMENTS)); }
private void rewriteDerivedParameterization(BinaryExpression parameterization, Statement enclosingStat) throws InvalidSpecCompileException { VariableExpression dataVar = createDataProcessorVariable(parameterization.getLeftExpression(), enclosingStat); ExpressionStatement exprStat = new ExpressionStatement( new DeclarationExpression( dataVar, Token.newSymbol(Types.ASSIGN, -1, -1), parameterization.getRightExpression())); exprStat.setSourcePosition(enclosingStat); dataProcessorStats.add(exprStat); }
private void moveInitializer(Field field, Method method, int position) { method.getFirstBlock().getAst().add(position, new ExpressionStatement( new FieldInitializationExpression(field.getAst()))); field.getAst().setInitialValueExpression(null); }
@Override public VariableExpression captureOldValue(Expression oldValue) { VariableExpression var = new OldValueExpression(oldValue, SpockNames.OLD_VALUE + oldValueCount++); DeclarationExpression decl = new DeclarationExpression( var, Token.newSymbol(Types.ASSIGN, -1, -1), oldValue); decl.setSourcePosition(oldValue); // add declaration at end of block immediately preceding when-block // avoids any problems if when-block gets wrapped in try-statement block.getPrevious().getPrevious().getAst().add(new ExpressionStatement(decl)); return var; }
private void moveVariableDeclarations(List<Statement> from, List<Statement> to) { for (Statement stat : from) { DeclarationExpression declExpr = AstUtil.getExpression(stat, DeclarationExpression.class); if (declExpr == null) continue; ((ExpressionStatement) stat).setExpression( new BinaryExpression( copyLhsVariableExpressions(declExpr), Token.newSymbol(Types.ASSIGN, -1, -1), declExpr.getRightExpression())); declExpr.setRightExpression(createDefaultValueInitializer(declExpr)); to.add(new ExpressionStatement(declExpr)); } }
private CatchStatement createThrowableAssignmentAndRethrowCatchStatement(VariableExpression assignmentVar) { Parameter catchParameter = new Parameter(nodeCache.Throwable, "$spock_tmp_throwable"); BinaryExpression assignThrowableExpr = new BinaryExpression( new VariableExpression(assignmentVar), Token.newSymbol(Types.ASSIGN, -1, -1), new VariableExpression(catchParameter)); return new CatchStatement(catchParameter, new BlockStatement( Arrays.asList( new ExpressionStatement(assignThrowableExpr), new ThrowStatement(new VariableExpression(catchParameter))), new VariableScope())); }
private Statement createNewLine(final ASTNode node) { MethodCallExpression mce = new MethodCallExpression( new VariableExpression("this"), "newLine", ArgumentListExpression.EMPTY_ARGUMENTS ); mce.setImplicitThis(true); mce.setSourcePosition(node); ExpressionStatement stmt = new ExpressionStatement(mce); stmt.setSourcePosition(node); return stmt; } }
protected static void addFieldInit(Parameter p, FieldNode fn, BlockStatement block) { VariableExpression ve = new VariableExpression(p); FieldExpression fe = new FieldExpression(fn); block.addStatement(new ExpressionStatement( new BinaryExpression(fe, Token.newSymbol(Types.ASSIGN, -1, -1), ve) )); }
private ExpressionStatement register() { ExpressionStatement result = new ExpressionStatement( new MethodCallExpression( resources.getMockInvocationMatcher(), MockController.ADD_INTERACTION, new ArgumentListExpression(builderExpr))); result.setSourcePosition(stat); return result; }
private void rewriteSimpleParameterization(BinaryExpression binExpr, ASTNode sourcePos) throws InvalidSpecCompileException { int nextDataVariableIndex = dataProcessorVars.size(); Parameter dataProcessorParameter = createDataProcessorParameter(); VariableExpression arg = (VariableExpression) binExpr.getLeftExpression(); VariableExpression dataVar = createDataProcessorVariable(arg, sourcePos); ExpressionStatement exprStat = new ExpressionStatement( new DeclarationExpression( dataVar, Token.newSymbol(Types.ASSIGN, -1, -1), new VariableExpression(dataProcessorParameter))); exprStat.setSourcePosition(sourcePos); dataProcessorStats.add(exprStat); createDataProviderMethod(binExpr.getRightExpression(), nextDataVariableIndex); }
protected ExpressionStatement createPrintlnStatement(Expression expression) throws NoSuchFieldException { return new ExpressionStatement( new MethodCallExpression( new FieldExpression(FieldNode.newStatic(System.class, "out")), "println", expression)); }
private CatchStatement createHandleSuppressedThrowableStatement(VariableExpression featureThrowableVar) { Parameter catchParameter = new Parameter(nodeCache.Throwable, "$spock_tmp_throwable"); MethodCallExpression addSuppressedCall = new MethodCallExpression(featureThrowableVar, "addSuppressed", new ArgumentListExpression(new VariableExpression(catchParameter))); BinaryExpression featureThrowableNotNullExpr = createVariableNotNullExpression(featureThrowableVar); List<Statement> addSuppressedStats = Collections.<Statement>singletonList(new ExpressionStatement(addSuppressedCall)); List<Statement> throwFeatureStats = Collections.<Statement>singletonList(new ThrowStatement(new VariableExpression(catchParameter))); IfStatement ifFeatureNotNullStat = new IfStatement(new BooleanExpression(featureThrowableNotNullExpr), new BlockStatement(addSuppressedStats, new VariableScope()), new BlockStatement(throwFeatureStats, new VariableScope())); return new CatchStatement(catchParameter, new BlockStatement( Collections.<Statement>singletonList(ifFeatureNotNullStat), new VariableScope())); }