@Override public void visit(ConditionalExpr expr) { try { if (expr.getLocation() != null) { pushLocation(expr.getLocation()); } Precedence outerPrecedence = precedence; if (outerPrecedence.ordinal() > Precedence.CONDITIONAL.ordinal()) { writer.append('('); } precedence = Precedence.CONDITIONAL.next(); expr.getCondition().acceptVisitor(this); writer.ws().append("?").ws(); precedence = Precedence.CONDITIONAL.next(); expr.getConsequent().acceptVisitor(this); writer.ws().append(":").ws(); precedence = Precedence.CONDITIONAL; expr.getAlternative().acceptVisitor(this); if (outerPrecedence.ordinal() > Precedence.CONDITIONAL.ordinal()) { writer.append(')'); } if (expr.getLocation() != null) { popLocation(); } } catch (IOException e) { throw new RenderingException("IO error occured", e); } }
@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(); } }
conditionalExpr.setLocation(statement.getCondition().getLocation()); AssignmentStatement assignment = new AssignmentStatement(); assignment.setLocation(conditionalExpr.getLocation()); VariableExpr lhs = new VariableExpr(); lhs.setIndex(firstLhs.getIndex());
@Override public void visit(ConditionalExpr expr) { try { if (expr.getLocation() != null) { pushLocation(expr.getLocation()); } Precedence outerPrecedence = precedence; if (outerPrecedence.ordinal() > Precedence.CONDITIONAL.ordinal()) { writer.append('('); } precedence = Precedence.CONDITIONAL.next(); expr.getCondition().acceptVisitor(this); writer.ws().append("?").ws(); precedence = Precedence.CONDITIONAL.next(); expr.getConsequent().acceptVisitor(this); writer.ws().append(":").ws(); precedence = Precedence.CONDITIONAL; expr.getAlternative().acceptVisitor(this); if (outerPrecedence.ordinal() > Precedence.CONDITIONAL.ordinal()) { writer.append(')'); } if (expr.getLocation() != null) { popLocation(); } } catch (IOException e) { throw new RenderingException("IO error occured", e); } }
@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(); } }
conditionalExpr.setLocation(statement.getCondition().getLocation()); AssignmentStatement assignment = new AssignmentStatement(); assignment.setLocation(conditionalExpr.getLocation()); VariableExpr lhs = new VariableExpr(); lhs.setIndex(firstLhs.getIndex());