private void normalizeConditional(ConditionalStatement stmt) { if (stmt.getConsequent().isEmpty()) { stmt.getConsequent().addAll(stmt.getAlternative()); stmt.getAlternative().clear(); stmt.setCondition(ExprOptimizer.invert(stmt.getCondition())); } }
@Override public void visit(ConditionalStatement statement) { try { output.writeByte(3); writeExpr(statement.getCondition()); writeSequence(statement.getConsequent()); writeSequence(statement.getAlternative()); } catch (IOException e) { throw new IOExceptionWrapper(e); } }
@Override public void visit(ConditionalStatement statement) { statement.getCondition().acceptVisitor(this); statement.setCondition(optimizeCondition(resultExpr)); List<Statement> consequent = processSequence(statement.getConsequent()); List<Statement> alternative = processSequence(statement.getAlternative()); if (consequent.isEmpty()) { consequent.addAll(alternative); alternative.clear(); statement.setCondition(ExprOptimizer.invert(statement.getCondition())); } if (consequent.isEmpty()) { SequentialStatement sequentialStatement = new SequentialStatement(); resultStmt = sequentialStatement; statement.getCondition().acceptVisitor(new ExpressionSideEffectDecomposer( sequentialStatement.getSequence())); return; } statement.getConsequent().clear(); statement.getConsequent().addAll(consequent); statement.getAlternative().clear(); statement.getAlternative().addAll(alternative); Statement asConditional = tryConvertToConditionalExpression(statement); if (asConditional != null) { asConditional.acceptVisitor(this); } else { resultStmt = statement; } }
@Override public void visit(ConditionalStatement statement) { statement.getCondition().acceptVisitor(this); visit(statement.getConsequent()); visit(statement.getAlternative()); }
cond.getConsequent().clear(); cond.getConsequent().addAll(innerCond.getConsequent()); cond.setCondition(Expr.binary(BinaryOperation.AND, null, cond.getCondition(), innerCond.getCondition(), cond.getCondition().getLocation())); --i; } else if (cond.getAlternative().size() != 1 || !(cond.getAlternative().get(0) instanceof ConditionalStatement)) { cond.setCondition(ExprOptimizer.invert(cond.getCondition())); cond.getConsequent().clear(); cond.getConsequent().addAll(cond.getAlternative());
@Override public void visit(ConditionalStatement statement) { accept(statement.getCondition()); WasmConditional conditional = new WasmConditional(forCondition(result)); for (Statement part : statement.getConsequent()) { accept(part); if (result != null) { conditional.getThenBlock().getBody().add(result); } } for (Statement part : statement.getAlternative()) { accept(part); if (result != null) { conditional.getElseBlock().getBody().add(result); } } result = conditional; }
if (statement.getCondition() != null) { Expr newCondition = Expr.binary(BinaryOperation.AND, null, statement.getCondition(), ExprOptimizer.invert(cond.getCondition())); newCondition.setLocation(statement.getCondition().getLocation()); statement.setCondition(newCondition); } else { statement.setCondition(ExprOptimizer.invert(cond.getCondition()));
@Override public void visit(ConditionalStatement statement) { while (true) { writer.print("if ("); statement.getCondition().acceptVisitor(this); writer.println(") {").indent(); visitMany(statement.getConsequent()); writer.outdent().print("}"); if (statement.getAlternative().isEmpty()) { writer.println(); break; } writer.print(" else "); if (statement.getAlternative().size() == 1 && statement.getAlternative().get(0) instanceof ConditionalStatement) { statement = (ConditionalStatement) statement.getAlternative().get(0); } else { writer.println("{").indent(); visitMany(statement.getAlternative()); writer.outdent().println("}"); break; } } }
while (true) { debugEmitter.emitStatementStart(); if (statement.getCondition().getLocation() != null) { pushLocation(statement.getCondition().getLocation()); statement.getCondition().acceptVisitor(this); if (statement.getCondition().getLocation() != null) { popLocation();
if (firstLhs.getIndex() == secondLhs.getIndex()) { ConditionalExpr conditionalExpr = new ConditionalExpr(); conditionalExpr.setCondition(statement.getCondition()); conditionalExpr.setConsequent(firstAssignment.getRightValue()); conditionalExpr.setAlternative(secondAssignment.getRightValue()); conditionalExpr.setLocation(statement.getCondition().getLocation()); AssignmentStatement assignment = new AssignmentStatement(); assignment.setLocation(conditionalExpr.getLocation());
private void normalizeConditional(ConditionalStatement stmt) { if (stmt.getConsequent().isEmpty()) { stmt.getConsequent().addAll(stmt.getAlternative()); stmt.getAlternative().clear(); stmt.setCondition(ExprOptimizer.invert(stmt.getCondition())); } }
@Override public void visit(ConditionalStatement statement) { try { output.writeByte(3); writeExpr(statement.getCondition()); writeSequence(statement.getConsequent()); writeSequence(statement.getAlternative()); } catch (IOException e) { throw new IOExceptionWrapper(e); } }
@Override public void visit(ConditionalStatement statement) { statement.getCondition().acceptVisitor(this); statement.setCondition(resultExpr); List<Statement> consequent = processSequence(statement.getConsequent()); List<Statement> alternative = processSequence(statement.getAlternative()); if (consequent.isEmpty()) { consequent.addAll(alternative); alternative.clear(); statement.setCondition(ExprOptimizer.invert(statement.getCondition())); } if (consequent.isEmpty()) { SequentialStatement sequentialStatement = new SequentialStatement(); resultStmt = sequentialStatement; statement.getCondition().acceptVisitor(new ExpressionSideEffectDecomposer( sequentialStatement.getSequence())); return; } statement.getConsequent().clear(); statement.getConsequent().addAll(consequent); statement.getAlternative().clear(); statement.getAlternative().addAll(alternative); Statement asConditional = tryConvertToConditionalExpression(statement); if (asConditional != null) { asConditional.acceptVisitor(this); } else { resultStmt = statement; } }
@Override public void visit(ConditionalStatement statement) { statement.getCondition().acceptVisitor(this); visit(statement.getConsequent()); visit(statement.getAlternative()); }
cond.getConsequent().clear(); cond.getConsequent().addAll(innerCond.getConsequent()); cond.setCondition(Expr.binary(BinaryOperation.AND, null, cond.getCondition(), innerCond.getCondition(), cond.getCondition().getLocation())); --i; } else if (cond.getAlternative().size() != 1 || !(cond.getAlternative().get(0) instanceof ConditionalStatement)) { cond.setCondition(ExprOptimizer.invert(cond.getCondition())); cond.getConsequent().clear(); cond.getConsequent().addAll(cond.getAlternative());
if (statement.getCondition() != null) { Expr newCondition = Expr.binary(BinaryOperation.AND, null, statement.getCondition(), ExprOptimizer.invert(cond.getCondition())); newCondition.setLocation(statement.getCondition().getLocation()); statement.setCondition(newCondition); } else { statement.setCondition(ExprOptimizer.invert(cond.getCondition()));
@Override public void visit(ConditionalStatement statement) { accept(statement.getCondition()); WasmConditional conditional = new WasmConditional(forCondition(result)); for (Statement part : statement.getConsequent()) { accept(part); if (result != null) { conditional.getThenBlock().getBody().add(result); } } for (Statement part : statement.getAlternative()) { accept(part); if (result != null) { conditional.getElseBlock().getBody().add(result); } } result = conditional; }
while (true) { debugEmitter.emitStatementStart(); if (statement.getCondition().getLocation() != null) { pushLocation(statement.getCondition().getLocation()); statement.getCondition().acceptVisitor(this); if (statement.getCondition().getLocation() != null) { popLocation();
if (firstLhs.getIndex() == secondLhs.getIndex()) { ConditionalExpr conditionalExpr = new ConditionalExpr(); conditionalExpr.setCondition(statement.getCondition()); conditionalExpr.setConsequent(firstAssignment.getRightValue()); conditionalExpr.setAlternative(secondAssignment.getRightValue()); conditionalExpr.setLocation(statement.getCondition().getLocation()); AssignmentStatement assignment = new AssignmentStatement(); assignment.setLocation(conditionalExpr.getLocation());