/** * Visits the specified statement. If the statement's visit method calls * replaceVisitedMethodWith(), the statement will be replaced. */ public Statement replace(Statement stat) { replacement = null; stat.visit(this); Statement result = replacement == null ? stat : replacement; replacement = null; return result; }
public void visitBlockStatement(BlockStatement block) { for (Statement statement : block.getStatements()) { statement.visit(this); } }
protected void visitObjectInitializerStatements(ClassNode node) { for (Statement element : node.getObjectInitializerStatements()) { element.visit(this); } }
private String getUniqueVariableName(final String name, Statement code) { if (code == null) return name; final Object[] found = new Object[1]; CodeVisitorSupport cv = new CodeVisitorSupport() { public void visitVariableExpression(VariableExpression expression) { if (expression.getName().equals(name)) found[0] = Boolean.TRUE; } }; code.visit(cv); if (found[0] != null) return getUniqueVariableName("_" + name, code); return name; }
public void check(Method method) { for (Block block : method.getBlocks()) for (Statement stat : block.getAst()) stat.visit(this); }
public void visitBlockStatement(final BlockStatement block) { assertStatementAuthorized(block); for (Statement statement : block.getStatements()) { statement.visit(this); } }
public void visitIfElse(IfStatement ifElse) { ifElse.getBooleanExpression().visit(this); ifElse.getIfBlock().visit(this); Statement elseBlock = ifElse.getElseBlock(); if (elseBlock instanceof EmptyStatement) { // dispatching to EmptyStatement will not call back visitor, // must call our visitEmptyStatement explicitly visitEmptyStatement((EmptyStatement) elseBlock); } else { elseBlock.visit(this); } }
public void visitWhileLoop(final WhileStatement loop) { assertStatementAuthorized(loop); loop.getBooleanExpression().visit(this); loop.getLoopBlock().visit(this); }
public void visitCaseStatement(final CaseStatement statement) { assertStatementAuthorized(statement); statement.getExpression().visit(this); statement.getCode().visit(this); }
private void transformRunMethod(final ClassNode classNode, final SourceUnit source) { MethodNode runMethod = classNode.getDeclaredMethod("run", Parameter.EMPTY_ARRAY); Statement code = runMethod.getCode(); MarkupBuilderCodeTransformer transformer = new MarkupBuilderCodeTransformer(source, classNode, config.isAutoEscape()); code.visit(transformer); }
public void visitForLoop(final ForStatement forLoop) { assertStatementAuthorized(forLoop); forLoop.getCollectionExpression().visit(this); forLoop.getLoopBlock().visit(this); }
public void visitDoWhileLoop(final DoWhileStatement loop) { assertStatementAuthorized(loop); loop.getBooleanExpression().visit(this); loop.getLoopBlock().visit(this); }
public void visitSynchronizedStatement(final SynchronizedStatement statement) { assertStatementAuthorized(statement); statement.getExpression().visit(this); statement.getCode().visit(this); }
public void visitSwitch(SwitchStatement statement) { statement.getExpression().visit(this); for (CaseStatement caseStatement : statement.getCaseStatements()) { caseStatement.visit(this); } statement.getDefaultStatement().visit(this); }
public void run() { controller.getCompileStack().pushBlockRecorderVisit(block); finallyStatement.visit(controller.getAcg()); controller.getCompileStack().popBlockRecorderVisit(block); } };
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 visitSwitch(final SwitchStatement statement) { assertStatementAuthorized(statement); statement.getExpression().visit(this); for (CaseStatement caseStatement : statement.getCaseStatements()) { caseStatement.visit(this); } statement.getDefaultStatement().visit(this); }
private void visitExpressionOrStatement(Object o) { if (o == EmptyExpression.INSTANCE) return; if (o instanceof Expression) { Expression expr = (Expression) o; int mark = controller.getOperandStack().getStackLength(); expr.visit(controller.getAcg()); controller.getOperandStack().popDownTo(mark); } else { ((Statement) o).visit(controller.getAcg()); } }