public void visitExpressionStatement(ExpressionStatement es) { es.setExpression(transform(es.getExpression())); } }
public static boolean copyStatementsWithSuperAdjustment(ClosureExpression pre, BlockStatement body) { Statement preCode = pre.getCode(); boolean changed = false; if (preCode instanceof BlockStatement) { BlockStatement block = (BlockStatement) preCode; List<Statement> statements = block.getStatements(); for (int i = 0; i < statements.size(); i++) { Statement statement = statements.get(i); // adjust the first statement if it's a super call if (i == 0 && statement instanceof ExpressionStatement) { ExpressionStatement es = (ExpressionStatement) statement; Expression preExp = es.getExpression(); if (preExp instanceof MethodCallExpression) { MethodCallExpression mce = (MethodCallExpression) preExp; String name = mce.getMethodAsString(); if ("super".equals(name)) { es.setExpression(new ConstructorCallExpression(ClassNode.SUPER, mce.getArguments())); changed = true; } } } body.addStatement(statement); } } return changed; }
private static void visitStatement(Statement statement, ClassNode returnType) { if (statement instanceof ReturnStatement) { // normal path ReturnStatement rs = (ReturnStatement) statement; rs.setExpression(transformConstantExpression(rs.getExpression(), returnType)); } else if (statement instanceof ExpressionStatement) { // path for JavaStubGenerator ExpressionStatement es = (ExpressionStatement) statement; es.setExpression(transformConstantExpression(es.getExpression(), returnType)); } }
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)); } }
} else if (statement instanceof ExpressionStatement) { ExpressionStatement es = (ExpressionStatement) statement; es.setExpression(assignment); } else { throw new GroovyBugError("unknown statement type :"+statement.getClass());
public void visitExpressionStatement(ExpressionStatement es) { es.setExpression(transform(es.getExpression())); } }
public void visitExpressionStatement(ExpressionStatement es) { es.setExpression(transform(es.getExpression())); } }
@Override public void visitExpressionStatement(ExpressionStatement stat) { stat.setExpression(replaceExpr(stat.getExpression())); }
public void visitExpressionStatement(ExpressionStatement es) { es.setExpression(transform(es.getExpression())); } }
public void visitExpressionStatement(ExpressionStatement es) { es.setExpression(transform(es.getExpression())); } }
Assignment assignmentNode = createAssignmentNode("_returnValue", exprNode.getExpression()); assignmentNode.setParent(exprNode); exprNode.setExpression(assignmentNode);
@Override public void visitExpressionStatement(ExpressionStatement es) { Expression exp = es.getExpression(); if (exp instanceof DeclarationExpression) { DeclarationExpression de = (DeclarationExpression) exp; Expression leftExpression = de.getLeftExpression(); if (leftExpression instanceof VariableExpression) { // Only cast and transform if the RHS is *not* an EmptyExpression, i.e., "String foo;" would not be cast/transformed. if (!(de.getRightExpression() instanceof EmptyExpression) && mightBePositionalArgumentConstructor((VariableExpression) leftExpression)) { CastExpression ce = new CastExpression(leftExpression.getType(), de.getRightExpression()); ce.setCoerce(true); es.setExpression(transform(new DeclarationExpression(leftExpression, de.getOperation(), ce))); return; } } else { throw new UnsupportedOperationException("not supporting tuples yet"); // cf. "Unexpected LHS of an assignment" above } } super.visitExpressionStatement(es); }
} else if (statement instanceof ExpressionStatement) { ExpressionStatement es = (ExpressionStatement) statement; es.setExpression(assignment); } else { throw new GroovyBugError("unknown statement type :"+statement.getClass());