final public String Expression() throws ParseException {
  String exp;
    exp = getSingleExpression();
    label_9:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case KW_AND:
      case KW_OR:
        ;
        break;
      default:
        jj_la1[21] = jj_gen;
        break label_9;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case KW_AND:
        jj_consume_token(KW_AND);
          exp += " && ";
          exp += getSingleExpression();
        break;
      case KW_OR:
        jj_consume_token(KW_OR);
          exp += " || ";
          exp += getSingleExpression();
        break;
      default:
        jj_la1[22] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
    {if (true) return exp;}
    throw new Error("Missing return statement in function");
  }