@Override public void visitIfElse(final IfStatement ifElse) { visitStatement(ifElse); ifElse.getBooleanExpression().visit(this); Map<Variable, VariableState> ifState = pushState(); ifElse.getIfBlock().visit(this); popState(); Statement elseBlock = ifElse.getElseBlock(); Map<Variable, VariableState> elseState = pushState(); visitPossiblyEmptyStatement(elseBlock); popState(); // merge if/else branches Map<Variable, VariableState> curState = getState(); Set<Variable> allVars = new HashSet<Variable>(); allVars.addAll(curState.keySet()); allVars.addAll(ifState.keySet()); allVars.addAll(elseState.keySet()); for (Variable var : allVars) { VariableState beforeValue = curState.get(var); VariableState ifValue = ifState.get(var); VariableState elseValue = elseState.get(var); // merge if and else values VariableState mergedIfElse; mergedIfElse = isFinal(ifValue) && isFinal(elseValue) ? VariableState.is_final : VariableState.is_var; if (beforeValue != null) { curState.put(var, mergedIfElse); } } }
@Override public void visitIfElse(IfStatement stat) { stat.getBooleanExpression().visit(this); stat.setIfBlock(replace(stat.getIfBlock())); stat.setElseBlock(replace(stat.getElseBlock())); }
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 visitIfElse(IfStatement ifElse) { ifElse.setBooleanExpression((BooleanExpression) (transform(ifElse.getBooleanExpression()))); ifElse.getIfBlock().visit(this); ifElse.getElseBlock().visit(this); }
@Override public void visitIfElse(IfStatement stat) { stat.setBooleanExpression((BooleanExpression)replaceExpr(stat.getBooleanExpression())); stat.setIfBlock(replace(stat.getIfBlock())); stat.setElseBlock(replace(stat.getElseBlock())); }
public void visitIfElse(final IfStatement ifElse) { assertStatementAuthorized(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 visitIfElse(IfStatement ifElse) { ifElse.getBooleanExpression().visit(this); pushState(); ifElse.getIfBlock().visit(this); popState(); pushState(); ifElse.getElseBlock().visit(this); popState(); }
return null; Statement block = ifElse.getIfBlock(); if (!(block instanceof BlockStatement)) { return null;
visitStatement(ifElse); ifElse.getBooleanExpression().visit(this); ifElse.getIfBlock().visit(this);
final Statement ifBlock = addReturnsIfNeeded(ifs.getIfBlock(), scope); final Statement elseBlock = addReturnsIfNeeded(ifs.getElseBlock(), scope); if (doAdd) {
public void writeIfElse(IfStatement ifElse) { controller.getAcg().onLineNumber(ifElse,"visitIfElse"); writeStatementLabel(ifElse); MethodVisitor mv = controller.getMethodVisitor(); ifElse.getBooleanExpression().visit(controller.getAcg()); Label l0 = controller.getOperandStack().jump(IFEQ); // if-else is here handled as a special version // of a boolean expression controller.getCompileStack().pushBooleanExpression(); ifElse.getIfBlock().visit(controller.getAcg()); controller.getCompileStack().pop(); if (ifElse.getElseBlock()==EmptyStatement.INSTANCE) { mv.visitLabel(l0); } else { Label l1 = new Label(); mv.visitJumpInsn(GOTO, l1); mv.visitLabel(l0); controller.getCompileStack().pushBooleanExpression(); ifElse.getElseBlock().visit(controller.getAcg()); controller.getCompileStack().pop(); mv.visitLabel(l1); } }
@Override public void visitIfElse(IfStatement ifElse) { children.add(ifElse.getBooleanExpression()); children.add(ifElse.getIfBlock()); children.add(ifElse.getElseBlock()); }
public void visitIfElse(IfStatement ifElse) { ifElse.getBooleanExpression().visit(this); ifElse.getIfBlock().visit(this); ifElse.getElseBlock().visit(this); }
@Override public void run() { visit(stmt.getBooleanExpression()); visit(stmt.getIfBlock()); visit(stmt.getElseBlock()); } });
public void visitIfElse(IfStatement ifElse) { ifElse.getBooleanExpression().visit(this); ifElse.getIfBlock().visit(this); ifElse.getElseBlock().visit(this); }
public void visitIfElse(IfStatement ifElse) { ifElse.setBooleanExpression((BooleanExpression) (transform(ifElse.getBooleanExpression()))); ifElse.getIfBlock().visit(this); ifElse.getElseBlock().visit(this); }
public void visitIfElse(IfStatement ifElse) { ifElse.setBooleanExpression((BooleanExpression) (transform(ifElse.getBooleanExpression()))); ifElse.getIfBlock().visit(this); ifElse.getElseBlock().visit(this); }
public void visitIfElse(final IfStatement ifElse) { assertStatementAuthorized(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); } }
@Override public void visitIfElse(IfStatement stat) { stat.getBooleanExpression().visit(this); stat.setIfBlock(replace(stat.getIfBlock())); stat.setElseBlock(replace(stat.getElseBlock())); }
@Override public void visitIfElse(IfStatement stat) { stat.setBooleanExpression((BooleanExpression) replaceExpr(stat.getBooleanExpression())); stat.setIfBlock(replace(stat.getIfBlock())); stat.setElseBlock(replace(stat.getElseBlock())); }