docs: final public void LambdaExpression() throws ParseException {
                                               /*@bgen(jjtree) LambdaExpression */
    AstLambdaExpression jjtn000 = new AstLambdaExpression(JJTLAMBDAEXPRESSION);
    boolean jjtc000 = true;
    jjtree.openNodeScope(jjtn000);
      try {
        LambdaParameters();
        jj_consume_token(ARROW);
        if (jj_2_3(3)) {
          LambdaExpression();
        } else {
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case START_SET_OR_MAP:
          case INTEGER_LITERAL:
          case FLOATING_POINT_LITERAL:
          case STRING_LITERAL:
          case TRUE:
          case FALSE:
          case NULL:
          case LPAREN:
          case LBRACK:
          case NOT0:
          case NOT1:
          case EMPTY:
          case MINUS:
          case IDENTIFIER:
            Choice();
            break;
          default:
            jj_la1[4] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
      } catch (Throwable jjte000) {
        if (jjtc000) {
          jjtree.clearNodeScope(jjtn000);
          jjtc000 = false;
        } else {
          jjtree.popNode();
        }
        if (jjte000 instanceof RuntimeException) {
          {if (true) throw (RuntimeException)jjte000;}
        }
        if (jjte000 instanceof ParseException) {
          {if (true) throw (ParseException)jjte000;}
        }
        {if (true) throw (Error)jjte000;}
      } finally {
        if (jjtc000) {
          jjtree.closeNodeScope(jjtn000, true);
        }
      }
    }