@Override protected Expr clone(Map<Expr, Expr> cache) { Expr known = cache.get(this); if (known != null) { return known; } ConditionalExpr copy = new ConditionalExpr(); cache.put(this, copy); copy.setCondition(condition != null ? condition.clone(cache) : null); copy.setConsequent(consequent != null ? consequent.clone(cache) : null); copy.setAlternative(alternative != null ? alternative.clone(cache) : null); return copy; } }
expr.setCondition(readExpr(input)); expr.setConsequent(readExpr(input)); expr.setAlternative(readExpr(input));
@Override public void visit(ConditionalExpr expr) { pushLocation(expr.getLocation()); try { expr.getCondition().acceptVisitor(this); Expr cond = optimizeCondition(resultExpr); Statement barrier = addBarrier(); expr.getConsequent().acceptVisitor(this); Expr consequent = resultExpr; expr.getAlternative().acceptVisitor(this); Expr alternative = resultExpr; removeBarrier(barrier); expr.setCondition(cond); expr.setConsequent(consequent); expr.setAlternative(alternative); resultExpr = expr; } finally { popLocation(); } }
if (firstLhs.getIndex() == secondLhs.getIndex()) { ConditionalExpr conditionalExpr = new ConditionalExpr(); conditionalExpr.setCondition(statement.getCondition()); conditionalExpr.setConsequent(firstAssignment.getRightValue()); conditionalExpr.setAlternative(secondAssignment.getRightValue());
@Override protected Expr clone(Map<Expr, Expr> cache) { Expr known = cache.get(this); if (known != null) { return known; } ConditionalExpr copy = new ConditionalExpr(); cache.put(this, copy); copy.setCondition(condition != null ? condition.clone(cache) : null); copy.setConsequent(consequent != null ? consequent.clone(cache) : null); copy.setAlternative(alternative != null ? alternative.clone(cache) : null); return copy; } }
@Override public void visit(ConditionalExpr expr) { pushLocation(expr.getLocation()); try { expr.getCondition().acceptVisitor(this); Expr cond = resultExpr; expr.getConsequent().acceptVisitor(this); Expr consequent = resultExpr; expr.getAlternative().acceptVisitor(this); Expr alternative = resultExpr; expr.setCondition(cond); expr.setConsequent(consequent); expr.setAlternative(alternative); resultExpr = expr; } finally { popLocation(); } }
expr.setCondition(readExpr(input)); expr.setConsequent(readExpr(input)); expr.setAlternative(readExpr(input));
if (firstLhs.getIndex() == secondLhs.getIndex()) { ConditionalExpr conditionalExpr = new ConditionalExpr(); conditionalExpr.setCondition(statement.getCondition()); conditionalExpr.setConsequent(firstAssignment.getRightValue()); conditionalExpr.setAlternative(secondAssignment.getRightValue());