/** * Called by helpers when super.transform() is needed. */ final Expression superTransform(Expression expr) { return super.transform(expr); }
private Expression transformMethodCallExpression(Expression exp) { Expression modifiedCall = addGuard((MethodCallExpression) exp); return modifiedCall == null ? super.transform(exp) : modifiedCall; }
@Override public Expression transform(final Expression exp) { if (exp != null) { Expression replacement = exp.getNodeMetaData(TraitASTTransformation.POST_TYPECHECKING_REPLACEMENT); if (replacement!=null) { return replacement; } } return super.transform(exp); } }
public void visitAnnotations(AnnotatedNode node) { List<AnnotationNode> annotations = node.getAnnotations(); if (annotations.isEmpty()) return; for (AnnotationNode an : annotations) { // skip built-in properties if (an.isBuiltIn()) continue; for (Map.Entry<String, Expression> member : an.getMembers().entrySet()) { member.setValue(transform(member.getValue())); } } }
@Override public Expression transform(Expression expression) { if (depth == 0) rowIndex++; if ((expression instanceof VariableExpression) && isDataProcessorVariable(expression.getText())) { return AstUtil.createGetAtMethod(expression, rowIndex); } depth++; Expression transform = super.transform(expression); depth--; return transform; } }
@Override public Expression transform(final Expression exp) { if (exp instanceof MethodCallExpression) { return transformMethodCallExpression((MethodCallExpression)exp); } if (exp instanceof BinaryExpression) { return transformBinaryExpression((BinaryExpression) exp); } return super.transform(exp); }
@Override public Expression transform(Expression exp) { if (exp == null) return null; if (exp instanceof MethodCallExpression) { return transformMethodCallExpression(exp); } if (exp instanceof ClosureExpression) { return transformClosureExpression((ClosureExpression) exp); } return super.transform(exp); }
public void visitReturnStatement(ReturnStatement statement) { statement.setExpression(transform(statement.getExpression())); }
public void visitExpressionStatement(ExpressionStatement es) { es.setExpression(transform(es.getExpression())); } }
public void visitField(FieldNode node) { visitAnnotations(node); Expression init = node.getInitialExpression(); node.setInitialValueExpression(transform(init)); }
@Override public Expression transform(final Expression exp) { if (exp instanceof BinaryExpression) { return transformBinaryExpression((BinaryExpression) exp); } if (exp instanceof PrefixExpression) { return transformPrefixExpression((PrefixExpression) exp); } if (exp instanceof PostfixExpression) { return transformPostfixExpression((PostfixExpression) exp); } return super.transform(exp); }
public void visitSynchronizedStatement(SynchronizedStatement sync) { sync.setExpression(transform(sync.getExpression())); super.visitSynchronizedStatement(sync); }
public void visitDoWhileLoop(DoWhileStatement loop) { loop.setBooleanExpression((BooleanExpression) (transform(loop.getBooleanExpression()))); super.visitDoWhileLoop(loop); }
public void visitCaseStatement(CaseStatement statement) { statement.setExpression(transform(statement.getExpression())); statement.getCode().visit(this); }
protected void visitConstructorOrMethod(MethodNode node, boolean isConstructor) { for (Parameter p : node.getParameters()) { if (p.hasInitialExpression()) { Expression init = p.getInitialExpression(); p.setInitialExpression(transform(init)); } } super.visitConstructorOrMethod(node, isConstructor); }
public void visitSwitch(SwitchStatement statement) { Expression exp = statement.getExpression(); statement.setExpression(transform(exp)); for (CaseStatement caseStatement : statement.getCaseStatements()) { caseStatement.visit(this); } statement.getDefaultStatement().visit(this); }
public void visitIfElse(IfStatement ifElse) { ifElse.setBooleanExpression((BooleanExpression) (transform(ifElse.getBooleanExpression()))); ifElse.getIfBlock().visit(this); ifElse.getElseBlock().visit(this); }
private Expression transformPostfixExpression(final PostfixExpression exp) { if (isInternalFieldAccess(exp.getExpression())) { Token operation = exp.getOperation(); sourceUnit.addError(new SyntaxException("Postfix expressions on trait fields/properties are not supported in traits.", operation.getStartLine(), operation.getStartColumn())); return exp; } else { return super.transform(exp); } }
private Expression transformPrefixExpression(final PrefixExpression exp) { if (isInternalFieldAccess(exp.getExpression())) { Token operation = exp.getOperation(); sourceUnit.addError(new SyntaxException("Prefix expressions on trait fields/properties are not supported in traits.", operation.getStartLine(), operation.getStartColumn())); return exp; } else { return super.transform(exp); } }