@Override
  public TextBuffer toJava(int indent, BytecodeMappingTracer tracer) {
    TextBuffer buf = new TextBuffer();
    boolean isLabeled = isLabeled();

    buf.append(ExprProcessor.listToJava(varDefinitions, indent, tracer));

    if (isLabeled) {
      buf.appendIndent(indent++).append("label").append(Integer.toString(id)).append(": {").appendLineSeparator();
      tracer.incrementCurrentSourceLine();
    }

    boolean notEmpty = false;

    for (int i = 0; i < stats.size(); i++) {

      Statement stat = stats.get(i);

      if (i > 0 && notEmpty) {
        buf.appendLineSeparator();
        tracer.incrementCurrentSourceLine();
      }

      TextBuffer str = ExprProcessor.jmpWrapper(stat, indent, false, tracer);
      buf.append(str);

      notEmpty = !str.containsOnlyWhitespaces();
    }

    if (isLabeled) {
      buf.appendIndent(indent - 1).append("}").appendLineSeparator();
      tracer.incrementCurrentSourceLine();
    }

    return buf;
  }
@Override
  public TextBuffer toJava(int indent, BytecodeMappingTracer tracer)