@Override public void visit(SwitchStatement statement) { try { output.writeByte(4); writeNullableString(statement.getId()); writeExpr(statement.getValue()); output.writeShort(statement.getClauses().size()); for (SwitchClause clause : statement.getClauses()) { int[] conditions = clause.getConditions(); output.writeShort(conditions.length); for (int condition : conditions) { output.writeInt(condition); } writeSequence(clause.getBody()); } writeSequence(statement.getDefaultClause()); } catch (IOException e) { throw new IOExceptionWrapper(e); } }
@Override public void visit(SwitchStatement statement) { writer.print("switch ("); statement.getValue().acceptVisitor(this); writer.print(") {").println().indent(); for (SwitchClause clause : statement.getClauses()) { for (int condition : clause.getConditions()) { writer.println("case " + condition + ":"); } writer.indent(); visitMany(clause.getBody()); writer.println("break;"); writer.outdent(); } if (!statement.getDefaultClause().isEmpty()) { writer.println("default:").indent(); visitMany(statement.getDefaultClause()); writer.outdent(); } writer.outdent().println("}"); if (statement.getId() != null) { writer.outdent().println("label_" + statement.getId() + ":;").indent(); } }
@Override public void visit(SwitchStatement statement) { try { output.writeByte(4); writeNullableString(statement.getId()); writeExpr(statement.getValue()); output.writeShort(statement.getClauses().size()); for (SwitchClause clause : statement.getClauses()) { int[] conditions = clause.getConditions(); output.writeShort(conditions.length); for (int condition : conditions) { output.writeInt(condition); } writeSequence(clause.getBody()); } writeSequence(statement.getDefaultClause()); } catch (IOException e) { throw new IOExceptionWrapper(e); } }