All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.openjpa.kernel.jpql.JPQL Maven / Gradle / Ivy

The newest version!
/* Generated By:JJTree&JavaCC: Do not edit this line. JPQL.java */
package org.apache.openjpa.kernel.jpql;

import java.io.*;



/**
 *	@nojavadoc
 */
public class JPQL/*@bgen(jjtree)*/implements JPQLTreeConstants, JPQLConstants {/*@bgen(jjtree)*/
  protected JJTJPQLState jjtree = new JJTJPQLState();String jpql;
        boolean inEnumPath;


        public JPQL (String jpql)
        {
                this (new StringReader (jpql));

                this.jpql = jpql;
        }


        public static void main (String[] args)
                throws Exception
        {
                if (args.length > 0)
                {
                        for (int i = 0; i < args.length; i++)
                        {
                                JPQL parser = new JPQL (args[i]);
                                SimpleNode ast = (SimpleNode) parser.parseQuery ();
                                ast.dump (System.out, "");
                        }
                }
                else
                {
                        JPQL parser = new JPQL (System.in);
                        while (true)
                        {
                                System.out.print ("Enter Expression: ");
                                System.out.flush ();
                                try
                                {
                                        SimpleNode ast = (SimpleNode) parser.parseQuery ();
                                        if (ast == null)
                                                return;
                                        else
                                                ast.dump (System.out, "");
                                }
                                catch (Throwable x)
                                {
                                        x.printStackTrace ();
                                        return;
                                }
                        }
                }
        }

  final public Node parseQuery() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case SELECT:
      select_statement();
      break;
    case UPDATE:
      update_statement();
      break;
    case DELETE:
      delete_statement();
      break;
    default:
      jj_la1[0] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    jj_consume_token(0);
                {if (true) return jjtree.rootNode();}
    throw new Error("Missing return statement in function");
  }

  final public void select_statement() throws ParseException {
                                   /*@bgen(jjtree) SELECT */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSELECT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      select_clause();
      from_clause();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case WHERE:
        where_clause();
        break;
      default:
        jj_la1[1] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case GROUP:
        groupby_clause();
        break;
      default:
        jj_la1[2] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case HAVING:
        having_clause();
        break;
      default:
        jj_la1[3] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case ORDER:
        orderby_clause();
        break;
      default:
        jj_la1[4] = jj_gen;
        ;
      }
    } 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);
          }
    }
  }

  final public void update_statement() throws ParseException {
                                   /*@bgen(jjtree) UPDATE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTUPDATE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      update_clause();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case WHERE:
        where_clause();
        break;
      default:
        jj_la1[5] = jj_gen;
        ;
      }
    } 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);
          }
    }
  }

  final public void delete_statement() throws ParseException {
                                   /*@bgen(jjtree) DELETE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTDELETE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(DELETE);
      jj_consume_token(FROM);
                           SimpleNode jjtn001 = new SimpleNode(this, JJTFROM);
                           boolean jjtc001 = true;
                           jjtree.openNodeScope(jjtn001);
      try {
        from_item();
      } catch (Throwable jjte001) {
                           if (jjtc001) {
                             jjtree.clearNodeScope(jjtn001);
                             jjtc001 = false;
                           } else {
                             jjtree.popNode();
                           }
                           if (jjte001 instanceof RuntimeException) {
                             {if (true) throw (RuntimeException)jjte001;}
                           }
                           if (jjte001 instanceof ParseException) {
                             {if (true) throw (ParseException)jjte001;}
                           }
                           {if (true) throw (Error)jjte001;}
      } finally {
                           if (jjtc001) {
                             jjtree.closeNodeScope(jjtn001, true);
                           }
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case WHERE:
        where_clause();
        break;
      default:
        jj_la1[6] = jj_gen;
        ;
      }
    } 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);
          }
    }
  }

  final public void from_clause() throws ParseException {
                            /*@bgen(jjtree) FROM */
  SimpleNode jjtn000 = new SimpleNode(this, JJTFROM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(FROM);
      identification_variable_declaration();
      label_1:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case COMMA:
          ;
          break;
        default:
          jj_la1[7] = jj_gen;
          break label_1;
        }
        jj_consume_token(COMMA);
        if (jj_2_1(2147483647)) {
          collection_member_declaration();
        } else if (jj_2_2(2147483647)) {
          identification_variable_declaration();
        } else {
          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);
          }
    }
  }

  final public void identification_variable_declaration() throws ParseException {
    from_item();
    label_2:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case LEFT:
      case INNER:
      case JOIN:
        ;
        break;
      default:
        jj_la1[8] = jj_gen;
        break label_2;
      }
      if (jj_2_3(2147483647)) {
        fetch_join();
      } else if (jj_2_4(2147483647)) {
        inner_join();
      } else if (jj_2_5(2147483647)) {
        outer_join();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void from_item() throws ParseException {
                              /*@bgen(jjtree) FROMITEM */
  SimpleNode jjtn000 = new SimpleNode(this, JJTFROMITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      abstract_schema_name();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case AS:
        jj_consume_token(AS);
        break;
      default:
        jj_la1[9] = jj_gen;
        ;
      }
      if (jj_2_6(2147483647)) {
        identification_variable();
      } else {
        ;
      }
    } 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);
          }
    }
  }

  final public void subquery_from_clause() throws ParseException {
                                     /*@bgen(jjtree) FROM */
  SimpleNode jjtn000 = new SimpleNode(this, JJTFROM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(FROM);
      subquery_from_item();
      label_3:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case COMMA:
          ;
          break;
        default:
          jj_la1[10] = jj_gen;
          break label_3;
        }
        jj_consume_token(COMMA);
        subquery_from_item();
      }
    } 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);
          }
    }
  }

  final public void subselect_identification_variable_declaration() throws ParseException {
    from_item();
    label_4:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case LEFT:
      case INNER:
      case JOIN:
        ;
        break;
      default:
        jj_la1[11] = jj_gen;
        break label_4;
      }
      if (jj_2_7(2147483647)) {
        inner_join();
      } else if (jj_2_8(2147483647)) {
        outer_join();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void subquery_from_item() throws ParseException {
    if (jj_2_9(2147483647)) {
      collection_member_declaration();
    } else if (jj_2_10(2147483647)) {
      subselect_identification_variable_declaration();
    } else {
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void inner_join() throws ParseException {
                                /*@bgen(jjtree) INNERJOIN */
  SimpleNode jjtn000 = new SimpleNode(this, JJTINNERJOIN);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case INNER:
        jj_consume_token(INNER);
        break;
      default:
        jj_la1[12] = jj_gen;
        ;
      }
      jj_consume_token(JOIN);
      path();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case AS:
        jj_consume_token(AS);
        break;
      default:
        jj_la1[13] = jj_gen;
        ;
      }
      identification_variable();
    } 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);
          }
    }
  }

  final public void collection_member_declaration() throws ParseException {
                                                   /*@bgen(jjtree) INNERJOIN */
  SimpleNode jjtn000 = new SimpleNode(this, JJTINNERJOIN);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(IN);
      jj_consume_token(102);
      if (jj_2_11(2147483647)) {
        path();
      } else if (jj_2_12(2147483647)) {
        qualified_path();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(103);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case AS:
        jj_consume_token(AS);
        break;
      default:
        jj_la1[14] = jj_gen;
        ;
      }
      identification_variable();
    } 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);
          }
    }
  }

  final public void outer_join() throws ParseException {
                                /*@bgen(jjtree) OUTERJOIN */
  SimpleNode jjtn000 = new SimpleNode(this, JJTOUTERJOIN);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(LEFT);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case OUTER:
        jj_consume_token(OUTER);
        break;
      default:
        jj_la1[15] = jj_gen;
        ;
      }
      jj_consume_token(JOIN);
      path();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case AS:
        jj_consume_token(AS);
        break;
      default:
        jj_la1[16] = jj_gen;
        ;
      }
      identification_variable();
    } 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);
          }
    }
  }

  final public void fetch_join() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case LEFT:
      outer_fetch_join();
      break;
    case INNER:
    case JOIN:
      inner_fetch_join();
      break;
    default:
      jj_la1[17] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void outer_fetch_join() throws ParseException {
                                           /*@bgen(jjtree) OUTERFETCHJOIN */
  SimpleNode jjtn000 = new SimpleNode(this, JJTOUTERFETCHJOIN);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(LEFT);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case OUTER:
        jj_consume_token(OUTER);
        break;
      default:
        jj_la1[18] = jj_gen;
        ;
      }
      jj_consume_token(JOIN);
      jj_consume_token(FETCH);
      path();
    } 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);
          }
    }
  }

  final public void inner_fetch_join() throws ParseException {
                                           /*@bgen(jjtree) INNERFETCHJOIN */
  SimpleNode jjtn000 = new SimpleNode(this, JJTINNERFETCHJOIN);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case INNER:
        jj_consume_token(INNER);
        break;
      default:
        jj_la1[19] = jj_gen;
        ;
      }
      jj_consume_token(JOIN);
      jj_consume_token(FETCH);
      path();
    } 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);
          }
    }
  }

  final public void path() throws ParseException {
                     /*@bgen(jjtree) PATH */
  SimpleNode jjtn000 = new SimpleNode(this, JJTPATH);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      identification_variable();
      label_5:
      while (true) {
        jj_consume_token(DOT);
        path_component();
        if (jj_2_13(2)) {
          ;
        } else {
          break label_5;
        }
      }
    } 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);
          }
    }
  }

  final public void update_clause() throws ParseException {
    jj_consume_token(UPDATE);
                   SimpleNode jjtn001 = new SimpleNode(this, JJTFROM);
                   boolean jjtc001 = true;
                   jjtree.openNodeScope(jjtn001);
    try {
      from_item();
    } catch (Throwable jjte001) {
                   if (jjtc001) {
                     jjtree.clearNodeScope(jjtn001);
                     jjtc001 = false;
                   } else {
                     jjtree.popNode();
                   }
                   if (jjte001 instanceof RuntimeException) {
                     {if (true) throw (RuntimeException)jjte001;}
                   }
                   if (jjte001 instanceof ParseException) {
                     {if (true) throw (ParseException)jjte001;}
                   }
                   {if (true) throw (Error)jjte001;}
    } finally {
                   if (jjtc001) {
                     jjtree.closeNodeScope(jjtn001, true);
                   }
    }
    set_clause();
  }

  final public void set_clause() throws ParseException {
    jj_consume_token(SET);
    update_item();
    label_6:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case COMMA:
        ;
        break;
      default:
        jj_la1[20] = jj_gen;
        break label_6;
      }
      jj_consume_token(COMMA);
      update_item();
    }
  }

  final public void update_item() throws ParseException {
                                  /*@bgen(jjtree) UPDATEITEM */
  SimpleNode jjtn000 = new SimpleNode(this, JJTUPDATEITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      path();
      EQ();
      new_value();
    } 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);
          }
    }
  }

  final public void new_value() throws ParseException {
                                 /*@bgen(jjtree) UPDATEVALUE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTUPDATEVALUE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      if (jj_2_14(2147483647)) {
        case_expression();
      } else if (jj_2_15(2147483647)) {
        arithmetic_expression();
      } else if (jj_2_16(2147483647)) {
        string_primary();
      } else if (jj_2_17(2147483647)) {
        datetime_primary();
      } else if (jj_2_18(2147483647)) {
        boolean_primary();
      } else if (jj_2_19(2147483647)) {
        enum_primary();
      } else if (jj_2_20(2147483647)) {
        simple_entity_expression();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case NULL:
          jj_consume_token(NULL);
          break;
        default:
          jj_la1[21] = 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);
      }
    }
  }

  final public void simple_entity_expression() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case IDENTIFIER:
      identification_variable();
      break;
    case 104:
    case 105:
      input_parameter();
      break;
    default:
      jj_la1[22] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void select_clause() throws ParseException {
                                      /*@bgen(jjtree) SELECTCLAUSE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSELECTCLAUSE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(SELECT);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case DISTINCT:
        distinct();
        break;
      default:
        jj_la1[23] = jj_gen;
        ;
      }
      select_expressions();
    } 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);
          }
    }
  }

  final public void simple_select_clause() throws ParseException {
                                             /*@bgen(jjtree) SELECTCLAUSE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSELECTCLAUSE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(SELECT);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case DISTINCT:
        distinct();
        break;
      default:
        jj_la1[24] = jj_gen;
        ;
      }
      subselect_expressions();
    } 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);
          }
    }
  }

  final public void select_expressions() throws ParseException {
                                                /*@bgen(jjtree) SELECTEXPRESSIONS */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSELECTEXPRESSIONS);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      select_expression();
      label_7:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case COMMA:
          ;
          break;
        default:
          jj_la1[25] = jj_gen;
          break label_7;
        }
        jj_consume_token(COMMA);
        select_expression();
      }
    } 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);
          }
    }
  }

  final public void select_expression() throws ParseException {
                                              /*@bgen(jjtree) SELECTEXPRESSION */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSELECTEXPRESSION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      if (jj_2_21(2147483647)) {
        scalar_expression();
      } else if (jj_2_22(2147483647)) {
        aggregate_select_expression();
      } else if (jj_2_23(2147483647)) {
        path();
      } else if (jj_2_24(2147483647)) {
        qualified_path();
      } else if (jj_2_25(2147483647)) {
        qualified_identification_variable();
      } else if (jj_2_26(2147483647)) {
        identification_variable();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case OBJECT:
          jj_consume_token(OBJECT);
          jj_consume_token(102);
          identification_variable();
          jj_consume_token(103);
          break;
        case NEW:
          constructor_expression();
          break;
        default:
          jj_la1[26] = jj_gen;
          if (jj_2_27(2147483647)) {
            entity_type_expression();
          } else if (jj_2_28(2147483647)) {
            select_extension();
          } else {
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case AS:
      case IDENTIFIER:
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case AS:
          jj_consume_token(AS);
          break;
        default:
          jj_la1[27] = jj_gen;
          ;
        }
        identification_variable();
        break;
      default:
        jj_la1[28] = jj_gen;
        ;
      }
    } 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);
          }
    }
  }

  final public void select_extension() throws ParseException {
                                            /*@bgen(jjtree) SELECTEXTENSION */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSELECTEXTENSION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      scalar_function();
    } 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);
      }
    }
  }

  final public void subselect_expressions() throws ParseException {
                                                   /*@bgen(jjtree) SELECTEXPRESSIONS */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSELECTEXPRESSIONS);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      subselect_expression();
      label_8:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case COMMA:
          ;
          break;
        default:
          jj_la1[29] = jj_gen;
          break label_8;
        }
        jj_consume_token(COMMA);
        subselect_expression();
      }
    } 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);
          }
    }
  }

  final public void subselect_expression() throws ParseException {
                                                 /*@bgen(jjtree) SELECTEXPRESSION */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSELECTEXPRESSION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      if (jj_2_29(2147483647)) {
        scalar_expression();
      } else if (jj_2_30(2147483647)) {
        path();
      } else if (jj_2_31(2147483647)) {
        qualified_path();
      } else if (jj_2_32(2147483647)) {
        qualified_identification_variable();
      } else if (jj_2_33(2147483647)) {
        aggregate_select_expression();
      } else if (jj_2_34(2147483647)) {
        identification_variable();
      } else {
        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);
          }
    }
  }

  final public void constructor_expression() throws ParseException {
                                              /*@bgen(jjtree) CONSTRUCTOR */
  SimpleNode jjtn000 = new SimpleNode(this, JJTCONSTRUCTOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(NEW);
      classname();
      constructor_parameters();
    } 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);
          }
    }
  }

  final public void classname() throws ParseException {
 /*@bgen(jjtree) CLASSNAME */
  SimpleNode jjtn000 = new SimpleNode(this, JJTCLASSNAME);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      identification_variable();
      label_9:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case DOT:
          ;
          break;
        default:
          jj_la1[30] = jj_gen;
          break label_9;
        }
        jj_consume_token(DOT);
        identification_variable();
      }
    } 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);
          }
    }
  }

  final public void constructor_parameters() throws ParseException {
                                                    /*@bgen(jjtree) CONSTRUCTORPARAMS */
  SimpleNode jjtn000 = new SimpleNode(this, JJTCONSTRUCTORPARAMS);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(102);
      constructor_parameter();
      label_10:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case COMMA:
          ;
          break;
        default:
          jj_la1[31] = jj_gen;
          break label_10;
        }
        jj_consume_token(COMMA);
        constructor_parameter();
      }
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void constructor_parameter() throws ParseException {
                                                  /*@bgen(jjtree) CONSTRUCTORPARAM */
  SimpleNode jjtn000 = new SimpleNode(this, JJTCONSTRUCTORPARAM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      if (jj_2_35(2147483647)) {
        scalar_expression();
      } else if (jj_2_36(2147483647)) {
        qualified_path();
      } else if (jj_2_37(2147483647)) {
        qualified_identification_variable();
      } else if (jj_2_38(2147483647)) {
        path();
      } else if (jj_2_39(2147483647)) {
        aggregate_select_expression();
      } else if (jj_2_40(2147483647)) {
        identification_variable();
      } else {
        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);
          }
    }
  }

/* rewritten to reduce lookaheads */
  final public void aggregate_select_expression() throws ParseException {
                                                 /*@bgen(jjtree) AGGREGATE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTAGGREGATE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case AVG:
        avg();
        break;
      case MAX:
        max();
        break;
      case MIN:
        min();
        break;
      case SUM:
        sum();
        break;
      case COUNT:
        count();
        break;
      default:
        jj_la1[32] = 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);
          }
    }
  }

  final public void distinct() throws ParseException {
                             /*@bgen(jjtree) DISTINCT */
  SimpleNode jjtn000 = new SimpleNode(this, JJTDISTINCT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(DISTINCT);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void aggregate_path() throws ParseException {
    jj_consume_token(102);
    if (jj_2_41(2147483647)) {
      arithmetic_expression();
    } else if (jj_2_42(2147483647)) {
      distinct_path();
    } else if (jj_2_43(2147483647)) {
      path();
    } else if (jj_2_44(2147483647)) {
      qualified_path();
    } else if (jj_2_45(2147483647)) {
      identification_variable();
    } else {
      jj_consume_token(-1);
      throw new ParseException();
    }
    jj_consume_token(103);
  }

  final public void distinct_path() throws ParseException {
                                      /*@bgen(jjtree) DISTINCTPATH */
  SimpleNode jjtn000 = new SimpleNode(this, JJTDISTINCTPATH);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(DISTINCT);
      if (jj_2_46(2147483647)) {
        path();
      } else if (jj_2_47(2147483647)) {
        qualified_path();
      } else if (jj_2_48(2147483647)) {
        qualified_identification_variable();
      } else if (jj_2_49(2147483647)) {
        identification_variable();
      } else {
        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);
          }
    }
  }

  final public void count() throws ParseException {
                       /*@bgen(jjtree) COUNT */
  SimpleNode jjtn000 = new SimpleNode(this, JJTCOUNT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(COUNT);
      aggregate_path();
    } 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);
          }
    }
  }

  final public void avg() throws ParseException {
                       /*@bgen(jjtree) AVERAGE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTAVERAGE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(AVG);
      aggregate_path();
    } 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);
          }
    }
  }

  final public void max() throws ParseException {
                   /*@bgen(jjtree) MAX */
  SimpleNode jjtn000 = new SimpleNode(this, JJTMAX);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(MAX);
      aggregate_path();
    } 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);
          }
    }
  }

  final public void min() throws ParseException {
                   /*@bgen(jjtree) MIN */
  SimpleNode jjtn000 = new SimpleNode(this, JJTMIN);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(MIN);
      aggregate_path();
    } 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);
          }
    }
  }

  final public void sum() throws ParseException {
                   /*@bgen(jjtree) SUM */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSUM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(SUM);
      aggregate_path();
    } 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);
          }
    }
  }

  final public void where_clause() throws ParseException {
                              /*@bgen(jjtree) WHERE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTWHERE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(WHERE);
      conditional_expression();
    } 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);
          }
    }
  }

  final public void groupby_clause() throws ParseException {
                                  /*@bgen(jjtree) GROUPBY */
  SimpleNode jjtn000 = new SimpleNode(this, JJTGROUPBY);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(GROUP);
      jj_consume_token(BY);
      groupby_item();
      label_11:
      while (true) {
        if (jj_2_50(2)) {
          ;
        } else {
          break label_11;
        }
        jj_consume_token(COMMA);
        groupby_item();
      }
    } 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);
          }
    }
  }

  final public void groupby_item() throws ParseException {
    if (jj_2_51(2147483647)) {
      path();
    } else if (jj_2_52(2147483647)) {
      groupby_extension();
    } else if (jj_2_53(2147483647)) {
      qualified_path();
    } else if (jj_2_54(2147483647)) {
      general_identification_variable();
    } else if (jj_2_55(2147483647)) {
      identification_variable();
    } else {
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void groupby_extension() throws ParseException {
                                              /*@bgen(jjtree) GROUPBYEXTENSION */
  SimpleNode jjtn000 = new SimpleNode(this, JJTGROUPBYEXTENSION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      scalar_function();
    } 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);
      }
    }
  }

  final public void having_clause() throws ParseException {
                                /*@bgen(jjtree) HAVING */
  SimpleNode jjtn000 = new SimpleNode(this, JJTHAVING);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(HAVING);
      conditional_expression();
    } 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);
          }
    }
  }

  final public void subquery() throws ParseException {
                              /*@bgen(jjtree) SUBSELECT */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSUBSELECT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      simple_select_clause();
      subquery_from_clause();
      if (jj_2_56(2147483647)) {
        where_clause();
      } else {
        ;
      }
      if (jj_2_57(2147483647)) {
        groupby_clause();
      } else {
        ;
      }
      if (jj_2_58(2147483647)) {
        having_clause();
      } else {
        ;
      }
    } 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);
          }
    }
  }

/* changed to eliminate left recursion */
  final public void conditional_expression() throws ParseException {
    conditional_term();
    label_12:
    while (true) {
      if (jj_2_59(2)) {
        ;
      } else {
        break label_12;
      }
      jj_consume_token(OR);
                                                 SimpleNode jjtn001 = new SimpleNode(this, JJTOR);
                                                 boolean jjtc001 = true;
                                                 jjtree.openNodeScope(jjtn001);
      try {
        conditional_expression();
      } catch (Throwable jjte001) {
                                                 if (jjtc001) {
                                                   jjtree.clearNodeScope(jjtn001);
                                                   jjtc001 = false;
                                                 } else {
                                                   jjtree.popNode();
                                                 }
                                                 if (jjte001 instanceof RuntimeException) {
                                                   {if (true) throw (RuntimeException)jjte001;}
                                                 }
                                                 if (jjte001 instanceof ParseException) {
                                                   {if (true) throw (ParseException)jjte001;}
                                                 }
                                                 {if (true) throw (Error)jjte001;}
      } finally {
                                                 if (jjtc001) {
                                                   jjtree.closeNodeScope(jjtn001,  2);
                                                 }
      }
    }
  }

