@Override
    public String generate() {
      if (myInstructions.size() == 1 && !hasElseBranch()) {
        Instruction instruction = myInstructions.get(0);
        if (!(instruction instanceof Declaration) &&
            (!(instruction instanceof CodeBlock) || ((CodeBlock)instruction).myBlock.getCodeBlock().getStatements().length == 1)) {
          return "if(" + myCondition.getText() + ")" + instruction.generate();
        }
      }
      String thenBranch = "if(" + myCondition.getText() + "){\n" +
                          StringUtil.join(myInstructions, i -> i.generate(), "") +
                          "}\n";
      if (myElseInstructions == null) return thenBranch;
      return thenBranch +
             "else{\n" + StringUtil.join(myElseInstructions, i -> i.generate(), "") + "\n}";
    }
@Override
    public String generate()