/* changed to eliminate left recursion */
  final public void conditional_term() throws ParseException {
    conditional_factor();
    label_13:
    while (true) {
      if (jj_2_60(2)) {
        ;
      } else {
        break label_13;
      }
      jj_consume_token(AND);
                                                    SimpleNode jjtn001 = new SimpleNode(this, JJTAND);
                                                    boolean jjtc001 = true;
                                                    jjtree.openNodeScope(jjtn001);
      try {
        conditional_term();
      } catch (Throwable jjte001) {
                                                    if (jjtc001) {
                                                      jjtree.clearNodeScope(jjtn001);
                                                      jjtc001 = false;
                                                    } else {
                                                      jjtree.popNode();
                                                    }
                                                    if (jjte001 instanceof RuntimeException) {
                                                      {if (true) throw (RuntimeException)jjte001;}
                                                    }
                                                    if (jjte001 instanceof ParseException) {
                                                      {if (true) throw (ParseException)jjte001;}
                                                    }
                                                    {if (true) throw (Error)jjte001;}
      } finally {
                                                    if (jjtc001) {
                                                      jjtree.closeNodeScope(jjtn001,  2);
                                                    }
      }
    }
  }

  final public void conditional_factor() throws ParseException {
    if (jj_2_61(2147483647)) {
      jj_consume_token(NOT);
                 SimpleNode jjtn001 = new SimpleNode(this, JJTNOT);
                 boolean jjtc001 = true;
                 jjtree.openNodeScope(jjtn001);
      try {
        conditional_primary();
      } catch (Throwable jjte001) {
                 if (jjtc001) {
                   jjtree.clearNodeScope(jjtn001);
                   jjtc001 = false;
                 } else {
                   jjtree.popNode();
                 }
                 if (jjte001 instanceof RuntimeException) {
                   {if (true) throw (RuntimeException)jjte001;}
                 }
                 if (jjte001 instanceof ParseException) {
                   {if (true) throw (ParseException)jjte001;}
                 }
                 {if (true) throw (Error)jjte001;}
      } finally {
                 if (jjtc001) {
                   jjtree.closeNodeScope(jjtn001, true);
                 }
      }
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PLUS:
      case MINUS:
      case NEW:
      case ALL:
      case ANY:
      case EXISTS:
      case SOME:
      case EMPTY:
      case ASC:
      case DESC:
      case ORDER:
      case BY:
      case IS:
      case MEMBER:
      case OF:
      case LIKE:
      case ESCAPE:
      case BETWEEN:
      case NULL:
      case KEY:
      case VALUE:
      case TYPE:
      case ENTRY:
      case AVG:
      case MIN:
      case MAX:
      case SUM:
      case COUNT:
      case OR:
      case AND:
      case NOT:
      case CONCAT:
      case SUBSTRING:
      case TRIM:
      case LOWER:
      case UPPER:
      case LEADING:
      case TRAILING:
      case BOTH:
      case LENGTH:
      case LOCATE:
      case ABS:
      case SQRT:
      case MOD:
      case SIZE:
      case INDEX:
      case CURRENT_DATE:
      case CURRENT_TIME:
      case CURRENT_TIMESTAMP:
      case SELECT:
      case DISTINCT:
      case FROM:
      case UPDATE:
      case DELETE:
      case WHERE:
      case GROUP:
      case HAVING:
      case AS:
      case LEFT:
      case OUTER:
      case INNER:
      case JOIN:
      case FETCH:
      case IN:
      case SET:
      case OBJECT:
      case CASE:
      case WHEN:
      case ELSE:
      case THEN:
      case END:
      case NULLIF:
      case COALESCE:
      case CLASS:
      case INTEGER_LITERAL:
      case DECIMAL_LITERAL:
      case STRING_LITERAL:
      case STRING_LITERAL2:
      case DATE_LITERAL:
      case TIME_LITERAL:
      case TIMESTAMP_LITERAL:
      case BOOLEAN_LITERAL:
      case IDENTIFIER:
      case 102:
      case 104:
      case 105:
        conditional_primary();
        break;
      default:
        jj_la1[33] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void conditional_primary() throws ParseException {
    if (jj_2_62(2147483647)) {
      simple_cond_expression();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 102:
        jj_consume_token(102);
        conditional_expression();
        jj_consume_token(103);
        break;
      default:
        jj_la1[34] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void simple_cond_expression() throws ParseException {
    if (jj_2_63(2147483647)) {
      exists_expression();
    } else if (jj_2_64(2147483647)) {
      comparison_expression();
    } else if (jj_2_65(2147483647)) {
      between_expression();
    } else if (jj_2_66(2147483647)) {
      like_expression();
    } else if (jj_2_67(2147483647)) {
      in_expression();
    } else if (jj_2_68(2147483647)) {
      null_comparison_expression();
    } else if (jj_2_69(2147483647)) {
      empty_collection_comparison_expression();
    } else if (jj_2_70(2147483647)) {
      collection_member_expression();
    } else {
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void between_expression() throws ParseException {
                                      /*@bgen(jjtree) BETWEEN */
  SimpleNode jjtn000 = new SimpleNode(this, JJTBETWEEN);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      if (jj_2_71(6)) {
        arithmetic_expression();
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case NOT:
          jj_consume_token(NOT);
                         jjtn000.not = true;
          break;
        default:
          jj_la1[35] = jj_gen;
          ;
        }
        jj_consume_token(BETWEEN);
        arithmetic_expression();
        jj_consume_token(AND);
        arithmetic_expression();
      } else if (jj_2_72(6)) {
        string_expression();
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case NOT:
          jj_consume_token(NOT);
                         jjtn000.not = true;
          break;
        default:
          jj_la1[36] = jj_gen;
          ;
        }
        jj_consume_token(BETWEEN);
        string_expression();
        jj_consume_token(AND);
        string_expression();
      } else if (jj_2_73(6)) {
        datetime_expression();
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case NOT:
          jj_consume_token(NOT);
                         jjtn000.not = true;
          break;
        default:
          jj_la1[37] = jj_gen;
          ;
        }
        jj_consume_token(BETWEEN);
        datetime_expression();
        jj_consume_token(AND);
        datetime_expression();
      } else {
        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);
          }
    }
  }

  final public void in_expression() throws ParseException {
                            /*@bgen(jjtree) IN */
  SimpleNode jjtn000 = new SimpleNode(this, JJTIN);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case IDENTIFIER:
        path();
        break;
      case CONCAT:
      case SUBSTRING:
      case TRIM:
      case LOWER:
      case UPPER:
      case LENGTH:
      case LOCATE:
      case ABS:
      case SQRT:
      case MOD:
      case SIZE:
      case INDEX:
      case CURRENT_DATE:
      case CURRENT_TIME:
      case CURRENT_TIMESTAMP:
        scalar_function();
        break;
      case TYPE:
        type_discriminator();
        break;
      default:
        jj_la1[38] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case NOT:
        jj_consume_token(NOT);
                                                                                   jjtn000.not = true;
        break;
      default:
        jj_la1[39] = jj_gen;
        ;
      }
      jj_consume_token(IN);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 102:
        jj_consume_token(102);
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case PLUS:
        case MINUS:
        case INTEGER_LITERAL:
        case DECIMAL_LITERAL:
        case STRING_LITERAL:
        case STRING_LITERAL2:
        case BOOLEAN_LITERAL:
        case IDENTIFIER:
        case 104:
        case 105:
          literal_or_param();
          label_14:
          while (true) {
            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
            case COMMA:
              ;
              break;
            default:
              jj_la1[40] = jj_gen;
              break label_14;
            }
            jj_consume_token(COMMA);
            literal_or_param();
          }
          break;
        case SELECT:
          subquery();
          break;
        default:
          jj_la1[41] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        jj_consume_token(103);
        break;
      case 104:
      case 105:
        collection_valued_input_parameter();
        break;
      default:
        jj_la1[42] = 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);
          }
    }
  }

  final public void entity_type_literal() throws ParseException {
                                           /*@bgen(jjtree) TYPELITERAL */
  SimpleNode jjtn000 = new SimpleNode(this, JJTTYPELITERAL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      identification_variable();
    } 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);
      }
    }
  }

  final public void literal_or_param() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case PLUS:
    case MINUS:
    case INTEGER_LITERAL:
    case DECIMAL_LITERAL:
      numeric_literal();
      break;
    case STRING_LITERAL:
      string_literal();
      break;
    case STRING_LITERAL2:
      string_literal2();
      break;
    case BOOLEAN_LITERAL:
      boolean_literal();
      break;
    case 104:
    case 105:
      input_parameter();
      break;
    case IDENTIFIER:
      entity_type_literal();
      break;
    default:
      jj_la1[43] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void like_expression() throws ParseException {
                                /*@bgen(jjtree) LIKE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTLIKE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      string_expression();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case NOT:
        jj_consume_token(NOT);
                                     jjtn000.not = true;
        break;
      default:
        jj_la1[44] = jj_gen;
        ;
      }
      jj_consume_token(LIKE);
      pattern_value();
    } 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);
          }
    }
  }

  final public void null_comparison_expression() throws ParseException {
                                             /*@bgen(jjtree) ISNULL */
  SimpleNode jjtn000 = new SimpleNode(this, JJTISNULL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 104:
      case 105:
        input_parameter();
        break;
      default:
        jj_la1[45] = jj_gen;
        if (jj_2_74(2147483647)) {
          path();
        } else if (jj_2_75(2147483647)) {
          qualified_path();
        } else {
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case VALUE:
            jj_consume_token(VALUE);
            jj_consume_token(102);
            identification_variable();
            jj_consume_token(103);
            break;
          default:
            jj_la1[46] = jj_gen;
            if (jj_2_76(2147483647)) {
              aggregate_select_expression();
            } else {
              jj_consume_token(-1);
              throw new ParseException();
            }
          }
        }
      }
      jj_consume_token(IS);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case NOT:
        jj_consume_token(NOT);
                        jjtn000.not = true;
        break;
      default:
        jj_la1[47] = jj_gen;
        ;
      }
      jj_consume_token(NULL);
    } 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);
          }
    }
  }

  final public void empty_collection_comparison_expression() throws ParseException {
                                                          /*@bgen(jjtree) ISEMPTY */
  SimpleNode jjtn000 = new SimpleNode(this, JJTISEMPTY);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      if (jj_2_77(2147483647)) {
        path();
      } else if (jj_2_78(2147483647)) {
        qualified_path();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(IS);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case NOT:
        jj_consume_token(NOT);
                      jjtn000.not = true;
        break;
      default:
        jj_la1[48] = jj_gen;
        ;
      }
      jj_consume_token(EMPTY);
    } 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);
          }
    }
  }

  final public void collection_member_expression() throws ParseException {
                                                 /*@bgen(jjtree) MEMBEROF */
  SimpleNode jjtn000 = new SimpleNode(this, JJTMEMBEROF);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      if (jj_2_79(2147483647)) {
        path();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case 104:
        case 105:
          input_parameter();
          break;
        default:
          jj_la1[49] = jj_gen;
          if (jj_2_80(2147483647)) {
            literal();
          } else {
            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
            case NEW:
            case ALL:
            case ANY:
            case EXISTS:
            case SOME:
            case EMPTY:
            case ASC:
            case DESC:
            case ORDER:
            case BY:
            case IS:
            case MEMBER:
            case OF:
            case LIKE:
            case ESCAPE:
            case BETWEEN:
            case NULL:
            case KEY:
            case VALUE:
            case TYPE:
            case ENTRY:
            case AVG:
            case MIN:
            case MAX:
            case SUM:
            case COUNT:
            case OR:
            case AND:
            case NOT:
            case CONCAT:
            case SUBSTRING:
            case TRIM:
            case LOWER:
            case UPPER:
            case LEADING:
            case TRAILING:
            case BOTH:
            case LENGTH:
            case LOCATE:
            case ABS:
            case SQRT:
            case MOD:
            case SIZE:
            case INDEX:
            case CURRENT_DATE:
            case CURRENT_TIME:
            case CURRENT_TIMESTAMP:
            case SELECT:
            case DISTINCT:
            case FROM:
            case UPDATE:
            case DELETE:
            case WHERE:
            case GROUP:
            case HAVING:
            case AS:
            case LEFT:
            case OUTER:
            case INNER:
            case JOIN:
            case FETCH:
            case IN:
            case SET:
            case OBJECT:
            case CASE:
            case WHEN:
            case ELSE:
            case THEN:
            case END:
            case NULLIF:
            case COALESCE:
            case CLASS:
            case IDENTIFIER:
              path_component();
              break;
            default:
              jj_la1[50] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
          }
        }
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case NOT:
        jj_consume_token(NOT);
                 jjtn000.not = true;
        break;
      default:
        jj_la1[51] = jj_gen;
        ;
      }
      jj_consume_token(MEMBER);
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case OF:
        jj_consume_token(OF);
        break;
      default:
        jj_la1[52] = jj_gen;
        ;
      }
      if (jj_2_81(2147483647)) {
        path();
      } else if (jj_2_82(2147483647)) {
        qualified_path();
      } else {
        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);
          }
    }
  }

  final public void exists_expression() throws ParseException {
                                    /*@bgen(jjtree) EXISTS */
  SimpleNode jjtn000 = new SimpleNode(this, JJTEXISTS);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case NOT:
        jj_consume_token(NOT);
                 jjtn000.not = true;
        break;
      default:
        jj_la1[53] = jj_gen;
        ;
      }
      jj_consume_token(EXISTS);
      jj_consume_token(102);
      subquery();
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void all_or_any_expression() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case ANY:
      any_expression();
      break;
    case SOME:
      some_expression();
      break;
    case ALL:
      all_expression();
      break;
    default:
      jj_la1[54] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void any_expression() throws ParseException {
                              /*@bgen(jjtree) ANY */
  SimpleNode jjtn000 = new SimpleNode(this, JJTANY);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(ANY);
      jj_consume_token(102);
      subquery();
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void some_expression() throws ParseException {
                               /*@bgen(jjtree) ANY */
  SimpleNode jjtn000 = new SimpleNode(this, JJTANY);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(SOME);
      jj_consume_token(102);
      subquery();
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void all_expression() throws ParseException {
                              /*@bgen(jjtree) ALL */
  SimpleNode jjtn000 = new SimpleNode(this, JJTALL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(ALL);
      jj_consume_token(102);
      subquery();
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void comparison_expression() throws ParseException {
    if (jj_2_83(2147483647)) {
      arithmetic_comp();
    } else if (jj_2_84(2147483647)) {
      string_comp();
    } else if (jj_2_85(2147483647)) {
      boolean_comp();
    } else if (jj_2_86(2147483647)) {
      enum_comp();
    } else if (jj_2_87(2147483647)) {
      datetime_comp();
    } else if (jj_2_88(2147483647)) {
      entity_comp();
    } else if (jj_2_89(2147483647)) {
      entity_type_comp();
    } else {
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void string_comp() throws ParseException {
    string_expression();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case EQ:
      jj_consume_token(EQ);
                        SimpleNode jjtn001 = new SimpleNode(this, JJTEQUALS);
                        boolean jjtc001 = true;
                        jjtree.openNodeScope(jjtn001);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case CONCAT:
        case SUBSTRING:
        case TRIM:
        case LOWER:
        case UPPER:
        case CASE:
        case NULLIF:
        case COALESCE:
        case STRING_LITERAL:
        case STRING_LITERAL2:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          string_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[55] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte001) {
                        if (jjtc001) {
                          jjtree.clearNodeScope(jjtn001);
                          jjtc001 = false;
                        } else {
                          jjtree.popNode();
                        }
                        if (jjte001 instanceof RuntimeException) {
                          {if (true) throw (RuntimeException)jjte001;}
                        }
                        if (jjte001 instanceof ParseException) {
                          {if (true) throw (ParseException)jjte001;}
                        }
                        {if (true) throw (Error)jjte001;}
      } finally {
                        if (jjtc001) {
                          jjtree.closeNodeScope(jjtn001,  2);
                        }
      }
      break;
    case NE:
      jj_consume_token(NE);
                          SimpleNode jjtn002 = new SimpleNode(this, JJTNOTEQUALS);
                          boolean jjtc002 = true;
                          jjtree.openNodeScope(jjtn002);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case CONCAT:
        case SUBSTRING:
        case TRIM:
        case LOWER:
        case UPPER:
        case CASE:
        case NULLIF:
        case COALESCE:
        case STRING_LITERAL:
        case STRING_LITERAL2:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          string_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[56] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte002) {
                          if (jjtc002) {
                            jjtree.clearNodeScope(jjtn002);
                            jjtc002 = false;
                          } else {
                            jjtree.popNode();
                          }
                          if (jjte002 instanceof RuntimeException) {
                            {if (true) throw (RuntimeException)jjte002;}
                          }
                          if (jjte002 instanceof ParseException) {
                            {if (true) throw (ParseException)jjte002;}
                          }
                          {if (true) throw (Error)jjte002;}
      } finally {
                          if (jjtc002) {
                            jjtree.closeNodeScope(jjtn002,  2);
                          }
      }
      break;
    case GT:
      jj_consume_token(GT);
                          SimpleNode jjtn003 = new SimpleNode(this, JJTGREATERTHAN);
                          boolean jjtc003 = true;
                          jjtree.openNodeScope(jjtn003);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case CONCAT:
        case SUBSTRING:
        case TRIM:
        case LOWER:
        case UPPER:
        case CASE:
        case NULLIF:
        case COALESCE:
        case STRING_LITERAL:
        case STRING_LITERAL2:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          string_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[57] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte003) {
                          if (jjtc003) {
                            jjtree.clearNodeScope(jjtn003);
                            jjtc003 = false;
                          } else {
                            jjtree.popNode();
                          }
                          if (jjte003 instanceof RuntimeException) {
                            {if (true) throw (RuntimeException)jjte003;}
                          }
                          if (jjte003 instanceof ParseException) {
                            {if (true) throw (ParseException)jjte003;}
                          }
                          {if (true) throw (Error)jjte003;}
      } finally {
                          if (jjtc003) {
                            jjtree.closeNodeScope(jjtn003,  2);
                          }
      }
      break;
    case GE:
      jj_consume_token(GE);
                          SimpleNode jjtn004 = new SimpleNode(this, JJTGREATEROREQUAL);
                          boolean jjtc004 = true;
                          jjtree.openNodeScope(jjtn004);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case CONCAT:
        case SUBSTRING:
        case TRIM:
        case LOWER:
        case UPPER:
        case CASE:
        case NULLIF:
        case COALESCE:
        case STRING_LITERAL:
        case STRING_LITERAL2:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          string_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[58] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte004) {
                          if (jjtc004) {
                            jjtree.clearNodeScope(jjtn004);
                            jjtc004 = false;
                          } else {
                            jjtree.popNode();
                          }
                          if (jjte004 instanceof RuntimeException) {
                            {if (true) throw (RuntimeException)jjte004;}
                          }
                          if (jjte004 instanceof ParseException) {
                            {if (true) throw (ParseException)jjte004;}
                          }
                          {if (true) throw (Error)jjte004;}
      } finally {
                          if (jjtc004) {
                            jjtree.closeNodeScope(jjtn004,  2);
                          }
      }
      break;
    case LT:
      jj_consume_token(LT);
                          SimpleNode jjtn005 = new SimpleNode(this, JJTLESSTHAN);
                          boolean jjtc005 = true;
                          jjtree.openNodeScope(jjtn005);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case CONCAT:
        case SUBSTRING:
        case TRIM:
        case LOWER:
        case UPPER:
        case CASE:
        case NULLIF:
        case COALESCE:
        case STRING_LITERAL:
        case STRING_LITERAL2:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          string_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[59] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte005) {
                          if (jjtc005) {
                            jjtree.clearNodeScope(jjtn005);
                            jjtc005 = false;
                          } else {
                            jjtree.popNode();
                          }
                          if (jjte005 instanceof RuntimeException) {
                            {if (true) throw (RuntimeException)jjte005;}
                          }
                          if (jjte005 instanceof ParseException) {
                            {if (true) throw (ParseException)jjte005;}
                          }
                          {if (true) throw (Error)jjte005;}
      } finally {
                          if (jjtc005) {
                            jjtree.closeNodeScope(jjtn005,  2);
                          }
      }
      break;
    case LE:
      jj_consume_token(LE);
                          SimpleNode jjtn006 = new SimpleNode(this, JJTLESSOREQUAL);
                          boolean jjtc006 = true;
                          jjtree.openNodeScope(jjtn006);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case CONCAT:
        case SUBSTRING:
        case TRIM:
        case LOWER:
        case UPPER:
        case CASE:
        case NULLIF:
        case COALESCE:
        case STRING_LITERAL:
        case STRING_LITERAL2:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          string_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[60] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte006) {
                          if (jjtc006) {
                            jjtree.clearNodeScope(jjtn006);
                            jjtc006 = false;
                          } else {
                            jjtree.popNode();
                          }
                          if (jjte006 instanceof RuntimeException) {
                            {if (true) throw (RuntimeException)jjte006;}
                          }
                          if (jjte006 instanceof ParseException) {
                            {if (true) throw (ParseException)jjte006;}
                          }
                          {if (true) throw (Error)jjte006;}
      } finally {
                          if (jjtc006) {
                            jjtree.closeNodeScope(jjtn006,  2);
                          }
      }
      break;
    default:
      jj_la1[61] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void boolean_comp() throws ParseException {
    boolean_expression();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case EQ:
      jj_consume_token(EQ);
                SimpleNode jjtn001 = new SimpleNode(this, JJTEQUALS);
                boolean jjtc001 = true;
                jjtree.openNodeScope(jjtn001);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case CASE:
        case NULLIF:
        case COALESCE:
        case BOOLEAN_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          boolean_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[62] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte001) {
                if (jjtc001) {
                  jjtree.clearNodeScope(jjtn001);
                  jjtc001 = false;
                } else {
                  jjtree.popNode();
                }
                if (jjte001 instanceof RuntimeException) {
                  {if (true) throw (RuntimeException)jjte001;}
                }
                if (jjte001 instanceof ParseException) {
                  {if (true) throw (ParseException)jjte001;}
                }
                {if (true) throw (Error)jjte001;}
      } finally {
                if (jjtc001) {
                  jjtree.closeNodeScope(jjtn001,  2);
                }
      }
      break;
    case NE:
      jj_consume_token(NE);
                  SimpleNode jjtn002 = new SimpleNode(this, JJTNOTEQUALS);
                  boolean jjtc002 = true;
                  jjtree.openNodeScope(jjtn002);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case CASE:
        case NULLIF:
        case COALESCE:
        case BOOLEAN_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          boolean_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[63] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte002) {
                  if (jjtc002) {
                    jjtree.clearNodeScope(jjtn002);
                    jjtc002 = false;
                  } else {
                    jjtree.popNode();
                  }
                  if (jjte002 instanceof RuntimeException) {
                    {if (true) throw (RuntimeException)jjte002;}
                  }
                  if (jjte002 instanceof ParseException) {
                    {if (true) throw (ParseException)jjte002;}
                  }
                  {if (true) throw (Error)jjte002;}
      } finally {
                  if (jjtc002) {
                    jjtree.closeNodeScope(jjtn002,  2);
                  }
      }
      break;
    default:
      jj_la1[64] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void enum_comp() throws ParseException {
    enum_expression();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case EQ:
      jj_consume_token(EQ);
                SimpleNode jjtn001 = new SimpleNode(this, JJTEQUALS);
                boolean jjtc001 = true;
                jjtree.openNodeScope(jjtn001);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case CASE:
        case NULLIF:
        case COALESCE:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          enum_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[65] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte001) {
                if (jjtc001) {
                  jjtree.clearNodeScope(jjtn001);
                  jjtc001 = false;
                } else {
                  jjtree.popNode();
                }
                if (jjte001 instanceof RuntimeException) {
                  {if (true) throw (RuntimeException)jjte001;}
                }
                if (jjte001 instanceof ParseException) {
                  {if (true) throw (ParseException)jjte001;}
                }
                {if (true) throw (Error)jjte001;}
      } finally {
                if (jjtc001) {
                  jjtree.closeNodeScope(jjtn001,  2);
                }
      }
      break;
    case NE:
      jj_consume_token(NE);
                  SimpleNode jjtn002 = new SimpleNode(this, JJTNOTEQUALS);
                  boolean jjtc002 = true;
                  jjtree.openNodeScope(jjtn002);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case CASE:
        case NULLIF:
        case COALESCE:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          enum_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[66] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte002) {
                  if (jjtc002) {
                    jjtree.clearNodeScope(jjtn002);
                    jjtc002 = false;
                  } else {
                    jjtree.popNode();
                  }
                  if (jjte002 instanceof RuntimeException) {
                    {if (true) throw (RuntimeException)jjte002;}
                  }
                  if (jjte002 instanceof ParseException) {
                    {if (true) throw (ParseException)jjte002;}
                  }
                  {if (true) throw (Error)jjte002;}
      } finally {
                  if (jjtc002) {
                    jjtree.closeNodeScope(jjtn002,  2);
                  }
      }
      break;
    default:
      jj_la1[67] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void entity_comp() throws ParseException {
    entity_bean_expression();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case EQ:
      jj_consume_token(EQ);
                 SimpleNode jjtn001 = new SimpleNode(this, JJTEQUALS);
                 boolean jjtc001 = true;
                 jjtree.openNodeScope(jjtn001);
      try {
        if (jj_2_90(2147483647)) {
          all_or_any_expression();
        } else {
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case NEW:
          case ALL:
          case ANY:
          case EXISTS:
          case SOME:
          case EMPTY:
          case ASC:
          case DESC:
          case ORDER:
          case BY:
          case IS:
          case MEMBER:
          case OF:
          case LIKE:
          case ESCAPE:
          case BETWEEN:
          case NULL:
          case KEY:
          case VALUE:
          case TYPE:
          case ENTRY:
          case AVG:
          case MIN:
          case MAX:
          case SUM:
          case COUNT:
          case OR:
          case AND:
          case NOT:
          case CONCAT:
          case SUBSTRING:
          case TRIM:
          case LOWER:
          case UPPER:
          case LEADING:
          case TRAILING:
          case BOTH:
          case LENGTH:
          case LOCATE:
          case ABS:
          case SQRT:
          case MOD:
          case SIZE:
          case INDEX:
          case CURRENT_DATE:
          case CURRENT_TIME:
          case CURRENT_TIMESTAMP:
          case SELECT:
          case DISTINCT:
          case FROM:
          case UPDATE:
          case DELETE:
          case WHERE:
          case GROUP:
          case HAVING:
          case AS:
          case LEFT:
          case OUTER:
          case INNER:
          case JOIN:
          case FETCH:
          case IN:
          case SET:
          case OBJECT:
          case CASE:
          case WHEN:
          case ELSE:
          case THEN:
          case END:
          case NULLIF:
          case COALESCE:
          case CLASS:
          case IDENTIFIER:
          case 104:
          case 105:
            entity_bean_expression();
            break;
          default:
            jj_la1[68] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
      } catch (Throwable jjte001) {
                 if (jjtc001) {
                   jjtree.clearNodeScope(jjtn001);
                   jjtc001 = false;
                 } else {
                   jjtree.popNode();
                 }
                 if (jjte001 instanceof RuntimeException) {
                   {if (true) throw (RuntimeException)jjte001;}
                 }
                 if (jjte001 instanceof ParseException) {
                   {if (true) throw (ParseException)jjte001;}
                 }
                 {if (true) throw (Error)jjte001;}
      } finally {
                 if (jjtc001) {
                   jjtree.closeNodeScope(jjtn001,  2);
                 }
      }
      break;
    case NE:
      jj_consume_token(NE);
                   SimpleNode jjtn002 = new SimpleNode(this, JJTNOTEQUALS);
                   boolean jjtc002 = true;
                   jjtree.openNodeScope(jjtn002);
      try {
        if (jj_2_91(2147483647)) {
          all_or_any_expression();
        } else {
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case NEW:
          case ALL:
          case ANY:
          case EXISTS:
          case SOME:
          case EMPTY:
          case ASC:
          case DESC:
          case ORDER:
          case BY:
          case IS:
          case MEMBER:
          case OF:
          case LIKE:
          case ESCAPE:
          case BETWEEN:
          case NULL:
          case KEY:
          case VALUE:
          case TYPE:
          case ENTRY:
          case AVG:
          case MIN:
          case MAX:
          case SUM:
          case COUNT:
          case OR:
          case AND:
          case NOT:
          case CONCAT:
          case SUBSTRING:
          case TRIM:
          case LOWER:
          case UPPER:
          case LEADING:
          case TRAILING:
          case BOTH:
          case LENGTH:
          case LOCATE:
          case ABS:
          case SQRT:
          case MOD:
          case SIZE:
          case INDEX:
          case CURRENT_DATE:
          case CURRENT_TIME:
          case CURRENT_TIMESTAMP:
          case SELECT:
          case DISTINCT:
          case FROM:
          case UPDATE:
          case DELETE:
          case WHERE:
          case GROUP:
          case HAVING:
          case AS:
          case LEFT:
          case OUTER:
          case INNER:
          case JOIN:
          case FETCH:
          case IN:
          case SET:
          case OBJECT:
          case CASE:
          case WHEN:
          case ELSE:
          case THEN:
          case END:
          case NULLIF:
          case COALESCE:
          case CLASS:
          case IDENTIFIER:
          case 104:
          case 105:
            entity_bean_expression();
            break;
          default:
            jj_la1[69] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
      } catch (Throwable jjte002) {
                   if (jjtc002) {
                     jjtree.clearNodeScope(jjtn002);
                     jjtc002 = false;
                   } else {
                     jjtree.popNode();
                   }
                   if (jjte002 instanceof RuntimeException) {
                     {if (true) throw (RuntimeException)jjte002;}
                   }
                   if (jjte002 instanceof ParseException) {
                     {if (true) throw (ParseException)jjte002;}
                   }
                   {if (true) throw (Error)jjte002;}
      } finally {
                   if (jjtc002) {
                     jjtree.closeNodeScope(jjtn002,  2);
                   }
      }
      break;
    default:
      jj_la1[70] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void arithmetic_comp() throws ParseException {
    arithmetic_expression();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case EQ:
      jj_consume_token(EQ);
                SimpleNode jjtn001 = new SimpleNode(this, JJTEQUALS);
                boolean jjtc001 = true;
                jjtree.openNodeScope(jjtn001);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case PLUS:
        case MINUS:
        case KEY:
        case VALUE:
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
        case LENGTH:
        case LOCATE:
        case ABS:
        case SQRT:
        case MOD:
        case SIZE:
        case INDEX:
        case CASE:
        case NULLIF:
        case COALESCE:
        case INTEGER_LITERAL:
        case DECIMAL_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          arithmetic_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[71] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte001) {
                if (jjtc001) {
                  jjtree.clearNodeScope(jjtn001);
                  jjtc001 = false;
                } else {
                  jjtree.popNode();
                }
                if (jjte001 instanceof RuntimeException) {
                  {if (true) throw (RuntimeException)jjte001;}
                }
                if (jjte001 instanceof ParseException) {
                  {if (true) throw (ParseException)jjte001;}
                }
                {if (true) throw (Error)jjte001;}
      } finally {
                if (jjtc001) {
                  jjtree.closeNodeScope(jjtn001,  2);
                }
      }
      break;
    case GT:
      jj_consume_token(GT);
                  SimpleNode jjtn002 = new SimpleNode(this, JJTGREATERTHAN);
                  boolean jjtc002 = true;
                  jjtree.openNodeScope(jjtn002);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case PLUS:
        case MINUS:
        case KEY:
        case VALUE:
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
        case LENGTH:
        case LOCATE:
        case ABS:
        case SQRT:
        case MOD:
        case SIZE:
        case INDEX:
        case CASE:
        case NULLIF:
        case COALESCE:
        case INTEGER_LITERAL:
        case DECIMAL_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          arithmetic_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[72] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte002) {
                  if (jjtc002) {
                    jjtree.clearNodeScope(jjtn002);
                    jjtc002 = false;
                  } else {
                    jjtree.popNode();
                  }
                  if (jjte002 instanceof RuntimeException) {
                    {if (true) throw (RuntimeException)jjte002;}
                  }
                  if (jjte002 instanceof ParseException) {
                    {if (true) throw (ParseException)jjte002;}
                  }
                  {if (true) throw (Error)jjte002;}
      } finally {
                  if (jjtc002) {
                    jjtree.closeNodeScope(jjtn002,  2);
                  }
      }
      break;
    case GE:
      jj_consume_token(GE);
                  SimpleNode jjtn003 = new SimpleNode(this, JJTGREATEROREQUAL);
                  boolean jjtc003 = true;
                  jjtree.openNodeScope(jjtn003);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case PLUS:
        case MINUS:
        case KEY:
        case VALUE:
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
        case LENGTH:
        case LOCATE:
        case ABS:
        case SQRT:
        case MOD:
        case SIZE:
        case INDEX:
        case CASE:
        case NULLIF:
        case COALESCE:
        case INTEGER_LITERAL:
        case DECIMAL_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          arithmetic_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[73] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte003) {
                  if (jjtc003) {
                    jjtree.clearNodeScope(jjtn003);
                    jjtc003 = false;
                  } else {
                    jjtree.popNode();
                  }
                  if (jjte003 instanceof RuntimeException) {
                    {if (true) throw (RuntimeException)jjte003;}
                  }
                  if (jjte003 instanceof ParseException) {
                    {if (true) throw (ParseException)jjte003;}
                  }
                  {if (true) throw (Error)jjte003;}
      } finally {
                  if (jjtc003) {
                    jjtree.closeNodeScope(jjtn003,  2);
                  }
      }
      break;
    case LT:
      jj_consume_token(LT);
                  SimpleNode jjtn004 = new SimpleNode(this, JJTLESSTHAN);
                  boolean jjtc004 = true;
                  jjtree.openNodeScope(jjtn004);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case PLUS:
        case MINUS:
        case KEY:
        case VALUE:
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
        case LENGTH:
        case LOCATE:
        case ABS:
        case SQRT:
        case MOD:
        case SIZE:
        case INDEX:
        case CASE:
        case NULLIF:
        case COALESCE:
        case INTEGER_LITERAL:
        case DECIMAL_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          arithmetic_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[74] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte004) {
                  if (jjtc004) {
                    jjtree.clearNodeScope(jjtn004);
                    jjtc004 = false;
                  } else {
                    jjtree.popNode();
                  }
                  if (jjte004 instanceof RuntimeException) {
                    {if (true) throw (RuntimeException)jjte004;}
                  }
                  if (jjte004 instanceof ParseException) {
                    {if (true) throw (ParseException)jjte004;}
                  }
                  {if (true) throw (Error)jjte004;}
      } finally {
                  if (jjtc004) {
                    jjtree.closeNodeScope(jjtn004,  2);
                  }
      }
      break;
    case LE:
      jj_consume_token(LE);
                  SimpleNode jjtn005 = new SimpleNode(this, JJTLESSOREQUAL);
                  boolean jjtc005 = true;
                  jjtree.openNodeScope(jjtn005);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case PLUS:
        case MINUS:
        case KEY:
        case VALUE:
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
        case LENGTH:
        case LOCATE:
        case ABS:
        case SQRT:
        case MOD:
        case SIZE:
        case INDEX:
        case CASE:
        case NULLIF:
        case COALESCE:
        case INTEGER_LITERAL:
        case DECIMAL_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          arithmetic_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[75] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte005) {
                  if (jjtc005) {
                    jjtree.clearNodeScope(jjtn005);
                    jjtc005 = false;
                  } else {
                    jjtree.popNode();
                  }
                  if (jjte005 instanceof RuntimeException) {
                    {if (true) throw (RuntimeException)jjte005;}
                  }
                  if (jjte005 instanceof ParseException) {
                    {if (true) throw (ParseException)jjte005;}
                  }
                  {if (true) throw (Error)jjte005;}
      } finally {
                  if (jjtc005) {
                    jjtree.closeNodeScope(jjtn005,  2);
                  }
      }
      break;
    case NE:
      jj_consume_token(NE);
                  SimpleNode jjtn006 = new SimpleNode(this, JJTNOTEQUALS);
                  boolean jjtc006 = true;
                  jjtree.openNodeScope(jjtn006);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case PLUS:
        case MINUS:
        case KEY:
        case VALUE:
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
        case LENGTH:
        case LOCATE:
        case ABS:
        case SQRT:
        case MOD:
        case SIZE:
        case INDEX:
        case CASE:
        case NULLIF:
        case COALESCE:
        case INTEGER_LITERAL:
        case DECIMAL_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          arithmetic_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[76] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte006) {
                  if (jjtc006) {
                    jjtree.clearNodeScope(jjtn006);
                    jjtc006 = false;
                  } else {
                    jjtree.popNode();
                  }
                  if (jjte006 instanceof RuntimeException) {
                    {if (true) throw (RuntimeException)jjte006;}
                  }
                  if (jjte006 instanceof ParseException) {
                    {if (true) throw (ParseException)jjte006;}
                  }
                  {if (true) throw (Error)jjte006;}
      } finally {
                  if (jjtc006) {
                    jjtree.closeNodeScope(jjtn006,  2);
                  }
      }
      break;
    default:
      jj_la1[77] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void datetime_comp() throws ParseException {
    datetime_expression();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case EQ:
      jj_consume_token(EQ);
                SimpleNode jjtn001 = new SimpleNode(this, JJTEQUALS);
                boolean jjtc001 = true;
                jjtree.openNodeScope(jjtn001);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
        case CURRENT_DATE:
        case CURRENT_TIME:
        case CURRENT_TIMESTAMP:
        case CASE:
        case NULLIF:
        case COALESCE:
        case DATE_LITERAL:
        case TIME_LITERAL:
        case TIMESTAMP_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          datetime_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[78] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte001) {
                if (jjtc001) {
                  jjtree.clearNodeScope(jjtn001);
                  jjtc001 = false;
                } else {
                  jjtree.popNode();
                }
                if (jjte001 instanceof RuntimeException) {
                  {if (true) throw (RuntimeException)jjte001;}
                }
                if (jjte001 instanceof ParseException) {
                  {if (true) throw (ParseException)jjte001;}
                }
                {if (true) throw (Error)jjte001;}
      } finally {
                if (jjtc001) {
                  jjtree.closeNodeScope(jjtn001,  2);
                }
      }
      break;
    case GT:
      jj_consume_token(GT);
                  SimpleNode jjtn002 = new SimpleNode(this, JJTGREATERTHAN);
                  boolean jjtc002 = true;
                  jjtree.openNodeScope(jjtn002);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
        case CURRENT_DATE:
        case CURRENT_TIME:
        case CURRENT_TIMESTAMP:
        case CASE:
        case NULLIF:
        case COALESCE:
        case DATE_LITERAL:
        case TIME_LITERAL:
        case TIMESTAMP_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          datetime_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[79] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte002) {
                  if (jjtc002) {
                    jjtree.clearNodeScope(jjtn002);
                    jjtc002 = false;
                  } else {
                    jjtree.popNode();
                  }
                  if (jjte002 instanceof RuntimeException) {
                    {if (true) throw (RuntimeException)jjte002;}
                  }
                  if (jjte002 instanceof ParseException) {
                    {if (true) throw (ParseException)jjte002;}
                  }
                  {if (true) throw (Error)jjte002;}
      } finally {
                  if (jjtc002) {
                    jjtree.closeNodeScope(jjtn002,  2);
                  }
      }
      break;
    case GE:
      jj_consume_token(GE);
                  SimpleNode jjtn003 = new SimpleNode(this, JJTGREATEROREQUAL);
                  boolean jjtc003 = true;
                  jjtree.openNodeScope(jjtn003);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
        case CURRENT_DATE:
        case CURRENT_TIME:
        case CURRENT_TIMESTAMP:
        case CASE:
        case NULLIF:
        case COALESCE:
        case DATE_LITERAL:
        case TIME_LITERAL:
        case TIMESTAMP_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          datetime_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[80] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte003) {
                  if (jjtc003) {
                    jjtree.clearNodeScope(jjtn003);
                    jjtc003 = false;
                  } else {
                    jjtree.popNode();
                  }
                  if (jjte003 instanceof RuntimeException) {
                    {if (true) throw (RuntimeException)jjte003;}
                  }
                  if (jjte003 instanceof ParseException) {
                    {if (true) throw (ParseException)jjte003;}
                  }
                  {if (true) throw (Error)jjte003;}
      } finally {
                  if (jjtc003) {
                    jjtree.closeNodeScope(jjtn003,  2);
                  }
      }
      break;
    case LT:
      jj_consume_token(LT);
                  SimpleNode jjtn004 = new SimpleNode(this, JJTLESSTHAN);
                  boolean jjtc004 = true;
                  jjtree.openNodeScope(jjtn004);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
        case CURRENT_DATE:
        case CURRENT_TIME:
        case CURRENT_TIMESTAMP:
        case CASE:
        case NULLIF:
        case COALESCE:
        case DATE_LITERAL:
        case TIME_LITERAL:
        case TIMESTAMP_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          datetime_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[81] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte004) {
                  if (jjtc004) {
                    jjtree.clearNodeScope(jjtn004);
                    jjtc004 = false;
                  } else {
                    jjtree.popNode();
                  }
                  if (jjte004 instanceof RuntimeException) {
                    {if (true) throw (RuntimeException)jjte004;}
                  }
                  if (jjte004 instanceof ParseException) {
                    {if (true) throw (ParseException)jjte004;}
                  }
                  {if (true) throw (Error)jjte004;}
      } finally {
                  if (jjtc004) {
                    jjtree.closeNodeScope(jjtn004,  2);
                  }
      }
      break;
    case LE:
      jj_consume_token(LE);
                  SimpleNode jjtn005 = new SimpleNode(this, JJTLESSOREQUAL);
                  boolean jjtc005 = true;
                  jjtree.openNodeScope(jjtn005);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
        case CURRENT_DATE:
        case CURRENT_TIME:
        case CURRENT_TIMESTAMP:
        case CASE:
        case NULLIF:
        case COALESCE:
        case DATE_LITERAL:
        case TIME_LITERAL:
        case TIMESTAMP_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          datetime_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[82] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte005) {
                  if (jjtc005) {
                    jjtree.clearNodeScope(jjtn005);
                    jjtc005 = false;
                  } else {
                    jjtree.popNode();
                  }
                  if (jjte005 instanceof RuntimeException) {
                    {if (true) throw (RuntimeException)jjte005;}
                  }
                  if (jjte005 instanceof ParseException) {
                    {if (true) throw (ParseException)jjte005;}
                  }
                  {if (true) throw (Error)jjte005;}
      } finally {
                  if (jjtc005) {
                    jjtree.closeNodeScope(jjtn005,  2);
                  }
      }
      break;
    case NE:
      jj_consume_token(NE);
                  SimpleNode jjtn006 = new SimpleNode(this, JJTNOTEQUALS);
                  boolean jjtc006 = true;
                  jjtree.openNodeScope(jjtn006);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case KEY:
        case VALUE:
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
        case CURRENT_DATE:
        case CURRENT_TIME:
        case CURRENT_TIMESTAMP:
        case CASE:
        case NULLIF:
        case COALESCE:
        case DATE_LITERAL:
        case TIME_LITERAL:
        case TIMESTAMP_LITERAL:
        case IDENTIFIER:
        case 102:
        case 104:
        case 105:
          datetime_expression();
          break;
        case ALL:
        case ANY:
        case SOME:
          all_or_any_expression();
          break;
        default:
          jj_la1[83] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte006) {
                  if (jjtc006) {
                    jjtree.clearNodeScope(jjtn006);
                    jjtc006 = false;
                  } else {
                    jjtree.popNode();
                  }
                  if (jjte006 instanceof RuntimeException) {
                    {if (true) throw (RuntimeException)jjte006;}
                  }
                  if (jjte006 instanceof ParseException) {
                    {if (true) throw (ParseException)jjte006;}
                  }
                  {if (true) throw (Error)jjte006;}
      } finally {
                  if (jjtc006) {
                    jjtree.closeNodeScope(jjtn006,  2);
                  }
      }
      break;
    default:
      jj_la1[84] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void scalar_function() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case LENGTH:
    case LOCATE:
    case ABS:
    case SQRT:
    case MOD:
    case SIZE:
    case INDEX:
      functions_returning_numerics();
      break;
    case CURRENT_DATE:
    case CURRENT_TIME:
    case CURRENT_TIMESTAMP:
      functions_returning_datetime();
      break;
    case CONCAT:
    case SUBSTRING:
    case TRIM:
    case LOWER:
    case UPPER:
      functions_returning_strings();
      break;
    default:
      jj_la1[85] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void arithmetic_value() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case IDENTIFIER:
      path();
      break;
    case LENGTH:
    case LOCATE:
    case ABS:
    case SQRT:
    case MOD:
    case SIZE:
    case INDEX:
      functions_returning_numerics();
      break;
    case 102:
      jj_consume_token(102);
      subquery();
      jj_consume_token(103);
      break;
    default:
      jj_la1[86] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

/* changed to eliminate left recursion */
  final public void arithmetic_expression() throws ParseException {
    arithmetic_term();
    label_15:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PLUS:
      case MINUS:
        ;
        break;
      default:
        jj_la1[87] = jj_gen;
        break label_15;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PLUS:
        jj_consume_token(PLUS);
                           SimpleNode jjtn001 = new SimpleNode(this, JJTADD);
                           boolean jjtc001 = true;
                           jjtree.openNodeScope(jjtn001);
        try {
          arithmetic_expression();
        } catch (Throwable jjte001) {
                           if (jjtc001) {
                             jjtree.clearNodeScope(jjtn001);
                             jjtc001 = false;
                           } else {
                             jjtree.popNode();
                           }
                           if (jjte001 instanceof RuntimeException) {
                             {if (true) throw (RuntimeException)jjte001;}
                           }
                           if (jjte001 instanceof ParseException) {
                             {if (true) throw (ParseException)jjte001;}
                           }
                           {if (true) throw (Error)jjte001;}
        } finally {
                           if (jjtc001) {
                             jjtree.closeNodeScope(jjtn001,  2);
                           }
        }
        break;
      case MINUS:
        jj_consume_token(MINUS);
                             SimpleNode jjtn002 = new SimpleNode(this, JJTSUBTRACT);
                             boolean jjtc002 = true;
                             jjtree.openNodeScope(jjtn002);
        try {
          arithmetic_expression();
        } catch (Throwable jjte002) {
                             if (jjtc002) {
                               jjtree.clearNodeScope(jjtn002);
                               jjtc002 = false;
                             } else {
                               jjtree.popNode();
                             }
                             if (jjte002 instanceof RuntimeException) {
                               {if (true) throw (RuntimeException)jjte002;}
                             }
                             if (jjte002 instanceof ParseException) {
                               {if (true) throw (ParseException)jjte002;}
                             }
                             {if (true) throw (Error)jjte002;}
        } finally {
                             if (jjtc002) {
                               jjtree.closeNodeScope(jjtn002,  2);
                             }
        }
        break;
      default:
        jj_la1[88] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

/* changed to eliminate left recursion */
  final public void arithmetic_term() throws ParseException {
    arithmetic_factor();
    label_16:
    while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case TIMES:
      case DIV:
        ;
        break;
      default:
        jj_la1[89] = jj_gen;
        break label_16;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case TIMES:
        jj_consume_token(TIMES);
                            SimpleNode jjtn001 = new SimpleNode(this, JJTMULTIPLY);
                            boolean jjtc001 = true;
                            jjtree.openNodeScope(jjtn001);
        try {
          arithmetic_term();
        } catch (Throwable jjte001) {
                            if (jjtc001) {
                              jjtree.clearNodeScope(jjtn001);
                              jjtc001 = false;
                            } else {
                              jjtree.popNode();
                            }
                            if (jjte001 instanceof RuntimeException) {
                              {if (true) throw (RuntimeException)jjte001;}
                            }
                            if (jjte001 instanceof ParseException) {
                              {if (true) throw (ParseException)jjte001;}
                            }
                            {if (true) throw (Error)jjte001;}
        } finally {
                            if (jjtc001) {
                              jjtree.closeNodeScope(jjtn001,  2);
                            }
        }
        break;
      case DIV:
        jj_consume_token(DIV);
                           SimpleNode jjtn002 = new SimpleNode(this, JJTDIVIDE);
                           boolean jjtc002 = true;
                           jjtree.openNodeScope(jjtn002);
        try {
          arithmetic_term();
        } catch (Throwable jjte002) {
                           if (jjtc002) {
                             jjtree.clearNodeScope(jjtn002);
                             jjtc002 = false;
                           } else {
                             jjtree.popNode();
                           }
                           if (jjte002 instanceof RuntimeException) {
                             {if (true) throw (RuntimeException)jjte002;}
                           }
                           if (jjte002 instanceof ParseException) {
                             {if (true) throw (ParseException)jjte002;}
                           }
                           {if (true) throw (Error)jjte002;}
        } finally {
                           if (jjtc002) {
                             jjtree.closeNodeScope(jjtn002,  2);
                           }
        }
        break;
      default:
        jj_la1[90] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void arithmetic_factor() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case PLUS:
    case MINUS:
    case INTEGER_LITERAL:
    case DECIMAL_LITERAL:
      numeric_literal();
      break;
    case 104:
    case 105:
      input_parameter();
      break;
    default:
      jj_la1[91] = jj_gen;
      if (jj_2_92(2147483647)) {
        path();
      } else if (jj_2_93(2147483647)) {
        qualified_path();
      } else if (jj_2_94(2147483647)) {
        general_identification_variable();
      } else if (jj_2_95(2147483647)) {
        identification_variable();
      } else if (jj_2_96(2147483647)) {
        jj_consume_token(102);
        arithmetic_expression();
        jj_consume_token(103);
      } else if (jj_2_97(2147483647)) {
        functions_returning_numerics();
      } else if (jj_2_98(2147483647)) {
        aggregate_select_expression();
      } else if (jj_2_99(2147483647)) {
        case_expression();
      } else if (jj_2_100(2147483647)) {
        jj_consume_token(102);
        subquery();
        jj_consume_token(103);
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void qualified_path() throws ParseException {
                                        /*@bgen(jjtree) QUALIFIEDPATH */
  SimpleNode jjtn000 = new SimpleNode(this, JJTQUALIFIEDPATH);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case KEY:
        jj_consume_token(KEY);
        jj_consume_token(102);
        identification_variable();
                                            SimpleNode jjtn001 = new SimpleNode(this, JJTKEY);
                                            boolean jjtc001 = true;
                                            jjtree.openNodeScope(jjtn001);
        try {
          jj_consume_token(103);
        } finally {
                                            if (jjtc001) {
                                              jjtree.closeNodeScope(jjtn001,  1);
                                            }
        }
        break;
      case VALUE:
        jj_consume_token(VALUE);
        jj_consume_token(102);
        identification_variable();
        jj_consume_token(103);
        break;
      default:
        jj_la1[92] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      label_17:
      while (true) {
        jj_consume_token(DOT);
        path_component();
        if (jj_2_101(2)) {
          ;
        } else {
          break label_17;
        }
      }
    } 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);
      }
    }
  }

  final public void qualified_identification_variable() throws ParseException {
                                                                 /*@bgen(jjtree) QUALIFIEDIDENTIFIER */
  SimpleNode jjtn000 = new SimpleNode(this, JJTQUALIFIEDIDENTIFIER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case KEY:
        jj_consume_token(KEY);
        jj_consume_token(102);
        identification_variable();
                                            SimpleNode jjtn001 = new SimpleNode(this, JJTKEY);
                                            boolean jjtc001 = true;
                                            jjtree.openNodeScope(jjtn001);
        try {
          jj_consume_token(103);
        } finally {
                                            if (jjtc001) {
                                              jjtree.closeNodeScope(jjtn001,  1);
                                            }
        }
        break;
      case VALUE:
        jj_consume_token(VALUE);
        jj_consume_token(102);
        identification_variable();
                                              SimpleNode jjtn002 = new SimpleNode(this, JJTVALUE);
                                              boolean jjtc002 = true;
                                              jjtree.openNodeScope(jjtn002);
        try {
          jj_consume_token(103);
        } finally {
                                              if (jjtc002) {
                                                jjtree.closeNodeScope(jjtn002,  1);
                                              }
        }
        break;
      case ENTRY:
        jj_consume_token(ENTRY);
        jj_consume_token(102);
        identification_variable();
                                              SimpleNode jjtn003 = new SimpleNode(this, JJTENTRY);
                                              boolean jjtc003 = true;
                                              jjtree.openNodeScope(jjtn003);
        try {
          jj_consume_token(103);
        } finally {
                                              if (jjtc003) {
                                                jjtree.closeNodeScope(jjtn003,  1);
                                              }
        }
        break;
      default:
        jj_la1[93] = 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);
      }
    }
  }

  final public void general_identification_variable() throws ParseException {
                                                             /*@bgen(jjtree) GENERALIDENTIFIER */
  SimpleNode jjtn000 = new SimpleNode(this, JJTGENERALIDENTIFIER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case KEY:
        jj_consume_token(KEY);
        jj_consume_token(102);
        identification_variable();
                                            SimpleNode jjtn001 = new SimpleNode(this, JJTKEY);
                                            boolean jjtc001 = true;
                                            jjtree.openNodeScope(jjtn001);
        try {
          jj_consume_token(103);
        } finally {
                                            if (jjtc001) {
                                              jjtree.closeNodeScope(jjtn001,  1);
                                            }
        }
        break;
      case VALUE:
        jj_consume_token(VALUE);
        jj_consume_token(102);
        identification_variable();
                                              SimpleNode jjtn002 = new SimpleNode(this, JJTVALUE);
                                              boolean jjtc002 = true;
                                              jjtree.openNodeScope(jjtn002);
        try {
          jj_consume_token(103);
        } finally {
                                              if (jjtc002) {
                                                jjtree.closeNodeScope(jjtn002,  1);
                                              }
        }
        break;
      default:
        jj_la1[94] = 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);
      }
    }
  }

  final public void entity_type_comp() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case TYPE:
    case 104:
    case 105:
      entity_type_expression();
      break;
    case IDENTIFIER:
      entity_type_literal();
      break;
    default:
      jj_la1[95] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case EQ:
      jj_consume_token(EQ);
                 SimpleNode jjtn001 = new SimpleNode(this, JJTEQUALS);
                 boolean jjtc001 = true;
                 jjtree.openNodeScope(jjtn001);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case TYPE:
        case 104:
        case 105:
          entity_type_expression();
          break;
        case IDENTIFIER:
          entity_type_literal();
          break;
        default:
          jj_la1[96] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte001) {
                 if (jjtc001) {
                   jjtree.clearNodeScope(jjtn001);
                   jjtc001 = false;
                 } else {
                   jjtree.popNode();
                 }
                 if (jjte001 instanceof RuntimeException) {
                   {if (true) throw (RuntimeException)jjte001;}
                 }
                 if (jjte001 instanceof ParseException) {
                   {if (true) throw (ParseException)jjte001;}
                 }
                 {if (true) throw (Error)jjte001;}
      } finally {
                 if (jjtc001) {
                   jjtree.closeNodeScope(jjtn001,  2);
                 }
      }
      break;
    case NE:
      jj_consume_token(NE);
                 SimpleNode jjtn002 = new SimpleNode(this, JJTNOTEQUALS);
                 boolean jjtc002 = true;
                 jjtree.openNodeScope(jjtn002);
      try {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case TYPE:
        case 104:
        case 105:
          entity_type_expression();
          break;
        case IDENTIFIER:
          entity_type_literal();
          break;
        default:
          jj_la1[97] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      } catch (Throwable jjte002) {
                 if (jjtc002) {
                   jjtree.clearNodeScope(jjtn002);
                   jjtc002 = false;
                 } else {
                   jjtree.popNode();
                 }
                 if (jjte002 instanceof RuntimeException) {
                   {if (true) throw (RuntimeException)jjte002;}
                 }
                 if (jjte002 instanceof ParseException) {
                   {if (true) throw (ParseException)jjte002;}
                 }
                 {if (true) throw (Error)jjte002;}
      } finally {
                 if (jjtc002) {
                   jjtree.closeNodeScope(jjtn002,  2);
                 }
      }
      break;
    default:
      jj_la1[98] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void type_discriminator() throws ParseException {
                                   /*@bgen(jjtree) TYPE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTTYPE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(TYPE);
      jj_consume_token(102);
      if (jj_2_102(2147483647)) {
        path();
      } else if (jj_2_103(2147483647)) {
        qualified_path();
      } else if (jj_2_104(2147483647)) {
        general_identification_variable();
      } else if (jj_2_105(2147483647)) {
        identification_variable();
      } else if (jj_2_106(2147483647)) {
        input_parameter();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(103);
    } 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);
      }
    }
  }

  final public void entity_type_expression() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case TYPE:
      type_discriminator();
      break;
    case 104:
    case 105:
      input_parameter();
      break;
    default:
      jj_la1[99] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void scalar_expression() throws ParseException {
                                              /*@bgen(jjtree) SCALAREXPRESSION */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSCALAREXPRESSION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      if (jj_2_107(2147483647)) {
        arithmetic_expression();
      } else if (jj_2_108(2147483647)) {
        case_expression();
      } else if (jj_2_109(2147483647)) {
        string_primary();
      } else if (jj_2_110(2147483647)) {
        datetime_primary();
      } else if (jj_2_111(2147483647)) {
        enum_primary();
      } else if (jj_2_112(2147483647)) {
        boolean_primary();
      } else if (jj_2_113(2147483647)) {
        entity_type_expression();
      } else {
        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);
      }
    }
  }

  final public void case_expression() throws ParseException {
                                /*@bgen(jjtree) CASE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTCASE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CASE:
        jj_consume_token(CASE);
        if (jj_2_114(2147483647)) {
          general_case_expression();
        } else if (jj_2_115(2147483647)) {
          simple_case_expression();
        } else {
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
      case COALESCE:
        jj_consume_token(COALESCE);
        coalesce_expression();
        break;
      case NULLIF:
        jj_consume_token(NULLIF);
        nullif_expression();
        break;
      default:
        jj_la1[100] = 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);
          }
    }
  }

  final public void general_case_expression() throws ParseException {
                                               /*@bgen(jjtree) GENERALCASE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTGENERALCASE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      label_18:
      while (true) {
        when_clause();
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case WHEN:
          ;
          break;
        default:
          jj_la1[101] = jj_gen;
          break label_18;
        }
      }
      jj_consume_token(ELSE);
      if (jj_2_116(2)) {
        scalar_expression();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case IDENTIFIER:
          entity_type_literal();
          break;
        default:
          jj_la1[102] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      jj_consume_token(END);
    } 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);
      }
    }
  }

  final public void when_clause() throws ParseException {
                            /*@bgen(jjtree) WHEN */
  SimpleNode jjtn000 = new SimpleNode(this, JJTWHEN);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(WHEN);
      conditional_expression();
      jj_consume_token(THEN);
      if (jj_2_117(2)) {
        scalar_expression();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case IDENTIFIER:
          entity_type_literal();
          break;
        default:
          jj_la1[103] = 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);
      }
    }
  }

  final public void simple_case_expression() throws ParseException {
                                             /*@bgen(jjtree) SIMPLECASE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSIMPLECASE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      if (jj_2_118(2147483647)) {
        type_discriminator();
      } else if (jj_2_119(2147483647)) {
        path();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
      label_19:
      while (true) {
        simple_when_clause();
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case WHEN:
          ;
          break;
        default:
          jj_la1[104] = jj_gen;
          break label_19;
        }
      }
      jj_consume_token(ELSE);
      if (jj_2_120(2)) {
        scalar_expression();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case IDENTIFIER:
          entity_type_literal();
          break;
        default:
          jj_la1[105] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      jj_consume_token(END);
    } 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);
      }
    }
  }

  final public void simple_when_clause() throws ParseException {
                                         /*@bgen(jjtree) WHENSCALAR */
  SimpleNode jjtn000 = new SimpleNode(this, JJTWHENSCALAR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(WHEN);
      if (jj_2_121(2)) {
        scalar_expression();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case IDENTIFIER:
          entity_type_literal();
          break;
        default:
          jj_la1[106] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      jj_consume_token(THEN);
      if (jj_2_122(2)) {
        scalar_expression();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case IDENTIFIER:
          entity_type_literal();
          break;
        default:
          jj_la1[107] = 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);
      }
    }
  }

  final public void coalesce_expression() throws ParseException {
                                        /*@bgen(jjtree) COALESCE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTCOALESCE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(102);
      scalar_expression();
      label_20:
      while (true) {
        jj_consume_token(COMMA);
        scalar_expression();
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case COMMA:
          ;
          break;
        default:
          jj_la1[108] = jj_gen;
          break label_20;
        }
      }
      jj_consume_token(103);
    } 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);
      }
    }
  }

  final public void nullif_expression() throws ParseException {
                                    /*@bgen(jjtree) NULLIF */
  SimpleNode jjtn000 = new SimpleNode(this, JJTNULLIF);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(102);
      scalar_expression();
      jj_consume_token(COMMA);
      scalar_expression();
      jj_consume_token(103);
    } 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);
      }
    }
  }

  final public void negative() throws ParseException {
                             /*@bgen(jjtree) NEGATIVE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTNEGATIVE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(MINUS);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void string_value() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case IDENTIFIER:
      path();
      break;
    case CONCAT:
    case SUBSTRING:
    case TRIM:
    case LOWER:
    case UPPER:
      functions_returning_strings();
      break;
    case 102:
      jj_consume_token(102);
      subquery();
      jj_consume_token(103);
      break;
    default:
      jj_la1[109] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void string_expression() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 104:
    case 105:
      input_parameter();
      break;
    case KEY:
    case VALUE:
    case CONCAT:
    case SUBSTRING:
    case TRIM:
    case LOWER:
    case UPPER:
    case CASE:
    case NULLIF:
    case COALESCE:
    case STRING_LITERAL:
    case STRING_LITERAL2:
    case IDENTIFIER:
    case 102:
      string_primary();
      break;
    default:
      jj_la1[110] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void string_primary() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case STRING_LITERAL:
      string_literal();
      break;
    case STRING_LITERAL2:
      string_literal2();
      break;
    default:
      jj_la1[111] = jj_gen;
      if (jj_2_123(2147483647)) {
        path();
      } else if (jj_2_124(2147483647)) {
        qualified_path();
      } else if (jj_2_125(2147483647)) {
        general_identification_variable();
      } else if (jj_2_126(2147483647)) {
        identification_variable();
      } else if (jj_2_127(2147483647)) {
        jj_consume_token(102);
        string_expression();
        jj_consume_token(103);
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case CONCAT:
        case SUBSTRING:
        case TRIM:
        case LOWER:
        case UPPER:
          functions_returning_strings();
          break;
        default:
          jj_la1[112] = jj_gen;
          if (jj_2_128(2147483647)) {
            jj_consume_token(102);
            subquery();
            jj_consume_token(103);
          } else {
            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
            case CASE:
            case NULLIF:
            case COALESCE:
              case_expression();
              break;
            default:
              jj_la1[113] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
          }
        }
      }
    }
  }

  final public void datetime_expression() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case KEY:
    case VALUE:
    case AVG:
    case MIN:
    case MAX:
    case SUM:
    case COUNT:
    case CURRENT_DATE:
    case CURRENT_TIME:
    case CURRENT_TIMESTAMP:
    case CASE:
    case NULLIF:
    case COALESCE:
    case DATE_LITERAL:
    case TIME_LITERAL:
    case TIMESTAMP_LITERAL:
    case IDENTIFIER:
    case 104:
    case 105:
      datetime_primary();
      break;
    case 102:
      jj_consume_token(102);
      subquery();
      jj_consume_token(103);
      break;
    default:
      jj_la1[114] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void datetime_primary() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case DATE_LITERAL:
      date_literal();
      break;
    case TIME_LITERAL:
      time_literal();
      break;
    case TIMESTAMP_LITERAL:
      timestamp_literal();
      break;
    default:
      jj_la1[115] = jj_gen;
      if (jj_2_129(2147483647)) {
        path();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case CURRENT_DATE:
        case CURRENT_TIME:
        case CURRENT_TIMESTAMP:
          functions_returning_datetime();
          break;
        case 104:
        case 105:
          input_parameter();
          break;
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
          aggregate_select_expression();
          break;
        default:
          jj_la1[116] = jj_gen;
          if (jj_2_130(2147483647)) {
            qualified_path();
          } else if (jj_2_131(2147483647)) {
            general_identification_variable();
          } else if (jj_2_132(2147483647)) {
            identification_variable();
          } else {
            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
            case CASE:
            case NULLIF:
            case COALESCE:
              case_expression();
              break;
            default:
              jj_la1[117] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
          }
        }
      }
    }
  }

  final public void boolean_value() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case IDENTIFIER:
      path();
      break;
    case 102:
      jj_consume_token(102);
      subquery();
      jj_consume_token(103);
      break;
    default:
      jj_la1[118] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void boolean_expression() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case KEY:
    case VALUE:
    case CASE:
    case NULLIF:
    case COALESCE:
    case BOOLEAN_LITERAL:
    case IDENTIFIER:
    case 104:
    case 105:
      boolean_primary();
      break;
    case 102:
      jj_consume_token(102);
      subquery();
      jj_consume_token(103);
      break;
    default:
      jj_la1[119] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void boolean_primary() throws ParseException {
    if (jj_2_133(2147483647)) {
      path();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case BOOLEAN_LITERAL:
        boolean_literal();
        break;
      case 104:
      case 105:
        input_parameter();
        break;
      default:
        jj_la1[120] = jj_gen;
        if (jj_2_134(2147483647)) {
          qualified_path();
        } else if (jj_2_135(2147483647)) {
          general_identification_variable();
        } else if (jj_2_136(2147483647)) {
          identification_variable();
        } else {
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case CASE:
          case NULLIF:
          case COALESCE:
            case_expression();
            break;
          default:
            jj_la1[121] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
      }
    }
  }

  final public void enum_expression() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case KEY:
    case VALUE:
    case CASE:
    case NULLIF:
    case COALESCE:
    case IDENTIFIER:
    case 104:
    case 105:
      enum_primary();
      break;
    case 102:
      jj_consume_token(102);
      subquery();
      jj_consume_token(103);
      break;
    default:
      jj_la1[122] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void enum_primary() throws ParseException {
    if (jj_2_137(2)) {
      path();
    } else if (jj_2_138(2147483647)) {
      enum_literal();
    } else if (jj_2_139(2147483647)) {
      input_parameter();
    } else if (jj_2_140(2147483647)) {
      qualified_path();
    } else if (jj_2_141(2147483647)) {
      general_identification_variable();
    } else if (jj_2_142(2147483647)) {
      identification_variable();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case CASE:
      case NULLIF:
      case COALESCE:
        case_expression();
        break;
      default:
        jj_la1[123] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void enum_literal() throws ParseException {
          inEnumPath = true;
    path();
          inEnumPath = false;
  }

  final public void entity_bean_value() throws ParseException {
    if (jj_2_143(2147483647)) {
      path();
    } else if (jj_2_144(2147483647)) {
      qualified_path();
    } else if (jj_2_145(2147483647)) {
      path_component();
    } else {
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void entity_bean_expression() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 104:
    case 105:
      input_parameter();
      break;
    case NEW:
    case ALL:
    case ANY:
    case EXISTS:
    case SOME:
    case EMPTY:
    case ASC:
    case DESC:
    case ORDER:
    case BY:
    case IS:
    case MEMBER:
    case OF:
    case LIKE:
    case ESCAPE:
    case BETWEEN:
    case NULL:
    case KEY:
    case VALUE:
    case TYPE:
    case ENTRY:
    case AVG:
    case MIN:
    case MAX:
    case SUM:
    case COUNT:
    case OR:
    case AND:
    case NOT:
    case CONCAT:
    case SUBSTRING:
    case TRIM:
    case LOWER:
    case UPPER:
    case LEADING:
    case TRAILING:
    case BOTH:
    case LENGTH:
    case LOCATE:
    case ABS:
    case SQRT:
    case MOD:
    case SIZE:
    case INDEX:
    case CURRENT_DATE:
    case CURRENT_TIME:
    case CURRENT_TIMESTAMP:
    case SELECT:
    case DISTINCT:
    case FROM:
    case UPDATE:
    case DELETE:
    case WHERE:
    case GROUP:
    case HAVING:
    case AS:
    case LEFT:
    case OUTER:
    case INNER:
    case JOIN:
    case FETCH:
    case IN:
    case SET:
    case OBJECT:
    case CASE:
    case WHEN:
    case ELSE:
    case THEN:
    case END:
    case NULLIF:
    case COALESCE:
    case CLASS:
    case IDENTIFIER:
      entity_bean_value();
      break;
    default:
      jj_la1[124] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void functions_returning_strings() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case CONCAT:
      concat();
      break;
    case SUBSTRING:
      substring();
      break;
    case TRIM:
      trim();
      break;
    case LOWER:
      lower();
      break;
    case UPPER:
      upper();
      break;
    default:
      jj_la1[125] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void concat() throws ParseException {
                         /*@bgen(jjtree) CONCAT */
  SimpleNode jjtn000 = new SimpleNode(this, JJTCONCAT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(CONCAT);
      jj_consume_token(102);
      string_expression();
      jj_consume_token(COMMA);
      string_expression();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case COMMA:
        jj_consume_token(COMMA);
        string_expression();
        break;
      default:
        jj_la1[126] = jj_gen;
        ;
      }
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void substring() throws ParseException {
                               /*@bgen(jjtree) SUBSTRING */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSUBSTRING);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(SUBSTRING);
      jj_consume_token(102);
      string_expression();
      jj_consume_token(COMMA);
      arithmetic_expression();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case COMMA:
        jj_consume_token(COMMA);
        arithmetic_expression();
        break;
      default:
        jj_la1[127] = jj_gen;
        ;
      }
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void trim() throws ParseException {
                     /*@bgen(jjtree) TRIM */
  SimpleNode jjtn000 = new SimpleNode(this, JJTTRIM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(TRIM);
      jj_consume_token(102);
      if (jj_2_146(2)) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case LEADING:
        case TRAILING:
        case BOTH:
          trim_specification();
          break;
        default:
          jj_la1[128] = jj_gen;
          ;
        }
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case STRING_LITERAL:
          trim_character();
          break;
        default:
          jj_la1[129] = jj_gen;
          ;
        }
        jj_consume_token(FROM);
      } else {
        ;
      }
      string_expression();
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void lower() throws ParseException {
                       /*@bgen(jjtree) LOWER */
  SimpleNode jjtn000 = new SimpleNode(this, JJTLOWER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(LOWER);
      jj_consume_token(102);
      string_expression();
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void upper() throws ParseException {
                       /*@bgen(jjtree) UPPER */
  SimpleNode jjtn000 = new SimpleNode(this, JJTUPPER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(UPPER);
      jj_consume_token(102);
      string_expression();
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void trim_specification() throws ParseException {
    if (jj_2_147(2)) {
                        SimpleNode jjtn001 = new SimpleNode(this, JJTTRIMLEADING);
                        boolean jjtc001 = true;
                        jjtree.openNodeScope(jjtn001);
      try {
        jj_consume_token(LEADING);
      } finally {
                        if (jjtc001) {
                          jjtree.closeNodeScope(jjtn001, true);
                        }
      }
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case TRAILING:
                                                   SimpleNode jjtn002 = new SimpleNode(this, JJTTRIMTRAILING);
                                                   boolean jjtc002 = true;
                                                   jjtree.openNodeScope(jjtn002);
        try {
          jj_consume_token(TRAILING);
        } finally {
                                                   if (jjtc002) {
                                                     jjtree.closeNodeScope(jjtn002, true);
                                                   }
        }
        break;
      case BOTH:
                                                                                SimpleNode jjtn003 = new SimpleNode(this, JJTTRIMBOTH);
                                                                                boolean jjtc003 = true;
                                                                                jjtree.openNodeScope(jjtn003);
        try {
          jj_consume_token(BOTH);
        } finally {
                                                                                if (jjtc003) {
                                                                                  jjtree.closeNodeScope(jjtn003, true);
                                                                                }
        }
        break;
      default:
        jj_la1[130] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void functions_returning_numerics() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case LENGTH:
      length();
      break;
    case LOCATE:
      locate();
      break;
    case ABS:
      abs();
      break;
    case SQRT:
      sqrt();
      break;
    case MOD:
      mod();
      break;
    case SIZE:
      size();
      break;
    case INDEX:
      index();
      break;
    default:
      jj_la1[131] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void length() throws ParseException {
                         /*@bgen(jjtree) LENGTH */
  SimpleNode jjtn000 = new SimpleNode(this, JJTLENGTH);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(LENGTH);
      jj_consume_token(102);
      string_expression();
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void locate() throws ParseException {
                         /*@bgen(jjtree) LOCATE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTLOCATE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(LOCATE);
      jj_consume_token(102);
      string_expression();
      jj_consume_token(COMMA);
      string_expression();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case COMMA:
        jj_consume_token(COMMA);
        arithmetic_expression();
        break;
      default:
        jj_la1[132] = jj_gen;
        ;
      }
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void abs() throws ParseException {
                   /*@bgen(jjtree) ABS */
  SimpleNode jjtn000 = new SimpleNode(this, JJTABS);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(ABS);
      jj_consume_token(102);
      arithmetic_expression();
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void sqrt() throws ParseException {
                     /*@bgen(jjtree) SQRT */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSQRT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(SQRT);
      jj_consume_token(102);
      arithmetic_expression();
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void mod() throws ParseException {
                   /*@bgen(jjtree) MOD */
  SimpleNode jjtn000 = new SimpleNode(this, JJTMOD);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(MOD);
      jj_consume_token(102);
      arithmetic_expression();
      jj_consume_token(COMMA);
      arithmetic_expression();
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void size() throws ParseException {
                     /*@bgen(jjtree) SIZE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSIZE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(SIZE);
      jj_consume_token(102);
      if (jj_2_148(2147483647)) {
        path();
      } else if (jj_2_149(2147483647)) {
        qualified_path();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(103);
    } 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);
          }
    }
  }

  final public void index() throws ParseException {
                       /*@bgen(jjtree) INDEX */
  SimpleNode jjtn000 = new SimpleNode(this, JJTINDEX);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(INDEX);
      jj_consume_token(102);
      identification_variable();
      jj_consume_token(103);
    } 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);
      }
    }
  }

  final public void functions_returning_datetime() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case CURRENT_DATE:
           SimpleNode jjtn001 = new SimpleNode(this, JJTCURRENTDATE);
           boolean jjtc001 = true;
           jjtree.openNodeScope(jjtn001);
      try {
        jj_consume_token(CURRENT_DATE);
      } finally {
           if (jjtc001) {
             jjtree.closeNodeScope(jjtn001, true);
           }
      }
      break;
    case CURRENT_TIME:
             SimpleNode jjtn002 = new SimpleNode(this, JJTCURRENTTIME);
             boolean jjtc002 = true;
             jjtree.openNodeScope(jjtn002);
      try {
        jj_consume_token(CURRENT_TIME);
      } finally {
             if (jjtc002) {
               jjtree.closeNodeScope(jjtn002, true);
             }
      }
      break;
    case CURRENT_TIMESTAMP:
             SimpleNode jjtn003 = new SimpleNode(this, JJTCURRENTTIMESTAMP);
             boolean jjtc003 = true;
             jjtree.openNodeScope(jjtn003);
      try {
        jj_consume_token(CURRENT_TIMESTAMP);
      } finally {
             if (jjtc003) {
               jjtree.closeNodeScope(jjtn003, true);
             }
      }
      break;
    default:
      jj_la1[133] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void orderby_clause() throws ParseException {
                                  /*@bgen(jjtree) ORDERBY */
  SimpleNode jjtn000 = new SimpleNode(this, JJTORDERBY);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(ORDER);
      jj_consume_token(BY);
      orderby_item();
      label_21:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case COMMA:
          ;
          break;
        default:
          jj_la1[134] = jj_gen;
          break label_21;
        }
        jj_consume_token(COMMA);
        orderby_item();
      }
    } 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);
          }
    }
  }

  final public void orderby_item() throws ParseException {
                                    /*@bgen(jjtree) ORDERBYITEM */
  SimpleNode jjtn000 = new SimpleNode(this, JJTORDERBYITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      if (jj_2_150(2147483647)) {
        path();
      } else if (jj_2_151(2147483647)) {
        qualified_path();
      } else if (jj_2_152(2147483647)) {
        general_identification_variable();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case AVG:
        case MIN:
        case MAX:
        case SUM:
        case COUNT:
          orderby_extension();
          break;
        case IDENTIFIER:
          identification_variable();
          break;
        default:
          jj_la1[135] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case ASC:
      case DESC:
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case ASC:
                SimpleNode jjtn001 = new SimpleNode(this, JJTASCENDING);
                boolean jjtc001 = true;
                jjtree.openNodeScope(jjtn001);
          try {
            jj_consume_token(ASC);
          } finally {
                if (jjtc001) {
                  jjtree.closeNodeScope(jjtn001, true);
                }
          }
          break;
        case DESC:
                                   SimpleNode jjtn002 = new SimpleNode(this, JJTDESCENDING);
                                   boolean jjtc002 = true;
                                   jjtree.openNodeScope(jjtn002);
          try {
            jj_consume_token(DESC);
          } finally {
                                   if (jjtc002) {
                                     jjtree.closeNodeScope(jjtn002, true);
                                   }
          }
          break;
        default:
          jj_la1[136] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
      default:
        jj_la1[137] = jj_gen;
        ;
      }
    } 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);
          }
    }
  }

  final public void orderby_extension() throws ParseException {
                                              /*@bgen(jjtree) ORDERBYEXTENSION */
  SimpleNode jjtn000 = new SimpleNode(this, JJTORDERBYEXTENSION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      aggregate_select_expression();
    } 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);
      }
    }
  }

  final public void abstract_schema_name() throws ParseException {
                                                   /*@bgen(jjtree) ABSTRACTSCHEMANAME */
  SimpleNode jjtn000 = new SimpleNode(this, JJTABSTRACTSCHEMANAME);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      path_component();
      label_22:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case DOT:
          ;
          break;
        default:
          jj_la1[138] = jj_gen;
          break label_22;
        }
        jj_consume_token(DOT);
        path_component();
      }
    } 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);
          }
    }
  }

  final public void tok() throws ParseException {
 /*@bgen(jjtree) TOK */
  SimpleNode jjtn000 = new SimpleNode(this, JJTTOK);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      t = jj_consume_token(IDENTIFIER);
                           jjtree.closeNodeScope(jjtn000, true);
                           jjtc000 = false;
                           jjtn000.setToken (t);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void identification_variable() throws ParseException {
 /*@bgen(jjtree) IDENTIFIER */
  SimpleNode jjtn000 = new SimpleNode(this, JJTIDENTIFIER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      t = jj_consume_token(IDENTIFIER);
                           jjtree.closeNodeScope(jjtn000, true);
                           jjtc000 = false;
                           jjtn000.setToken (t);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void path_component() throws ParseException {
 /*@bgen(jjtree) IDENTIFICATIONVARIABLE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTIDENTIFICATIONVARIABLE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case NEW:
        t = jj_consume_token(NEW);
        break;
      case ALL:
        t = jj_consume_token(ALL);
        break;
      case ANY:
        t = jj_consume_token(ANY);
        break;
      case EXISTS:
        t = jj_consume_token(EXISTS);
        break;
      case SOME:
        t = jj_consume_token(SOME);
        break;
      case EMPTY:
        t = jj_consume_token(EMPTY);
        break;
      case ASC:
        t = jj_consume_token(ASC);
        break;
      case DESC:
        t = jj_consume_token(DESC);
        break;
      case ORDER:
        t = jj_consume_token(ORDER);
        break;
      case IS:
        t = jj_consume_token(IS);
        break;
      case MEMBER:
        t = jj_consume_token(MEMBER);
        break;
      case OF:
        t = jj_consume_token(OF);
        break;
      case LIKE:
        t = jj_consume_token(LIKE);
        break;
      case ESCAPE:
        t = jj_consume_token(ESCAPE);
        break;
      case BETWEEN:
        t = jj_consume_token(BETWEEN);
        break;
      case NULL:
        t = jj_consume_token(NULL);
        break;
      case AVG:
        t = jj_consume_token(AVG);
        break;
      case MIN:
        t = jj_consume_token(MIN);
        break;
      case MAX:
        t = jj_consume_token(MAX);
        break;
      case SUM:
        t = jj_consume_token(SUM);
        break;
      case COUNT:
        t = jj_consume_token(COUNT);
        break;
      case OR:
        t = jj_consume_token(OR);
        break;
      case AND:
        t = jj_consume_token(AND);
        break;
      case NOT:
        t = jj_consume_token(NOT);
        break;
      case CONCAT:
        t = jj_consume_token(CONCAT);
        break;
      case SUBSTRING:
        t = jj_consume_token(SUBSTRING);
        break;
      case TRIM:
        t = jj_consume_token(TRIM);
        break;
      case LOWER:
        t = jj_consume_token(LOWER);
        break;
      case UPPER:
        t = jj_consume_token(UPPER);
        break;
      case LEADING:
        t = jj_consume_token(LEADING);
        break;
      case TRAILING:
        t = jj_consume_token(TRAILING);
        break;
      case BOTH:
        t = jj_consume_token(BOTH);
        break;
      case LENGTH:
        t = jj_consume_token(LENGTH);
        break;
      case LOCATE:
        t = jj_consume_token(LOCATE);
        break;
      case ABS:
        t = jj_consume_token(ABS);
        break;
      case SQRT:
        t = jj_consume_token(SQRT);
        break;
      case MOD:
        t = jj_consume_token(MOD);
        break;
      case SIZE:
        t = jj_consume_token(SIZE);
        break;
      case CURRENT_DATE:
        t = jj_consume_token(CURRENT_DATE);
        break;
      case CURRENT_TIME:
        t = jj_consume_token(CURRENT_TIME);
        break;
      case CURRENT_TIMESTAMP:
        t = jj_consume_token(CURRENT_TIMESTAMP);
        break;
      case SELECT:
        t = jj_consume_token(SELECT);
        break;
      case DISTINCT:
        t = jj_consume_token(DISTINCT);
        break;
      case FROM:
        t = jj_consume_token(FROM);
        break;
      case UPDATE:
        t = jj_consume_token(UPDATE);
        break;
      case DELETE:
        t = jj_consume_token(DELETE);
        break;
      case WHERE:
        t = jj_consume_token(WHERE);
        break;
      case GROUP:
        t = jj_consume_token(GROUP);
        break;
      case BY:
        t = jj_consume_token(BY);
        break;
      case HAVING:
        t = jj_consume_token(HAVING);
        break;
      case AS:
        t = jj_consume_token(AS);
        break;
      case LEFT:
        t = jj_consume_token(LEFT);
        break;
      case OUTER:
        t = jj_consume_token(OUTER);
        break;
      case INNER:
        t = jj_consume_token(INNER);
        break;
      case JOIN:
        t = jj_consume_token(JOIN);
        break;
      case FETCH:
        t = jj_consume_token(FETCH);
        break;
      case IN:
        t = jj_consume_token(IN);
        break;
      case SET:
        t = jj_consume_token(SET);
        break;
      case OBJECT:
        t = jj_consume_token(OBJECT);
        break;
      case IDENTIFIER:
        t = jj_consume_token(IDENTIFIER);
        break;
      case CASE:
        t = jj_consume_token(CASE);
        break;
      case COALESCE:
        t = jj_consume_token(COALESCE);
        break;
      case NULLIF:
        t = jj_consume_token(NULLIF);
        break;
      case WHEN:
        t = jj_consume_token(WHEN);
        break;
      case THEN:
        t = jj_consume_token(THEN);
        break;
      case ELSE:
        t = jj_consume_token(ELSE);
        break;
      case END:
        t = jj_consume_token(END);
        break;
      case KEY:
        t = jj_consume_token(KEY);
        break;
      case VALUE:
        t = jj_consume_token(VALUE);
        break;
      case ENTRY:
        t = jj_consume_token(ENTRY);
        break;
      case INDEX:
        t = jj_consume_token(INDEX);
        break;
      case TYPE:
        t = jj_consume_token(TYPE);
        break;
      case CLASS:
        t = jj_consume_token(CLASS);
        break;
      default:
        jj_la1[139] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
        jjtree.closeNodeScope(jjtn000, true);
        jjtc000 = false;
        jjtn000.setToken (t);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void literal() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case PLUS:
    case MINUS:
    case INTEGER_LITERAL:
    case DECIMAL_LITERAL:
      numeric_literal();
      break;
    case BOOLEAN_LITERAL:
      boolean_literal();
      break;
    case STRING_LITERAL:
      string_literal();
      break;
    case STRING_LITERAL2:
      string_literal2();
      break;
    case IDENTIFIER:
      enum_literal();
      break;
    case DATE_LITERAL:
      date_literal();
      break;
    case TIME_LITERAL:
      time_literal();
      break;
    case TIMESTAMP_LITERAL:
      timestamp_literal();
      break;
    default:
      jj_la1[140] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void numeric_literal() throws ParseException {
    if (jj_2_153(2147483647)) {
      decimal_literal();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PLUS:
      case MINUS:
      case INTEGER_LITERAL:
        integer_literal();
        break;
      default:
        jj_la1[141] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void integer_literal() throws ParseException {
 /*@bgen(jjtree) INTEGERLITERAL */
  SimpleNode jjtn000 = new SimpleNode(this, JJTINTEGERLITERAL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PLUS:
      case MINUS:
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case PLUS:
          jj_consume_token(PLUS);
          break;
        case MINUS:
          negative();
          break;
        default:
          jj_la1[142] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
      default:
        jj_la1[143] = jj_gen;
        ;
      }
      t = jj_consume_token(INTEGER_LITERAL);
                                                      jjtree.closeNodeScope(jjtn000, true);
                                                      jjtc000 = false;
                                                      jjtn000.setToken (t);
    } 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);
          }
    }
  }

  final public void decimal_literal() throws ParseException {
 /*@bgen(jjtree) DECIMALLITERAL */
  SimpleNode jjtn000 = new SimpleNode(this, JJTDECIMALLITERAL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PLUS:
      case MINUS:
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case PLUS:
          jj_consume_token(PLUS);
          break;
        case MINUS:
          negative();
          break;
        default:
          jj_la1[144] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
      default:
        jj_la1[145] = jj_gen;
        ;
      }
      t = jj_consume_token(DECIMAL_LITERAL);
                                                       jjtree.closeNodeScope(jjtn000, true);
                                                       jjtc000 = false;
                                                       jjtn000.setToken (t);
    } 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);
           }
    }
  }

  final public void boolean_literal() throws ParseException {
 /*@bgen(jjtree) BOOLEANLITERAL */
  SimpleNode jjtn000 = new SimpleNode(this, JJTBOOLEANLITERAL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      t = jj_consume_token(BOOLEAN_LITERAL);
                                jjtree.closeNodeScope(jjtn000, true);
                                jjtc000 = false;
                                jjtn000.setToken (t);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void string_literal() throws ParseException {
 /*@bgen(jjtree) STRINGLITERAL */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSTRINGLITERAL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      t = jj_consume_token(STRING_LITERAL);
                               jjtree.closeNodeScope(jjtn000, true);
                               jjtc000 = false;
                               jjtn000.setToken (t);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void string_literal2() throws ParseException {
 /*@bgen(jjtree) STRINGLITERAL2 */
  SimpleNode jjtn000 = new SimpleNode(this, JJTSTRINGLITERAL2);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      t = jj_consume_token(STRING_LITERAL2);
                                jjtree.closeNodeScope(jjtn000, true);
                                jjtc000 = false;
                                jjtn000.setToken (t);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void date_literal() throws ParseException {
 /*@bgen(jjtree) DATELITERAL */
  SimpleNode jjtn000 = new SimpleNode(this, JJTDATELITERAL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      t = jj_consume_token(DATE_LITERAL);
                             jjtree.closeNodeScope(jjtn000, true);
                             jjtc000 = false;
                             jjtn000.setToken (t);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void time_literal() throws ParseException {
 /*@bgen(jjtree) TIMELITERAL */
  SimpleNode jjtn000 = new SimpleNode(this, JJTTIMELITERAL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      t = jj_consume_token(TIME_LITERAL);
                             jjtree.closeNodeScope(jjtn000, true);
                             jjtc000 = false;
                             jjtn000.setToken (t);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void timestamp_literal() throws ParseException {
 /*@bgen(jjtree) TIMESTAMPLITERAL */
  SimpleNode jjtn000 = new SimpleNode(this, JJTTIMESTAMPLITERAL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      t = jj_consume_token(TIMESTAMP_LITERAL);
                                  jjtree.closeNodeScope(jjtn000, true);
                                  jjtc000 = false;
                                  jjtn000.setToken (t);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void input_parameter() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 104:
      named_input_parameter();
      break;
    case 105:
      positional_input_parameter();
      break;
    default:
      jj_la1[146] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void collection_valued_input_parameter() throws ParseException {
                                                                /*@bgen(jjtree) COLLECTIONPARAMETER */
  SimpleNode jjtn000 = new SimpleNode(this, JJTCOLLECTIONPARAMETER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 104:
        named_input_parameter();
        break;
      case 105:
        positional_input_parameter();
        break;
      default:
        jj_la1[147] = 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);
          }
    }
  }

  final public void named_input_parameter() throws ParseException {
                                                     /*@bgen(jjtree) NAMEDINPUTPARAMETER */
  SimpleNode jjtn000 = new SimpleNode(this, JJTNAMEDINPUTPARAMETER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(104);
      path_component();
    } 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);
          }
    }
  }

  final public void positional_input_parameter() throws ParseException {
 /*@bgen(jjtree) POSITIONALINPUTPARAMETER */
  SimpleNode jjtn000 = new SimpleNode(this, JJTPOSITIONALINPUTPARAMETER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      jj_consume_token(105);
      t = jj_consume_token(INTEGER_LITERAL);
                                    jjtree.closeNodeScope(jjtn000, true);
                                    jjtc000 = false;
                                    jjtn000.setToken (t);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void pattern_value() throws ParseException {
                                      /*@bgen(jjtree) PATTERNVALUE */
  SimpleNode jjtn000 = new SimpleNode(this, JJTPATTERNVALUE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case 104:
      case 105:
        input_parameter();
        break;
      case STRING_LITERAL:
        string_literal();
        break;
      case STRING_LITERAL2:
        string_literal2();
        break;
      default:
        jj_la1[148] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case ESCAPE:
        jj_consume_token(ESCAPE);
                     SimpleNode jjtn001 = new SimpleNode(this, JJTESCAPECHARACTER);
                     boolean jjtc001 = true;
                     jjtree.openNodeScope(jjtn001);
        try {
          escape_character();
        } catch (Throwable jjte001) {
                     if (jjtc001) {
                       jjtree.clearNodeScope(jjtn001);
                       jjtc001 = false;
                     } else {
                       jjtree.popNode();
                     }
                     if (jjte001 instanceof RuntimeException) {
                       {if (true) throw (RuntimeException)jjte001;}
                     }
                     if (jjte001 instanceof ParseException) {
                       {if (true) throw (ParseException)jjte001;}
                     }
                     {if (true) throw (Error)jjte001;}
        } finally {
                     if (jjtc001) {
                       jjtree.closeNodeScope(jjtn001, true);
                     }
        }
        break;
      default:
        jj_la1[149] = jj_gen;
        ;
      }
    } 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);
          }
    }
  }

  final public void escape_character() throws ParseException {
 /*@bgen(jjtree) ESCAPECHARACTER */
  SimpleNode jjtn000 = new SimpleNode(this, JJTESCAPECHARACTER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      t = jj_consume_token(STRING_LITERAL);
                               jjtree.closeNodeScope(jjtn000, true);
                               jjtc000 = false;
                               jjtn000.setToken (t);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void trim_character() throws ParseException {
 /*@bgen(jjtree) TRIMCHARACTER */
  SimpleNode jjtn000 = new SimpleNode(this, JJTTRIMCHARACTER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);Token t;
    try {
      t = jj_consume_token(STRING_LITERAL);
                               jjtree.closeNodeScope(jjtn000, true);
                               jjtc000 = false;
                               jjtn000.setToken (t);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void EQ() throws ParseException {
                     /*@bgen(jjtree) EQUALS */
  SimpleNode jjtn000 = new SimpleNode(this, JJTEQUALS);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(EQ);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void NE() throws ParseException {
                        /*@bgen(jjtree) NOTEQUALS */
  SimpleNode jjtn000 = new SimpleNode(this, JJTNOTEQUALS);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(NE);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void GT() throws ParseException {
                          /*@bgen(jjtree) GREATERTHAN */
  SimpleNode jjtn000 = new SimpleNode(this, JJTGREATERTHAN);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(GT);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void GE() throws ParseException {
                             /*@bgen(jjtree) GREATEROREQUAL */
  SimpleNode jjtn000 = new SimpleNode(this, JJTGREATEROREQUAL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(GE);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void LT() throws ParseException {
                       /*@bgen(jjtree) LESSTHAN */
  SimpleNode jjtn000 = new SimpleNode(this, JJTLESSTHAN);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(LT);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  final public void LE() throws ParseException {
                          /*@bgen(jjtree) LESSOREQUAL */
  SimpleNode jjtn000 = new SimpleNode(this, JJTLESSOREQUAL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
    try {
      jj_consume_token(LE);
    } finally {
          if (jjtc000) {
            jjtree.closeNodeScope(jjtn000, true);
          }
    }
  }

  private boolean jj_2_1(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_1(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(0, xla); }
  }

  private boolean jj_2_2(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_2(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(1, xla); }
  }

  private boolean jj_2_3(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_3(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(2, xla); }
  }

  private boolean jj_2_4(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_4(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(3, xla); }
  }

  private boolean jj_2_5(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_5(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(4, xla); }
  }

  private boolean jj_2_6(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_6(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(5, xla); }
  }

  private boolean jj_2_7(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_7(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(6, xla); }
  }

  private boolean jj_2_8(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_8(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(7, xla); }
  }

  private boolean jj_2_9(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_9(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(8, xla); }
  }

  private boolean jj_2_10(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_10(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(9, xla); }
  }

  private boolean jj_2_11(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_11(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(10, xla); }
  }

  private boolean jj_2_12(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_12(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(11, xla); }
  }

  private boolean jj_2_13(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_13(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(12, xla); }
  }

  private boolean jj_2_14(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_14(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(13, xla); }
  }

  private boolean jj_2_15(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_15(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(14, xla); }
  }

  private boolean jj_2_16(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_16(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(15, xla); }
  }

  private boolean jj_2_17(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_17(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(16, xla); }
  }

  private boolean jj_2_18(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_18(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(17, xla); }
  }

  private boolean jj_2_19(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_19(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(18, xla); }
  }

  private boolean jj_2_20(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_20(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(19, xla); }
  }

  private boolean jj_2_21(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_21(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(20, xla); }
  }

  private boolean jj_2_22(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_22(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(21, xla); }
  }

  private boolean jj_2_23(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_23(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(22, xla); }
  }

  private boolean jj_2_24(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_24(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(23, xla); }
  }

  private boolean jj_2_25(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_25(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(24, xla); }
  }

  private boolean jj_2_26(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_26(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(25, xla); }
  }

  private boolean jj_2_27(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_27(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(26, xla); }
  }

  private boolean jj_2_28(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_28(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(27, xla); }
  }

  private boolean jj_2_29(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_29(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(28, xla); }
  }

  private boolean jj_2_30(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_30(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(29, xla); }
  }

  private boolean jj_2_31(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_31(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(30, xla); }
  }

  private boolean jj_2_32(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_32(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(31, xla); }
  }

  private boolean jj_2_33(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_33(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(32, xla); }
  }

  private boolean jj_2_34(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_34(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(33, xla); }
  }

  private boolean jj_2_35(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_35(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(34, xla); }
  }

  private boolean jj_2_36(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_36(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(35, xla); }
  }

  private boolean jj_2_37(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_37(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(36, xla); }
  }

  private boolean jj_2_38(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_38(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(37, xla); }
  }

  private boolean jj_2_39(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_39(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(38, xla); }
  }

  private boolean jj_2_40(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_40(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(39, xla); }
  }

  private boolean jj_2_41(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_41(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(40, xla); }
  }

  private boolean jj_2_42(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_42(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(41, xla); }
  }

  private boolean jj_2_43(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_43(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(42, xla); }
  }

  private boolean jj_2_44(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_44(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(43, xla); }
  }

  private boolean jj_2_45(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_45(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(44, xla); }
  }

  private boolean jj_2_46(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_46(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(45, xla); }
  }

  private boolean jj_2_47(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_47(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(46, xla); }
  }

  private boolean jj_2_48(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_48(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(47, xla); }
  }

  private boolean jj_2_49(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_49(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(48, xla); }
  }

  private boolean jj_2_50(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_50(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(49, xla); }
  }

  private boolean jj_2_51(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_51(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(50, xla); }
  }

  private boolean jj_2_52(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_52(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(51, xla); }
  }

  private boolean jj_2_53(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_53(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(52, xla); }
  }

  private boolean jj_2_54(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_54(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(53, xla); }
  }

  private boolean jj_2_55(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_55(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(54, xla); }
  }

  private boolean jj_2_56(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_56(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(55, xla); }
  }

  private boolean jj_2_57(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_57(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(56, xla); }
  }

  private boolean jj_2_58(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_58(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(57, xla); }
  }

  private boolean jj_2_59(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_59(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(58, xla); }
  }

  private boolean jj_2_60(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_60(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(59, xla); }
  }

  private boolean jj_2_61(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_61(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(60, xla); }
  }

  private boolean jj_2_62(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_62(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(61, xla); }
  }

  private boolean jj_2_63(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_63(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(62, xla); }
  }

  private boolean jj_2_64(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_64(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(63, xla); }
  }

  private boolean jj_2_65(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_65(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(64, xla); }
  }

  private boolean jj_2_66(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_66(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(65, xla); }
  }

  private boolean jj_2_67(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_67(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(66, xla); }
  }

  private boolean jj_2_68(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_68(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(67, xla); }
  }

  private boolean jj_2_69(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_69(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(68, xla); }
  }

  private boolean jj_2_70(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_70(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(69, xla); }
  }

  private boolean jj_2_71(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_71(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(70, xla); }
  }

  private boolean jj_2_72(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_72(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(71, xla); }
  }

  private boolean jj_2_73(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_73(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(72, xla); }
  }

  private boolean jj_2_74(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_74(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(73, xla); }
  }

  private boolean jj_2_75(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_75(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(74, xla); }
  }

  private boolean jj_2_76(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_76(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(75, xla); }
  }

  private boolean jj_2_77(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_77(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(76, xla); }
  }

  private boolean jj_2_78(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_78(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(77, xla); }
  }

  private boolean jj_2_79(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_79(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(78, xla); }
  }

  private boolean jj_2_80(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_80(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(79, xla); }
  }

  private boolean jj_2_81(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_81(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(80, xla); }
  }

  private boolean jj_2_82(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_82(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(81, xla); }
  }

  private boolean jj_2_83(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_83(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(82, xla); }
  }

  private boolean jj_2_84(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_84(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(83, xla); }
  }

  private boolean jj_2_85(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_85(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(84, xla); }
  }

  private boolean jj_2_86(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_86(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(85, xla); }
  }

  private boolean jj_2_87(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_87(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(86, xla); }
  }

  private boolean jj_2_88(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_88(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(87, xla); }
  }

  private boolean jj_2_89(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_89(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(88, xla); }
  }

  private boolean jj_2_90(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_90(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(89, xla); }
  }

  private boolean jj_2_91(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_91(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(90, xla); }
  }

  private boolean jj_2_92(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_92(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(91, xla); }
  }

  private boolean jj_2_93(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_93(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(92, xla); }
  }

  private boolean jj_2_94(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_94(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(93, xla); }
  }

  private boolean jj_2_95(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_95(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(94, xla); }
  }

  private boolean jj_2_96(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_96(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(95, xla); }
  }

  private boolean jj_2_97(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_97(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(96, xla); }
  }

  private boolean jj_2_98(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_98(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(97, xla); }
  }

  private boolean jj_2_99(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_99(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(98, xla); }
  }

  private boolean jj_2_100(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_100(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(99, xla); }
  }

  private boolean jj_2_101(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_101(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(100, xla); }
  }

  private boolean jj_2_102(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_102(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(101, xla); }
  }

  private boolean jj_2_103(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_103(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(102, xla); }
  }

  private boolean jj_2_104(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_104(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(103, xla); }
  }

  private boolean jj_2_105(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_105(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(104, xla); }
  }

  private boolean jj_2_106(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_106(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(105, xla); }
  }

  private boolean jj_2_107(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_107(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(106, xla); }
  }

  private boolean jj_2_108(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_108(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(107, xla); }
  }

  private boolean jj_2_109(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_109(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(108, xla); }
  }

  private boolean jj_2_110(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_110(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(109, xla); }
  }

  private boolean jj_2_111(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_111(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(110, xla); }
  }

  private boolean jj_2_112(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_112(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(111, xla); }
  }

  private boolean jj_2_113(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_113(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(112, xla); }
  }

  private boolean jj_2_114(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_114(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(113, xla); }
  }

  private boolean jj_2_115(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_115(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(114, xla); }
  }

  private boolean jj_2_116(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_116(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(115, xla); }
  }

  private boolean jj_2_117(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_117(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(116, xla); }
  }

  private boolean jj_2_118(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_118(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(117, xla); }
  }

  private boolean jj_2_119(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_119(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(118, xla); }
  }

  private boolean jj_2_120(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_120(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(119, xla); }
  }

  private boolean jj_2_121(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_121(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(120, xla); }
  }

  private boolean jj_2_122(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_122(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(121, xla); }
  }

  private boolean jj_2_123(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_123(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(122, xla); }
  }

  private boolean jj_2_124(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_124(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(123, xla); }
  }

  private boolean jj_2_125(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_125(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(124, xla); }
  }

  private boolean jj_2_126(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_126(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(125, xla); }
  }

  private boolean jj_2_127(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_127(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(126, xla); }
  }

  private boolean jj_2_128(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_128(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(127, xla); }
  }

  private boolean jj_2_129(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_129(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(128, xla); }
  }

  private boolean jj_2_130(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_130(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(129, xla); }
  }

  private boolean jj_2_131(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_131(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(130, xla); }
  }

  private boolean jj_2_132(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_132(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(131, xla); }
  }

  private boolean jj_2_133(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_133(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(132, xla); }
  }

  private boolean jj_2_134(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_134(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(133, xla); }
  }

  private boolean jj_2_135(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_135(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(134, xla); }
  }

  private boolean jj_2_136(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_136(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(135, xla); }
  }

  private boolean jj_2_137(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_137(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(136, xla); }
  }

  private boolean jj_2_138(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_138(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(137, xla); }
  }

  private boolean jj_2_139(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_139(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(138, xla); }
  }

  private boolean jj_2_140(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_140(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(139, xla); }
  }

  private boolean jj_2_141(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_141(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(140, xla); }
  }

  private boolean jj_2_142(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_142(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(141, xla); }
  }

  private boolean jj_2_143(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_143(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(142, xla); }
  }

  private boolean jj_2_144(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_144(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(143, xla); }
  }

  private boolean jj_2_145(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_145(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(144, xla); }
  }

  private boolean jj_2_146(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_146(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(145, xla); }
  }

  private boolean jj_2_147(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_147(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(146, xla); }
  }

  private boolean jj_2_148(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_148(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(147, xla); }
  }

  private boolean jj_2_149(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_149(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(148, xla); }
  }

  private boolean jj_2_150(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_150(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(149, xla); }
  }

  private boolean jj_2_151(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_151(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(150, xla); }
  }

  private boolean jj_2_152(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_152(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(151, xla); }
  }

  private boolean jj_2_153(int xla) {
    jj_la = xla; jj_lastpos = jj_scanpos = token;
    try { return !jj_3_153(); }
    catch(LookaheadSuccess ls) { return true; }
    finally { jj_save(152, xla); }
  }

  private boolean jj_3R_431() {
    if (jj_scan_token(STRING_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_435() {
    if (jj_3R_401()) return true;
    return false;
  }

  private boolean jj_3R_219() {
    if (jj_3R_304()) return true;
    return false;
  }

  private boolean jj_3R_322() {
    if (jj_scan_token(ESCAPE)) return true;
    if (jj_3R_431()) return true;
    return false;
  }

  private boolean jj_3R_269() {
    if (jj_3R_401()) return true;
    return false;
  }

  private boolean jj_3R_319() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3R_187() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_319()) {
    jj_scanpos = xsp;
    if (jj_3R_320()) {
    jj_scanpos = xsp;
    if (jj_3R_321()) return true;
    }
    }
    xsp = jj_scanpos;
    if (jj_3R_322()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_401() {
    if (jj_scan_token(105)) return true;
    if (jj_scan_token(INTEGER_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_400() {
    if (jj_scan_token(104)) return true;
    if (jj_3R_32()) return true;
    return false;
  }

  private boolean jj_3R_218() {
    if (jj_3R_84()) return true;
    return false;
  }

  private boolean jj_3R_434() {
    if (jj_3R_400()) return true;
    return false;
  }

  private boolean jj_3R_325() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_434()) {
    jj_scanpos = xsp;
    if (jj_3R_435()) return true;
    }
    return false;
  }

  private boolean jj_3R_80() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_268()) {
    jj_scanpos = xsp;
    if (jj_3R_269()) return true;
    }
    return false;
  }

  private boolean jj_3R_268() {
    if (jj_3R_400()) return true;
    return false;
  }

  private boolean jj_3R_306() {
    if (jj_scan_token(TIMESTAMP_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_217() {
    if (jj_3R_302()) return true;
    return false;
  }

  private boolean jj_3R_437() {
    if (jj_3R_467()) return true;
    return false;
  }

  private boolean jj_3R_305() {
    if (jj_scan_token(TIME_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_304() {
    if (jj_scan_token(DATE_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_302() {
    if (jj_scan_token(STRING_LITERAL2)) return true;
    return false;
  }

  private boolean jj_3R_216() {
    if (jj_3R_301()) return true;
    return false;
  }

  private boolean jj_3R_301() {
    if (jj_scan_token(STRING_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_406() {
    if (jj_3R_450()) return true;
    return false;
  }

  private boolean jj_3R_308() {
    if (jj_scan_token(BOOLEAN_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_480() {
    if (jj_3R_450()) return true;
    return false;
  }

  private boolean jj_3R_283() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(13)) {
    jj_scanpos = xsp;
    if (jj_3R_406()) return true;
    }
    return false;
  }

  private boolean jj_3R_87() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_283()) jj_scanpos = xsp;
    if (jj_scan_token(DECIMAL_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_215() {
    if (jj_3R_308()) return true;
    return false;
  }

  private boolean jj_3R_221() {
    if (jj_3R_306()) return true;
    return false;
  }

  private boolean jj_3_153() {
    if (jj_3R_87()) return true;
    return false;
  }

  private boolean jj_3R_479() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(13)) {
    jj_scanpos = xsp;
    if (jj_3R_480()) return true;
    }
    return false;
  }

  private boolean jj_3R_467() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_479()) jj_scanpos = xsp;
    if (jj_scan_token(INTEGER_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_436() {
    if (jj_3R_87()) return true;
    return false;
  }

  private boolean jj_3R_326() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_436()) {
    jj_scanpos = xsp;
    if (jj_3R_437()) return true;
    }
    return false;
  }

  private boolean jj_3R_220() {
    if (jj_3R_305()) return true;
    return false;
  }

  private boolean jj_3R_69() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_214()) {
    jj_scanpos = xsp;
    if (jj_3R_215()) {
    jj_scanpos = xsp;
    if (jj_3R_216()) {
    jj_scanpos = xsp;
    if (jj_3R_217()) {
    jj_scanpos = xsp;
    if (jj_3R_218()) {
    jj_scanpos = xsp;
    if (jj_3R_219()) {
    jj_scanpos = xsp;
    if (jj_3R_220()) {
    jj_scanpos = xsp;
    if (jj_3R_221()) return true;
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_214() {
    if (jj_3R_326()) return true;
    return false;
  }

  private boolean jj_3_151() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_32() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(17)) {
    jj_scanpos = xsp;
    if (jj_scan_token(18)) {
    jj_scanpos = xsp;
    if (jj_scan_token(19)) {
    jj_scanpos = xsp;
    if (jj_scan_token(20)) {
    jj_scanpos = xsp;
    if (jj_scan_token(21)) {
    jj_scanpos = xsp;
    if (jj_scan_token(22)) {
    jj_scanpos = xsp;
    if (jj_scan_token(23)) {
    jj_scanpos = xsp;
    if (jj_scan_token(24)) {
    jj_scanpos = xsp;
    if (jj_scan_token(25)) {
    jj_scanpos = xsp;
    if (jj_scan_token(27)) {
    jj_scanpos = xsp;
    if (jj_scan_token(28)) {
    jj_scanpos = xsp;
    if (jj_scan_token(29)) {
    jj_scanpos = xsp;
    if (jj_scan_token(30)) {
    jj_scanpos = xsp;
    if (jj_scan_token(31)) {
    jj_scanpos = xsp;
    if (jj_scan_token(32)) {
    jj_scanpos = xsp;
    if (jj_scan_token(33)) {
    jj_scanpos = xsp;
    if (jj_scan_token(38)) {
    jj_scanpos = xsp;
    if (jj_scan_token(39)) {
    jj_scanpos = xsp;
    if (jj_scan_token(40)) {
    jj_scanpos = xsp;
    if (jj_scan_token(41)) {
    jj_scanpos = xsp;
    if (jj_scan_token(42)) {
    jj_scanpos = xsp;
    if (jj_scan_token(43)) {
    jj_scanpos = xsp;
    if (jj_scan_token(44)) {
    jj_scanpos = xsp;
    if (jj_scan_token(45)) {
    jj_scanpos = xsp;
    if (jj_scan_token(46)) {
    jj_scanpos = xsp;
    if (jj_scan_token(47)) {
    jj_scanpos = xsp;
    if (jj_scan_token(48)) {
    jj_scanpos = xsp;
    if (jj_scan_token(49)) {
    jj_scanpos = xsp;
    if (jj_scan_token(50)) {
    jj_scanpos = xsp;
    if (jj_scan_token(51)) {
    jj_scanpos = xsp;
    if (jj_scan_token(52)) {
    jj_scanpos = xsp;
    if (jj_scan_token(53)) {
    jj_scanpos = xsp;
    if (jj_scan_token(54)) {
    jj_scanpos = xsp;
    if (jj_scan_token(55)) {
    jj_scanpos = xsp;
    if (jj_scan_token(56)) {
    jj_scanpos = xsp;
    if (jj_scan_token(57)) {
    jj_scanpos = xsp;
    if (jj_scan_token(58)) {
    jj_scanpos = xsp;
    if (jj_scan_token(59)) {
    jj_scanpos = xsp;
    if (jj_scan_token(61)) {
    jj_scanpos = xsp;
    if (jj_scan_token(62)) {
    jj_scanpos = xsp;
    if (jj_scan_token(63)) {
    jj_scanpos = xsp;
    if (jj_scan_token(64)) {
    jj_scanpos = xsp;
    if (jj_scan_token(65)) {
    jj_scanpos = xsp;
    if (jj_scan_token(66)) {
    jj_scanpos = xsp;
    if (jj_scan_token(67)) {
    jj_scanpos = xsp;
    if (jj_scan_token(68)) {
    jj_scanpos = xsp;
    if (jj_scan_token(69)) {
    jj_scanpos = xsp;
    if (jj_scan_token(70)) {
    jj_scanpos = xsp;
    if (jj_scan_token(26)) {
    jj_scanpos = xsp;
    if (jj_scan_token(71)) {
    jj_scanpos = xsp;
    if (jj_scan_token(72)) {
    jj_scanpos = xsp;
    if (jj_scan_token(73)) {
    jj_scanpos = xsp;
    if (jj_scan_token(74)) {
    jj_scanpos = xsp;
    if (jj_scan_token(75)) {
    jj_scanpos = xsp;
    if (jj_scan_token(76)) {
    jj_scanpos = xsp;
    if (jj_scan_token(77)) {
    jj_scanpos = xsp;
    if (jj_scan_token(78)) {
    jj_scanpos = xsp;
    if (jj_scan_token(79)) {
    jj_scanpos = xsp;
    if (jj_scan_token(80)) {
    jj_scanpos = xsp;
    if (jj_scan_token(99)) {
    jj_scanpos = xsp;
    if (jj_scan_token(81)) {
    jj_scanpos = xsp;
    if (jj_scan_token(87)) {
    jj_scanpos = xsp;
    if (jj_scan_token(86)) {
    jj_scanpos = xsp;
    if (jj_scan_token(82)) {
    jj_scanpos = xsp;
    if (jj_scan_token(84)) {
    jj_scanpos = xsp;
    if (jj_scan_token(83)) {
    jj_scanpos = xsp;
    if (jj_scan_token(85)) {
    jj_scanpos = xsp;
    if (jj_scan_token(34)) {
    jj_scanpos = xsp;
    if (jj_scan_token(35)) {
    jj_scanpos = xsp;
    if (jj_scan_token(37)) {
    jj_scanpos = xsp;
    if (jj_scan_token(60)) {
    jj_scanpos = xsp;
    if (jj_scan_token(36)) {
    jj_scanpos = xsp;
    if (jj_scan_token(88)) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_407() {
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_32()) return true;
    return false;
  }

  private boolean jj_3R_28() {
    if (jj_scan_token(IDENTIFIER)) return true;
    return false;
  }

  private boolean jj_3R_284() {
    if (jj_3R_32()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_407()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3_152() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3_150() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3_148() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_405() {
    if (jj_scan_token(BOTH)) return true;
    return false;
  }

  private boolean jj_3_149() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_429() {
    if (jj_scan_token(CURRENT_TIMESTAMP)) return true;
    return false;
  }

  private boolean jj_3R_428() {
    if (jj_scan_token(CURRENT_TIME)) return true;
    return false;
  }

  private boolean jj_3R_262() {
    if (jj_3R_395()) return true;
    return false;
  }

  private boolean jj_3R_440() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_427() {
    if (jj_scan_token(CURRENT_DATE)) return true;
    return false;
  }

  private boolean jj_3R_307() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_427()) {
    jj_scanpos = xsp;
    if (jj_3R_428()) {
    jj_scanpos = xsp;
    if (jj_3R_429()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_441() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_261() {
    if (jj_3R_394()) return true;
    return false;
  }

  private boolean jj_3R_395() {
    if (jj_scan_token(INDEX)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_28()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_394() {
    if (jj_scan_token(SIZE)) return true;
    if (jj_scan_token(102)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_440()) {
    jj_scanpos = xsp;
    if (jj_3R_441()) return true;
    }
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_260() {
    if (jj_3R_393()) return true;
    return false;
  }

  private boolean jj_3R_478() {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_393() {
    if (jj_scan_token(MOD)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_34()) return true;
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_34()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_404() {
    if (jj_scan_token(TRAILING)) return true;
    return false;
  }

  private boolean jj_3R_259() {
    if (jj_3R_392()) return true;
    return false;
  }

  private boolean jj_3R_392() {
    if (jj_scan_token(SQRT)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_34()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_477() {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_65()) return true;
    return false;
  }

  private boolean jj_3R_439() {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_86() {
    if (jj_3R_282()) return true;
    return false;
  }

  private boolean jj_3R_258() {
    if (jj_3R_391()) return true;
    return false;
  }

  private boolean jj_3R_391() {
    if (jj_scan_token(ABS)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_34()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_390() {
    if (jj_scan_token(LOCATE)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_65()) return true;
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_65()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_439()) jj_scanpos = xsp;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_257() {
    if (jj_3R_390()) return true;
    return false;
  }

  private boolean jj_3R_389() {
    if (jj_scan_token(LENGTH)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_65()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_426() {
    if (jj_3R_455()) return true;
    return false;
  }

  private boolean jj_3R_78() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_256()) {
    jj_scanpos = xsp;
    if (jj_3R_257()) {
    jj_scanpos = xsp;
    if (jj_3R_258()) {
    jj_scanpos = xsp;
    if (jj_3R_259()) {
    jj_scanpos = xsp;
    if (jj_3R_260()) {
    jj_scanpos = xsp;
    if (jj_3R_261()) {
    jj_scanpos = xsp;
    if (jj_3R_262()) return true;
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_256() {
    if (jj_3R_389()) return true;
    return false;
  }

  private boolean jj_3R_85() {
    if (jj_3R_281()) return true;
    return false;
  }

  private boolean jj_3_147() {
    if (jj_scan_token(LEADING)) return true;
    return false;
  }

  private boolean jj_3R_281() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_147()) {
    jj_scanpos = xsp;
    if (jj_3R_404()) {
    jj_scanpos = xsp;
    if (jj_3R_405()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_425() {
    if (jj_3R_454()) return true;
    return false;
  }

  private boolean jj_3R_455() {
    if (jj_scan_token(UPPER)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_65()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3_146() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_85()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_86()) jj_scanpos = xsp;
    if (jj_scan_token(FROM)) return true;
    return false;
  }

  private boolean jj_3R_454() {
    if (jj_scan_token(LOWER)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_65()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_424() {
    if (jj_3R_453()) return true;
    return false;
  }

  private boolean jj_3R_453() {
    if (jj_scan_token(TRIM)) return true;
    if (jj_scan_token(102)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_146()) jj_scanpos = xsp;
    if (jj_3R_65()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_376() {
    if (jj_3R_438()) return true;
    return false;
  }

  private boolean jj_3R_452() {
    if (jj_scan_token(SUBSTRING)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_65()) return true;
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_34()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_478()) jj_scanpos = xsp;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_423() {
    if (jj_3R_452()) return true;
    return false;
  }

  private boolean jj_3R_118() {
    if (jj_3R_41()) return true;
    return false;
  }

  private boolean jj_3R_451() {
    if (jj_scan_token(CONCAT)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_65()) return true;
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_65()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_477()) jj_scanpos = xsp;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_422() {
    if (jj_3R_451()) return true;
    return false;
  }

  private boolean jj_3_145() {
    if (jj_3R_32()) return true;
    return false;
  }

  private boolean jj_3R_303() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_422()) {
    jj_scanpos = xsp;
    if (jj_3R_423()) {
    jj_scanpos = xsp;
    if (jj_3R_424()) {
    jj_scanpos = xsp;
    if (jj_3R_425()) {
    jj_scanpos = xsp;
    if (jj_3R_426()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3_144() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_125() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3_143() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_375() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3R_246() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_375()) {
    jj_scanpos = xsp;
    if (jj_3R_376()) return true;
    }
    return false;
  }

  private boolean jj_3R_470() {
    if (jj_3R_32()) return true;
    return false;
  }

  private boolean jj_3R_469() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_117() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3R_468() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_438() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_468()) {
    jj_scanpos = xsp;
    if (jj_3R_469()) {
    jj_scanpos = xsp;
    if (jj_3R_470()) return true;
    }
    }
    return false;
  }

  private boolean jj_3_142() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_141() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3_140() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3_139() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3_138() {
    if (jj_3R_84()) return true;
    return false;
  }

  private boolean jj_3R_84() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_124() {
    if (jj_3R_308()) return true;
    return false;
  }

  private boolean jj_3R_358() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_79()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_135() {
    if (jj_3R_33()) return true;
    return false;
  }

  private boolean jj_3R_134() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_133() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3R_132() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_131() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3R_130() {
    if (jj_3R_84()) return true;
    return false;
  }

  private boolean jj_3R_38() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_137()) {
    jj_scanpos = xsp;
    if (jj_3R_130()) {
    jj_scanpos = xsp;
    if (jj_3R_131()) {
    jj_scanpos = xsp;
    if (jj_3R_132()) {
    jj_scanpos = xsp;
    if (jj_3R_133()) {
    jj_scanpos = xsp;
    if (jj_3R_134()) {
    jj_scanpos = xsp;
    if (jj_3R_135()) return true;
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3_137() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3_136() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_135() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3R_352() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_79()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3_134() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3_133() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_237() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_357()) {
    jj_scanpos = xsp;
    if (jj_3R_358()) return true;
    }
    return false;
  }

  private boolean jj_3R_357() {
    if (jj_3R_38()) return true;
    return false;
  }

  private boolean jj_3_123() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_114() {
    if (jj_3R_306()) return true;
    return false;
  }

  private boolean jj_3R_129() {
    if (jj_3R_33()) return true;
    return false;
  }

  private boolean jj_3_128() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_79()) return true;
    return false;
  }

  private boolean jj_3R_128() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_116() {
    if (jj_3R_307()) return true;
    return false;
  }

  private boolean jj_3R_127() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3R_126() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_123() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_37() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_123()) {
    jj_scanpos = xsp;
    if (jj_3R_124()) {
    jj_scanpos = xsp;
    if (jj_3R_125()) {
    jj_scanpos = xsp;
    if (jj_3R_126()) {
    jj_scanpos = xsp;
    if (jj_3R_127()) {
    jj_scanpos = xsp;
    if (jj_3R_128()) {
    jj_scanpos = xsp;
    if (jj_3R_129()) return true;
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_104() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_110() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_79()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_234() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_351()) {
    jj_scanpos = xsp;
    if (jj_3R_352()) return true;
    }
    return false;
  }

  private boolean jj_3R_351() {
    if (jj_3R_37()) return true;
    return false;
  }

  private boolean jj_3_132() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_131() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3R_213() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_79()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3_130() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_113() {
    if (jj_3R_305()) return true;
    return false;
  }

  private boolean jj_3_129() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_122() {
    if (jj_3R_33()) return true;
    return false;
  }

  private boolean jj_3R_121() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_120() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3R_119() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_115() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_103() {
    if (jj_3R_302()) return true;
    return false;
  }

  private boolean jj_3_119() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_112() {
    if (jj_3R_304()) return true;
    return false;
  }

  private boolean jj_3R_36() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_112()) {
    jj_scanpos = xsp;
    if (jj_3R_113()) {
    jj_scanpos = xsp;
    if (jj_3R_114()) {
    jj_scanpos = xsp;
    if (jj_3R_115()) {
    jj_scanpos = xsp;
    if (jj_3R_116()) {
    jj_scanpos = xsp;
    if (jj_3R_117()) {
    jj_scanpos = xsp;
    if (jj_3R_118()) {
    jj_scanpos = xsp;
    if (jj_3R_119()) {
    jj_scanpos = xsp;
    if (jj_3R_120()) {
    jj_scanpos = xsp;
    if (jj_3R_121()) {
    jj_scanpos = xsp;
    if (jj_3R_122()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3_127() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_65()) return true;
    return false;
  }

  private boolean jj_3R_211() {
    if (jj_3R_35()) return true;
    return false;
  }

  private boolean jj_3_126() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_67() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_212()) {
    jj_scanpos = xsp;
    if (jj_3R_213()) return true;
    }
    return false;
  }

  private boolean jj_3_125() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3R_212() {
    if (jj_3R_36()) return true;
    return false;
  }

  private boolean jj_3_124() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_111() {
    if (jj_3R_33()) return true;
    return false;
  }

  private boolean jj_3R_273() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_109() {
    if (jj_3R_303()) return true;
    return false;
  }

  private boolean jj_3R_108() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_65()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_449() {
    if (jj_3R_381()) return true;
    return false;
  }

  private boolean jj_3R_107() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_448() {
    if (jj_3R_381()) return true;
    return false;
  }

  private boolean jj_3R_106() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3R_105() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_102() {
    if (jj_3R_301()) return true;
    return false;
  }

  private boolean jj_3R_35() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_102()) {
    jj_scanpos = xsp;
    if (jj_3R_103()) {
    jj_scanpos = xsp;
    if (jj_3R_104()) {
    jj_scanpos = xsp;
    if (jj_3R_105()) {
    jj_scanpos = xsp;
    if (jj_3R_106()) {
    jj_scanpos = xsp;
    if (jj_3R_107()) {
    jj_scanpos = xsp;
    if (jj_3R_108()) {
    jj_scanpos = xsp;
    if (jj_3R_109()) {
    jj_scanpos = xsp;
    if (jj_3R_110()) {
    jj_scanpos = xsp;
    if (jj_3R_111()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_275() {
    if (jj_3R_381()) return true;
    return false;
  }

  private boolean jj_3R_65() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_210()) {
    jj_scanpos = xsp;
    if (jj_3R_211()) return true;
    }
    return false;
  }

  private boolean jj_3R_210() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3R_408() {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_40()) return true;
    return false;
  }

  private boolean jj_3R_447() {
    if (jj_3R_381()) return true;
    return false;
  }

  private boolean jj_3R_450() {
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

  private boolean jj_3R_271() {
    if (jj_3R_381()) return true;
    return false;
  }

  private boolean jj_3R_296() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_40()) return true;
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_40()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3_122() {
    if (jj_3R_40()) return true;
    return false;
  }

  private boolean jj_3_121() {
    if (jj_3R_40()) return true;
    return false;
  }

  private boolean jj_3R_295() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_40()) return true;
    Token xsp;
    if (jj_3R_408()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_408()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3_118() {
    if (jj_3R_83()) return true;
    return false;
  }

  private boolean jj_3_120() {
    if (jj_3R_40()) return true;
    return false;
  }

  private boolean jj_3R_403() {
    if (jj_scan_token(WHEN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_121()) {
    jj_scanpos = xsp;
    if (jj_3R_448()) return true;
    }
    if (jj_scan_token(THEN)) return true;
    xsp = jj_scanpos;
    if (jj_3_122()) {
    jj_scanpos = xsp;
    if (jj_3R_449()) return true;
    }
    return false;
  }

  private boolean jj_3_117() {
    if (jj_3R_40()) return true;
    return false;
  }

  private boolean jj_3R_274() {
    if (jj_3R_403()) return true;
    return false;
  }

  private boolean jj_3R_272() {
    if (jj_3R_83()) return true;
    return false;
  }

  private boolean jj_3R_82() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_272()) {
    jj_scanpos = xsp;
    if (jj_3R_273()) return true;
    }
    if (jj_3R_274()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_274()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(ELSE)) return true;
    xsp = jj_scanpos;
    if (jj_3_120()) {
    jj_scanpos = xsp;
    if (jj_3R_275()) return true;
    }
    if (jj_scan_token(END)) return true;
    return false;
  }

  private boolean jj_3_114() {
    if (jj_3R_81()) return true;
    return false;
  }

  private boolean jj_3_116() {
    if (jj_3R_40()) return true;
    return false;
  }

  private boolean jj_3_115() {
    if (jj_3R_82()) return true;
    return false;
  }

  private boolean jj_3R_402() {
    if (jj_scan_token(WHEN)) return true;
    if (jj_3R_52()) return true;
    if (jj_scan_token(THEN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_117()) {
    jj_scanpos = xsp;
    if (jj_3R_447()) return true;
    }
    return false;
  }

  private boolean jj_3R_270() {
    if (jj_3R_402()) return true;
    return false;
  }

  private boolean jj_3R_293() {
    if (jj_3R_81()) return true;
    return false;
  }

  private boolean jj_3R_81() {
    Token xsp;
    if (jj_3R_270()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_270()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(ELSE)) return true;
    xsp = jj_scanpos;
    if (jj_3_116()) {
    jj_scanpos = xsp;
    if (jj_3R_271()) return true;
    }
    if (jj_scan_token(END)) return true;
    return false;
  }

  private boolean jj_3R_294() {
    if (jj_3R_82()) return true;
    return false;
  }

  private boolean jj_3R_385() {
    if (jj_3R_381()) return true;
    return false;
  }

  private boolean jj_3R_383() {
    if (jj_3R_381()) return true;
    return false;
  }

  private boolean jj_3R_99() {
    if (jj_scan_token(NULLIF)) return true;
    if (jj_3R_296()) return true;
    return false;
  }

  private boolean jj_3_113() {
    if (jj_3R_43()) return true;
    return false;
  }

  private boolean jj_3R_98() {
    if (jj_scan_token(COALESCE)) return true;
    if (jj_3R_295()) return true;
    return false;
  }

  private boolean jj_3R_97() {
    if (jj_scan_token(CASE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_293()) {
    jj_scanpos = xsp;
    if (jj_3R_294()) return true;
    }
    return false;
  }

  private boolean jj_3R_33() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_97()) {
    jj_scanpos = xsp;
    if (jj_3R_98()) {
    jj_scanpos = xsp;
    if (jj_3R_99()) return true;
    }
    }
    return false;
  }

  private boolean jj_3_112() {
    if (jj_3R_37()) return true;
    return false;
  }

  private boolean jj_3_111() {
    if (jj_3R_38()) return true;
    return false;
  }

  private boolean jj_3_110() {
    if (jj_3R_36()) return true;
    return false;
  }

  private boolean jj_3_109() {
    if (jj_3R_35()) return true;
    return false;
  }

  private boolean jj_3_106() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3_108() {
    if (jj_3R_33()) return true;
    return false;
  }

  private boolean jj_3_105() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_107() {
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3_104() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3_103() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_144() {
    if (jj_3R_43()) return true;
    return false;
  }

  private boolean jj_3_102() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_143() {
    if (jj_3R_37()) return true;
    return false;
  }

  private boolean jj_3R_142() {
    if (jj_3R_38()) return true;
    return false;
  }

  private boolean jj_3R_250() {
    if (jj_3R_381()) return true;
    return false;
  }

  private boolean jj_3R_141() {
    if (jj_3R_36()) return true;
    return false;
  }

  private boolean jj_3R_140() {
    if (jj_3R_35()) return true;
    return false;
  }

  private boolean jj_3R_139() {
    if (jj_3R_33()) return true;
    return false;
  }

  private boolean jj_3R_280() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3R_138() {
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_40() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_138()) {
    jj_scanpos = xsp;
    if (jj_3R_139()) {
    jj_scanpos = xsp;
    if (jj_3R_140()) {
    jj_scanpos = xsp;
    if (jj_3R_141()) {
    jj_scanpos = xsp;
    if (jj_3R_142()) {
    jj_scanpos = xsp;
    if (jj_3R_143()) {
    jj_scanpos = xsp;
    if (jj_3R_144()) return true;
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_279() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_278() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3R_277() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_276() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_154() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3R_153() {
    if (jj_3R_83()) return true;
    return false;
  }

  private boolean jj_3R_43() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_153()) {
    jj_scanpos = xsp;
    if (jj_3R_154()) return true;
    }
    return false;
  }

  private boolean jj_3R_384() {
    if (jj_3R_43()) return true;
    return false;
  }

  private boolean jj_3R_382() {
    if (jj_3R_43()) return true;
    return false;
  }

  private boolean jj_3R_83() {
    if (jj_scan_token(TYPE)) return true;
    if (jj_scan_token(102)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_276()) {
    jj_scanpos = xsp;
    if (jj_3R_277()) {
    jj_scanpos = xsp;
    if (jj_3R_278()) {
    jj_scanpos = xsp;
    if (jj_3R_279()) {
    jj_scanpos = xsp;
    if (jj_3R_280()) return true;
    }
    }
    }
    }
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_252() {
    if (jj_scan_token(NE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_384()) {
    jj_scanpos = xsp;
    if (jj_3R_385()) return true;
    }
    return false;
  }

  private boolean jj_3R_251() {
    if (jj_scan_token(EQ)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_382()) {
    jj_scanpos = xsp;
    if (jj_3R_383()) return true;
    }
    return false;
  }

  private boolean jj_3R_249() {
    if (jj_3R_43()) return true;
    return false;
  }

  private boolean jj_3R_76() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_249()) {
    jj_scanpos = xsp;
    if (jj_3R_250()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_251()) {
    jj_scanpos = xsp;
    if (jj_3R_252()) return true;
    }
    return false;
  }

  private boolean jj_3R_166() {
    if (jj_scan_token(VALUE)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_28()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_165() {
    if (jj_scan_token(KEY)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_28()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_48() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_165()) {
    jj_scanpos = xsp;
    if (jj_3R_166()) return true;
    }
    return false;
  }

  private boolean jj_3R_152() {
    if (jj_scan_token(ENTRY)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_28()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_151() {
    if (jj_scan_token(VALUE)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_28()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_150() {
    if (jj_scan_token(KEY)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_28()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3_100() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_79()) return true;
    return false;
  }

  private boolean jj_3R_42() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_150()) {
    jj_scanpos = xsp;
    if (jj_3R_151()) {
    jj_scanpos = xsp;
    if (jj_3R_152()) return true;
    }
    }
    return false;
  }

  private boolean jj_3_99() {
    if (jj_3R_33()) return true;
    return false;
  }

  private boolean jj_3_98() {
    if (jj_3R_41()) return true;
    return false;
  }

  private boolean jj_3_97() {
    if (jj_3R_78()) return true;
    return false;
  }

  private boolean jj_3_101() {
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_32()) return true;
    return false;
  }

  private boolean jj_3_96() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_96() {
    if (jj_scan_token(VALUE)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_28()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3_95() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_95() {
    if (jj_scan_token(KEY)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_28()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3_94() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3_93() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_31() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_95()) {
    jj_scanpos = xsp;
    if (jj_3R_96()) return true;
    }
    if (jj_3_101()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3_101()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3_92() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_419() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_79()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_418() {
    if (jj_3R_33()) return true;
    return false;
  }

  private boolean jj_3R_417() {
    if (jj_3R_41()) return true;
    return false;
  }

  private boolean jj_3R_416() {
    if (jj_3R_78()) return true;
    return false;
  }

  private boolean jj_3R_380() {
    if (jj_3R_246()) return true;
    return false;
  }

  private boolean jj_3R_415() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_34()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_414() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_421() {
    if (jj_scan_token(DIV)) return true;
    if (jj_3R_100()) return true;
    return false;
  }

  private boolean jj_3R_413() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3R_378() {
    if (jj_3R_246()) return true;
    return false;
  }

  private boolean jj_3R_412() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_420() {
    if (jj_scan_token(TIMES)) return true;
    if (jj_3R_100()) return true;
    return false;
  }

  private boolean jj_3R_411() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_298() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_420()) {
    jj_scanpos = xsp;
    if (jj_3R_421()) return true;
    }
    return false;
  }

  private boolean jj_3R_410() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3R_409() {
    if (jj_3R_326()) return true;
    return false;
  }

  private boolean jj_3R_297() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_409()) {
    jj_scanpos = xsp;
    if (jj_3R_410()) {
    jj_scanpos = xsp;
    if (jj_3R_411()) {
    jj_scanpos = xsp;
    if (jj_3R_412()) {
    jj_scanpos = xsp;
    if (jj_3R_413()) {
    jj_scanpos = xsp;
    if (jj_3R_414()) {
    jj_scanpos = xsp;
    if (jj_3R_415()) {
    jj_scanpos = xsp;
    if (jj_3R_416()) {
    jj_scanpos = xsp;
    if (jj_3R_417()) {
    jj_scanpos = xsp;
    if (jj_3R_418()) {
    jj_scanpos = xsp;
    if (jj_3R_419()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_374() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_372() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_300() {
    if (jj_scan_token(MINUS)) return true;
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_370() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_101() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_299()) {
    jj_scanpos = xsp;
    if (jj_3R_300()) return true;
    }
    return false;
  }

  private boolean jj_3R_299() {
    if (jj_scan_token(PLUS)) return true;
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_368() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_100() {
    if (jj_3R_297()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_298()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_366() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_364() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_338() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_336() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_34() {
    if (jj_3R_100()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_101()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_334() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_332() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_330() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_328() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_316() {
    if (jj_3R_303()) return true;
    return false;
  }

  private boolean jj_3R_373() {
    if (jj_3R_67()) return true;
    return false;
  }

  private boolean jj_3R_315() {
    if (jj_3R_307()) return true;
    return false;
  }

  private boolean jj_3R_371() {
    if (jj_3R_67()) return true;
    return false;
  }

  private boolean jj_3R_369() {
    if (jj_3R_67()) return true;
    return false;
  }

  private boolean jj_3R_367() {
    if (jj_3R_67()) return true;
    return false;
  }

  private boolean jj_3R_365() {
    if (jj_3R_67()) return true;
    return false;
  }

  private boolean jj_3R_155() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_314()) {
    jj_scanpos = xsp;
    if (jj_3R_315()) {
    jj_scanpos = xsp;
    if (jj_3R_316()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_245() {
    if (jj_scan_token(NE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_373()) {
    jj_scanpos = xsp;
    if (jj_3R_374()) return true;
    }
    return false;
  }

  private boolean jj_3R_314() {
    if (jj_3R_78()) return true;
    return false;
  }

  private boolean jj_3R_363() {
    if (jj_3R_67()) return true;
    return false;
  }

  private boolean jj_3R_244() {
    if (jj_scan_token(LE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_371()) {
    jj_scanpos = xsp;
    if (jj_3R_372()) return true;
    }
    return false;
  }

  private boolean jj_3R_243() {
    if (jj_scan_token(LT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_369()) {
    jj_scanpos = xsp;
    if (jj_3R_370()) return true;
    }
    return false;
  }

  private boolean jj_3R_242() {
    if (jj_scan_token(GE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_367()) {
    jj_scanpos = xsp;
    if (jj_3R_368()) return true;
    }
    return false;
  }

  private boolean jj_3R_241() {
    if (jj_scan_token(GT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_365()) {
    jj_scanpos = xsp;
    if (jj_3R_366()) return true;
    }
    return false;
  }

  private boolean jj_3R_337() {
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_240() {
    if (jj_scan_token(EQ)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_363()) {
    jj_scanpos = xsp;
    if (jj_3R_364()) return true;
    }
    return false;
  }

  private boolean jj_3R_335() {
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_74() {
    if (jj_3R_67()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_240()) {
    jj_scanpos = xsp;
    if (jj_3R_241()) {
    jj_scanpos = xsp;
    if (jj_3R_242()) {
    jj_scanpos = xsp;
    if (jj_3R_243()) {
    jj_scanpos = xsp;
    if (jj_3R_244()) {
    jj_scanpos = xsp;
    if (jj_3R_245()) return true;
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_333() {
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_362() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3_91() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_331() {
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_329() {
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_360() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3_90() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_227() {
    if (jj_scan_token(NE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_337()) {
    jj_scanpos = xsp;
    if (jj_3R_338()) return true;
    }
    return false;
  }

  private boolean jj_3R_327() {
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_356() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_226() {
    if (jj_scan_token(LE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_335()) {
    jj_scanpos = xsp;
    if (jj_3R_336()) return true;
    }
    return false;
  }

  private boolean jj_3R_225() {
    if (jj_scan_token(LT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_333()) {
    jj_scanpos = xsp;
    if (jj_3R_334()) return true;
    }
    return false;
  }

  private boolean jj_3R_350() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_224() {
    if (jj_scan_token(GE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_331()) {
    jj_scanpos = xsp;
    if (jj_3R_332()) return true;
    }
    return false;
  }

  private boolean jj_3R_348() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_354() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_223() {
    if (jj_scan_token(GT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_329()) {
    jj_scanpos = xsp;
    if (jj_3R_330()) return true;
    }
    return false;
  }

  private boolean jj_3R_346() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_344() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_379() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_222() {
    if (jj_scan_token(EQ)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_327()) {
    jj_scanpos = xsp;
    if (jj_3R_328()) return true;
    }
    return false;
  }

  private boolean jj_3R_70() {
    if (jj_3R_34()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_222()) {
    jj_scanpos = xsp;
    if (jj_3R_223()) {
    jj_scanpos = xsp;
    if (jj_3R_224()) {
    jj_scanpos = xsp;
    if (jj_3R_225()) {
    jj_scanpos = xsp;
    if (jj_3R_226()) {
    jj_scanpos = xsp;
    if (jj_3R_227()) return true;
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_342() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_377() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_340() {
    if (jj_3R_77()) return true;
    return false;
  }

  private boolean jj_3R_248() {
    if (jj_scan_token(NE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_379()) {
    jj_scanpos = xsp;
    if (jj_3R_380()) return true;
    }
    return false;
  }

  private boolean jj_3R_361() {
    if (jj_3R_237()) return true;
    return false;
  }

  private boolean jj_3R_247() {
    if (jj_scan_token(EQ)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_377()) {
    jj_scanpos = xsp;
    if (jj_3R_378()) return true;
    }
    return false;
  }

  private boolean jj_3R_75() {
    if (jj_3R_246()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_247()) {
    jj_scanpos = xsp;
    if (jj_3R_248()) return true;
    }
    return false;
  }

  private boolean jj_3R_359() {
    if (jj_3R_237()) return true;
    return false;
  }

  private boolean jj_3R_206() {
    if (jj_3R_32()) return true;
    return false;
  }

  private boolean jj_3R_239() {
    if (jj_scan_token(NE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_361()) {
    jj_scanpos = xsp;
    if (jj_3R_362()) return true;
    }
    return false;
  }

  private boolean jj_3R_355() {
    if (jj_3R_234()) return true;
    return false;
  }

  private boolean jj_3R_349() {
    if (jj_3R_65()) return true;
    return false;
  }

  private boolean jj_3R_238() {
    if (jj_scan_token(EQ)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_359()) {
    jj_scanpos = xsp;
    if (jj_3R_360()) return true;
    }
    return false;
  }

  private boolean jj_3R_347() {
    if (jj_3R_65()) return true;
    return false;
  }

  private boolean jj_3R_73() {
    if (jj_3R_237()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_238()) {
    jj_scanpos = xsp;
    if (jj_3R_239()) return true;
    }
    return false;
  }

  private boolean jj_3R_345() {
    if (jj_3R_65()) return true;
    return false;
  }

  private boolean jj_3R_353() {
    if (jj_3R_234()) return true;
    return false;
  }

  private boolean jj_3R_343() {
    if (jj_3R_65()) return true;
    return false;
  }

  private boolean jj_3R_341() {
    if (jj_3R_65()) return true;
    return false;
  }

  private boolean jj_3R_236() {
    if (jj_scan_token(NE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_355()) {
    jj_scanpos = xsp;
    if (jj_3R_356()) return true;
    }
    return false;
  }

  private boolean jj_3R_233() {
    if (jj_scan_token(LE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_349()) {
    jj_scanpos = xsp;
    if (jj_3R_350()) return true;
    }
    return false;
  }

  private boolean jj_3R_339() {
    if (jj_3R_65()) return true;
    return false;
  }

  private boolean jj_3R_232() {
    if (jj_scan_token(LT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_347()) {
    jj_scanpos = xsp;
    if (jj_3R_348()) return true;
    }
    return false;
  }

  private boolean jj_3R_231() {
    if (jj_scan_token(GE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_345()) {
    jj_scanpos = xsp;
    if (jj_3R_346()) return true;
    }
    return false;
  }

  private boolean jj_3R_235() {
    if (jj_scan_token(EQ)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_353()) {
    jj_scanpos = xsp;
    if (jj_3R_354()) return true;
    }
    return false;
  }

  private boolean jj_3R_72() {
    if (jj_3R_234()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_235()) {
    jj_scanpos = xsp;
    if (jj_3R_236()) return true;
    }
    return false;
  }

  private boolean jj_3R_230() {
    if (jj_scan_token(GT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_343()) {
    jj_scanpos = xsp;
    if (jj_3R_344()) return true;
    }
    return false;
  }

  private boolean jj_3R_229() {
    if (jj_scan_token(NE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_341()) {
    jj_scanpos = xsp;
    if (jj_3R_342()) return true;
    }
    return false;
  }

  private boolean jj_3R_228() {
    if (jj_scan_token(EQ)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_339()) {
    jj_scanpos = xsp;
    if (jj_3R_340()) return true;
    }
    return false;
  }

  private boolean jj_3_80() {
    if (jj_3R_69()) return true;
    return false;
  }

  private boolean jj_3_89() {
    if (jj_3R_76()) return true;
    return false;
  }

  private boolean jj_3_88() {
    if (jj_3R_75()) return true;
    return false;
  }

  private boolean jj_3_87() {
    if (jj_3R_74()) return true;
    return false;
  }

  private boolean jj_3_86() {
    if (jj_3R_73()) return true;
    return false;
  }

  private boolean jj_3R_71() {
    if (jj_3R_65()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_228()) {
    jj_scanpos = xsp;
    if (jj_3R_229()) {
    jj_scanpos = xsp;
    if (jj_3R_230()) {
    jj_scanpos = xsp;
    if (jj_3R_231()) {
    jj_scanpos = xsp;
    if (jj_3R_232()) {
    jj_scanpos = xsp;
    if (jj_3R_233()) return true;
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3_85() {
    if (jj_3R_72()) return true;
    return false;
  }

  private boolean jj_3R_255() {
    if (jj_3R_388()) return true;
    return false;
  }

  private boolean jj_3_84() {
    if (jj_3R_71()) return true;
    return false;
  }

  private boolean jj_3_83() {
    if (jj_3R_70()) return true;
    return false;
  }

  private boolean jj_3R_205() {
    if (jj_3R_69()) return true;
    return false;
  }

  private boolean jj_3R_185() {
    if (jj_3R_76()) return true;
    return false;
  }

  private boolean jj_3R_184() {
    if (jj_3R_75()) return true;
    return false;
  }

  private boolean jj_3R_183() {
    if (jj_3R_74()) return true;
    return false;
  }

  private boolean jj_3R_182() {
    if (jj_3R_73()) return true;
    return false;
  }

  private boolean jj_3R_181() {
    if (jj_3R_72()) return true;
    return false;
  }

  private boolean jj_3R_180() {
    if (jj_3R_71()) return true;
    return false;
  }

  private boolean jj_3R_57() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_179()) {
    jj_scanpos = xsp;
    if (jj_3R_180()) {
    jj_scanpos = xsp;
    if (jj_3R_181()) {
    jj_scanpos = xsp;
    if (jj_3R_182()) {
    jj_scanpos = xsp;
    if (jj_3R_183()) {
    jj_scanpos = xsp;
    if (jj_3R_184()) {
    jj_scanpos = xsp;
    if (jj_3R_185()) return true;
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_179() {
    if (jj_3R_70()) return true;
    return false;
  }

  private boolean jj_3_82() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_388() {
    if (jj_scan_token(ALL)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_79()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_254() {
    if (jj_3R_387()) return true;
    return false;
  }

  private boolean jj_3_78() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_209() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_204() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3R_387() {
    if (jj_scan_token(SOME)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_79()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_201() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_386() {
    if (jj_scan_token(ANY)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_79()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_77() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_253()) {
    jj_scanpos = xsp;
    if (jj_3R_254()) {
    jj_scanpos = xsp;
    if (jj_3R_255()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_253() {
    if (jj_3R_386()) return true;
    return false;
  }

  private boolean jj_3_81() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3_79() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_178() {
    if (jj_scan_token(NOT)) return true;
    return false;
  }

  private boolean jj_3R_56() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_178()) jj_scanpos = xsp;
    if (jj_scan_token(EXISTS)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_79()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3_77() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_191() {
    if (jj_scan_token(NOT)) return true;
    return false;
  }

  private boolean jj_3R_208() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_207() {
    if (jj_scan_token(NOT)) return true;
    return false;
  }

  private boolean jj_3R_324() {
    if (jj_3R_79()) return true;
    return false;
  }

  private boolean jj_3R_203() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_63() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_203()) {
    jj_scanpos = xsp;
    if (jj_3R_204()) {
    jj_scanpos = xsp;
    if (jj_3R_205()) {
    jj_scanpos = xsp;
    if (jj_3R_206()) return true;
    }
    }
    }
    xsp = jj_scanpos;
    if (jj_3R_207()) jj_scanpos = xsp;
    if (jj_scan_token(MEMBER)) return true;
    xsp = jj_scanpos;
    if (jj_scan_token(29)) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_208()) {
    jj_scanpos = xsp;
    if (jj_3R_209()) return true;
    }
    return false;
  }

  private boolean jj_3R_202() {
    if (jj_scan_token(NOT)) return true;
    return false;
  }

  private boolean jj_3_76() {
    if (jj_3R_41()) return true;
    return false;
  }

  private boolean jj_3_75() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_186() {
    if (jj_scan_token(NOT)) return true;
    return false;
  }

  private boolean jj_3_74() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_199() {
    if (jj_scan_token(NOT)) return true;
    return false;
  }

  private boolean jj_3R_200() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_62() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_200()) {
    jj_scanpos = xsp;
    if (jj_3R_201()) return true;
    }
    if (jj_scan_token(IS)) return true;
    xsp = jj_scanpos;
    if (jj_3R_202()) jj_scanpos = xsp;
    if (jj_scan_token(EMPTY)) return true;
    return false;
  }

  private boolean jj_3R_198() {
    if (jj_3R_41()) return true;
    return false;
  }

  private boolean jj_3R_197() {
    if (jj_scan_token(VALUE)) return true;
    if (jj_scan_token(102)) return true;
    if (jj_3R_28()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_196() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_195() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_194() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3R_61() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_194()) {
    jj_scanpos = xsp;
    if (jj_3R_195()) {
    jj_scanpos = xsp;
    if (jj_3R_196()) {
    jj_scanpos = xsp;
    if (jj_3R_197()) {
    jj_scanpos = xsp;
    if (jj_3R_198()) return true;
    }
    }
    }
    }
    if (jj_scan_token(IS)) return true;
    xsp = jj_scanpos;
    if (jj_3R_199()) jj_scanpos = xsp;
    if (jj_scan_token(NULL)) return true;
    return false;
  }

  private boolean jj_3R_190() {
    if (jj_3R_83()) return true;
    return false;
  }

  private boolean jj_3R_59() {
    if (jj_3R_65()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_186()) jj_scanpos = xsp;
    if (jj_scan_token(LIKE)) return true;
    if (jj_3R_187()) return true;
    return false;
  }

  private boolean jj_3R_466() {
    if (jj_3R_381()) return true;
    return false;
  }

  private boolean jj_3R_465() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3R_464() {
    if (jj_3R_308()) return true;
    return false;
  }

  private boolean jj_3R_463() {
    if (jj_3R_302()) return true;
    return false;
  }

  private boolean jj_3R_433() {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_432()) return true;
    return false;
  }

  private boolean jj_3R_462() {
    if (jj_3R_301()) return true;
    return false;
  }

  private boolean jj_3R_461() {
    if (jj_3R_326()) return true;
    return false;
  }

  private boolean jj_3R_432() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_461()) {
    jj_scanpos = xsp;
    if (jj_3R_462()) {
    jj_scanpos = xsp;
    if (jj_3R_463()) {
    jj_scanpos = xsp;
    if (jj_3R_464()) {
    jj_scanpos = xsp;
    if (jj_3R_465()) {
    jj_scanpos = xsp;
    if (jj_3R_466()) return true;
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_323() {
    if (jj_3R_432()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_433()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_193() {
    if (jj_3R_325()) return true;
    return false;
  }

  private boolean jj_3R_189() {
    if (jj_3R_155()) return true;
    return false;
  }

  private boolean jj_3R_192() {
    if (jj_scan_token(102)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_323()) {
    jj_scanpos = xsp;
    if (jj_3R_324()) return true;
    }
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_381() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_68() {
    if (jj_scan_token(NOT)) return true;
    return false;
  }

  private boolean jj_3R_66() {
    if (jj_scan_token(NOT)) return true;
    return false;
  }

  private boolean jj_3R_188() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_60() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_188()) {
    jj_scanpos = xsp;
    if (jj_3R_189()) {
    jj_scanpos = xsp;
    if (jj_3R_190()) return true;
    }
    }
    xsp = jj_scanpos;
    if (jj_3R_191()) jj_scanpos = xsp;
    if (jj_scan_token(IN)) return true;
    xsp = jj_scanpos;
    if (jj_3R_192()) {
    jj_scanpos = xsp;
    if (jj_3R_193()) return true;
    }
    return false;
  }

  private boolean jj_3R_64() {
    if (jj_scan_token(NOT)) return true;
    return false;
  }

  private boolean jj_3R_318() {
    if (jj_3R_54()) return true;
    return false;
  }

  private boolean jj_3_73() {
    if (jj_3R_67()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_68()) jj_scanpos = xsp;
    if (jj_scan_token(BETWEEN)) return true;
    if (jj_3R_67()) return true;
    if (jj_scan_token(AND)) return true;
    if (jj_3R_67()) return true;
    return false;
  }

  private boolean jj_3R_169() {
    if (jj_scan_token(102)) return true;
    if (jj_3R_52()) return true;
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3_72() {
    if (jj_3R_65()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_66()) jj_scanpos = xsp;
    if (jj_scan_token(BETWEEN)) return true;
    if (jj_3R_65()) return true;
    if (jj_scan_token(AND)) return true;
    if (jj_3R_65()) return true;
    return false;
  }

  private boolean jj_3_70() {
    if (jj_3R_63()) return true;
    return false;
  }

  private boolean jj_3_69() {
    if (jj_3R_62()) return true;
    return false;
  }

  private boolean jj_3_68() {
    if (jj_3R_61()) return true;
    return false;
  }

  private boolean jj_3_67() {
    if (jj_3R_60()) return true;
    return false;
  }

  private boolean jj_3R_58() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_71()) {
    jj_scanpos = xsp;
    if (jj_3_72()) {
    jj_scanpos = xsp;
    if (jj_3_73()) return true;
    }
    }
    return false;
  }

  private boolean jj_3_71() {
    if (jj_3R_34()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_64()) jj_scanpos = xsp;
    if (jj_scan_token(BETWEEN)) return true;
    if (jj_3R_34()) return true;
    if (jj_scan_token(AND)) return true;
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3_66() {
    if (jj_3R_59()) return true;
    return false;
  }

  private boolean jj_3_65() {
    if (jj_3R_58()) return true;
    return false;
  }

  private boolean jj_3_64() {
    if (jj_3R_57()) return true;
    return false;
  }

  private boolean jj_3_63() {
    if (jj_3R_56()) return true;
    return false;
  }

  private boolean jj_3R_177() {
    if (jj_3R_63()) return true;
    return false;
  }

  private boolean jj_3R_176() {
    if (jj_3R_62()) return true;
    return false;
  }

  private boolean jj_3R_175() {
    if (jj_3R_61()) return true;
    return false;
  }

  private boolean jj_3R_174() {
    if (jj_3R_60()) return true;
    return false;
  }

  private boolean jj_3R_173() {
    if (jj_3R_59()) return true;
    return false;
  }

  private boolean jj_3_62() {
    if (jj_3R_55()) return true;
    return false;
  }

  private boolean jj_3R_172() {
    if (jj_3R_58()) return true;
    return false;
  }

  private boolean jj_3_60() {
    if (jj_scan_token(AND)) return true;
    if (jj_3R_53()) return true;
    return false;
  }

  private boolean jj_3R_171() {
    if (jj_3R_57()) return true;
    return false;
  }

  private boolean jj_3R_55() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_170()) {
    jj_scanpos = xsp;
    if (jj_3R_171()) {
    jj_scanpos = xsp;
    if (jj_3R_172()) {
    jj_scanpos = xsp;
    if (jj_3R_173()) {
    jj_scanpos = xsp;
    if (jj_3R_174()) {
    jj_scanpos = xsp;
    if (jj_3R_175()) {
    jj_scanpos = xsp;
    if (jj_3R_176()) {
    jj_scanpos = xsp;
    if (jj_3R_177()) return true;
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_170() {
    if (jj_3R_56()) return true;
    return false;
  }

  private boolean jj_3_61() {
    if (jj_scan_token(NOT)) return true;
    if (jj_3R_54()) return true;
    return false;
  }

  private boolean jj_3R_54() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_168()) {
    jj_scanpos = xsp;
    if (jj_3R_169()) return true;
    }
    return false;
  }

  private boolean jj_3_59() {
    if (jj_scan_token(OR)) return true;
    if (jj_3R_52()) return true;
    return false;
  }

  private boolean jj_3R_168() {
    if (jj_3R_55()) return true;
    return false;
  }

  private boolean jj_3R_167() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_317()) {
    jj_scanpos = xsp;
    if (jj_3R_318()) return true;
    }
    return false;
  }

  private boolean jj_3R_317() {
    if (jj_scan_token(NOT)) return true;
    if (jj_3R_54()) return true;
    return false;
  }

  private boolean jj_3_58() {
    if (jj_3R_51()) return true;
    return false;
  }

  private boolean jj_3_57() {
    if (jj_3R_50()) return true;
    return false;
  }

  private boolean jj_3_56() {
    if (jj_3R_49()) return true;
    return false;
  }

  private boolean jj_3R_53() {
    if (jj_3R_167()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3_60()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_267() {
    if (jj_3R_51()) return true;
    return false;
  }

  private boolean jj_3R_266() {
    if (jj_3R_50()) return true;
    return false;
  }

  private boolean jj_3R_52() {
    if (jj_3R_53()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3_59()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_265() {
    if (jj_3R_49()) return true;
    return false;
  }

  private boolean jj_3R_79() {
    if (jj_3R_263()) return true;
    if (jj_3R_264()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_265()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_266()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_267()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_51() {
    if (jj_scan_token(HAVING)) return true;
    if (jj_3R_52()) return true;
    return false;
  }

  private boolean jj_3_55() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_54() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3_53() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3_52() {
    if (jj_3R_47()) return true;
    return false;
  }

  private boolean jj_3_51() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_47() {
    if (jj_3R_155()) return true;
    return false;
  }

  private boolean jj_3R_164() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_163() {
    if (jj_3R_48()) return true;
    return false;
  }

  private boolean jj_3R_162() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3_50() {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_46()) return true;
    return false;
  }

  private boolean jj_3R_161() {
    if (jj_3R_47()) return true;
    return false;
  }

  private boolean jj_3R_46() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_160()) {
    jj_scanpos = xsp;
    if (jj_3R_161()) {
    jj_scanpos = xsp;
    if (jj_3R_162()) {
    jj_scanpos = xsp;
    if (jj_3R_163()) {
    jj_scanpos = xsp;
    if (jj_3R_164()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_160() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_50() {
    if (jj_scan_token(GROUP)) return true;
    if (jj_scan_token(BY)) return true;
    if (jj_3R_46()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3_50()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_49() {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_52()) return true;
    return false;
  }

  private boolean jj_3R_312() {
    if (jj_scan_token(SUM)) return true;
    if (jj_3R_430()) return true;
    return false;
  }

  private boolean jj_3R_311() {
    if (jj_scan_token(MIN)) return true;
    if (jj_3R_430()) return true;
    return false;
  }

  private boolean jj_3R_310() {
    if (jj_scan_token(MAX)) return true;
    if (jj_3R_430()) return true;
    return false;
  }

  private boolean jj_3_49() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_48() {
    if (jj_3R_42()) return true;
    return false;
  }

  private boolean jj_3_47() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3_46() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_309() {
    if (jj_scan_token(AVG)) return true;
    if (jj_3R_430()) return true;
    return false;
  }

  private boolean jj_3R_159() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_45() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_158() {
    if (jj_3R_42()) return true;
    return false;
  }

  private boolean jj_3R_313() {
    if (jj_scan_token(COUNT)) return true;
    if (jj_3R_430()) return true;
    return false;
  }

  private boolean jj_3_44() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_157() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_156() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_149() {
    if (jj_3R_313()) return true;
    return false;
  }

  private boolean jj_3_43() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3_42() {
    if (jj_3R_45()) return true;
    return false;
  }

  private boolean jj_3_41() {
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_460() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_148() {
    if (jj_3R_312()) return true;
    return false;
  }

  private boolean jj_3R_459() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_45() {
    if (jj_scan_token(DISTINCT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_156()) {
    jj_scanpos = xsp;
    if (jj_3R_157()) {
    jj_scanpos = xsp;
    if (jj_3R_158()) {
    jj_scanpos = xsp;
    if (jj_3R_159()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_458() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_457() {
    if (jj_3R_45()) return true;
    return false;
  }

  private boolean jj_3R_456() {
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3R_147() {
    if (jj_3R_311()) return true;
    return false;
  }

  private boolean jj_3R_430() {
    if (jj_scan_token(102)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_456()) {
    jj_scanpos = xsp;
    if (jj_3R_457()) {
    jj_scanpos = xsp;
    if (jj_3R_458()) {
    jj_scanpos = xsp;
    if (jj_3R_459()) {
    jj_scanpos = xsp;
    if (jj_3R_460()) return true;
    }
    }
    }
    }
    if (jj_scan_token(103)) return true;
    return false;
  }

  private boolean jj_3R_146() {
    if (jj_3R_310()) return true;
    return false;
  }

  private boolean jj_3R_442() {
    if (jj_scan_token(DISTINCT)) return true;
    return false;
  }

  private boolean jj_3_40() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_39() {
    if (jj_3R_41()) return true;
    return false;
  }

  private boolean jj_3_38() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3_37() {
    if (jj_3R_42()) return true;
    return false;
  }

  private boolean jj_3R_145() {
    if (jj_3R_309()) return true;
    return false;
  }

  private boolean jj_3_36() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_41() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_145()) {
    jj_scanpos = xsp;
    if (jj_3R_146()) {
    jj_scanpos = xsp;
    if (jj_3R_147()) {
    jj_scanpos = xsp;
    if (jj_3R_148()) {
    jj_scanpos = xsp;
    if (jj_3R_149()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3_35() {
    if (jj_3R_40()) return true;
    return false;
  }

  private boolean jj_3_34() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_33() {
    if (jj_3R_41()) return true;
    return false;
  }

  private boolean jj_3_32() {
    if (jj_3R_42()) return true;
    return false;
  }

  private boolean jj_3_31() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3_30() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_444() {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_443()) return true;
    return false;
  }

  private boolean jj_3R_476() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_475() {
    if (jj_3R_41()) return true;
    return false;
  }

  private boolean jj_3R_474() {
    if (jj_3R_42()) return true;
    return false;
  }

  private boolean jj_3R_473() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_472() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3_29() {
    if (jj_3R_40()) return true;
    return false;
  }

  private boolean jj_3_28() {
    if (jj_3R_44()) return true;
    return false;
  }

  private boolean jj_3R_471() {
    if (jj_3R_40()) return true;
    return false;
  }

  private boolean jj_3R_443() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_471()) {
    jj_scanpos = xsp;
    if (jj_3R_472()) {
    jj_scanpos = xsp;
    if (jj_3R_473()) {
    jj_scanpos = xsp;
    if (jj_3R_474()) {
    jj_scanpos = xsp;
    if (jj_3R_475()) {
    jj_scanpos = xsp;
    if (jj_3R_476()) return true;
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3_27() {
    if (jj_3R_43()) return true;
    return false;
  }

  private boolean jj_3_26() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_25() {
    if (jj_3R_42()) return true;
    return false;
  }

  private boolean jj_3_24() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_397() {
    if (jj_3R_443()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_444()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3_23() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3_22() {
    if (jj_3R_41()) return true;
    return false;
  }

  private boolean jj_3R_44() {
    if (jj_3R_155()) return true;
    return false;
  }

  private boolean jj_3_21() {
    if (jj_3R_40()) return true;
    return false;
  }

  private boolean jj_3R_137() {
    if (jj_3R_80()) return true;
    return false;
  }

  private boolean jj_3R_396() {
    if (jj_3R_442()) return true;
    return false;
  }

  private boolean jj_3R_263() {
    if (jj_scan_token(SELECT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_396()) jj_scanpos = xsp;
    if (jj_3R_397()) return true;
    return false;
  }

  private boolean jj_3_20() {
    if (jj_3R_39()) return true;
    return false;
  }

  private boolean jj_3_19() {
    if (jj_3R_38()) return true;
    return false;
  }

  private boolean jj_3_18() {
    if (jj_3R_37()) return true;
    return false;
  }

  private boolean jj_3R_136() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_39() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_136()) {
    jj_scanpos = xsp;
    if (jj_3R_137()) return true;
    }
    return false;
  }

  private boolean jj_3_17() {
    if (jj_3R_36()) return true;
    return false;
  }

  private boolean jj_3_16() {
    if (jj_3R_35()) return true;
    return false;
  }

  private boolean jj_3_15() {
    if (jj_3R_34()) return true;
    return false;
  }

  private boolean jj_3_2() {
    if (jj_3R_24()) return true;
    return false;
  }

  private boolean jj_3_5() {
    if (jj_3R_27()) return true;
    return false;
  }

  private boolean jj_3_14() {
    if (jj_3R_33()) return true;
    return false;
  }

  private boolean jj_3_13() {
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_32()) return true;
    return false;
  }

  private boolean jj_3R_288() {
    if (jj_3R_27()) return true;
    return false;
  }

  private boolean jj_3_8() {
    if (jj_3R_27()) return true;
    return false;
  }

  private boolean jj_3R_292() {
    if (jj_3R_27()) return true;
    return false;
  }

  private boolean jj_3R_93() {
    if (jj_3R_290()) return true;
    return false;
  }

  private boolean jj_3R_30() {
    if (jj_3R_28()) return true;
    Token xsp;
    if (jj_3_13()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3_13()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3_4() {
    if (jj_3R_26()) return true;
    return false;
  }

  private boolean jj_3R_290() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(75)) jj_scanpos = xsp;
    if (jj_scan_token(JOIN)) return true;
    if (jj_scan_token(FETCH)) return true;
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3_6() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_12() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3_11() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_289() {
    if (jj_scan_token(LEFT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(74)) jj_scanpos = xsp;
    if (jj_scan_token(JOIN)) return true;
    if (jj_scan_token(FETCH)) return true;
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_287() {
    if (jj_3R_26()) return true;
    return false;
  }

  private boolean jj_3R_92() {
    if (jj_3R_289()) return true;
    return false;
  }

  private boolean jj_3R_25() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_92()) {
    jj_scanpos = xsp;
    if (jj_3R_93()) return true;
    }
    return false;
  }

  private boolean jj_3R_285() {
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_89() {
    if (jj_3R_31()) return true;
    return false;
  }

  private boolean jj_3R_88() {
    if (jj_3R_30()) return true;
    return false;
  }

  private boolean jj_3R_27() {
    if (jj_scan_token(LEFT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(74)) jj_scanpos = xsp;
    if (jj_scan_token(JOIN)) return true;
    if (jj_3R_30()) return true;
    xsp = jj_scanpos;
    if (jj_scan_token(72)) jj_scanpos = xsp;
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_7() {
    if (jj_3R_26()) return true;
    return false;
  }

  private boolean jj_3_10() {
    if (jj_3R_29()) return true;
    return false;
  }

  private boolean jj_3R_23() {
    if (jj_scan_token(IN)) return true;
    if (jj_scan_token(102)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_88()) {
    jj_scanpos = xsp;
    if (jj_3R_89()) return true;
    }
    if (jj_scan_token(103)) return true;
    xsp = jj_scanpos;
    if (jj_scan_token(72)) jj_scanpos = xsp;
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3R_94() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_291()) {
    jj_scanpos = xsp;
    if (jj_3R_292()) return true;
    }
    return false;
  }

  private boolean jj_3R_291() {
    if (jj_3R_26()) return true;
    return false;
  }

  private boolean jj_3R_26() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(75)) jj_scanpos = xsp;
    if (jj_scan_token(JOIN)) return true;
    if (jj_3R_30()) return true;
    xsp = jj_scanpos;
    if (jj_scan_token(72)) jj_scanpos = xsp;
    if (jj_3R_28()) return true;
    return false;
  }

  private boolean jj_3_9() {
    if (jj_3R_23()) return true;
    return false;
  }

  private boolean jj_3R_446() {
    if (jj_3R_29()) return true;
    return false;
  }

  private boolean jj_3_1() {
    if (jj_3R_23()) return true;
    return false;
  }

  private boolean jj_3R_399() {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_398()) return true;
    return false;
  }

  private boolean jj_3_3() {
    if (jj_3R_25()) return true;
    return false;
  }

  private boolean jj_3R_445() {
    if (jj_3R_23()) return true;
    return false;
  }

  private boolean jj_3R_398() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_445()) {
    jj_scanpos = xsp;
    if (jj_3R_446()) return true;
    }
    return false;
  }

  private boolean jj_3R_29() {
    if (jj_3R_90()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_94()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_91() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_286()) {
    jj_scanpos = xsp;
    if (jj_3R_287()) {
    jj_scanpos = xsp;
    if (jj_3R_288()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_286() {
    if (jj_3R_25()) return true;
    return false;
  }

  private boolean jj_3R_264() {
    if (jj_scan_token(FROM)) return true;
    if (jj_3R_398()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_399()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_90() {
    if (jj_3R_284()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(72)) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_285()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_24() {
    if (jj_3R_90()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_91()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_321() {
    if (jj_3R_302()) return true;
    return false;
  }

  private boolean jj_3R_320() {
    if (jj_3R_301()) return true;
    return false;
  }

  private boolean jj_3R_282() {
    if (jj_scan_token(STRING_LITERAL)) return true;
    return false;
  }

  /** Generated Token Manager. */
  public JPQLTokenManager token_source;
  JavaCharStream jj_input_stream;
  /** Current token. */
  public Token token;
  /** Next token. */
  public Token jj_nt;
  private int jj_ntk;
  private Token jj_scanpos, jj_lastpos;
  private int jj_la;
  private int jj_gen;
  final private int[] jj_la1 = new int[150];
  static private int[] jj_la1_0;
  static private int[] jj_la1_1;
  static private int[] jj_la1_2;
  static private int[] jj_la1_3;
  static {
      jj_la1_init_0();
      jj_la1_init_1();
      jj_la1_init_2();
      jj_la1_init_3();
   }
   private static void jj_la1_init_0() {
      jj_la1_0 = new int[] {0x0,0x0,0x0,0x0,0x2000000,0x0,0x0,0x20,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x20,0x20000,0x0,0x0,0x20,0x40,0x20,0x0,0xfffe6000,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x6000,0x0,0x6000,0x0,0x0,0x0,0x0,0x0,0x0,0xfffe0000,0x0,0x20000000,0x0,0x2c0000,0x2c0000,0x2c0000,0x2c0000,0x2c0000,0x2c0000,0x2c0000,0x1f80,0x2c0000,0x2c0000,0x180,0x2c0000,0x2c0000,0x180,0xfffe0000,0xfffe0000,0x180,0x2c6000,0x2c6000,0x2c6000,0x2c6000,0x2c6000,0x2c6000,0x1f80,0x2c0000,0x2c0000,0x2c0000,0x2c0000,0x2c0000,0x2c0000,0x1f80,0x0,0x0,0x6000,0x6000,0x18000,0x18000,0x6000,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfffe0000,0x0,0x20,0x20,0x0,0x0,0x0,0x0,0x20,0x0,0x20,0x0,0x1800000,0x1800000,0x40,0xfffe0000,0x6000,0x6000,0x6000,0x6000,0x6000,0x6000,0x0,0x0,0x0,0x80000000,};
   }
   private static void jj_la1_init_1() {
      jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7c0,0xffffffff,0x0,0x2000,0x2000,0x2000,0xffc7c010,0x2000,0x0,0x0,0x0,0x0,0x2000,0x0,0x8,0x2000,0x2000,0x0,0xffffffff,0x2000,0x0,0x2000,0x0,0x7c00c,0x7c00c,0x7c00c,0x7c00c,0x7c00c,0x7c00c,0x0,0xc,0xc,0x0,0xc,0xc,0x0,0xffffffff,0xffffffff,0x0,0x1fc007cc,0x1fc007cc,0x1fc007cc,0x1fc007cc,0x1fc007cc,0x1fc007cc,0x0,0xe00007cc,0xe00007cc,0xe00007cc,0xe00007cc,0xe00007cc,0xe00007cc,0x0,0xffc7c000,0x1fc00000,0x0,0x0,0x0,0x0,0x0,0xc,0x2c,0xc,0x10,0x10,0x10,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7c000,0x7c00c,0x0,0x7c000,0x0,0xe00007cc,0x0,0xe00007c0,0x0,0x0,0xc,0x0,0x0,0xc,0x0,0xffffffff,0x7c000,0x0,0x0,0x380000,0x0,0x300000,0x1fc00000,0x0,0xe0000000,0x0,0x7c0,0x0,0x0,0x0,0xffffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
   }
   private static void jj_la1_init_2() {
      jj_la1_2 = new int[] {0x19,0x20,0x40,0x80,0x0,0x20,0x20,0x0,0x1a00,0x100,0x0,0x1a00,0x800,0x100,0x100,0x400,0x100,0x1a00,0x400,0x800,0x0,0x0,0x0,0x2,0x2,0x0,0x10000,0x100,0x100,0x0,0x0,0x0,0x0,0xb7ffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x36000001,0x0,0x36000000,0x0,0x0,0x0,0x0,0x0,0x0,0x1ffffff,0x0,0x0,0x0,0x0,0x30c20000,0x30c20000,0x30c20000,0x30c20000,0x30c20000,0x30c20000,0x0,0xc20000,0xc20000,0x0,0xc20000,0xc20000,0x0,0x1ffffff,0x1ffffff,0x0,0x6c20000,0x6c20000,0x6c20000,0x6c20000,0x6c20000,0x6c20000,0x0,0x80c20000,0x80c20000,0x80c20000,0x80c20000,0x80c20000,0x80c20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x6000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc20000,0x40000,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x30c20000,0x30000000,0x0,0xc20000,0x80c20000,0x80000000,0x0,0xc20000,0x0,0xc20000,0x0,0xc20000,0xc20000,0xc20000,0x1ffffff,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1ffffff,0xb6000000,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x0,};
   }
   private static void jj_la1_init_3() {
      jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x308,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x34f,0x40,0x0,0x0,0x0,0x8,0x0,0x0,0x30c,0x340,0x30c,0x0,0x300,0x0,0x0,0x0,0x300,0x8,0x0,0x0,0x0,0x0,0x348,0x348,0x348,0x348,0x348,0x348,0x0,0x34c,0x34c,0x0,0x348,0x348,0x0,0x308,0x308,0x0,0x348,0x348,0x348,0x348,0x348,0x348,0x0,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x0,0x0,0x48,0x0,0x0,0x0,0x0,0x300,0x0,0x0,0x0,0x308,0x308,0x308,0x0,0x300,0x0,0x0,0x8,0x8,0x0,0x8,0x8,0x8,0x0,0x48,0x348,0x0,0x0,0x0,0x34b,0x3,0x300,0x0,0x48,0x34c,0x304,0x0,0x348,0x0,0x308,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x8,0xf,0x0,0x0,0x0,0x0,0x0,0x300,0x300,0x300,0x0,};
   }
  final private JJCalls[] jj_2_rtns = new JJCalls[153];
  private boolean jj_rescan = false;
  private int jj_gc = 0;

  /** Constructor with InputStream. */
  public JPQL(java.io.InputStream stream) {
     this(stream, null);
  }
  /** Constructor with InputStream and supplied encoding */
  public JPQL(java.io.InputStream stream, String encoding) {
    try { jj_input_stream = new JavaCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
    token_source = new JPQLTokenManager(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 150; i++) jj_la1[i] = -1;
    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  }

  /** Reinitialise. */
  public void ReInit(java.io.InputStream stream) {
     ReInit(stream, null);
  }
  /** Reinitialise. */
  public void ReInit(java.io.InputStream stream, String encoding) {
    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
    token_source.ReInit(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jjtree.reset();
    jj_gen = 0;
    for (int i = 0; i < 150; i++) jj_la1[i] = -1;
    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  }

  /** Constructor. */
  public JPQL(java.io.Reader stream) {
    jj_input_stream = new JavaCharStream(stream, 1, 1);
    token_source = new JPQLTokenManager(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 150; i++) jj_la1[i] = -1;
    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  }

  /** Reinitialise. */
  public void ReInit(java.io.Reader stream) {
    jj_input_stream.ReInit(stream, 1, 1);
    token_source.ReInit(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jjtree.reset();
    jj_gen = 0;
    for (int i = 0; i < 150; i++) jj_la1[i] = -1;
    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  }

  /** Constructor with generated Token Manager. */
  public JPQL(JPQLTokenManager tm) {
    token_source = tm;
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
    for (int i = 0; i < 150; i++) jj_la1[i] = -1;
    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  }

  /** Reinitialise. */
  public void ReInit(JPQLTokenManager tm) {
    token_source = tm;
    token = new Token();
    jj_ntk = -1;
    jjtree.reset();
    jj_gen = 0;
    for (int i = 0; i < 150; i++) jj_la1[i] = -1;
    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  }

  private Token jj_consume_token(int kind) throws ParseException {
    Token oldToken;
    if ((oldToken = token).next != null) token = token.next;
    else token = token.next = token_source.getNextToken();
    jj_ntk = -1;
    if (token.kind == kind) {
      jj_gen++;
      if (++jj_gc > 100) {
        jj_gc = 0;
        for (int i = 0; i < jj_2_rtns.length; i++) {
          JJCalls c = jj_2_rtns[i];
          while (c != null) {
            if (c.gen < jj_gen) c.first = null;
            c = c.next;
          }
        }
      }
      return token;
    }
    token = oldToken;
    jj_kind = kind;
    throw generateParseException();
  }

  static private final class LookaheadSuccess extends java.lang.Error { }
  final private LookaheadSuccess jj_ls = new LookaheadSuccess();
  private boolean jj_scan_token(int kind) {
    if (jj_scanpos == jj_lastpos) {
      jj_la--;
      if (jj_scanpos.next == null) {
        jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
      } else {
        jj_lastpos = jj_scanpos = jj_scanpos.next;
      }
    } else {
      jj_scanpos = jj_scanpos.next;
    }
    if (jj_rescan) {
      int i = 0; Token tok = token;
      while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
      if (tok != null) jj_add_error_token(kind, i);
    }
    if (jj_scanpos.kind != kind) return true;
    if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
    return false;
  }


/** Get the next Token. */
  final public Token getNextToken() {
    if (token.next != null) token = token.next;
    else token = token.next = token_source.getNextToken();
    jj_ntk = -1;
    jj_gen++;
    return token;
  }

/** Get the specific Token. */
  final public Token getToken(int index) {
    Token t = token;
    for (int i = 0; i < index; i++) {
      if (t.next != null) t = t.next;
      else t = t.next = token_source.getNextToken();
    }
    return t;
  }

  private int jj_ntk() {
    if ((jj_nt=token.next) == null)
      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
    else
      return (jj_ntk = jj_nt.kind);
  }

  private java.util.List jj_expentries = new java.util.ArrayList();
  private int[] jj_expentry;
  private int jj_kind = -1;
  private int[] jj_lasttokens = new int[100];
  private int jj_endpos;

  private void jj_add_error_token(int kind, int pos) {
    if (pos >= 100) return;
    if (pos == jj_endpos + 1) {
      jj_lasttokens[jj_endpos++] = kind;
    } else if (jj_endpos != 0) {
      jj_expentry = new int[jj_endpos];
      for (int i = 0; i < jj_endpos; i++) {
        jj_expentry[i] = jj_lasttokens[i];
      }
      jj_entries_loop: for (java.util.Iterator it = jj_expentries.iterator(); it.hasNext();) {
        int[] oldentry = (int[])(it.next());
        if (oldentry.length == jj_expentry.length) {
          for (int i = 0; i < jj_expentry.length; i++) {
            if (oldentry[i] != jj_expentry[i]) {
              continue jj_entries_loop;
            }
          }
          jj_expentries.add(jj_expentry);
          break jj_entries_loop;
        }
      }
      if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
    }
  }

  /** Generate ParseException. */
  public ParseException generateParseException() {
    jj_expentries.clear();
    boolean[] la1tokens = new boolean[106];
    if (jj_kind >= 0) {
      la1tokens[jj_kind] = true;
      jj_kind = -1;
    }
    for (int i = 0; i < 150; i++) {
      if (jj_la1[i] == jj_gen) {
        for (int j = 0; j < 32; j++) {
          if ((jj_la1_0[i] & (1< jj_gen) {
          jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
          switch (i) {
            case 0: jj_3_1(); break;
            case 1: jj_3_2(); break;
            case 2: jj_3_3(); break;
            case 3: jj_3_4(); break;
            case 4: jj_3_5(); break;
            case 5: jj_3_6(); break;
            case 6: jj_3_7(); break;
            case 7: jj_3_8(); break;
            case 8: jj_3_9(); break;
            case 9: jj_3_10(); break;
            case 10: jj_3_11(); break;
            case 11: jj_3_12(); break;
            case 12: jj_3_13(); break;
            case 13: jj_3_14(); break;
            case 14: jj_3_15(); break;
            case 15: jj_3_16(); break;
            case 16: jj_3_17(); break;
            case 17: jj_3_18(); break;
            case 18: jj_3_19(); break;
            case 19: jj_3_20(); break;
            case 20: jj_3_21(); break;
            case 21: jj_3_22(); break;
            case 22: jj_3_23(); break;
            case 23: jj_3_24(); break;
            case 24: jj_3_25(); break;
            case 25: jj_3_26(); break;
            case 26: jj_3_27(); break;
            case 27: jj_3_28(); break;
            case 28: jj_3_29(); break;
            case 29: jj_3_30(); break;
            case 30: jj_3_31(); break;
            case 31: jj_3_32(); break;
            case 32: jj_3_33(); break;
            case 33: jj_3_34(); break;
            case 34: jj_3_35(); break;
            case 35: jj_3_36(); break;
            case 36: jj_3_37(); break;
            case 37: jj_3_38(); break;
            case 38: jj_3_39(); break;
            case 39: jj_3_40(); break;
            case 40: jj_3_41(); break;
            case 41: jj_3_42(); break;
            case 42: jj_3_43(); break;
            case 43: jj_3_44(); break;
            case 44: jj_3_45(); break;
            case 45: jj_3_46(); break;
            case 46: jj_3_47(); break;
            case 47: jj_3_48(); break;
            case 48: jj_3_49(); break;
            case 49: jj_3_50(); break;
            case 50: jj_3_51(); break;
            case 51: jj_3_52(); break;
            case 52: jj_3_53(); break;
            case 53: jj_3_54(); break;
            case 54: jj_3_55(); break;
            case 55: jj_3_56(); break;
            case 56: jj_3_57(); break;
            case 57: jj_3_58(); break;
            case 58: jj_3_59(); break;
            case 59: jj_3_60(); break;
            case 60: jj_3_61(); break;
            case 61: jj_3_62(); break;
            case 62: jj_3_63(); break;
            case 63: jj_3_64(); break;
            case 64: jj_3_65(); break;
            case 65: jj_3_66(); break;
            case 66: jj_3_67(); break;
            case 67: jj_3_68(); break;
            case 68: jj_3_69(); break;
            case 69: jj_3_70(); break;
            case 70: jj_3_71(); break;
            case 71: jj_3_72(); break;
            case 72: jj_3_73(); break;
            case 73: jj_3_74(); break;
            case 74: jj_3_75(); break;
            case 75: jj_3_76(); break;
            case 76: jj_3_77(); break;
            case 77: jj_3_78(); break;
            case 78: jj_3_79(); break;
            case 79: jj_3_80(); break;
            case 80: jj_3_81(); break;
            case 81: jj_3_82(); break;
            case 82: jj_3_83(); break;
            case 83: jj_3_84(); break;
            case 84: jj_3_85(); break;
            case 85: jj_3_86(); break;
            case 86: jj_3_87(); break;
            case 87: jj_3_88(); break;
            case 88: jj_3_89(); break;
            case 89: jj_3_90(); break;
            case 90: jj_3_91(); break;
            case 91: jj_3_92(); break;
            case 92: jj_3_93(); break;
            case 93: jj_3_94(); break;
            case 94: jj_3_95(); break;
            case 95: jj_3_96(); break;
            case 96: jj_3_97(); break;
            case 97: jj_3_98(); break;
            case 98: jj_3_99(); break;
            case 99: jj_3_100(); break;
            case 100: jj_3_101(); break;
            case 101: jj_3_102(); break;
            case 102: jj_3_103(); break;
            case 103: jj_3_104(); break;
            case 104: jj_3_105(); break;
            case 105: jj_3_106(); break;
            case 106: jj_3_107(); break;
            case 107: jj_3_108(); break;
            case 108: jj_3_109(); break;
            case 109: jj_3_110(); break;
            case 110: jj_3_111(); break;
            case 111: jj_3_112(); break;
            case 112: jj_3_113(); break;
            case 113: jj_3_114(); break;
            case 114: jj_3_115(); break;
            case 115: jj_3_116(); break;
            case 116: jj_3_117(); break;
            case 117: jj_3_118(); break;
            case 118: jj_3_119(); break;
            case 119: jj_3_120(); break;
            case 120: jj_3_121(); break;
            case 121: jj_3_122(); break;
            case 122: jj_3_123(); break;
            case 123: jj_3_124(); break;
            case 124: jj_3_125(); break;
            case 125: jj_3_126(); break;
            case 126: jj_3_127(); break;
            case 127: jj_3_128(); break;
            case 128: jj_3_129(); break;
            case 129: jj_3_130(); break;
            case 130: jj_3_131(); break;
            case 131: jj_3_132(); break;
            case 132: jj_3_133(); break;
            case 133: jj_3_134(); break;
            case 134: jj_3_135(); break;
            case 135: jj_3_136(); break;
            case 136: jj_3_137(); break;
            case 137: jj_3_138(); break;
            case 138: jj_3_139(); break;
            case 139: jj_3_140(); break;
            case 140: jj_3_141(); break;
            case 141: jj_3_142(); break;
            case 142: jj_3_143(); break;
            case 143: jj_3_144(); break;
            case 144: jj_3_145(); break;
            case 145: jj_3_146(); break;
            case 146: jj_3_147(); break;
            case 147: jj_3_148(); break;
            case 148: jj_3_149(); break;
            case 149: jj_3_150(); break;
            case 150: jj_3_151(); break;
            case 151: jj_3_152(); break;
            case 152: jj_3_153(); break;
          }
        }
        p = p.next;
      } while (p != null);
      } catch(LookaheadSuccess ls) { }
    }
    jj_rescan = false;
  }

  private void jj_save(int index, int xla) {
    JJCalls p = jj_2_rtns[index];
    while (p.gen > jj_gen) {
      if (p.next == null) { p = p.next = new JJCalls(); break; }
      p = p.next;
    }
    p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
  }

  static final class JJCalls {
    int gen;
    Token first;
    int arg;
    JJCalls next;
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy