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

com.arcadedb.query.sql.parser.SqlParser Maven / Gradle / Ivy

/* SqlParser.java */
/* Generated By:JJTree&JavaCC: Do not edit this line. SqlParser.java */
package com.arcadedb.query.sql.parser;

import java.io.InputStream;
import java.util.List;
import java.util.ArrayList;
import javax.annotation.processing.Generated;
import com.arcadedb.database.Database;
import com.arcadedb.exception.CommandParsingException;
import com.arcadedb.index.lsm.LSMTreeIndexAbstract;

/** Database Sql grammar. */
@Generated("JavaCC") // EXCLUDE INSPECTION FROM JACOCO
public class SqlParser/*@bgen(jjtree)*/implements SqlParserTreeConstants, SqlParserConstants {/*@bgen(jjtree)*/
  protected JJTSqlParserState jjtree = new JJTSqlParserState();
  private int inputParamCount = 0;
  private Database database;

  public SqlParser(final Database database, final InputStream stream) {
    this(new JavaCharStream(stream));
    this.database = database;
  }

  public SqlParser(final Database database, InputStream stream, String charset) throws java.io.UnsupportedEncodingException {
    this(new JavaCharStream(stream, charset));
    this.database = database;
  }

  public Database getDatabase(){
    return database;
  }

  final public Rid Rid() throws ParseException {/*@bgen(jjtree) Rid */
  Rid jjtn000 = new Rid(JJTRID);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      if (jj_2_1(4)) {
        jj_consume_token(250);
        jjtn000.bucket = PInteger();
        jj_consume_token(COLON);
        jjtn000.position = PInteger();
jjtn000.legacy = true;
      } else if (jj_2_2(3)) {
        jjtn000.bucket = PInteger();
        jj_consume_token(COLON);
        jjtn000.position = PInteger();
jjtn000.legacy = true;
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case LBRACE:{
          jj_consume_token(LBRACE);
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case RID_ATTR:{
            jj_consume_token(RID_ATTR);
            break;
            }
          case RID_STRING:{
            jj_consume_token(RID_STRING);
            break;
            }
          default:
            jj_la1[0] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          jj_consume_token(COLON);
          jjtn000.expression = Expression();
          jj_consume_token(RBRACE);
jjtn000.legacy = false;
          break;
          }
        default:
          jj_la1[1] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BucketIdentifier BucketIdentifier() throws ParseException {/*@bgen(jjtree) BucketIdentifier */
  BucketIdentifier jjtn000 = new BucketIdentifier(JJTBUCKETIDENTIFIER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case INTEGER_LITERAL:
      case MINUS:{
        jjtn000.bucketId = PInteger();
        break;
        }
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.bucketName = Identifier();
        break;
        }
      default:
        jj_la1[2] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

/** Root productions. */
  final public Statement Parse() throws ParseException {/*@bgen(jjtree) Parse */
 Parse jjtn000 = new Parse(JJTPARSE);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));Statement result;
    try {
      result = Statement();
      jj_consume_token(0);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public WhereClause ParseCondition() throws ParseException {/*@bgen(jjtree) ParseCondition */
 ParseCondition jjtn000 = new ParseCondition(JJTPARSECONDITION);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));WhereClause result;
    try {
      result = WhereClause();
      jj_consume_token(0);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Expression ParseExpression() throws ParseException {/*@bgen(jjtree) ParseExpression */
 ParseExpression jjtn000 = new ParseExpression(JJTPARSEEXPRESSION);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));Expression result;
    try {
      result = Expression();
      jj_consume_token(0);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public List ParseScript() throws ParseException {/*@bgen(jjtree) ParseScript */
  ParseScript jjtn000 = new ParseScript(JJTPARSESCRIPT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));List result = new ArrayList();
  Statement last;
    try {
      label_1:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case SELECT:
        case TRAVERSE:
        case MATCH:
        case INSERT:
        case CREATE:
        case CUSTOM:
        case DELETE:
        case UPDATE:
        case TO:
        case WHILE:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case DEFINE:
        case OFFSET:
        case RETURN:
        case RECORD:
        case LET:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BACKUP:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case FOREACH:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case TRUE:
        case FALSE:
        case LPAREN:
        case LBRACE:
        case LBRACKET:
        case SEMICOLON:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:
        case 250:{
          ;
          break;
          }
        default:
          jj_la1[3] = jj_gen;
          break label_1;
        }
        if (jj_2_3(2147483647)) {
          last = StatementSemicolon();
result.add(last);
        } else {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case IF:{
            last = IfStatement();
result.add(last);
            break;
            }
          case FOREACH:{
            last = ForEachBlock();
result.add(last);
            break;
            }
          case WHILE:{
            last = WhileBlock();
result.add(last);
            break;
            }
          case SEMICOLON:{
            jj_consume_token(SEMICOLON);
            break;
            }
          default:
            jj_la1[4] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
      }
      jj_consume_token(0);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public java.lang.String PString() throws ParseException {/*@bgen(jjtree) PString */
PString jjtn000 = new PString(JJTPSTRING);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
jjtn000.jjtSetFirstToken(getToken(1));Token token = null;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case STRING_LITERAL:{
        token = jj_consume_token(STRING_LITERAL);
        break;
        }
      case RID_STRING:{
        token = jj_consume_token(RID_STRING);
        break;
        }
      default:
        jj_la1[5] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return token.image;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Identifier Identifier() throws ParseException {/*@bgen(jjtree) Identifier */
  Identifier jjtn000 = new Identifier(JJTIDENTIFIER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Token quotedToken = null;
  Token token = null;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case IDENTIFIER:{
        token = jj_consume_token(IDENTIFIER);
        break;
        }
      case ALIGN:{
        token = jj_consume_token(ALIGN);
        break;
        }
      case IN:{
        token = jj_consume_token(IN);
        break;
        }
      case SET:{
        token = jj_consume_token(SET);
        break;
        }
      case PUT:{
        token = jj_consume_token(PUT);
        break;
        }
      case ADD:{
        token = jj_consume_token(ADD);
        break;
        }
      case REMOVE:{
        token = jj_consume_token(REMOVE);
        break;
        }
      case MERGE:{
        token = jj_consume_token(MERGE);
        break;
        }
      case CONTENT:{
        token = jj_consume_token(CONTENT);
        break;
        }
      case KEY:{
        token = jj_consume_token(KEY);
        break;
        }
      case OFFSET:{
        token = jj_consume_token(OFFSET);
        break;
        }
      case VALUE:{
        token = jj_consume_token(VALUE);
        break;
        }
      case VALUES:{
        token = jj_consume_token(VALUES);
        break;
        }
      case RECORD:{
        token = jj_consume_token(RECORD);
        break;
        }
      case TO:{
        token = jj_consume_token(TO);
        break;
        }
      case TYPE:{
        token = jj_consume_token(TYPE);
        break;
        }
      case TYPES:{
        token = jj_consume_token(TYPES);
        break;
        }
      case MINDEPTH:{
        token = jj_consume_token(MINDEPTH);
        break;
        }
      case NEAR:{
        token = jj_consume_token(NEAR);
        break;
        }
      case WITH:{
        token = jj_consume_token(WITH);
        break;
        }
      case WITHIN:{
        token = jj_consume_token(WITHIN);
        break;
        }
      case EXCEPTION:{
        token = jj_consume_token(EXCEPTION);
        break;
        }
      case PROFILE:{
        token = jj_consume_token(PROFILE);
        break;
        }
      case CUSTOM:{
        token = jj_consume_token(CUSTOM);
        break;
        }
      case CHECK:{
        token = jj_consume_token(CHECK);
        break;
        }
      case ON:{
        token = jj_consume_token(ON);
        break;
        }
      case OFF:{
        token = jj_consume_token(OFF);
        break;
        }
      case TRUNCATE:{
        token = jj_consume_token(TRUNCATE);
        break;
        }
      case FIND:{
        token = jj_consume_token(FIND);
        break;
        }
      case EXTENDS:{
        token = jj_consume_token(EXTENDS);
        break;
        }
      case BUCKETS:{
        token = jj_consume_token(BUCKETS);
        break;
        }
      case BUCKETSELECTIONSTRATEGY:{
        token = jj_consume_token(BUCKETSELECTIONSTRATEGY);
        break;
        }
      case ALTER:{
        token = jj_consume_token(ALTER);
        break;
        }
      case NAME:{
        token = jj_consume_token(NAME);
        break;
        }
      case SUPERTYPE:{
        token = jj_consume_token(SUPERTYPE);
        break;
        }
      case ADDBUCKET:{
        token = jj_consume_token(ADDBUCKET);
        break;
        }
      case REMOVEBUCKET:{
        token = jj_consume_token(REMOVEBUCKET);
        break;
        }
      case DROP:{
        token = jj_consume_token(DROP);
        break;
        }
      case PROPERTY:{
        token = jj_consume_token(PROPERTY);
        break;
        }
      case FORCE:{
        token = jj_consume_token(FORCE);
        break;
        }
      case SCHEMA:{
        token = jj_consume_token(SCHEMA);
        break;
        }
      case INDEX:{
        token = jj_consume_token(INDEX);
        break;
        }
      case ENGINE:{
        token = jj_consume_token(ENGINE);
        break;
        }
      case REBUILD:{
        token = jj_consume_token(REBUILD);
        break;
        }
      case FORMAT:{
        token = jj_consume_token(FORMAT);
        break;
        }
      case EXPORT:{
        token = jj_consume_token(EXPORT);
        break;
        }
      case IMPORT:{
        token = jj_consume_token(IMPORT);
        break;
        }
      case DATABASE:{
        token = jj_consume_token(DATABASE);
        break;
        }
      case OPTIMIZE:{
        token = jj_consume_token(OPTIMIZE);
        break;
        }
      case LINK:{
        token = jj_consume_token(LINK);
        break;
        }
      case INVERSE:{
        token = jj_consume_token(INVERSE);
        break;
        }
      case EXPLAIN:{
        token = jj_consume_token(EXPLAIN);
        break;
        }
      case GRANT:{
        token = jj_consume_token(GRANT);
        break;
        }
      case REVOKE:{
        token = jj_consume_token(REVOKE);
        break;
        }
      case READ:{
        token = jj_consume_token(READ);
        break;
        }
      case EXECUTE:{
        token = jj_consume_token(EXECUTE);
        break;
        }
      case ALL:{
        token = jj_consume_token(ALL);
        break;
        }
      case NONE:{
        token = jj_consume_token(NONE);
        break;
        }
      case FUNCTION:{
        token = jj_consume_token(FUNCTION);
        break;
        }
      case LANGUAGE:{
        token = jj_consume_token(LANGUAGE);
        break;
        }
      case PARAMETERS:{
        token = jj_consume_token(PARAMETERS);
        break;
        }
      case BEGIN:{
        token = jj_consume_token(BEGIN);
        break;
        }
      case COMMIT:{
        token = jj_consume_token(COMMIT);
        break;
        }
      case ROLLBACK:{
        token = jj_consume_token(ROLLBACK);
        break;
        }
      case IF:{
        token = jj_consume_token(IF);
        break;
        }
      case ELSE:{
        token = jj_consume_token(ELSE);
        break;
        }
      case CONTINUE:{
        token = jj_consume_token(CONTINUE);
        break;
        }
      case FAIL:{
        token = jj_consume_token(FAIL);
        break;
        }
      case ISOLATION:{
        token = jj_consume_token(ISOLATION);
        break;
        }
      case SLEEP:{
        token = jj_consume_token(SLEEP);
        break;
        }
      case CONSOLE:{
        token = jj_consume_token(CONSOLE);
        break;
        }
      case START:{
        token = jj_consume_token(START);
        break;
        }
      case OPTIONAL:{
        token = jj_consume_token(OPTIONAL);
        break;
        }
      case COUNT:{
        token = jj_consume_token(COUNT);
        break;
        }
      case EXISTS:{
        token = jj_consume_token(EXISTS);
        break;
        }
      case MOVE:{
        token = jj_consume_token(MOVE);
        break;
        }
      case DEPTH_ALIAS:{
        token = jj_consume_token(DEPTH_ALIAS);
        break;
        }
      case PATH_ALIAS:{
        token = jj_consume_token(PATH_ALIAS);
        break;
        }
      case IDENTIFIED:{
        token = jj_consume_token(IDENTIFIED);
        break;
        }
      case RID:{
        token = jj_consume_token(RID);
        break;
        }
      case SYSTEM:{
        token = jj_consume_token(SYSTEM);
        break;
        }
      case QUOTED_IDENTIFIER:{
        quotedToken = jj_consume_token(QUOTED_IDENTIFIER);
        break;
        }
      default:
        jj_la1[6] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
if(token!=null){
    jjtn000.setStringValue( token.image );
  }else{
    jjtn000.setQuotedStringValue( quotedToken.image );
  }

  {if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
    jjtree.closeNodeScope(jjtn000, true);
    jjtn000.jjtSetLastToken(getToken(0));
  }
    }
    throw new Error("Missing return statement in function");
}

  final public PInteger PInteger() throws ParseException {/*@bgen(jjtree) PInteger */
  PInteger jjtn000 = new PInteger(JJTPINTEGER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));int sign = 1;
  Token tokenVal;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case MINUS:{
        jj_consume_token(MINUS);
sign = -1;
        break;
        }
      default:
        jj_la1[7] = jj_gen;
        ;
      }
      tokenVal = jj_consume_token(INTEGER_LITERAL);
jjtn000.setValue(sign, tokenVal.image);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public FloatingPoint FloatingPoint() throws ParseException {/*@bgen(jjtree) FloatingPoint */
  FloatingPoint jjtn000 = new FloatingPoint(JJTFLOATINGPOINT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));String stringValue;
  Token tokenVal;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case MINUS:{
        jj_consume_token(MINUS);
jjtn000.sign = -1;
        break;
        }
      default:
        jj_la1[8] = jj_gen;
        ;
      }
      tokenVal = jj_consume_token(FLOATING_POINT_LITERAL);
jjtn000.stringValue = tokenVal.image;
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public PNumber PNumber() throws ParseException {/*@bgen(jjtree) PNumber */
  PNumber jjtn000 = new PNumber(JJTPNUMBER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));PNumber result;
    try {
      if (jj_2_4(2147483647)) {
        result = PInteger();
      } else if (jj_2_5(2147483647)) {
        result = FloatingPoint();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Statement Statement() throws ParseException {/*@bgen(jjtree) Statement */
 Statement jjtn000 = new Statement(JJTSTATEMENT);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));Statement result = null;
    try {
      result = StatementInternal();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case SEMICOLON:{
        jj_consume_token(SEMICOLON);
        break;
        }
      default:
        jj_la1[9] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Statement StatementSemicolon() throws ParseException {/*@bgen(jjtree) StatementSemicolon */
 StatementSemicolon jjtn000 = new StatementSemicolon(JJTSTATEMENTSEMICOLON);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));Statement result = null;
    try {
      if (jj_2_6(2147483647)) {
        result = StatementInternal();
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case TRUE:
        case FALSE:
        case LPAREN:
        case LBRACE:
        case LBRACKET:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:
        case 250:{
          result = ExpressionStatement();
          break;
          }
        default:
          jj_la1[10] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      jj_consume_token(SEMICOLON);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Statement ExpressionStatement() throws ParseException {/*@bgen(jjtree) ExpressionStatement */
  ExpressionStatement jjtn000 = new ExpressionStatement(JJTEXPRESSIONSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.expression = Expression();
jjtree.closeNodeScope(jjtn000, true);
      jjtc000 = false;
      jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Statement StatementInternal() throws ParseException {/*@bgen(jjtree) StatementInternal */
  StatementInternal jjtn000 = new StatementInternal(JJTSTATEMENTINTERNAL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Statement result = null;
    try {
      if (jj_2_35(2)) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case SELECT:
        case TRAVERSE:
        case MATCH:{
          result = QueryStatement();
          break;
          }
        default:
          jj_la1[11] = jj_gen;
          if (jj_2_7(2)) {
            result = DeleteStatement();
          } else if (jj_2_8(2)) {
            result = DeleteEdgeStatement();
          } else {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case INSERT:{
              result = InsertStatement();
              break;
              }
            default:
              jj_la1[12] = jj_gen;
              if (jj_2_9(4)) {
                result = CreateDocumentTypeStatement();
              } else if (jj_2_10(4)) {
                result = CreateVertexTypeStatement();
              } else if (jj_2_11(4)) {
                result = CreateEdgeTypeStatement();
              } else if (jj_2_12(2)) {
                result = CreatePropertyStatement();
              } else if (jj_2_13(2)) {
                result = CreateIndexStatement();
              } else if (jj_2_14(2)) {
                result = CreateBucketStatement();
              } else if (jj_2_15(2147483647)) {
                result = CreateVertexStatementNoTarget();
              } else if (jj_2_16(2147483647)) {
                result = CreateVertexStatement();
              } else if (jj_2_17(2147483647)) {
                result = CreateVertexStatementEmpty();
              } else if (jj_2_18(2147483647)) {
                result = CreateVertexStatementEmptyNoTarget();
              } else if (jj_2_19(2147483647)) {
                result = CreateEdgeStatement();
              } else if (jj_2_20(2147483647)) {
                result = UpdateEdgeStatement();
              } else if (jj_2_21(2147483647)) {
                result = UpdateStatement();
              } else if (jj_2_22(2147483647)) {
                result = DefineFunctionStatement();
              } else if (jj_2_23(2147483647)) {
                result = DeleteFunctionStatement();
              } else if (jj_2_24(2147483647)) {
                result = TruncateTypeStatement();
              } else if (jj_2_25(2147483647)) {
                result = TruncateBucketStatement();
              } else if (jj_2_26(2147483647)) {
                result = TruncateRecordStatement();
              } else if (jj_2_27(2147483647)) {
                result = AlterTypeStatement();
              } else if (jj_2_28(2147483647)) {
                result = DropTypeStatement();
              } else if (jj_2_29(2147483647)) {
                result = AlterPropertyStatement();
              } else if (jj_2_30(2147483647)) {
                result = DropPropertyStatement();
              } else {
                switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
                case REBUILD:{
                  result = RebuildIndexStatement();
                  break;
                  }
                default:
                  jj_la1[13] = jj_gen;
                  if (jj_2_31(2)) {
                    result = DropIndexStatement();
                  } else if (jj_2_32(2147483647)) {
                    result = AlterBucketStatement();
                  } else if (jj_2_33(2)) {
                    result = DropBucketStatement();
                  } else if (jj_2_34(2)) {
                    result = AlterDatabaseStatement();
                  } else {
                    switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
                    case BEGIN:{
                      result = BeginStatement();
                      break;
                      }
                    case COMMIT:{
                      result = CommitStatement();
                      break;
                      }
                    case ROLLBACK:{
                      result = RollbackStatement();
                      break;
                      }
                    case RETURN:{
                      result = ReturnStatement();
                      break;
                      }
                    case SLEEP:{
                      result = SleepStatement();
                      break;
                      }
                    case IF:{
                      result = IfStatement();
                      break;
                      }
                    case IMPORT:{
                      result = ImportDatabaseStatement();
                      break;
                      }
                    case EXPORT:{
                      result = ExportDatabaseStatement();
                      break;
                      }
                    case BACKUP:{
                      result = BackupDatabaseStatement();
                      break;
                      }
                    case CHECK:{
                      result = CheckDatabaseStatement();
                      break;
                      }
                    case ALIGN:{
                      result = AlignDatabaseStatement();
                      break;
                      }
                    default:
                      jj_la1[14] = jj_gen;
                      jj_consume_token(-1);
                      throw new ParseException();
                    }
                  }
                }
              }
            }
          }
        }
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case EXPLAIN:{
          result = ExplainStatement();
          break;
          }
        default:
          jj_la1[15] = jj_gen;
          if (jj_2_36(2147483647)) {
            result = ProfileStatement();
          } else {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case LET:{
              result = LetStatement();
              break;
              }
            default:
              jj_la1[16] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
          }
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Statement QueryStatement() throws ParseException {/*@bgen(jjtree) QueryStatement */
 QueryStatement jjtn000 = new QueryStatement(JJTQUERYSTATEMENT);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));Statement result;
    try {
      if (jj_2_37(2147483647)) {
        result = SelectStatement();
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case SELECT:{
          result = SelectWithoutTargetStatement();
          break;
          }
        case TRAVERSE:{
          result = TraverseStatement();
          break;
          }
        case MATCH:{
          result = MatchStatement();
          break;
          }
        default:
          jj_la1[17] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
jjtree.closeNodeScope(jjtn000, true);
     jjtc000 = false;
     jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public SelectWithoutTargetStatement SelectWithoutTargetStatement() throws ParseException {/*@bgen(jjtree) SelectWithoutTargetStatement */
  SelectWithoutTargetStatement jjtn000 = new SelectWithoutTargetStatement(JJTSELECTWITHOUTTARGETSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(SELECT);
      jjtn000.projection = Projection();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LET:{
        jjtn000.letClause = LetClause();
        break;
        }
      default:
        jj_la1[18] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case UNWIND:{
        jjtn000.unwind = Unwind();
        break;
        }
      default:
        jj_la1[19] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LIMIT:
      case SKIP2:
      case OFFSET:{
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case SKIP2:
        case OFFSET:{
          jjtn000.skip = Skip();
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case LIMIT:{
            jjtn000.limit = Limit();
            break;
            }
          default:
            jj_la1[20] = jj_gen;
            ;
          }
          break;
          }
        case LIMIT:{
          jjtn000.limit = Limit();
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case SKIP2:
          case OFFSET:{
            jjtn000.skip = Skip();
            break;
            }
          default:
            jj_la1[21] = jj_gen;
            ;
          }
          break;
          }
        default:
          jj_la1[22] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      default:
        jj_la1[23] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case TIMEOUT:{
        jjtn000.timeout = Timeout();
        break;
        }
      default:
        jj_la1[24] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
jjtn000.validate();
    {if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public SelectStatement SelectStatement() throws ParseException {/*@bgen(jjtree) SelectStatement */
  SelectStatement jjtn000 = new SelectStatement(JJTSELECTSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(SELECT);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case NULL:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case DISTINCT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case THIS:
      case RECORD_ATTRIBUTE:
      case RID_STRING:
      case INTEGER_LITERAL:
      case FLOATING_POINT_LITERAL:
      case CHARACTER_LITERAL:
      case STRING_LITERAL:
      case TRUE:
      case FALSE:
      case LPAREN:
      case LBRACE:
      case LBRACKET:
      case BANG:
      case HOOK:
      case COLON:
      case MINUS:
      case STAR:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:
      case 250:{
        jjtn000.projection = Projection();
        break;
        }
      default:
        jj_la1[25] = jj_gen;
        ;
      }
      jj_consume_token(FROM);
      jjtn000.target = FromClause();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LET:{
        jjtn000.letClause = LetClause();
        break;
        }
      default:
        jj_la1[26] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WHERE:{
        jj_consume_token(WHERE);
        jjtn000.whereClause = WhereClause();
        break;
        }
      default:
        jj_la1[27] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case GROUP_BY:{
        jjtn000.groupBy = GroupBy();
        break;
        }
      default:
        jj_la1[28] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ORDER_BY:{
        jjtn000.orderBy = OrderBy();
        break;
        }
      default:
        jj_la1[29] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case UNWIND:{
        jjtn000.unwind = Unwind();
        break;
        }
      default:
        jj_la1[30] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LIMIT:
      case SKIP2:
      case OFFSET:{
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case SKIP2:
        case OFFSET:{
          jjtn000.skip = Skip();
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case LIMIT:{
            jjtn000.limit = Limit();
            break;
            }
          default:
            jj_la1[31] = jj_gen;
            ;
          }
          break;
          }
        case LIMIT:{
          jjtn000.limit = Limit();
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case SKIP2:
          case OFFSET:{
            jjtn000.skip = Skip();
            break;
            }
          default:
            jj_la1[32] = jj_gen;
            ;
          }
          break;
          }
        default:
          jj_la1[33] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      default:
        jj_la1[34] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case TIMEOUT:{
        jjtn000.timeout = Timeout();
        break;
        }
      default:
        jj_la1[35] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
jjtn000.validate();
    {if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public TraverseStatement TraverseStatement() throws ParseException {/*@bgen(jjtree) TraverseStatement */
  TraverseStatement jjtn000 = new TraverseStatement(JJTTRAVERSESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));TraverseProjectionItem lastProjection;
    try {
      jj_consume_token(TRAVERSE);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case DISTINCT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case THIS:
      case RECORD_ATTRIBUTE:
      case LBRACKET:
      case STAR:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        lastProjection = TraverseProjectionItem();
jjtn000.projections.add(lastProjection);
        label_2:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[36] = jj_gen;
            break label_2;
          }
          jj_consume_token(COMMA);
          lastProjection = TraverseProjectionItem();
jjtn000.projections.add(lastProjection);
        }
        break;
        }
      default:
        jj_la1[37] = jj_gen;
        ;
      }
      jj_consume_token(FROM);
      jjtn000.target = FromClause();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case MAXDEPTH:{
        jj_consume_token(MAXDEPTH);
        jjtn000.maxDepth = PInteger();
        break;
        }
      default:
        jj_la1[38] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WHILE:{
        jj_consume_token(WHILE);
        jjtn000.whileClause = WhereClause();
        break;
        }
      default:
        jj_la1[39] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LIMIT:{
        jjtn000.limit = Limit();
        break;
        }
      default:
        jj_la1[40] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case STRATEGY:{
        jj_consume_token(STRATEGY);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case DEPTH_FIRST:{
          jj_consume_token(DEPTH_FIRST);
jjtn000.strategy = TraverseStatement.Strategy.DEPTH_FIRST;
          break;
          }
        case BREADTH_FIRST:{
          jj_consume_token(BREADTH_FIRST);
jjtn000.strategy = TraverseStatement.Strategy.BREADTH_FIRST;
          break;
          }
        default:
          jj_la1[41] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      default:
        jj_la1[42] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchStatement MatchStatement() throws ParseException {/*@bgen(jjtree) MatchStatement */
  MatchStatement jjtn000 = new MatchStatement(JJTMATCHSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));MatchExpression lastMatchExpr = null;
  Expression lastReturn = null;
  Identifier lastReturnAlias = null;
  NestedProjection lastNestedProjection = null;
    try {
      jj_consume_token(MATCH);
      lastMatchExpr = MatchExpression();
jjtn000.matchExpressions.add(lastMatchExpr);
      label_3:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case COMMA:{
          ;
          break;
          }
        default:
          jj_la1[43] = jj_gen;
          break label_3;
        }
        jj_consume_token(COMMA);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case LBRACE:{
          lastMatchExpr = MatchExpression();
jjtn000.matchExpressions.add(lastMatchExpr);
          break;
          }
        case NOT:{
          jj_consume_token(NOT);
          lastMatchExpr = MatchExpression();
jjtn000.notMatchExpressions.add(lastMatchExpr);
          break;
          }
        default:
          jj_la1[44] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      jj_consume_token(RETURN);
      if (jj_2_38(2)) {
        jj_consume_token(DISTINCT);
jjtn000.returnDistinct = true;
        lastReturn = Expression();
lastReturnAlias = null;
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case COLON:{
          lastNestedProjection = NestedProjection();
          break;
          }
        default:
          jj_la1[45] = jj_gen;
          ;
        }
      } else if (jj_2_39(2147483647)) {
        lastReturn = Expression();
lastReturnAlias = null;
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case COLON:{
          lastNestedProjection = NestedProjection();
          break;
          }
        default:
          jj_la1[46] = jj_gen;
          ;
        }
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case AS:{
        jj_consume_token(AS);
        lastReturnAlias = Identifier();
        break;
        }
      default:
        jj_la1[47] = jj_gen;
        ;
      }
jjtn000.returnAliases.add(lastReturnAlias);
      jjtn000.returnItems.add(lastReturn);
      jjtn000.returnNestedProjections.add(lastNestedProjection);
      lastNestedProjection = null;
      label_4:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case COMMA:{
          ;
          break;
          }
        default:
          jj_la1[48] = jj_gen;
          break label_4;
        }
        jj_consume_token(COMMA);
        lastReturn = Expression();
lastReturnAlias = null;
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case COLON:{
          lastNestedProjection = NestedProjection();
          break;
          }
        default:
          jj_la1[49] = jj_gen;
          ;
        }
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case AS:{
          jj_consume_token(AS);
          lastReturnAlias = Identifier();
          break;
          }
        default:
          jj_la1[50] = jj_gen;
          ;
        }
jjtn000.returnAliases.add(lastReturnAlias);
        jjtn000.returnItems.add(lastReturn);
        jjtn000.returnNestedProjections.add(lastNestedProjection);
        lastNestedProjection = null;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case GROUP_BY:{
        jjtn000.groupBy = GroupBy();
        break;
        }
      default:
        jj_la1[51] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ORDER_BY:{
        jjtn000.orderBy = OrderBy();
        break;
        }
      default:
        jj_la1[52] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case UNWIND:{
        jjtn000.unwind = Unwind();
        break;
        }
      default:
        jj_la1[53] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case SKIP2:
      case OFFSET:{
        jjtn000.skip = Skip();
        break;
        }
      default:
        jj_la1[54] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LIMIT:{
        jjtn000.limit = Limit();
        break;
        }
      default:
        jj_la1[55] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
     jjtc000 = false;
     jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DeleteStatement DeleteStatement() throws ParseException {/*@bgen(jjtree) DeleteStatement */
  DeleteStatement jjtn000 = new DeleteStatement(JJTDELETESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(DELETE);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case VERTEX:{
        jj_consume_token(VERTEX);
        break;
        }
      default:
        jj_la1[56] = jj_gen;
        ;
      }
      jj_consume_token(FROM);
      jjtn000.fromClause = FromClause();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case RETURN:{
        jj_consume_token(RETURN);
        jj_consume_token(BEFORE);
jjtn000.returnBefore = true;
        break;
        }
      default:
        jj_la1[57] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WHERE:{
        jj_consume_token(WHERE);
        jjtn000.whereClause = WhereClause();
        break;
        }
      default:
        jj_la1[58] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LIMIT:{
        jjtn000.limit = Limit();
        break;
        }
      default:
        jj_la1[59] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case UNSAFE:{
        jj_consume_token(UNSAFE);
jjtn000.unsafe = true;
        break;
        }
      default:
        jj_la1[60] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DeleteEdgeStatement DeleteEdgeStatement() throws ParseException {/*@bgen(jjtree) DeleteEdgeStatement */
  DeleteEdgeStatement jjtn000 = new DeleteEdgeStatement(JJTDELETEEDGESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));DeleteEdgeStatement result;
    try {
      if (jj_2_40(2147483647)) {
        result = DeleteEdgeByRidStatement();
      } else if (jj_2_41(2147483647)) {
        result = DeleteEdgeFromToStatement();
      } else if (jj_2_42(2147483647)) {
        result = DeleteEdgeVToStatement();
      } else if (jj_2_43(2147483647)) {
        result = DeleteEdgeToStatement();
      } else if (jj_2_44(2147483647)) {
        result = DeleteEdgeWhereStatement();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DeleteEdgeStatement DeleteEdgeByRidStatement() throws ParseException {/*@bgen(jjtree) DeleteEdgeByRidStatement */
  DeleteEdgeByRidStatement jjtn000 = new DeleteEdgeByRidStatement(JJTDELETEEDGEBYRIDSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Rid lastRid;
    try {
      jj_consume_token(DELETE);
      jj_consume_token(EDGE);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case INTEGER_LITERAL:
      case LBRACE:
      case MINUS:
      case 250:{
        jjtn000.rid = Rid();
        break;
        }
      case LBRACKET:{
        jj_consume_token(LBRACKET);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case INTEGER_LITERAL:
        case LBRACE:
        case MINUS:
        case 250:{
          lastRid = Rid();
jjtn000.rids = new ArrayList();
          jjtn000.rids.add(lastRid);
          label_5:
          while (true) {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case COMMA:{
              ;
              break;
              }
            default:
              jj_la1[61] = jj_gen;
              break label_5;
            }
            jj_consume_token(COMMA);
            lastRid = Rid();
jjtn000.rids.add(lastRid);
          }
          break;
          }
        default:
          jj_la1[62] = jj_gen;
          ;
        }
        jj_consume_token(RBRACKET);
        break;
        }
      default:
        jj_la1[63] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
  jjtc000 = false;
  jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DeleteEdgeStatement DeleteEdgeFromToStatement() throws ParseException {/*@bgen(jjtree) DeleteEdgeFromToStatement */
  DeleteEdgeFromToStatement jjtn000 = new DeleteEdgeFromToStatement(JJTDELETEEDGEFROMTOSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Rid lastRid;
    try {
      jj_consume_token(DELETE);
      jj_consume_token(EDGE);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.typeName = Identifier();
        break;
        }
      default:
        jj_la1[64] = jj_gen;
        ;
      }
      jj_consume_token(FROM);
      jjtn000.leftExpression = Expression();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case TO:{
        jj_consume_token(TO);
        jjtn000.rightExpression = Expression();
        break;
        }
      default:
        jj_la1[65] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WHERE:{
        jj_consume_token(WHERE);
        jjtn000.whereClause = WhereClause();
        break;
        }
      default:
        jj_la1[66] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LIMIT:{
        jjtn000.limit = Limit();
        break;
        }
      default:
        jj_la1[67] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DeleteEdgeStatement DeleteEdgeToStatement() throws ParseException {/*@bgen(jjtree) DeleteEdgeToStatement */
  DeleteEdgeToStatement jjtn000 = new DeleteEdgeToStatement(JJTDELETEEDGETOSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Rid lastRid;
    try {
      jj_consume_token(DELETE);
      jj_consume_token(EDGE);
      jjtn000.typeName = Identifier();
      jj_consume_token(TO);
      jjtn000.rightExpression = Expression();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WHERE:{
        jj_consume_token(WHERE);
        jjtn000.whereClause = WhereClause();
        break;
        }
      default:
        jj_la1[68] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LIMIT:{
        jjtn000.limit = Limit();
        break;
        }
      default:
        jj_la1[69] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DeleteEdgeStatement DeleteEdgeVToStatement() throws ParseException {/*@bgen(jjtree) DeleteEdgeVToStatement */
  DeleteEdgeVToStatement jjtn000 = new DeleteEdgeVToStatement(JJTDELETEEDGEVTOSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Rid lastRid;
    try {
      jj_consume_token(DELETE);
      jj_consume_token(EDGE);
      jj_consume_token(TO);
      jjtn000.rightExpression = Expression();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WHERE:{
        jj_consume_token(WHERE);
        jjtn000.whereClause = WhereClause();
        break;
        }
      default:
        jj_la1[70] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LIMIT:{
        jjtn000.limit = Limit();
        break;
        }
      default:
        jj_la1[71] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DeleteEdgeStatement DeleteEdgeWhereStatement() throws ParseException {/*@bgen(jjtree) DeleteEdgeWhereStatement */
  DeleteEdgeWhereStatement jjtn000 = new DeleteEdgeWhereStatement(JJTDELETEEDGEWHERESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Rid lastRid;
    try {
      jj_consume_token(DELETE);
      jj_consume_token(EDGE);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.typeName = Identifier();
        break;
        }
      default:
        jj_la1[72] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WHERE:{
        jj_consume_token(WHERE);
        jjtn000.whereClause = WhereClause();
        break;
        }
      default:
        jj_la1[73] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LIMIT:{
        jjtn000.limit = Limit();
        break;
        }
      default:
        jj_la1[74] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public UpdateEdgeStatement UpdateEdgeStatement() throws ParseException {/*@bgen(jjtree) UpdateEdgeStatement */
  UpdateEdgeStatement jjtn000 = new UpdateEdgeStatement(JJTUPDATEEDGESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));UpdateOperations lastOperations;
 Rid lastRid;
    try {
      jj_consume_token(UPDATE);
      jj_consume_token(EDGE);
      jjtn000.target = FromClause();
      label_6:
      while (true) {
        lastOperations = UpdateOperations();
jjtn000.operations.add(lastOperations);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case INCREMENT:{
          ;
          break;
          }
        default:
          jj_la1[75] = jj_gen;
          break label_6;
        }
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case UPSERT:{
        jj_consume_token(UPSERT);
jjtn000.upsert = true;
        break;
        }
      default:
        jj_la1[76] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case RETURN:{
        jj_consume_token(RETURN);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case BEFORE:{
          jj_consume_token(BEFORE);
jjtn000.returnBefore = true;
          break;
          }
        case AFTER:{
          jj_consume_token(AFTER);
jjtn000.returnAfter = true;
          break;
          }
        default:
          jj_la1[77] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case TRUE:
        case FALSE:
        case LPAREN:
        case LBRACE:
        case LBRACKET:
        case BANG:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:
        case 250:{
          jjtn000.returnProjection = Projection();
          break;
          }
        default:
          jj_la1[78] = jj_gen;
          ;
        }
        break;
        }
      default:
        jj_la1[79] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WHERE:{
        jj_consume_token(WHERE);
        jjtn000.whereClause = WhereClause();
        break;
        }
      default:
        jj_la1[80] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LIMIT:{
        jjtn000.limit = Limit();
        break;
        }
      default:
        jj_la1[81] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case TIMEOUT:{
        jjtn000.timeout = Timeout();
        break;
        }
      default:
        jj_la1[82] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public UpdateStatement UpdateStatement() throws ParseException {/*@bgen(jjtree) UpdateStatement */
  UpdateStatement jjtn000 = new UpdateStatement(JJTUPDATESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));UpdateOperations lastOperations;
  Rid lastRid;
    try {
      jj_consume_token(UPDATE);
      jjtn000.target = FromClause();
      label_7:
      while (true) {
        lastOperations = UpdateOperations();
jjtn000.operations.add(lastOperations);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case INCREMENT:{
          ;
          break;
          }
        default:
          jj_la1[83] = jj_gen;
          break label_7;
        }
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case UPSERT:{
        jj_consume_token(UPSERT);
jjtn000.upsert = true;
        break;
        }
      default:
        jj_la1[84] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case RETURN:{
        jj_consume_token(RETURN);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case BEFORE:{
          jj_consume_token(BEFORE);
jjtn000.returnBefore = true;
          break;
          }
        case AFTER:{
          jj_consume_token(AFTER);
jjtn000.returnAfter = true;
          break;
          }
        case COUNT:{
          jj_consume_token(COUNT);
jjtn000.returnCount = true;
          break;
          }
        default:
          jj_la1[85] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case TRUE:
        case FALSE:
        case LPAREN:
        case LBRACE:
        case LBRACKET:
        case BANG:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:
        case 250:{
          jjtn000.returnProjection = Projection();
          break;
          }
        default:
          jj_la1[86] = jj_gen;
          ;
        }
        break;
        }
      default:
        jj_la1[87] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WHERE:{
        jj_consume_token(WHERE);
        jjtn000.whereClause = WhereClause();
        break;
        }
      default:
        jj_la1[88] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LIMIT:{
        jjtn000.limit = Limit();
        break;
        }
      default:
        jj_la1[89] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case TIMEOUT:{
        jjtn000.timeout = Timeout();
        break;
        }
      default:
        jj_la1[90] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public UpdateOperations UpdateOperations() throws ParseException {/*@bgen(jjtree) UpdateOperations */
  UpdateOperations jjtn000 = new UpdateOperations(JJTUPDATEOPERATIONS);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));UpdateItem lastItem;
  UpdatePutItem lastPutItem;
  UpdateIncrementItem lastIncrementItem;
  UpdateRemoveItem lastRemoveItem;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case SET:{
        jj_consume_token(SET);
jjtn000.type = UpdateOperations.TYPE_SET;
        lastItem = UpdateItem();
jjtn000.updateItems.add(lastItem);
        label_8:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[91] = jj_gen;
            break label_8;
          }
          jj_consume_token(COMMA);
          lastItem = UpdateItem();
jjtn000.updateItems.add(lastItem);
        }
        break;
        }
      case PUT:{
        jj_consume_token(PUT);
jjtn000.type = UpdateOperations.TYPE_PUT;
        lastPutItem = UpdatePutItem();
jjtn000.updatePutItems.add(lastPutItem);
        label_9:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[92] = jj_gen;
            break label_9;
          }
          jj_consume_token(COMMA);
          lastPutItem = UpdatePutItem();
jjtn000.updatePutItems.add(lastPutItem);
        }
        break;
        }
      case MERGE:
      case CONTENT:{
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case MERGE:{
          jj_consume_token(MERGE);
jjtn000.type = UpdateOperations.TYPE_MERGE;
          break;
          }
        case CONTENT:{
          jj_consume_token(CONTENT);
jjtn000.type = UpdateOperations.TYPE_CONTENT;
          break;
          }
        default:
          jj_la1[93] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        jjtn000.json = Json();
        break;
        }
      case ADD:
      case INCREMENT:{
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case INCREMENT:{
          jj_consume_token(INCREMENT);
jjtn000.type = UpdateOperations.TYPE_INCREMENT;
          break;
          }
        case ADD:{
          jj_consume_token(ADD);
jjtn000.type = UpdateOperations.TYPE_ADD;
          break;
          }
        default:
          jj_la1[94] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        lastIncrementItem = UpdateIncrementItem();
jjtn000.updateIncrementItems.add(lastIncrementItem);
        label_10:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[95] = jj_gen;
            break label_10;
          }
          jj_consume_token(COMMA);
          lastIncrementItem = UpdateIncrementItem();
jjtn000.updateIncrementItems.add(lastIncrementItem);
        }
        break;
        }
      case REMOVE:{
        jj_consume_token(REMOVE);
jjtn000.type = UpdateOperations.TYPE_REMOVE;
        lastRemoveItem = UpdateRemoveItem();
jjtn000.updateRemoveItems.add(lastRemoveItem);
        label_11:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[96] = jj_gen;
            break label_11;
          }
          jj_consume_token(COMMA);
          lastRemoveItem = UpdateRemoveItem();
jjtn000.updateRemoveItems.add(lastRemoveItem);
        }
        break;
        }
      default:
        jj_la1[97] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public UpdateItem UpdateItem() throws ParseException {/*@bgen(jjtree) UpdateItem */
  UpdateItem jjtn000 = new UpdateItem(JJTUPDATEITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.left = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LBRACKET:
      case DOT:{
        jjtn000.leftModifier = Modifier();
        break;
        }
      default:
        jj_la1[98] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case EQ:{
        jj_consume_token(EQ);
jjtn000.operator = UpdateItem.OPERATOR_EQ;
        break;
        }
      case PLUSASSIGN:{
        jj_consume_token(PLUSASSIGN);
jjtn000.operator = UpdateItem.OPERATOR_PLUSASSIGN;
        break;
        }
      case MINUSASSIGN:{
        jj_consume_token(MINUSASSIGN);
jjtn000.operator = UpdateItem.OPERATOR_MINUSASSIGN;
        break;
        }
      case STARASSIGN:{
        jj_consume_token(STARASSIGN);
jjtn000.operator = UpdateItem.OPERATOR_STARASSIGN;
        break;
        }
      case SLASHASSIGN:{
        jj_consume_token(SLASHASSIGN);
jjtn000.operator = UpdateItem.OPERATOR_SLASHASSIGN;
        break;
        }
      default:
        jj_la1[99] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jjtn000.right = Expression();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public UpdateIncrementItem UpdateIncrementItem() throws ParseException {/*@bgen(jjtree) UpdateIncrementItem */
  UpdateIncrementItem jjtn000 = new UpdateIncrementItem(JJTUPDATEINCREMENTITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.left = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LBRACKET:
      case DOT:{
        jjtn000.leftModifier = Modifier();
        break;
        }
      default:
        jj_la1[100] = jj_gen;
        ;
      }
      jj_consume_token(EQ);
      jjtn000.right = Expression();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public UpdateRemoveItem UpdateRemoveItem() throws ParseException {/*@bgen(jjtree) UpdateRemoveItem */
  UpdateRemoveItem jjtn000 = new UpdateRemoveItem(JJTUPDATEREMOVEITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.left = Expression();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case EQ:{
        jj_consume_token(EQ);
        jjtn000.right = Expression();
        break;
        }
      default:
        jj_la1[101] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public UpdatePutItem UpdatePutItem() throws ParseException {/*@bgen(jjtree) UpdatePutItem */
  UpdatePutItem jjtn000 = new UpdatePutItem(JJTUPDATEPUTITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.left = Identifier();
      jj_consume_token(EQ);
      jjtn000.key = Expression();
      jj_consume_token(COMMA);
      jjtn000.value = Expression();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public UpdateAddItem UpdateAddItem() throws ParseException {/*@bgen(jjtree) UpdateAddItem */
  UpdateAddItem jjtn000 = new UpdateAddItem(JJTUPDATEADDITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.left = Identifier();
      jj_consume_token(EQ);
      jjtn000.right = Expression();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public InsertStatement InsertStatement() throws ParseException {/*@bgen(jjtree) InsertStatement */
  InsertStatement jjtn000 = new InsertStatement(JJTINSERTSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(INSERT);
      jj_consume_token(INTO);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.targetType = Identifier();
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case BUCKET:{
          jj_consume_token(BUCKET);
          jjtn000.targetBucketName = Identifier();
          break;
          }
        default:
          jj_la1[102] = jj_gen;
          ;
        }
        break;
        }
      case BUCKET_IDENTIFIER:
      case BUCKET_NUMBER_IDENTIFIER:{
        jjtn000.targetBucket = Bucket();
        break;
        }
      default:
        jj_la1[103] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      if (jj_2_45(2147483647)) {
        jjtn000.insertBody = InsertBody();
      } else {
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case RETURN:{
        jj_consume_token(RETURN);
        jjtn000.returnStatement = Projection();
        break;
        }
      default:
        jj_la1[104] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case SELECT:
      case FROM:
      case LPAREN:{
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case FROM:{
          jj_consume_token(FROM);
jjtn000.selectWithFrom = true;
          break;
          }
        default:
          jj_la1[105] = jj_gen;
          ;
        }
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case SELECT:{
          if (jj_2_46(2147483647)) {
            jjtn000.selectStatement = SelectStatement();
          } else {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case SELECT:{
              jjtn000.selectStatement = SelectWithoutTargetStatement();
              break;
              }
            default:
              jj_la1[106] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
          }
          break;
          }
        default:
          jj_la1[108] = jj_gen;
          if (jj_2_48(2)) {
            jj_consume_token(LPAREN);
            if (jj_2_47(2147483647)) {
              jjtn000.selectStatement = SelectStatement();
            } else {
              switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
              case SELECT:{
                jjtn000.selectStatement = SelectWithoutTargetStatement();
                break;
                }
              default:
                jj_la1[107] = jj_gen;
                jj_consume_token(-1);
                throw new ParseException();
              }
            }
jjtn000.selectInParentheses = true;
            jj_consume_token(RPAREN);
          } else {
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
        break;
        }
      default:
        jj_la1[109] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case UNSAFE:{
        jj_consume_token(UNSAFE);
jjtn000.unsafe = true;
        break;
        }
      default:
        jj_la1[110] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
    jjtn000.jjtSetLastToken(getToken(0));
  }
    }
    throw new Error("Missing return statement in function");
}

  final public InsertBody InsertBody() throws ParseException {/*@bgen(jjtree) InsertBody */
  InsertBody jjtn000 = new InsertBody(JJTINSERTBODY);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier lastIdentifier;
  Expression lastExpression;
  List lastExpressionList;
    try {
      if (jj_2_49(3)) {
        jj_consume_token(LPAREN);
        lastIdentifier = Identifier();
jjtn000.identifierList = new ArrayList();
        jjtn000.identifierList.add(lastIdentifier);
        label_12:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[111] = jj_gen;
            break label_12;
          }
          jj_consume_token(COMMA);
          lastIdentifier = Identifier();
jjtn000.identifierList.add(lastIdentifier);
        }
        jj_consume_token(RPAREN);
        jj_consume_token(VALUES);
        jj_consume_token(LPAREN);
jjtn000.valueExpressions = new ArrayList>();
        lastExpressionList = new ArrayList();
        jjtn000.valueExpressions.add(lastExpressionList);
        lastExpression = Expression();
lastExpressionList.add(lastExpression);
        label_13:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[112] = jj_gen;
            break label_13;
          }
          jj_consume_token(COMMA);
          lastExpression = Expression();
lastExpressionList.add(lastExpression);
        }
        jj_consume_token(RPAREN);
        label_14:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[113] = jj_gen;
            break label_14;
          }
          jj_consume_token(COMMA);
          jj_consume_token(LPAREN);
lastExpressionList = new ArrayList();
          jjtn000.valueExpressions.add(lastExpressionList);
          lastExpression = Expression();
lastExpressionList.add(lastExpression);
          label_15:
          while (true) {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case COMMA:{
              ;
              break;
              }
            default:
              jj_la1[114] = jj_gen;
              break label_15;
            }
            jj_consume_token(COMMA);
            lastExpression = Expression();
lastExpressionList.add(lastExpression);
          }
          jj_consume_token(RPAREN);
        }
      } else if (jj_2_50(3)) {
        jj_consume_token(SET);
jjtn000.setExpressions = new ArrayList();
        InsertSetExpression lastSetExpr = new InsertSetExpression();
        jjtn000.setExpressions.add(lastSetExpr);
        lastSetExpr.left = Identifier();
        jj_consume_token(EQ);
        lastSetExpr.right = Expression();
        label_16:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[115] = jj_gen;
            break label_16;
          }
          jj_consume_token(COMMA);
lastSetExpr = new InsertSetExpression();
           jjtn000.setExpressions.add(lastSetExpr);
          lastSetExpr.left = Identifier();
          jj_consume_token(EQ);
          lastSetExpr.right = Expression();
        }
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case CONTENT:{
          jj_consume_token(CONTENT);
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case LBRACE:{
            jjtn000.content = Json();
            break;
            }
          case HOOK:
          case COLON:{
            jjtn000.contentInputParam = InputParameter();
            break;
            }
          default:
            jj_la1[116] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          break;
          }
        default:
          jj_la1[117] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CreateVertexStatementEmptyNoTarget CreateVertexStatementEmptyNoTarget() throws ParseException {/*@bgen(jjtree) CreateVertexStatementEmptyNoTarget */
  CreateVertexStatementEmptyNoTarget jjtn000 = new CreateVertexStatementEmptyNoTarget(JJTCREATEVERTEXSTATEMENTEMPTYNOTARGET);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(CREATE);
      jj_consume_token(VERTEX);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CreateVertexStatementEmpty CreateVertexStatementEmpty() throws ParseException {/*@bgen(jjtree) CreateVertexStatementEmpty */
  CreateVertexStatementEmpty jjtn000 = new CreateVertexStatementEmpty(JJTCREATEVERTEXSTATEMENTEMPTY);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(CREATE);
      jj_consume_token(VERTEX);
      jjtn000.targetType = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKET:{
        jj_consume_token(BUCKET);
        jjtn000.targetBucketName = Identifier();
        break;
        }
      default:
        jj_la1[118] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CreateVertexStatement CreateVertexStatement() throws ParseException {/*@bgen(jjtree) CreateVertexStatement */
  CreateVertexStatement jjtn000 = new CreateVertexStatement(JJTCREATEVERTEXSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(CREATE);
      jj_consume_token(VERTEX);
      if (jj_2_51(2147483647)) {
        jjtn000.targetType = Identifier();
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case BUCKET:{
          jj_consume_token(BUCKET);
          jjtn000.targetBucketName = Identifier();
          break;
          }
        default:
          jj_la1[119] = jj_gen;
          ;
        }
      } else if (jj_2_52(2147483647)) {
        jjtn000.targetBucket = Bucket();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case RETURN:{
        jj_consume_token(RETURN);
        jjtn000.returnStatement = Projection();
        break;
        }
      default:
        jj_la1[120] = jj_gen;
        ;
      }
      if (jj_2_53(2147483647)) {
        jjtn000.insertBody = InsertBody();
      } else {
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
                                                                  jjtc000 = false;
                                                                  jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CreateVertexStatementNoTarget CreateVertexStatementNoTarget() throws ParseException {/*@bgen(jjtree) CreateVertexStatementNoTarget */
  CreateVertexStatementNoTarget jjtn000 = new CreateVertexStatementNoTarget(JJTCREATEVERTEXSTATEMENTNOTARGET);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(CREATE);
      jj_consume_token(VERTEX);
      jjtn000.insertBody = InsertBody();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CreateEdgeStatement CreateEdgeStatement() throws ParseException {/*@bgen(jjtree) CreateEdgeStatement */
  CreateEdgeStatement jjtn000 = new CreateEdgeStatement(JJTCREATEEDGESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Rid lastRid;
    try {
      jj_consume_token(CREATE);
      jj_consume_token(EDGE);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.targetType = Identifier();
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case BUCKET:{
          jj_consume_token(BUCKET);
          jjtn000.targetBucketName = Identifier();
          break;
          }
        default:
          jj_la1[121] = jj_gen;
          ;
        }
        break;
        }
      default:
        jj_la1[122] = jj_gen;
        ;
      }
      jj_consume_token(FROM);
      jjtn000.leftExpression = Expression();
      jj_consume_token(TO);
      jjtn000.rightExpression = Expression();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case IF:{
        jj_consume_token(IF);
        jj_consume_token(NOT);
        jj_consume_token(EXISTS);
jjtn000.ifNotExists = true;
        break;
        }
      default:
        jj_la1[123] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case SET:
      case CONTENT:
      case LPAREN:{
        jjtn000.body = InsertBody();
        break;
        }
      default:
        jj_la1[124] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case RETRY:{
        jjtn000.retry = Retry();
        break;
        }
      default:
        jj_la1[125] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WAIT:{
        jjtn000.wait = Wait();
        break;
        }
      default:
        jj_la1[126] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public InputParameter InputParameter() throws ParseException {/*@bgen(jjtree) InputParameter */
  InputParameter jjtn000 = new InputParameter(JJTINPUTPARAMETER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));InputParameter result;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case HOOK:{
        result = PositionalParameter();
        break;
        }
      case COLON:{
        result = NamedParameter();
        break;
        }
      default:
        jj_la1[127] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public PositionalParameter PositionalParameter() throws ParseException {/*@bgen(jjtree) PositionalParameter */
  PositionalParameter jjtn000 = new PositionalParameter(JJTPOSITIONALPARAMETER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(HOOK);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
jjtn000.paramNumber = inputParamCount;
    inputParamCount++;
    {if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public NamedParameter NamedParameter() throws ParseException {/*@bgen(jjtree) NamedParameter */
NamedParameter jjtn000 = new NamedParameter(JJTNAMEDPARAMETER);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
jjtn000.jjtSetFirstToken(getToken(1));Identifier identifierParam;
Token token;
    try {
      jj_consume_token(COLON);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        identifierParam = Identifier();
jjtn000.paramName = identifierParam.toString();
        break;
        }
      case SKIP2:{
        token = jj_consume_token(SKIP2);
jjtn000.paramName = token.image;
        break;
        }
      case LIMIT:{
        token = jj_consume_token(LIMIT);
jjtn000.paramName = token.image;
        break;
        }
      case FROM:{
        token = jj_consume_token(FROM);
jjtn000.paramName = token.image;
        break;
        }
      default:
        jj_la1[128] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
jjtn000.paramNumber = inputParamCount;
   inputParamCount++;
   {if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Projection Projection() throws ParseException {/*@bgen(jjtree) Projection */
  Projection jjtn000 = new Projection(JJTPROJECTION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));java.util.List items = new java.util.ArrayList();
  ProjectionItem lastItem = null;
    try {
      if (jj_2_54(2147483647)) {
        lastItem = ProjectionItem();
items.add(lastItem);
        label_17:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[129] = jj_gen;
            break label_17;
          }
          jj_consume_token(COMMA);
          lastItem = ProjectionItem();
items.add(lastItem);
        }
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case DISTINCT:{
          jj_consume_token(DISTINCT);
jjtn000.distinct = true;
          lastItem = ProjectionItem();
items.add(lastItem);
          label_18:
          while (true) {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case COMMA:{
              ;
              break;
              }
            default:
              jj_la1[130] = jj_gen;
              break label_18;
            }
            jj_consume_token(COMMA);
            lastItem = ProjectionItem();
items.add(lastItem);
          }
          break;
          }
        default:
          jj_la1[131] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
jjtn000.items = items;
    {if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ProjectionItem ProjectionItem() throws ParseException {/*@bgen(jjtree) ProjectionItem */
  ProjectionItem jjtn000 = new ProjectionItem(JJTPROJECTIONITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BANG:{
        jj_consume_token(BANG);
jjtn000.exclude = true;
        break;
        }
      default:
        jj_la1[132] = jj_gen;
        ;
      }
      jjtn000.expression = Expression();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case COLON:{
        jjtn000.nestedProjection = NestedProjection();
        break;
        }
      default:
        jj_la1[133] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case AS:{
        jj_consume_token(AS);
        jjtn000.alias = Alias();
        break;
        }
      default:
        jj_la1[134] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public NestedProjection NestedProjection() throws ParseException {/*@bgen(jjtree) NestedProjection */
  NestedProjection jjtn000 = new NestedProjection(JJTNESTEDPROJECTION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));NestedProjectionItem lastItem;
    try {
      jj_consume_token(COLON);
      jj_consume_token(LBRACE);
      lastItem = NestedProjectionItem();
if(lastItem.exclude) {
     jjtn000.excludeItems.add(lastItem);
     } else if(lastItem.star) {
     jjtn000.starItem = lastItem;
     } else {
     jjtn000.includeItems.add(lastItem);
     }
      label_19:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case COMMA:{
          ;
          break;
          }
        default:
          jj_la1[135] = jj_gen;
          break label_19;
        }
        jj_consume_token(COMMA);
        lastItem = NestedProjectionItem();
if(lastItem.exclude) {
        jjtn000.excludeItems.add(lastItem);
      } else if(lastItem.star) {
        jjtn000.starItem = lastItem;
      } else {
        jjtn000.includeItems.add(lastItem);
      }
      }
      jj_consume_token(RBRACE);
jjtree.closeNodeScope(jjtn000, true);
             jjtc000 = false;
             jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public NestedProjectionItem NestedProjectionItem() throws ParseException {/*@bgen(jjtree) NestedProjectionItem */
  NestedProjectionItem jjtn000 = new NestedProjectionItem(JJTNESTEDPROJECTIONITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case STAR:{
        jj_consume_token(STAR);
jjtn000.star = true;
        break;
        }
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case NULL:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case DISTINCT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case THIS:
      case RECORD_ATTRIBUTE:
      case RID_STRING:
      case INTEGER_LITERAL:
      case FLOATING_POINT_LITERAL:
      case CHARACTER_LITERAL:
      case STRING_LITERAL:
      case TRUE:
      case FALSE:
      case LPAREN:
      case LBRACE:
      case LBRACKET:
      case BANG:
      case HOOK:
      case COLON:
      case MINUS:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:
      case 250:{
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case BANG:{
          jj_consume_token(BANG);
jjtn000.exclude = true;
          break;
          }
        default:
          jj_la1[136] = jj_gen;
          ;
        }
        jjtn000.expression = Expression();
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case STAR:{
          jj_consume_token(STAR);
jjtn000.rightWildcard = true;
          break;
          }
        default:
          jj_la1[137] = jj_gen;
          ;
        }
        break;
        }
      default:
        jj_la1[138] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case COLON:{
        jjtn000.expansion = NestedProjection();
        break;
        }
      default:
        jj_la1[139] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case AS:{
        jj_consume_token(AS);
        jjtn000.alias = Identifier();
        break;
        }
      default:
        jj_la1[140] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
                                        jjtc000 = false;
                                        jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ArraySelector ArraySelector() throws ParseException {/*@bgen(jjtree) ArraySelector */
  ArraySelector jjtn000 = new ArraySelector(JJTARRAYSELECTOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      if (jj_2_55(2147483647)) {
        jjtn000.rid = Rid();
      } else if (jj_2_56(2147483647)) {
        jjtn000.inputParam = InputParameter();
      } else if (jj_2_57(2147483647)) {
        jjtn000.expression = Expression();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ArrayNumberSelector ArrayNumberSelector() throws ParseException {/*@bgen(jjtree) ArrayNumberSelector */
  ArrayNumberSelector jjtn000 = new ArrayNumberSelector(JJTARRAYNUMBERSELECTOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Token tokenVal;
    try {
      if (jj_2_58(2147483647)) {
        jjtn000.inputValue = InputParameter();
      } else if (jj_2_59(2147483647)) {
        tokenVal = jj_consume_token(INTEGER_LITERAL);
jjtn000.integer = Integer.parseInt(tokenVal.image);
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ArraySingleValuesSelector ArraySingleValuesSelector() throws ParseException {/*@bgen(jjtree) ArraySingleValuesSelector */
  ArraySingleValuesSelector jjtn000 = new ArraySingleValuesSelector(JJTARRAYSINGLEVALUESSELECTOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));ArraySelector lastSelector;
    try {
      lastSelector = ArraySelector();
jjtn000.items.add(lastSelector);
      label_20:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case COMMA:{
          ;
          break;
          }
        default:
          jj_la1[141] = jj_gen;
          break label_20;
        }
        jj_consume_token(COMMA);
        lastSelector = ArraySelector();
jjtn000.items.add(lastSelector);
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ArrayRangeSelector ArrayRangeSelector() throws ParseException {/*@bgen(jjtree) ArrayRangeSelector */
  ArrayRangeSelector jjtn000 = new ArrayRangeSelector(JJTARRAYRANGESELECTOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Token token;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case INTEGER_RANGE:{
        token = jj_consume_token(INTEGER_RANGE);
String img = token.image;
        String[] splitted = img.split("\\.\\.");
        jjtn000.from = Integer.parseInt(splitted[0], 10);
        jjtn000.to = Integer.parseInt(splitted[1], 10);
        jjtn000.newRange = true;
        break;
        }
      case ELLIPSIS_INTEGER_RANGE:{
        token = jj_consume_token(ELLIPSIS_INTEGER_RANGE);
String img2 = token.image;
        String[] splitted2 = img2.split("\\.\\.\\.");
        jjtn000.from = Integer.parseInt(splitted2[0], 10);
        jjtn000.to = Integer.parseInt(splitted2[1], 10);
        jjtn000.newRange = true;
        jjtn000.included = true;
        break;
        }
      case INTEGER_LITERAL:
      case HOOK:
      case COLON:{
        jjtn000.fromSelector = ArrayNumberSelector();
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case RANGE:{
          jj_consume_token(RANGE);
jjtn000.newRange = true;
          break;
          }
        case ELLIPSIS:{
          jj_consume_token(ELLIPSIS);
jjtn000.newRange = true; jjtn000.included = true;
          break;
          }
        default:
          jj_la1[142] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        jjtn000.toSelector = ArrayNumberSelector();
        break;
        }
      default:
        jj_la1[143] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Identifier Alias() throws ParseException {/*@bgen(jjtree) Alias */
  Alias jjtn000 = new Alias(JJTALIAS);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier identifier;
    try {
      identifier = Identifier();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return identifier;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public RecordAttribute RecordAttribute() throws ParseException {/*@bgen(jjtree) RecordAttribute */
  RecordAttribute jjtn000 = new RecordAttribute(JJTRECORDATTRIBUTE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Token token;
    try {
      token = jj_consume_token(RECORD_ATTRIBUTE);
jjtn000.name = token.image;
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public FunctionCall FunctionCall() throws ParseException {/*@bgen(jjtree) FunctionCall */
  FunctionCall jjtn000 = new FunctionCall(JJTFUNCTIONCALL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Expression lastExpression = null;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.name = Identifier();
        break;
        }
      case DISTINCT:{
        jj_consume_token(DISTINCT);
jjtn000.name = new Identifier("distinct");
        break;
        }
      default:
        jj_la1[144] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(LPAREN);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case NULL:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case DISTINCT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case THIS:
      case RECORD_ATTRIBUTE:
      case RID_STRING:
      case INTEGER_LITERAL:
      case FLOATING_POINT_LITERAL:
      case CHARACTER_LITERAL:
      case STRING_LITERAL:
      case TRUE:
      case FALSE:
      case LPAREN:
      case LBRACE:
      case LBRACKET:
      case HOOK:
      case COLON:
      case MINUS:
      case STAR:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:
      case 250:{
        lastExpression = Expression();
jjtn000.params.add(lastExpression);
        label_21:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[145] = jj_gen;
            break label_21;
          }
          jj_consume_token(COMMA);
          lastExpression = Expression();
jjtn000.params.add(lastExpression);
        }
        break;
        }
      default:
        jj_la1[146] = jj_gen;
        ;
      }
      jj_consume_token(RPAREN);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MethodCall MethodCall() throws ParseException {/*@bgen(jjtree) MethodCall */
  MethodCall jjtn000 = new MethodCall(JJTMETHODCALL);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Expression lastExpression;
    try {
      jj_consume_token(DOT);
      jjtn000.methodName = Identifier();
      jj_consume_token(LPAREN);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case NULL:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case DISTINCT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case THIS:
      case RECORD_ATTRIBUTE:
      case RID_STRING:
      case INTEGER_LITERAL:
      case FLOATING_POINT_LITERAL:
      case CHARACTER_LITERAL:
      case STRING_LITERAL:
      case TRUE:
      case FALSE:
      case LPAREN:
      case LBRACE:
      case LBRACKET:
      case HOOK:
      case COLON:
      case MINUS:
      case STAR:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:
      case 250:{
        lastExpression = Expression();
jjtn000.params.add(lastExpression);
        label_22:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[147] = jj_gen;
            break label_22;
          }
          jj_consume_token(COMMA);
          lastExpression = Expression();
jjtn000.params.add(lastExpression);
        }
        break;
        }
      default:
        jj_la1[148] = jj_gen;
        ;
      }
      jj_consume_token(RPAREN);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public LevelZeroIdentifier LevelZeroIdentifier() throws ParseException {/*@bgen(jjtree) LevelZeroIdentifier */
  LevelZeroIdentifier jjtn000 = new LevelZeroIdentifier(JJTLEVELZEROIDENTIFIER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      if (jj_2_60(2147483647)) {
        jjtn000.functionCall = FunctionCall();
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case THIS:{
          jj_consume_token(THIS);
jjtn000.self = true;
          break;
          }
        default:
          jj_la1[149] = jj_gen;
          if (jj_2_61(2147483647)) {
            jjtn000.collection = PCollection();
          } else {
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public SuffixIdentifier SuffixIdentifier() throws ParseException {/*@bgen(jjtree) SuffixIdentifier */
  SuffixIdentifier jjtn000 = new SuffixIdentifier(JJTSUFFIXIDENTIFIER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      if (jj_2_62(2147483647)) {
        jjtn000.identifier = Identifier();
      } else if (jj_2_63(2147483647)) {
        jjtn000.recordAttribute = RecordAttribute();
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case STAR:{
          jj_consume_token(STAR);
jjtn000.star = true;
          break;
          }
        default:
          jj_la1[150] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BaseIdentifier BaseIdentifier() throws ParseException {/*@bgen(jjtree) BaseIdentifier */
  BaseIdentifier jjtn000 = new BaseIdentifier(JJTBASEIDENTIFIER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      if (jj_2_64(2147483647)) {
        jjtn000.levelZero = LevelZeroIdentifier();
      } else if (jj_2_65(2147483647)) {
        jjtn000.suffix = SuffixIdentifier();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Modifier Modifier() throws ParseException {/*@bgen(jjtree) Modifier */
  Modifier jjtn000 = new Modifier(JJTMODIFIER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LBRACKET:{
        jj_consume_token(LBRACKET);
jjtn000.squareBrackets = true;
        if (jj_2_66(2147483647)) {
          jjtn000.rightBinaryCondition = RightBinaryCondition();
        } else if (jj_2_67(2147483647)) {
          jjtn000.arrayRange = ArrayRangeSelector();
        } else if (jj_2_68(2147483647)) {
          jjtn000.condition = OrBlock();
        } else if (jj_2_69(2147483647)) {
          jjtn000.arraySingleValues = ArraySingleValuesSelector();
        } else {
          jj_consume_token(-1);
          throw new ParseException();
        }
        jj_consume_token(RBRACKET);
        break;
        }
      default:
        jj_la1[151] = jj_gen;
        if (jj_2_70(2147483647)) {
          jjtn000.methodCall = MethodCall();
        } else {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case DOT:{
            jj_consume_token(DOT);
            jjtn000.suffix = SuffixIdentifier();
            break;
            }
          default:
            jj_la1[152] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
      }
      if (jj_2_71(2147483647)) {
        jjtn000.next = Modifier();
      } else {
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Expression Expression() throws ParseException {/*@bgen(jjtree) Expression */
 Expression jjtn000 = new Expression(JJTEXPRESSION);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));Token token;
    try {
      if (jj_2_72(2147483647)) {
        jjtn000.arrayConcatExpression = ArrayConcatExpression();
jjtn000.value = jjtn000.arrayConcatExpression;
      } else if (jj_2_73(2)) {
        jj_consume_token(NULL);
jjtn000.isNull = true; jjtn000.value = null;
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case TRUE:{
          jj_consume_token(TRUE);
jjtn000.booleanValue = true; jjtn000.value = true;
          break;
          }
        case FALSE:{
          jj_consume_token(FALSE);
jjtn000.booleanValue = false; jjtn000.value = false;
          break;
          }
        default:
          jj_la1[153] = jj_gen;
          if (jj_2_74(2147483647)) {
            jjtn000.rid = Rid();
jjtn000.value = jjtn000.rid;
          } else if (jj_2_75(5)) {
            jj_consume_token(LPAREN);
            jjtn000.whereCondition = WhereClause();
jjtn000.value = jjtn000.whereCondition;
            jj_consume_token(RPAREN);
          } else if (jj_2_76(2147483647)) {
            jjtn000.mathExpression = MathExpression();
jjtn000.value = jjtn000.mathExpression;
          } else {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case LBRACE:{
              jjtn000.json = Json();
jjtn000.value = jjtn000.json;
              break;
              }
            default:
              jj_la1[154] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
          }
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ArrayConcatExpression ArrayConcatExpression() throws ParseException {/*@bgen(jjtree) ArrayConcatExpression */
  ArrayConcatExpression jjtn000 = new ArrayConcatExpression(JJTARRAYCONCATEXPRESSION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));ArrayConcatExpressionElement sub;
  jjtn000.setChildExpressions(new java.util.ArrayList());
    try {
      sub = ArrayConcatExpressionElement();
jjtn000.getChildExpressions().add(sub);
      label_23:
      while (true) {
        jj_consume_token(SC_OR);
        sub = ArrayConcatExpressionElement();
jjtn000.getChildExpressions().add(sub);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case SC_OR:{
          ;
          break;
          }
        default:
          jj_la1[155] = jj_gen;
          break label_23;
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ArrayConcatExpressionElement ArrayConcatExpressionElement() throws ParseException {/*@bgen(jjtree) ArrayConcatExpressionElement */
 ArrayConcatExpressionElement jjtn000 = new ArrayConcatExpressionElement(JJTARRAYCONCATEXPRESSIONELEMENT);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));Token token;
    try {
      if (jj_2_77(2)) {
        jj_consume_token(NULL);
jjtn000.isNull = true; jjtn000.value = null;
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case TRUE:{
          jj_consume_token(TRUE);
jjtn000.booleanValue = true; jjtn000.value = true;
          break;
          }
        case FALSE:{
          jj_consume_token(FALSE);
jjtn000.booleanValue = false; jjtn000.value = false;
          break;
          }
        default:
          jj_la1[156] = jj_gen;
          if (jj_2_78(2147483647)) {
            jjtn000.rid = Rid();
jjtn000.value = jjtn000.rid;
          } else if (jj_2_79(2147483647)) {
            jjtn000.mathExpression = MathExpression();
jjtn000.value = jjtn000.mathExpression;
          } else {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case LBRACE:{
              jjtn000.json = Json();
jjtn000.value = jjtn000.json;
              break;
              }
            default:
              jj_la1[157] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
          }
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MathExpression MathExpression() throws ParseException {/*@bgen(jjtree) MathExpression */
  MathExpression jjtn000 = new MathExpression(JJTMATHEXPRESSION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));MathExpression sub;
  jjtn000.setChildExpressions(new java.util.ArrayList());
    try {
      sub = FirstLevelExpression();
jjtn000.getChildExpressions().add(sub);
      label_24:
      while (true) {
        if (jj_2_80(2)) {
          ;
        } else {
          break label_24;
        }
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case STAR:{
          jj_consume_token(STAR);
jjtn000.operators.add( MathExpression.Operator.STAR);
          break;
          }
        case SLASH:{
          jj_consume_token(SLASH);
jjtn000.operators.add( MathExpression.Operator.SLASH);
          break;
          }
        case REM:{
          jj_consume_token(REM);
jjtn000.operators.add( MathExpression.Operator.REM);
          break;
          }
        case PLUS:{
          jj_consume_token(PLUS);
jjtn000.operators.add( MathExpression.Operator.PLUS);
          break;
          }
        case MINUS:{
          jj_consume_token(MINUS);
jjtn000.operators.add(MathExpression.Operator.MINUS);
          break;
          }
        case LSHIFT:{
          jj_consume_token(LSHIFT);
jjtn000.operators.add(MathExpression.Operator.LSHIFT);
          break;
          }
        case RSHIFT:{
          jj_consume_token(RSHIFT);
jjtn000.operators.add(MathExpression.Operator.RSHIFT);
          break;
          }
        case RUNSIGNEDSHIFT:{
          jj_consume_token(RUNSIGNEDSHIFT);
jjtn000.operators.add(MathExpression.Operator.RUNSIGNEDSHIFT);
          break;
          }
        case BIT_AND:{
          jj_consume_token(BIT_AND);
jjtn000.operators.add(MathExpression.Operator.BIT_AND);
          break;
          }
        case BIT_OR:{
          jj_consume_token(BIT_OR);
jjtn000.operators.add(MathExpression.Operator.BIT_OR);
          break;
          }
        case XOR:{
          jj_consume_token(XOR);
jjtn000.operators.add(MathExpression.Operator.XOR);
          break;
          }
        default:
          jj_la1[158] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        sub = FirstLevelExpression();
jjtn000.getChildExpressions().add(sub);
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
if(jjtn000.getChildExpressions().size() != 1){
      {if ("" != null) return jjtn000;}
    } else {
      {if ("" != null) return jjtn000.getChildExpressions().get(0);}
    }
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MathExpression FirstLevelExpression() throws ParseException {/*@bgen(jjtree) FirstLevelExpression */
  FirstLevelExpression jjtn000 = new FirstLevelExpression(JJTFIRSTLEVELEXPRESSION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));MathExpression expr;
    try {
      if (jj_2_81(2147483647)) {
        expr = ParenthesisExpression();
      } else if (jj_2_82(2147483647)) {
        expr = BaseExpression();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return expr;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MathExpression ParenthesisExpression() throws ParseException {/*@bgen(jjtree) ParenthesisExpression */
  ParenthesisExpression jjtn000 = new ParenthesisExpression(JJTPARENTHESISEXPRESSION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(LPAREN);
      if (jj_2_83(2)) {
        jjtn000.statement = QueryStatement();
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case TRUE:
        case FALSE:
        case LPAREN:
        case LBRACE:
        case LBRACKET:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:
        case 250:{
          jjtn000.expression = Expression();
          break;
          }
        case INSERT:{
          jjtn000.statement = InsertStatement();
          break;
          }
        default:
          jj_la1[159] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      jj_consume_token(RPAREN);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BaseExpression BaseExpression() throws ParseException {/*@bgen(jjtree) BaseExpression */
  BaseExpression jjtn000 = new BaseExpression(JJTBASEEXPRESSION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case INTEGER_LITERAL:
      case FLOATING_POINT_LITERAL:
      case MINUS:{
        jjtn000.number = PNumber();
        break;
        }
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case DISTINCT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case THIS:
      case RECORD_ATTRIBUTE:
      case LBRACKET:
      case STAR:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.identifier = BaseIdentifier();
        if (jj_2_84(2147483647)) {
          jjtn000.modifier = Modifier();
        } else {
          ;
        }
        break;
        }
      case HOOK:
      case COLON:{
        jjtn000.inputParam = InputParameter();
        if (jj_2_85(2147483647)) {
          jjtn000.modifier = Modifier();
        } else {
          ;
        }
        break;
        }
      case RID_STRING:
      case CHARACTER_LITERAL:
      case STRING_LITERAL:{
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case RID_STRING:
        case STRING_LITERAL:{
          jjtn000.string = PString();
          break;
          }
        case CHARACTER_LITERAL:{
          token = jj_consume_token(CHARACTER_LITERAL);
jjtn000.string = token.image;
          break;
          }
        default:
          jj_la1[160] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        if (jj_2_86(2147483647)) {
          jjtn000.modifier = Modifier();
        } else {
          ;
        }
        break;
        }
      case NULL:{
        jj_consume_token(NULL);
jjtn000.isNull = true;
        break;
        }
      default:
        jj_la1[161] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public FromClause FromClause() throws ParseException {/*@bgen(jjtree) FromClause */
  FromClause jjtn000 = new FromClause(JJTFROMCLAUSE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.item = FromItem();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public LetClause LetClause() throws ParseException {/*@bgen(jjtree) LetClause */
  LetClause jjtn000 = new LetClause(JJTLETCLAUSE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));LetItem lastItem;
    try {
      jj_consume_token(LET);
      lastItem = LetItem();
jjtn000.items.add(lastItem);
      label_25:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case COMMA:{
          ;
          break;
          }
        default:
          jj_la1[162] = jj_gen;
          break label_25;
        }
        jj_consume_token(COMMA);
        lastItem = LetItem();
jjtn000.items.add(lastItem);
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public LetItem LetItem() throws ParseException {/*@bgen(jjtree) LetItem */
  LetItem jjtn000 = new LetItem(JJTLETITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.varName = Identifier();
      jj_consume_token(EQ);
      if (jj_2_87(2147483647)) {
        jjtn000.expression = Expression();
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case LPAREN:{
          jj_consume_token(LPAREN);
          jjtn000.query = QueryStatement();
          jj_consume_token(RPAREN);
          break;
          }
        default:
          jj_la1[163] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public FromItem FromItem() throws ParseException {/*@bgen(jjtree) FromItem */
  FromItem jjtn000 = new FromItem(JJTFROMITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));jjtn000.rids = new java.util.ArrayList();
  jjtn000.inputParams = new java.util.ArrayList();
  Rid lastRid;
  InputParameter lastParam;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case INTEGER_LITERAL:
      case LBRACE:
      case MINUS:
      case 250:{
        lastRid = Rid();
jjtn000.rids.add(lastRid);
        break;
        }
      default:
        jj_la1[168] = jj_gen;
        if (jj_2_91(2)) {
          jj_consume_token(LBRACKET);
          lastRid = Rid();
jjtn000.rids.add(lastRid);
          label_26:
          while (true) {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case COMMA:{
              ;
              break;
              }
            default:
              jj_la1[164] = jj_gen;
              break label_26;
            }
            jj_consume_token(COMMA);
            lastRid = Rid();
jjtn000.rids.add(lastRid);
          }
          jj_consume_token(RBRACKET);
        } else {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case LBRACKET:{
            jj_consume_token(LBRACKET);
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case HOOK:{
              lastParam = PositionalParameter();
jjtn000.inputParams.add(lastParam);
              break;
              }
            case COLON:{
              lastParam = NamedParameter();
jjtn000.inputParams.add(lastParam);
              break;
              }
            default:
              jj_la1[165] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
            label_27:
            while (true) {
              switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
              case COMMA:
              case COLON:{
                ;
                break;
                }
              default:
                jj_la1[166] = jj_gen;
                break label_27;
              }
              switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
              case COMMA:{
                jj_consume_token(COMMA);
                lastParam = PositionalParameter();
jjtn000.inputParams.add(lastParam);
                break;
                }
              case COLON:{
                lastParam = NamedParameter();
jjtn000.inputParams.add(lastParam);
                break;
                }
              default:
                jj_la1[167] = jj_gen;
                jj_consume_token(-1);
                throw new ParseException();
              }
            }
            jj_consume_token(RBRACKET);
            break;
            }
          case BUCKET_IDENTIFIER:
          case BUCKET_NUMBER_IDENTIFIER:{
            jjtn000.bucket = Bucket();
            break;
            }
          case BUCKET:{
            jjtn000.bucketList = BucketList();
            break;
            }
          default:
            jj_la1[169] = jj_gen;
            if (jj_2_92(2147483647)) {
              jjtn000.index = IndexIdentifier();
            } else {
              switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
              case SCHEMA_IDENTIFIER:{
                jjtn000.schema = SchemaIdentifier();
                break;
                }
              case LPAREN:{
                jj_consume_token(LPAREN);
                jjtn000.statement = QueryStatement();
                jj_consume_token(RPAREN);
                if (jj_2_88(2147483647)) {
                  jjtn000.modifier = Modifier();
                } else {
                  ;
                }
                break;
                }
              case HOOK:
              case COLON:{
                jjtn000.inputParam = InputParameter();
                break;
                }
              default:
                jj_la1[170] = jj_gen;
                if (jj_2_93(2)) {
                  jjtn000.functionCall = FunctionCall();
                  if (jj_2_89(2147483647)) {
                    jjtn000.modifier = Modifier();
                  } else {
                    ;
                  }
                } else {
                  switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
                  case ALIGN:
                  case CUSTOM:
                  case TO:
                  case VALUE:
                  case VALUES:
                  case SET:
                  case ADD:
                  case PUT:
                  case MERGE:
                  case CONTENT:
                  case REMOVE:
                  case OFFSET:
                  case RECORD:
                  case CHECK:
                  case NEAR:
                  case WITH:
                  case WITHIN:
                  case MINDEPTH:
                  case TYPE:
                  case SUPERTYPE:
                  case TYPES:
                  case EXCEPTION:
                  case PROFILE:
                  case ON:
                  case OFF:
                  case TRUNCATE:
                  case FIND:
                  case EXTENDS:
                  case BUCKETS:
                  case BUCKETSELECTIONSTRATEGY:
                  case ALTER:
                  case NAME:
                  case ADDBUCKET:
                  case REMOVEBUCKET:
                  case DROP:
                  case PROPERTY:
                  case FORCE:
                  case SCHEMA:
                  case INDEX:
                  case ENGINE:
                  case REBUILD:
                  case FORMAT:
                  case EXPORT:
                  case IMPORT:
                  case DATABASE:
                  case OPTIMIZE:
                  case LINK:
                  case INVERSE:
                  case EXPLAIN:
                  case GRANT:
                  case REVOKE:
                  case READ:
                  case EXECUTE:
                  case ALL:
                  case NONE:
                  case FUNCTION:
                  case PARAMETERS:
                  case LANGUAGE:
                  case BEGIN:
                  case COMMIT:
                  case ROLLBACK:
                  case IF:
                  case ELSE:
                  case CONTINUE:
                  case FAIL:
                  case ISOLATION:
                  case SLEEP:
                  case CONSOLE:
                  case START:
                  case OPTIONAL:
                  case COUNT:
                  case EXISTS:
                  case MOVE:
                  case DEPTH_ALIAS:
                  case PATH_ALIAS:
                  case IDENTIFIED:
                  case RID:
                  case SYSTEM:
                  case IN:
                  case KEY:
                  case IDENTIFIER:
                  case QUOTED_IDENTIFIER:{
                    jjtn000.identifier = Identifier();
                    if (jj_2_90(2147483647)) {
                      jjtn000.modifier = Modifier();
                    } else {
                      ;
                    }
                    break;
                    }
                  default:
                    jj_la1[171] = jj_gen;
                    jj_consume_token(-1);
                    throw new ParseException();
                  }
                }
              }
            }
          }
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Bucket Bucket() throws ParseException {/*@bgen(jjtree) Bucket */
  Bucket jjtn000 = new Bucket(JJTBUCKET);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Token cName;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKET_IDENTIFIER:{
        cName = jj_consume_token(BUCKET_IDENTIFIER);
jjtn000.bucketName = cName.image.split(":")[1];
        break;
        }
      case BUCKET_NUMBER_IDENTIFIER:{
        cName = jj_consume_token(BUCKET_NUMBER_IDENTIFIER);
jjtn000.bucketNumber = Integer.parseInt(cName.image.split(":")[1]);
        break;
        }
      default:
        jj_la1[172] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BucketList BucketList() throws ParseException {/*@bgen(jjtree) BucketList */
  BucketList jjtn000 = new BucketList(JJTBUCKETLIST);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier lastIdentifier;
    try {
      jj_consume_token(BUCKET);
      jj_consume_token(COLON);
      jj_consume_token(LBRACKET);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        lastIdentifier = Identifier();
jjtn000.buckets.add(lastIdentifier);
        label_28:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[173] = jj_gen;
            break label_28;
          }
          jj_consume_token(COMMA);
          lastIdentifier = Identifier();
jjtn000.buckets.add(lastIdentifier);
        }
        break;
        }
      default:
        jj_la1[174] = jj_gen;
        ;
      }
      jj_consume_token(RBRACKET);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public SchemaIdentifier SchemaIdentifier() throws ParseException {/*@bgen(jjtree) SchemaIdentifier */
  SchemaIdentifier jjtn000 = new SchemaIdentifier(JJTSCHEMAIDENTIFIER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Token mdName;
    try {
      mdName = jj_consume_token(SCHEMA_IDENTIFIER);
jjtn000.name = mdName.image.split(":")[1];
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public IndexIdentifier IndexIdentifier() throws ParseException {/*@bgen(jjtree) IndexIdentifier */
  IndexIdentifier jjtn000 = new IndexIdentifier(JJTINDEXIDENTIFIER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Token token;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case INDEX_COLON:{
        jj_consume_token(INDEX_COLON);
        jjtn000.indexName = Identifier();
jjtn000.type = IndexIdentifier.Type.INDEX;
        break;
        }
      case INDEXVALUES_IDENTIFIER:
      case INDEXVALUESASC_IDENTIFIER:
      case INDEXVALUESDESC_IDENTIFIER:{
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case INDEXVALUES_IDENTIFIER:{
          token = jj_consume_token(INDEXVALUES_IDENTIFIER);
jjtn000.type = IndexIdentifier.Type.VALUES;
          break;
          }
        case INDEXVALUESASC_IDENTIFIER:{
          token = jj_consume_token(INDEXVALUESASC_IDENTIFIER);
jjtn000.type = IndexIdentifier.Type.VALUESASC;
          break;
          }
        case INDEXVALUESDESC_IDENTIFIER:{
          token = jj_consume_token(INDEXVALUESDESC_IDENTIFIER);
jjtn000.type = IndexIdentifier.Type.VALUESDESC;
          break;
          }
        default:
          jj_la1[175] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
jjtn000.indexNameString = token.image.split(":")[1];
        break;
        }
      default:
        jj_la1[176] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public WhereClause WhereClause() throws ParseException {/*@bgen(jjtree) WhereClause */
  WhereClause jjtn000 = new WhereClause(JJTWHERECLAUSE);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.baseExpression = OrBlock();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public OrBlock OrBlock() throws ParseException {/*@bgen(jjtree) OrBlock */
  OrBlock jjtn000 = new OrBlock(JJTORBLOCK);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));AndBlock lastAnd = null;
    try {
      lastAnd = AndBlock();
jjtn000.getSubBlocks().add(lastAnd);
      label_29:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case OR:{
          ;
          break;
          }
        default:
          jj_la1[177] = jj_gen;
          break label_29;
        }
        jj_consume_token(OR);
        lastAnd = AndBlock();
jjtn000.getSubBlocks().add(lastAnd);
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public AndBlock AndBlock() throws ParseException {/*@bgen(jjtree) AndBlock */
 AndBlock jjtn000 = new AndBlock(JJTANDBLOCK);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));NotBlock lastNot = null;
    try {
      lastNot = NotBlock();
jjtn000.getSubBlocks().add(lastNot);
      label_30:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case AND:{
          ;
          break;
          }
        default:
          jj_la1[178] = jj_gen;
          break label_30;
        }
        jj_consume_token(AND);
        lastNot = NotBlock();
jjtn000.getSubBlocks().add(lastNot);
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public NotBlock NotBlock() throws ParseException {/*@bgen(jjtree) NotBlock */
  NotBlock jjtn000 = new NotBlock(JJTNOTBLOCK);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case NOT:{
        jj_consume_token(NOT);
jjtn000.negate = true;
        if (jj_2_94(2147483647)) {
          jjtn000.sub = ConditionBlock();
        } else if (jj_2_95(2147483647)) {
          jjtn000.sub = ParenthesisBlock();
        } else {
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case NULL:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case DISTINCT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case THIS:
      case RECORD_ATTRIBUTE:
      case RID_STRING:
      case INTEGER_LITERAL:
      case FLOATING_POINT_LITERAL:
      case CHARACTER_LITERAL:
      case STRING_LITERAL:
      case TRUE:
      case FALSE:
      case LPAREN:
      case LBRACE:
      case LBRACKET:
      case HOOK:
      case COLON:
      case MINUS:
      case STAR:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:
      case 250:{
        if (jj_2_96(2147483647)) {
          jjtn000.sub = ConditionBlock();
        } else if (jj_2_97(2147483647)) {
          jjtn000.sub = ParenthesisBlock();
        } else {
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      default:
        jj_la1[179] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
    jjtn000.jjtSetLastToken(getToken(0));
  }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression ParenthesisBlock() throws ParseException {/*@bgen(jjtree) ParenthesisBlock */
  ParenthesisBlock jjtn000 = new ParenthesisBlock(JJTPARENTHESISBLOCK);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(LPAREN);
      jjtn000.subElement = OrBlock();
      jj_consume_token(RPAREN);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression ConditionBlock() throws ParseException {/*@bgen(jjtree) ConditionBlock */
 ConditionBlock jjtn000 = new ConditionBlock(JJTCONDITIONBLOCK);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));BooleanExpression result = null;
    try {
      if (jj_2_98(2147483647)) {
        result = IsNotNullCondition();
      } else if (jj_2_99(2147483647)) {
        result = IsNullCondition();
      } else if (jj_2_100(2147483647)) {
        result = IsNotDefinedCondition();
      } else if (jj_2_101(2147483647)) {
        result = IsDefinedCondition();
      } else if (jj_2_102(2147483647)) {
        result = InCondition();
      } else if (jj_2_103(2147483647)) {
        result = NotInCondition();
      } else if (jj_2_104(2147483647)) {
        result = BinaryCondition();
      } else if (jj_2_105(2147483647)) {
        result = BetweenCondition();
      } else if (jj_2_106(2147483647)) {
        result = ContainsCondition();
      } else if (jj_2_107(2147483647)) {
        result = ContainsValueCondition();
      } else if (jj_2_108(2147483647)) {
        result = ContainsAllCondition();
      } else if (jj_2_109(2147483647)) {
        result = ContainsAnyCondition();
      } else if (jj_2_110(2147483647)) {
        result = ContainsTextCondition();
      } else if (jj_2_111(2147483647)) {
        result = MatchesCondition();
      } else if (jj_2_112(2147483647)) {
        result = IndexMatchCondition();
      } else if (jj_2_113(2147483647)) {
        result = InstanceofCondition();
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case TRUE:{
          jj_consume_token(TRUE);
result = BooleanExpression.TRUE;
          break;
          }
        case FALSE:{
          jj_consume_token(FALSE);
result = BooleanExpression.FALSE;
          break;
          }
        case NULL:{
          jj_consume_token(NULL);
result =null;
          break;
          }
        default:
          jj_la1[180] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
jjtree.closeNodeScope(jjtn000, true);
   jjtc000 = false;
   jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
    jjtn000.jjtSetLastToken(getToken(0));
  }
    }
    throw new Error("Missing return statement in function");
}

  final public BinaryCompareOperator CompareOperator() throws ParseException {/*@bgen(jjtree) CompareOperator */
   CompareOperator jjtn000 = new CompareOperator(JJTCOMPAREOPERATOR);
   boolean jjtc000 = true;
   jjtree.openNodeScope(jjtn000);
   jjtn000.jjtSetFirstToken(getToken(1));BinaryCompareOperator result;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case EQ:
      case EQEQ:{
        result = EqualsCompareOperator();
        break;
        }
      case NSEQ:{
        result = NullSafeEqualsCompareOperator();
        break;
        }
      case LT:{
        result = LtOperator();
        break;
        }
      case GT:{
        result = GtOperator();
        break;
        }
      case NE:{
        result = NeOperator();
        break;
        }
      case NEQ:{
        result = NeqOperator();
        break;
        }
      case GE:{
        result = GeOperator();
        break;
        }
      case LE:{
        result = LeOperator();
        break;
        }
      case LIKE:{
        result = LikeOperator();
        break;
        }
      case ILIKE:{
        result = ILikeOperator();
        break;
        }
      case CONTAINSKEY:{
        result = ContainsKeyOperator();
        break;
        }
      case NEAR:{
        result = NearOperator();
        break;
        }
      case WITHIN:{
        result = WithinOperator();
        break;
        }
      default:
        jj_la1[181] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
   jjtc000 = false;
   jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return result;}
    } 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);
    jjtn000.jjtSetLastToken(getToken(0));
  }
    }
    throw new Error("Missing return statement in function");
}

  final public LtOperator LtOperator() throws ParseException {/*@bgen(jjtree) LtOperator */
  LtOperator jjtn000 = new LtOperator(JJTLTOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(LT);
jjtree.closeNodeScope(jjtn000, true);
         jjtc000 = false;
         jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public GtOperator GtOperator() throws ParseException {/*@bgen(jjtree) GtOperator */
  GtOperator jjtn000 = new GtOperator(JJTGTOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(GT);
jjtree.closeNodeScope(jjtn000, true);
         jjtc000 = false;
         jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public NeOperator NeOperator() throws ParseException {/*@bgen(jjtree) NeOperator */
  NeOperator jjtn000 = new NeOperator(JJTNEOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(NE);
jjtree.closeNodeScope(jjtn000, true);
         jjtc000 = false;
         jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public NeqOperator NeqOperator() throws ParseException {/*@bgen(jjtree) NeqOperator */
  NeqOperator jjtn000 = new NeqOperator(JJTNEQOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(NEQ);
jjtree.closeNodeScope(jjtn000, true);
          jjtc000 = false;
          jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public GeOperator GeOperator() throws ParseException {/*@bgen(jjtree) GeOperator */
  GeOperator jjtn000 = new GeOperator(JJTGEOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(GE);
jjtree.closeNodeScope(jjtn000, true);
         jjtc000 = false;
         jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public LeOperator LeOperator() throws ParseException {/*@bgen(jjtree) LeOperator */
  LeOperator jjtn000 = new LeOperator(JJTLEOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(LE);
jjtree.closeNodeScope(jjtn000, true);
         jjtc000 = false;
         jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public LikeOperator LikeOperator() throws ParseException {/*@bgen(jjtree) LikeOperator */
  LikeOperator jjtn000 = new LikeOperator(JJTLIKEOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(LIKE);
jjtree.closeNodeScope(jjtn000, true);
           jjtc000 = false;
           jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ILikeOperator ILikeOperator() throws ParseException {/*@bgen(jjtree) ILikeOperator */
  ILikeOperator jjtn000 = new ILikeOperator(JJTILIKEOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(ILIKE);
jjtree.closeNodeScope(jjtn000, true);
            jjtc000 = false;
            jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public NearOperator NearOperator() throws ParseException {/*@bgen(jjtree) NearOperator */
  NearOperator jjtn000 = new NearOperator(JJTNEAROPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(NEAR);
jjtree.closeNodeScope(jjtn000, true);
           jjtc000 = false;
           jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public WithinOperator WithinOperator() throws ParseException {/*@bgen(jjtree) WithinOperator */
  WithinOperator jjtn000 = new WithinOperator(JJTWITHINOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(WITHIN);
jjtree.closeNodeScope(jjtn000, true);
             jjtc000 = false;
             jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ContainsKeyOperator ContainsKeyOperator() throws ParseException {/*@bgen(jjtree) ContainsKeyOperator */
  ContainsKeyOperator jjtn000 = new ContainsKeyOperator(JJTCONTAINSKEYOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(CONTAINSKEY);
jjtree.closeNodeScope(jjtn000, true);
                  jjtc000 = false;
                  jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ContainsValueOperator ContainsValueOperator() throws ParseException {/*@bgen(jjtree) ContainsValueOperator */
  ContainsValueOperator jjtn000 = new ContainsValueOperator(JJTCONTAINSVALUEOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(CONTAINSVALUE);
jjtree.closeNodeScope(jjtn000, true);
                    jjtc000 = false;
                    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public EqualsCompareOperator EqualsCompareOperator() throws ParseException {/*@bgen(jjtree) EqualsCompareOperator */
  EqualsCompareOperator jjtn000 = new EqualsCompareOperator(JJTEQUALSCOMPAREOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case EQ:{
        jj_consume_token(EQ);
jjtn000.doubleEquals = false;
        break;
        }
      case EQEQ:{
        jj_consume_token(EQEQ);
jjtn000.doubleEquals = true;
        break;
        }
      default:
        jj_la1[182] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
   jjtc000 = false;
   jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
    jjtree.closeNodeScope(jjtn000, true);
    jjtn000.jjtSetLastToken(getToken(0));
  }
    }
    throw new Error("Missing return statement in function");
}

  final public NullSafeEqualsCompareOperator NullSafeEqualsCompareOperator() throws ParseException {/*@bgen(jjtree) NullSafeEqualsCompareOperator */
  NullSafeEqualsCompareOperator jjtn000 = new NullSafeEqualsCompareOperator(JJTNULLSAFEEQUALSCOMPAREOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(NSEQ);
jjtree.closeNodeScope(jjtn000, true);
          jjtc000 = false;
          jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
     jjtree.closeNodeScope(jjtn000, true);
     jjtn000.jjtSetLastToken(getToken(0));
   }
    }
    throw new Error("Missing return statement in function");
}

  final public RightBinaryCondition RightBinaryCondition() throws ParseException {/*@bgen(jjtree) RightBinaryCondition */
  RightBinaryCondition jjtn000 = new RightBinaryCondition(JJTRIGHTBINARYCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case NEAR:
      case WITHIN:
      case EQ:
      case EQEQ:
      case NSEQ:
      case LT:
      case GT:
      case LE:
      case GE:
      case NE:
      case NEQ:
      case LIKE:
      case ILIKE:
      case CONTAINSKEY:{
        jjtn000.operator = CompareOperator();
        jjtn000.right = Expression();
        break;
        }
      case NOT:
      case IN:{
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case NOT:{
          jj_consume_token(NOT);
jjtn000.not = true;
          break;
          }
        default:
          jj_la1[183] = jj_gen;
          ;
        }
        jjtn000.inOperator = InOperator();
        jjtn000.right = Expression();
        break;
        }
      default:
        jj_la1[184] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression BinaryCondition() throws ParseException {/*@bgen(jjtree) BinaryCondition */
  BinaryCondition jjtn000 = new BinaryCondition(JJTBINARYCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.left = Expression();
      jjtn000.operator = CompareOperator();
      jjtn000.right = Expression();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression ContainsValueCondition() throws ParseException {/*@bgen(jjtree) ContainsValueCondition */
  ContainsValueCondition jjtn000 = new ContainsValueCondition(JJTCONTAINSVALUECONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.left = Expression();
      jjtn000.operator = ContainsValueOperator();
      if (jj_2_114(3)) {
        jj_consume_token(LPAREN);
        jjtn000.condition = OrBlock();
        jj_consume_token(RPAREN);
      } else if (jj_2_115(2147483647)) {
        jjtn000.expression = Expression();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
      jjtc000 = false;
      jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression InstanceofCondition() throws ParseException {/*@bgen(jjtree) InstanceofCondition */
  InstanceofCondition jjtn000 = new InstanceofCondition(JJTINSTANCEOFCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Token token;
    try {
      jjtn000.left = Expression();
      jj_consume_token(INSTANCEOF);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.right = Identifier();
        break;
        }
      case RID_STRING:
      case STRING_LITERAL:{
        jjtn000.rightString = PString();
        break;
        }
      case CHARACTER_LITERAL:{
        token = jj_consume_token(CHARACTER_LITERAL);
jjtn000.rightString = token.image;
        break;
        }
      default:
        jj_la1[185] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression IndexMatchCondition() throws ParseException {/*@bgen(jjtree) IndexMatchCondition */
  IndexMatchCondition jjtn000 = new IndexMatchCondition(JJTINDEXMATCHCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Token token;
  jjtn000.leftExpressions = new ArrayList();
  Expression lastExpression;
    try {
      jj_consume_token(KEY);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case NEAR:
      case WITHIN:
      case EQ:
      case EQEQ:
      case NSEQ:
      case LT:
      case GT:
      case LE:
      case GE:
      case NE:
      case NEQ:
      case LIKE:
      case ILIKE:
      case CONTAINSKEY:{
        jjtn000.operator = CompareOperator();
        jj_consume_token(LBRACKET);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case TRUE:
        case FALSE:
        case LPAREN:
        case LBRACE:
        case LBRACKET:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:
        case 250:{
          lastExpression = Expression();
jjtn000.leftExpressions.add(lastExpression);
          label_31:
          while (true) {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case COMMA:{
              ;
              break;
              }
            default:
              jj_la1[186] = jj_gen;
              break label_31;
            }
            jj_consume_token(COMMA);
            lastExpression = Expression();
jjtn000.leftExpressions.add(lastExpression);
          }
          break;
          }
        default:
          jj_la1[187] = jj_gen;
          ;
        }
        jj_consume_token(RBRACKET);
        break;
        }
      case BETWEEN:{
        jj_consume_token(BETWEEN);
jjtn000.between = true;
        jj_consume_token(LBRACKET);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case TRUE:
        case FALSE:
        case LPAREN:
        case LBRACE:
        case LBRACKET:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:
        case 250:{
          lastExpression = Expression();
jjtn000.leftExpressions.add(lastExpression);
          label_32:
          while (true) {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case COMMA:{
              ;
              break;
              }
            default:
              jj_la1[188] = jj_gen;
              break label_32;
            }
            jj_consume_token(COMMA);
            lastExpression = Expression();
jjtn000.leftExpressions.add(lastExpression);
          }
          break;
          }
        default:
          jj_la1[189] = jj_gen;
          ;
        }
        jj_consume_token(RBRACKET);
        jj_consume_token(AND);
        jj_consume_token(LBRACKET);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case TRUE:
        case FALSE:
        case LPAREN:
        case LBRACE:
        case LBRACKET:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:
        case 250:{
          lastExpression = Expression();
jjtn000.rightExpressions.add(lastExpression);
          label_33:
          while (true) {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case COMMA:{
              ;
              break;
              }
            default:
              jj_la1[190] = jj_gen;
              break label_33;
            }
            jj_consume_token(COMMA);
            lastExpression = Expression();
jjtn000.rightExpressions.add(lastExpression);
          }
          break;
          }
        default:
          jj_la1[191] = jj_gen;
          ;
        }
        jj_consume_token(RBRACKET);
        break;
        }
      default:
        jj_la1[192] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression BetweenCondition() throws ParseException {/*@bgen(jjtree) BetweenCondition */
  BetweenCondition jjtn000 = new BetweenCondition(JJTBETWEENCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.first = Expression();
      jj_consume_token(BETWEEN);
      jjtn000.second = Expression();
      jj_consume_token(AND);
      jjtn000.third = Expression();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression IsNullCondition() throws ParseException {/*@bgen(jjtree) IsNullCondition */
  IsNullCondition jjtn000 = new IsNullCondition(JJTISNULLCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.expression = Expression();
      jj_consume_token(IS);
      jj_consume_token(NULL);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression IsNotNullCondition() throws ParseException {/*@bgen(jjtree) IsNotNullCondition */
  IsNotNullCondition jjtn000 = new IsNotNullCondition(JJTISNOTNULLCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.expression = Expression();
      jj_consume_token(IS);
      jj_consume_token(NOT);
      jj_consume_token(NULL);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression IsDefinedCondition() throws ParseException {/*@bgen(jjtree) IsDefinedCondition */
  IsDefinedCondition jjtn000 = new IsDefinedCondition(JJTISDEFINEDCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.expression = Expression();
      jj_consume_token(IS);
      jj_consume_token(DEFINED);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression IsNotDefinedCondition() throws ParseException {/*@bgen(jjtree) IsNotDefinedCondition */
  IsNotDefinedCondition jjtn000 = new IsNotDefinedCondition(JJTISNOTDEFINEDCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.expression = Expression();
      jj_consume_token(IS);
      jj_consume_token(NOT);
      jj_consume_token(DEFINED);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression ContainsCondition() throws ParseException {/*@bgen(jjtree) ContainsCondition */
  ContainsCondition jjtn000 = new ContainsCondition(JJTCONTAINSCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.left = Expression();
      jj_consume_token(CONTAINS);
      if (jj_2_116(3)) {
        jj_consume_token(LPAREN);
        jjtn000.condition = OrBlock();
        jj_consume_token(RPAREN);
      } else if (jj_2_117(2147483647)) {
        jjtn000.right = Expression();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public InOperator InOperator() throws ParseException {/*@bgen(jjtree) InOperator */
  InOperator jjtn000 = new InOperator(JJTINOPERATOR);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(IN);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression InCondition() throws ParseException {/*@bgen(jjtree) InCondition */
  InCondition jjtn000 = new InCondition(JJTINCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Expression lastExpression;
    try {
      jjtn000.left = Expression();
      jjtn000.operator = InOperator();
      if (jj_2_119(2)) {
        jj_consume_token(LPAREN);
        if (jj_2_118(2147483647)) {
          jjtn000.rightStatement = SelectStatement();
        } else {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case SELECT:{
            jjtn000.rightStatement = SelectWithoutTargetStatement();
            break;
            }
          default:
            jj_la1[193] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
        jj_consume_token(RPAREN);
      } else if (jj_2_120(2)) {
        jj_consume_token(LPAREN);
        jjtn000.rightParam = InputParameter();
        jj_consume_token(RPAREN);
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case LPAREN:
        case LBRACKET:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          jjtn000.rightMathExpression = MathExpression();
          break;
          }
        default:
          jj_la1[194] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression NotInCondition() throws ParseException {/*@bgen(jjtree) NotInCondition */
  NotInCondition jjtn000 = new NotInCondition(JJTNOTINCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Expression lastExpression;
    try {
      jjtn000.left = Expression();
      jj_consume_token(NOT);
      InOperator();
      if (jj_2_122(2)) {
        jj_consume_token(LPAREN);
        if (jj_2_121(2147483647)) {
          jjtn000.rightStatement = SelectStatement();
        } else {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case SELECT:{
            jjtn000.rightStatement = SelectWithoutTargetStatement();
            break;
            }
          default:
            jj_la1[195] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
        jj_consume_token(RPAREN);
      } else if (jj_2_123(2)) {
        jj_consume_token(LPAREN);
        jjtn000.rightParam = InputParameter();
        jj_consume_token(RPAREN);
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case LPAREN:
        case LBRACKET:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          jjtn000.rightMathExpression = MathExpression();
          break;
          }
        default:
          jj_la1[196] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression ContainsAllCondition() throws ParseException {/*@bgen(jjtree) ContainsAllCondition */
  ContainsAllCondition jjtn000 = new ContainsAllCondition(JJTCONTAINSALLCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.left = Expression();
      jj_consume_token(CONTAINSALL);
      if (jj_2_124(3)) {
        jj_consume_token(LPAREN);
        jjtn000.rightBlock = OrBlock();
        jj_consume_token(RPAREN);
      } else if (jj_2_125(2147483647)) {
        jjtn000.right = Expression();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression ContainsAnyCondition() throws ParseException {/*@bgen(jjtree) ContainsAnyCondition */
  ContainsAnyCondition jjtn000 = new ContainsAnyCondition(JJTCONTAINSANYCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.left = Expression();
      jj_consume_token(CONTAINSANY);
      if (jj_2_126(3)) {
        jj_consume_token(LPAREN);
        jjtn000.rightBlock = OrBlock();
        jj_consume_token(RPAREN);
      } else if (jj_2_127(2147483647)) {
        jjtn000.right = Expression();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression ContainsTextCondition() throws ParseException {/*@bgen(jjtree) ContainsTextCondition */
  ContainsTextCondition jjtn000 = new ContainsTextCondition(JJTCONTAINSTEXTCONDITION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.left = Expression();
      jj_consume_token(CONTAINSTEXT);
      jjtn000.right = Expression();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BooleanExpression MatchesCondition() throws ParseException {/*@bgen(jjtree) MatchesCondition */
 MatchesCondition jjtn000 = new MatchesCondition(JJTMATCHESCONDITION);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));Token token;
    try {
      jjtn000.expression = Expression();
      jj_consume_token(MATCHES);
      if (jj_2_128(2147483647)) {
        jjtn000.rightExpression = Expression();
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case RID_STRING:
        case STRING_LITERAL:{
          jjtn000.right = PString();
          break;
          }
        case CHARACTER_LITERAL:{
          token = jj_consume_token(CHARACTER_LITERAL);
jjtn000.right = token.image;
          break;
          }
        case HOOK:
        case COLON:{
          jjtn000.rightParam = InputParameter();
          break;
          }
        default:
          jj_la1[197] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public OrderBy OrderBy() throws ParseException {/*@bgen(jjtree) OrderBy */
  OrderBy jjtn000 = new OrderBy(JJTORDERBY);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));jjtn000.items = new java.util.ArrayList();
  OrderByItem lastItem;
  Identifier lastIdentifier;
  Modifier lastModifier;
  Token lastToken;
    try {
      jj_consume_token(ORDER_BY);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case RECORD_ATTRIBUTE:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
lastItem = new OrderByItem();
        jjtn000.items.add(lastItem);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          lastIdentifier = Identifier();
lastItem.alias = lastIdentifier.getStringValue();
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case LBRACKET:
          case DOT:{
            lastModifier = Modifier();
lastItem.modifier = lastModifier;
            break;
            }
          default:
            jj_la1[198] = jj_gen;
            ;
          }
          break;
          }
        case RECORD_ATTRIBUTE:{
          lastToken = jj_consume_token(RECORD_ATTRIBUTE);
lastItem.recordAttr = lastToken.image;
          break;
          }
        default:
          jj_la1[199] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ASC:
        case DESC:{
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case DESC:{
            jj_consume_token(DESC);
lastItem.type = OrderByItem.DESC;
            break;
            }
          case ASC:{
            jj_consume_token(ASC);
lastItem.type = OrderByItem.ASC;
            break;
            }
          default:
            jj_la1[200] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          break;
          }
        default:
          jj_la1[201] = jj_gen;
          ;
        }
        break;
        }
      case LPAREN:{
        jj_consume_token(LPAREN);
lastItem = new OrderByItem();
        jjtn000.items.add(lastItem);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          lastIdentifier = Identifier();
lastItem.alias = lastIdentifier.getStringValue();
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case LBRACKET:
          case DOT:{
            lastModifier = Modifier();
lastItem.modifier = lastModifier;
            break;
            }
          default:
            jj_la1[202] = jj_gen;
            ;
          }
          break;
          }
        case RECORD_ATTRIBUTE:{
          lastToken = jj_consume_token(RECORD_ATTRIBUTE);
lastItem.recordAttr = lastToken.image;
          break;
          }
        default:
          jj_la1[203] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ASC:
        case DESC:{
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case DESC:{
            jj_consume_token(DESC);
lastItem.type = OrderByItem.DESC;
            break;
            }
          case ASC:{
            jj_consume_token(ASC);
lastItem.type = OrderByItem.ASC;
            break;
            }
          default:
            jj_la1[204] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          break;
          }
        default:
          jj_la1[205] = jj_gen;
          ;
        }
        jj_consume_token(RPAREN);
        break;
        }
      default:
        jj_la1[206] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      label_34:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case COMMA:{
          ;
          break;
          }
        default:
          jj_la1[207] = jj_gen;
          break label_34;
        }
        jj_consume_token(COMMA);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case RECORD_ATTRIBUTE:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
lastItem = new OrderByItem();
          jjtn000.items.add(lastItem);
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case ALIGN:
          case CUSTOM:
          case TO:
          case VALUE:
          case VALUES:
          case SET:
          case ADD:
          case PUT:
          case MERGE:
          case CONTENT:
          case REMOVE:
          case OFFSET:
          case RECORD:
          case CHECK:
          case NEAR:
          case WITH:
          case WITHIN:
          case MINDEPTH:
          case TYPE:
          case SUPERTYPE:
          case TYPES:
          case EXCEPTION:
          case PROFILE:
          case ON:
          case OFF:
          case TRUNCATE:
          case FIND:
          case EXTENDS:
          case BUCKETS:
          case BUCKETSELECTIONSTRATEGY:
          case ALTER:
          case NAME:
          case ADDBUCKET:
          case REMOVEBUCKET:
          case DROP:
          case PROPERTY:
          case FORCE:
          case SCHEMA:
          case INDEX:
          case ENGINE:
          case REBUILD:
          case FORMAT:
          case EXPORT:
          case IMPORT:
          case DATABASE:
          case OPTIMIZE:
          case LINK:
          case INVERSE:
          case EXPLAIN:
          case GRANT:
          case REVOKE:
          case READ:
          case EXECUTE:
          case ALL:
          case NONE:
          case FUNCTION:
          case PARAMETERS:
          case LANGUAGE:
          case BEGIN:
          case COMMIT:
          case ROLLBACK:
          case IF:
          case ELSE:
          case CONTINUE:
          case FAIL:
          case ISOLATION:
          case SLEEP:
          case CONSOLE:
          case START:
          case OPTIONAL:
          case COUNT:
          case EXISTS:
          case MOVE:
          case DEPTH_ALIAS:
          case PATH_ALIAS:
          case IDENTIFIED:
          case RID:
          case SYSTEM:
          case IN:
          case KEY:
          case IDENTIFIER:
          case QUOTED_IDENTIFIER:{
            lastIdentifier = Identifier();
lastItem.alias = lastIdentifier.toString();
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case LBRACKET:
            case DOT:{
              lastModifier = Modifier();
lastItem.modifier = lastModifier;
              break;
              }
            default:
              jj_la1[208] = jj_gen;
              ;
            }
            break;
            }
          case RECORD_ATTRIBUTE:{
            lastToken = jj_consume_token(RECORD_ATTRIBUTE);
lastItem.recordAttr = lastToken.image;
            break;
            }
          default:
            jj_la1[209] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case ASC:
          case DESC:{
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case DESC:{
              jj_consume_token(DESC);
lastItem.type = OrderByItem.DESC;
              break;
              }
            case ASC:{
              jj_consume_token(ASC);
lastItem.type = OrderByItem.ASC;
              break;
              }
            default:
              jj_la1[210] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
            break;
            }
          default:
            jj_la1[211] = jj_gen;
            ;
          }
          break;
          }
        case LPAREN:{
          jj_consume_token(LPAREN);
lastItem = new OrderByItem();
          jjtn000.items.add(lastItem);
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case ALIGN:
          case CUSTOM:
          case TO:
          case VALUE:
          case VALUES:
          case SET:
          case ADD:
          case PUT:
          case MERGE:
          case CONTENT:
          case REMOVE:
          case OFFSET:
          case RECORD:
          case CHECK:
          case NEAR:
          case WITH:
          case WITHIN:
          case MINDEPTH:
          case TYPE:
          case SUPERTYPE:
          case TYPES:
          case EXCEPTION:
          case PROFILE:
          case ON:
          case OFF:
          case TRUNCATE:
          case FIND:
          case EXTENDS:
          case BUCKETS:
          case BUCKETSELECTIONSTRATEGY:
          case ALTER:
          case NAME:
          case ADDBUCKET:
          case REMOVEBUCKET:
          case DROP:
          case PROPERTY:
          case FORCE:
          case SCHEMA:
          case INDEX:
          case ENGINE:
          case REBUILD:
          case FORMAT:
          case EXPORT:
          case IMPORT:
          case DATABASE:
          case OPTIMIZE:
          case LINK:
          case INVERSE:
          case EXPLAIN:
          case GRANT:
          case REVOKE:
          case READ:
          case EXECUTE:
          case ALL:
          case NONE:
          case FUNCTION:
          case PARAMETERS:
          case LANGUAGE:
          case BEGIN:
          case COMMIT:
          case ROLLBACK:
          case IF:
          case ELSE:
          case CONTINUE:
          case FAIL:
          case ISOLATION:
          case SLEEP:
          case CONSOLE:
          case START:
          case OPTIONAL:
          case COUNT:
          case EXISTS:
          case MOVE:
          case DEPTH_ALIAS:
          case PATH_ALIAS:
          case IDENTIFIED:
          case RID:
          case SYSTEM:
          case IN:
          case KEY:
          case IDENTIFIER:
          case QUOTED_IDENTIFIER:{
            lastIdentifier = Identifier();
lastItem.alias = lastIdentifier.toString();
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case LBRACKET:
            case DOT:{
              lastModifier = Modifier();
lastItem.modifier = lastModifier;
              break;
              }
            default:
              jj_la1[212] = jj_gen;
              ;
            }
            break;
            }
          case RECORD_ATTRIBUTE:{
            lastToken = jj_consume_token(RECORD_ATTRIBUTE);
lastItem.recordAttr = lastToken.image;
            break;
            }
          default:
            jj_la1[213] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case ASC:
          case DESC:{
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case DESC:{
              jj_consume_token(DESC);
lastItem.type = OrderByItem.DESC;
              break;
              }
            case ASC:{
              jj_consume_token(ASC);
lastItem.type = OrderByItem.ASC;
              break;
              }
            default:
              jj_la1[214] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
            break;
            }
          default:
            jj_la1[215] = jj_gen;
            ;
          }
          jj_consume_token(RPAREN);
          break;
          }
        default:
          jj_la1[216] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
    jjtn000.jjtSetLastToken(getToken(0));
  }
    }
    throw new Error("Missing return statement in function");
}

  final public GroupBy GroupBy() throws ParseException {/*@bgen(jjtree) GroupBy */
  GroupBy jjtn000 = new GroupBy(JJTGROUPBY);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Expression lastExpression;
    try {
      jj_consume_token(GROUP_BY);
      lastExpression = Expression();
jjtn000.items.add(lastExpression);
      label_35:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case COMMA:{
          ;
          break;
          }
        default:
          jj_la1[217] = jj_gen;
          break label_35;
        }
        jj_consume_token(COMMA);
        lastExpression = Expression();
jjtn000.items.add(lastExpression);
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Unwind Unwind() throws ParseException {/*@bgen(jjtree) Unwind */
  Unwind jjtn000 = new Unwind(JJTUNWIND);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier lastIdentifier;
    try {
      jj_consume_token(UNWIND);
      lastIdentifier = Identifier();
jjtn000.items.add(lastIdentifier);
      label_36:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case COMMA:{
          ;
          break;
          }
        default:
          jj_la1[218] = jj_gen;
          break label_36;
        }
        jj_consume_token(COMMA);
        lastIdentifier = Identifier();
jjtn000.items.add(lastIdentifier);
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Limit Limit() throws ParseException {/*@bgen(jjtree) Limit */
  Limit jjtn000 = new Limit(JJTLIMIT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(LIMIT);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case INTEGER_LITERAL:
      case MINUS:{
        jjtn000.num = PInteger();
        break;
        }
      case HOOK:
      case COLON:{
        jjtn000.inputParam = InputParameter();
        break;
        }
      default:
        jj_la1[219] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Skip Skip() throws ParseException {/*@bgen(jjtree) Skip */
  Skip jjtn000 = new Skip(JJTSKIP);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case SKIP2:{
        jj_consume_token(SKIP2);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case INTEGER_LITERAL:
        case MINUS:{
          jjtn000.num = PInteger();
          break;
          }
        case HOOK:
        case COLON:{
          jjtn000.inputParam = InputParameter();
          break;
          }
        default:
          jj_la1[220] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      case OFFSET:{
        jj_consume_token(OFFSET);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case INTEGER_LITERAL:
        case MINUS:{
          jjtn000.num = PInteger();
          break;
          }
        case HOOK:
        case COLON:{
          jjtn000.inputParam = InputParameter();
          break;
          }
        default:
          jj_la1[221] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      default:
        jj_la1[222] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
      jjtc000 = false;
      jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Timeout Timeout() throws ParseException {/*@bgen(jjtree) Timeout */
  Timeout jjtn000 = new Timeout(JJTTIMEOUT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));PInteger val;
    try {
      jj_consume_token(TIMEOUT);
      val = PInteger();
jjtn000.val = val.getValue();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case RETURN:
      case EXCEPTION:{
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case RETURN:{
          jj_consume_token(RETURN);
jjtn000.failureStrategy = Timeout.RETURN;
          break;
          }
        case EXCEPTION:{
          jj_consume_token(EXCEPTION);
jjtn000.failureStrategy = Timeout.EXCEPTION;
          break;
          }
        default:
          jj_la1[223] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      default:
        jj_la1[224] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public java.lang.Number Wait() throws ParseException {/*@bgen(jjtree) Wait */
  Wait jjtn000 = new Wait(JJTWAIT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));PInteger val;
    try {
      jj_consume_token(WAIT);
      val = PInteger();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return val.getValue();}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public java.lang.Number Retry() throws ParseException {/*@bgen(jjtree) Retry */
  Retry jjtn000 = new Retry(JJTRETRY);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));PInteger val;
    try {
      jj_consume_token(RETRY);
      val = PInteger();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return val.getValue();}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public PCollection PCollection() throws ParseException {/*@bgen(jjtree) PCollection */
  PCollection jjtn000 = new PCollection(JJTPCOLLECTION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Expression lastExpression;
    try {
      jj_consume_token(LBRACKET);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case NULL:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case DISTINCT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case THIS:
      case RECORD_ATTRIBUTE:
      case RID_STRING:
      case INTEGER_LITERAL:
      case FLOATING_POINT_LITERAL:
      case CHARACTER_LITERAL:
      case STRING_LITERAL:
      case TRUE:
      case FALSE:
      case LPAREN:
      case LBRACE:
      case LBRACKET:
      case HOOK:
      case COLON:
      case MINUS:
      case STAR:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:
      case 250:{
        lastExpression = Expression();
jjtn000.expressions.add(lastExpression);
        label_37:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[225] = jj_gen;
            break label_37;
          }
          jj_consume_token(COMMA);
          lastExpression = Expression();
jjtn000.expressions.add(lastExpression);
        }
        break;
        }
      default:
        jj_la1[226] = jj_gen;
        ;
      }
      jj_consume_token(RBRACKET);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public TraverseProjectionItem TraverseProjectionItem() throws ParseException {/*@bgen(jjtree) TraverseProjectionItem */
  TraverseProjectionItem jjtn000 = new TraverseProjectionItem(JJTTRAVERSEPROJECTIONITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.base = BaseIdentifier();
      if (jj_2_129(2147483647)) {
        jjtn000.modifier = Modifier();
      } else {
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Json Json() throws ParseException {/*@bgen(jjtree) Json */
  Json jjtn000 = new Json(JJTJSON);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));JsonItem lastItem;
  Token token;
    try {
      jj_consume_token(LBRACE);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case RECORD_ATTRIBUTE:
      case RID_STRING:
      case CHARACTER_LITERAL:
      case STRING_LITERAL:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
lastItem = new JsonItem();
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          lastItem.leftIdentifier = Identifier();
          break;
          }
        case RECORD_ATTRIBUTE:{
          token = jj_consume_token(RECORD_ATTRIBUTE);
lastItem.leftString = token.image;
          break;
          }
        case RID_STRING:
        case STRING_LITERAL:{
          lastItem.leftString = PString();
lastItem.leftString = lastItem.leftString.substring(1, lastItem.leftString.length() - 1);
          break;
          }
        case CHARACTER_LITERAL:{
          token = jj_consume_token(CHARACTER_LITERAL);
lastItem.leftString = token.image.substring(1, token.image.length() - 1);
          break;
          }
        default:
          jj_la1[227] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        jj_consume_token(COLON);
        lastItem.right = Expression();
jjtn000.items.add(lastItem);
        label_38:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[228] = jj_gen;
            break label_38;
          }
          jj_consume_token(COMMA);
lastItem = new JsonItem();
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case ALIGN:
          case CUSTOM:
          case TO:
          case VALUE:
          case VALUES:
          case SET:
          case ADD:
          case PUT:
          case MERGE:
          case CONTENT:
          case REMOVE:
          case OFFSET:
          case RECORD:
          case CHECK:
          case NEAR:
          case WITH:
          case WITHIN:
          case MINDEPTH:
          case TYPE:
          case SUPERTYPE:
          case TYPES:
          case EXCEPTION:
          case PROFILE:
          case ON:
          case OFF:
          case TRUNCATE:
          case FIND:
          case EXTENDS:
          case BUCKETS:
          case BUCKETSELECTIONSTRATEGY:
          case ALTER:
          case NAME:
          case ADDBUCKET:
          case REMOVEBUCKET:
          case DROP:
          case PROPERTY:
          case FORCE:
          case SCHEMA:
          case INDEX:
          case ENGINE:
          case REBUILD:
          case FORMAT:
          case EXPORT:
          case IMPORT:
          case DATABASE:
          case OPTIMIZE:
          case LINK:
          case INVERSE:
          case EXPLAIN:
          case GRANT:
          case REVOKE:
          case READ:
          case EXECUTE:
          case ALL:
          case NONE:
          case FUNCTION:
          case PARAMETERS:
          case LANGUAGE:
          case BEGIN:
          case COMMIT:
          case ROLLBACK:
          case IF:
          case ELSE:
          case CONTINUE:
          case FAIL:
          case ISOLATION:
          case SLEEP:
          case CONSOLE:
          case START:
          case OPTIONAL:
          case COUNT:
          case EXISTS:
          case MOVE:
          case DEPTH_ALIAS:
          case PATH_ALIAS:
          case IDENTIFIED:
          case RID:
          case SYSTEM:
          case IN:
          case KEY:
          case IDENTIFIER:
          case QUOTED_IDENTIFIER:{
            lastItem.leftIdentifier = Identifier();
            break;
            }
          case RECORD_ATTRIBUTE:{
            token = jj_consume_token(RECORD_ATTRIBUTE);
lastItem.leftString = token.image;
            break;
            }
          case RID_STRING:
          case STRING_LITERAL:{
            lastItem.leftString = PString();
lastItem.leftString = lastItem.leftString.substring(1, lastItem.leftString.length() - 1);
            break;
            }
          case CHARACTER_LITERAL:{
            token = jj_consume_token(CHARACTER_LITERAL);
lastItem.leftString = token.image.substring(1, token.image.length() - 1);
            break;
            }
          default:
            jj_la1[229] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          jj_consume_token(COLON);
          lastItem.right = Expression();
jjtn000.items.add(lastItem);
        }
        break;
        }
      default:
        jj_la1[230] = jj_gen;
        ;
      }
      jj_consume_token(RBRACE);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchExpression MatchExpression() throws ParseException {/*@bgen(jjtree) MatchExpression */
  MatchExpression jjtn000 = new MatchExpression(JJTMATCHEXPRESSION);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));MatchPathItem nextItem = null;
    try {
      jjtn000.origin = MatchFilter();
      label_39:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case DOT:
        case LT:
        case DECR:
        case MINUS:{
          ;
          break;
          }
        default:
          jj_la1[231] = jj_gen;
          break label_39;
        }
        if (jj_2_130(3)) {
          nextItem = MatchPathItem();
        } else if (jj_2_131(3)) {
          nextItem = MultiMatchPathItemArrows();
        } else if (jj_2_132(3)) {
          nextItem = MultiMatchPathItem();
        } else if (jj_2_133(2147483647)) {
          nextItem = OutPathItem();
        } else {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case LT:{
            nextItem = InPathItem();
            break;
            }
          default:
            jj_la1[232] = jj_gen;
            if (jj_2_134(2147483647)) {
              nextItem = BothPathItem();
            } else {
              switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
              case DOT:{
                nextItem = FieldMatchPathItem();
                break;
                }
              default:
                jj_la1[233] = jj_gen;
                jj_consume_token(-1);
                throw new ParseException();
              }
            }
          }
        }
jjtn000.items.add(nextItem);
      }
jjtree.closeNodeScope(jjtn000, true);
      jjtc000 = false;
      jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchPathItem MatchPathItem() throws ParseException {/*@bgen(jjtree) MatchPathItem */
  MatchPathItem jjtn000 = new MatchPathItem(JJTMATCHPATHITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.method = MethodCall();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LBRACE:{
        jjtn000.filter = MatchFilter();
        break;
        }
      default:
        jj_la1[234] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
     jjtc000 = false;
     jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchPathItem FieldMatchPathItem() throws ParseException {/*@bgen(jjtree) FieldMatchPathItem */
  FieldMatchPathItem jjtn000 = new FieldMatchPathItem(JJTFIELDMATCHPATHITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(DOT);
      jjtn000.field = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LBRACE:{
        jjtn000.filter = MatchFilter();
        break;
        }
      default:
        jj_la1[235] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
     jjtc000 = false;
     jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchPathItem MatchPathItemFirst() throws ParseException {/*@bgen(jjtree) MatchPathItemFirst */
  MatchPathItemFirst jjtn000 = new MatchPathItemFirst(JJTMATCHPATHITEMFIRST);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.function = FunctionCall();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LBRACE:{
        jjtn000.filter = MatchFilter();
        break;
        }
      default:
        jj_la1[236] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
     jjtc000 = false;
     jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchPathItem MultiMatchPathItem() throws ParseException {/*@bgen(jjtree) MultiMatchPathItem */
  MultiMatchPathItem jjtn000 = new MultiMatchPathItem(JJTMULTIMATCHPATHITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));MatchPathItem nextItem = null;
    try {
      jj_consume_token(DOT);
      jj_consume_token(LPAREN);
      nextItem = MatchPathItemFirst();
jjtn000.items.add(nextItem);
      label_40:
      while (true) {
        if (jj_2_135(2147483647)) {
          ;
        } else {
          break label_40;
        }
        nextItem = MatchPathItem();
jjtn000.items.add(nextItem);
      }
      jj_consume_token(RPAREN);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LBRACE:{
        jjtn000.filter = MatchFilter();
        break;
        }
      default:
        jj_la1[237] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
     jjtc000 = false;
     jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchPathItem MultiMatchPathItemArrows() throws ParseException {/*@bgen(jjtree) MultiMatchPathItemArrows */
  MultiMatchPathItemArrows jjtn000 = new MultiMatchPathItemArrows(JJTMULTIMATCHPATHITEMARROWS);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));MatchPathItem prevItem = null;
  MatchPathItem nextItem = null;
    try {
      jj_consume_token(DOT);
      jj_consume_token(LPAREN);
      label_41:
      while (true) {
        if (jj_2_136(2147483647)) {
          nextItem = OutPathItemOpt();
jjtn000.items.add(nextItem);
        } else if (jj_2_137(2147483647)) {
          nextItem = InPathItemOpt();
jjtn000.items.add(nextItem);
        } else if (jj_2_138(2147483647)) {
          nextItem = BothPathItemOpt();
jjtn000.items.add(nextItem);
        } else {
          jj_consume_token(-1);
          throw new ParseException();
        }
if(prevItem !=null && prevItem.filter == null){
          {if (true) throw new CommandParsingException("MATCH sub-pattern with no square brackets");}
        }
        prevItem = nextItem;
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case LT:
        case DECR:
        case MINUS:{
          ;
          break;
          }
        default:
          jj_la1[238] = jj_gen;
          break label_41;
        }
      }
      jj_consume_token(RPAREN);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LBRACE:{
        jjtn000.filter = MatchFilter();
        break;
        }
      default:
        jj_la1[239] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
     jjtc000 = false;
     jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchFilter MatchFilter() throws ParseException {/*@bgen(jjtree) MatchFilter */
  MatchFilter jjtn000 = new MatchFilter(JJTMATCHFILTER);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));MatchFilterItem lastItem = null;
    try {
      jj_consume_token(LBRACE);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WHERE:
      case WHILE:
      case AS:
      case MAXDEPTH:
      case TYPE:
      case TYPES:
      case OPTIONAL:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case RID:
      case BUCKET:
      case BUCKET_IDENTIFIER:
      case BUCKET_NUMBER_IDENTIFIER:{
        lastItem = MatchFilterItem();
jjtn000.items.add(lastItem);
        label_42:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[240] = jj_gen;
            break label_42;
          }
          jj_consume_token(COMMA);
          lastItem = MatchFilterItem();
jjtn000.items.add(lastItem);
        }
        break;
        }
      default:
        jj_la1[241] = jj_gen;
        ;
      }
      jj_consume_token(RBRACE);
jjtree.closeNodeScope(jjtn000, true);
      jjtc000 = false;
      jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchFilterItem MatchFilterItem() throws ParseException {/*@bgen(jjtree) MatchFilterItem */
 MatchFilterItem jjtn000 = new MatchFilterItem(JJTMATCHFILTERITEM);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));Token lastToken;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case TYPE:{
        jj_consume_token(TYPE);
        jj_consume_token(COLON);
        jjtn000.typeName = Expression();
        break;
        }
      case TYPES:{
        jj_consume_token(TYPES);
        jj_consume_token(COLON);
        jjtn000.typeNames = Expression();
        break;
        }
      case BUCKET:{
        jj_consume_token(BUCKET);
        jj_consume_token(COLON);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          jjtn000.bucketName = Identifier();
          break;
          }
        case INTEGER_LITERAL:
        case MINUS:{
          jjtn000.bucketId = PInteger();
          break;
          }
        default:
          jj_la1[242] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      case BUCKET_IDENTIFIER:
      case BUCKET_NUMBER_IDENTIFIER:{
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case BUCKET_IDENTIFIER:{
          lastToken = jj_consume_token(BUCKET_IDENTIFIER);
jjtn000.bucketName = new Identifier(lastToken.image.split(":")[1]);
          break;
          }
        case BUCKET_NUMBER_IDENTIFIER:{
          lastToken = jj_consume_token(BUCKET_NUMBER_IDENTIFIER);
jjtn000.bucketId = new PInteger(-1); jjtn000.bucketId.setValue(Integer.parseInt(lastToken.image.split(":")[1]));
          break;
          }
        default:
          jj_la1[243] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      case RID:{
        jj_consume_token(RID);
        jj_consume_token(COLON);
        jjtn000.rid = Rid();
        break;
        }
      case AS:{
        jj_consume_token(AS);
        jj_consume_token(COLON);
        jjtn000.alias = Identifier();
        break;
        }
      case WHERE:{
        jj_consume_token(WHERE);
        jj_consume_token(COLON);
        jj_consume_token(LPAREN);
        jjtn000.filter = WhereClause();
        jj_consume_token(RPAREN);
        break;
        }
      case WHILE:{
        jj_consume_token(WHILE);
        jj_consume_token(COLON);
        jj_consume_token(LPAREN);
        jjtn000.whileCondition = WhereClause();
        jj_consume_token(RPAREN);
        break;
        }
      case MAXDEPTH:{
        jj_consume_token(MAXDEPTH);
        jj_consume_token(COLON);
        jjtn000.maxDepth = PInteger();
        break;
        }
      case OPTIONAL:{
        jj_consume_token(OPTIONAL);
        jj_consume_token(COLON);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case TRUE:{
          jj_consume_token(TRUE);
jjtn000.optional = true;
          break;
          }
        case FALSE:{
          jj_consume_token(FALSE);
jjtn000.optional = false;
          break;
          }
        default:
          jj_la1[244] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      case DEPTH_ALIAS:{
        jj_consume_token(DEPTH_ALIAS);
        jj_consume_token(COLON);
        jjtn000.depthAlias = Identifier();
        break;
        }
      case PATH_ALIAS:{
        jj_consume_token(PATH_ALIAS);
        jj_consume_token(COLON);
        jjtn000.pathAlias = Identifier();
        break;
        }
      default:
        jj_la1[245] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchPathItem OutPathItem() throws ParseException {/*@bgen(jjtree) OutPathItem */
  OutPathItem jjtn000 = new OutPathItem(JJTOUTPATHITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier edgeName = null;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case MINUS:{
        jj_consume_token(MINUS);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          edgeName = Identifier();
          break;
          }
        default:
          jj_la1[246] = jj_gen;
          ;
        }
        jj_consume_token(MINUS);
        break;
        }
      case DECR:{
        jj_consume_token(DECR);
        break;
        }
      default:
        jj_la1[247] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(GT);
      jjtn000.filter = MatchFilter();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
jjtn000.method = new MethodCall(-1);
   jjtn000.method.methodName = new Identifier("out");
   if (edgeName != null) {
     Expression exp = new Expression(-1);
     BaseExpression sub = new BaseExpression(edgeName.getStringValue());
     exp.mathExpression = sub;
     jjtn000.method.params.add(exp);
   }
   {if ("" != null) return jjtn000;}
    } 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);
        jjtn000.jjtSetLastToken(getToken(0));
      }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchPathItem InPathItem() throws ParseException {/*@bgen(jjtree) InPathItem */
  InPathItem jjtn000 = new InPathItem(JJTINPATHITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier edgeName = null;
    try {
      jj_consume_token(LT);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case MINUS:{
        jj_consume_token(MINUS);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          edgeName = Identifier();
          break;
          }
        default:
          jj_la1[248] = jj_gen;
          ;
        }
        jj_consume_token(MINUS);
        break;
        }
      case DECR:{
        jj_consume_token(DECR);
        break;
        }
      default:
        jj_la1[249] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jjtn000.filter = MatchFilter();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
jjtn000.method = new MethodCall(-1);
   jjtn000.method.methodName = new Identifier("in");
   if (edgeName != null) {
     Expression exp = new Expression(-1);
     BaseExpression sub = new BaseExpression(edgeName.getStringValue());
     exp.mathExpression = sub;
     jjtn000.method.params.add(exp);
   }
   {if ("" != null) return jjtn000;}
    } 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);
        jjtn000.jjtSetLastToken(getToken(0));
      }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchPathItem BothPathItem() throws ParseException {/*@bgen(jjtree) BothPathItem */
  BothPathItem jjtn000 = new BothPathItem(JJTBOTHPATHITEM);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier edgeName = null;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case MINUS:{
        jj_consume_token(MINUS);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          edgeName = Identifier();
          break;
          }
        default:
          jj_la1[250] = jj_gen;
          ;
        }
        jj_consume_token(MINUS);
        break;
        }
      case DECR:{
        jj_consume_token(DECR);
        break;
        }
      default:
        jj_la1[251] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jjtn000.filter = MatchFilter();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
jjtn000.method = new MethodCall(-1);
   jjtn000.method.methodName = new Identifier("both");
   if (edgeName != null) {
     Expression exp = new Expression(-1);
     BaseExpression sub = new BaseExpression(edgeName.getStringValue());
     exp.mathExpression = sub;
     jjtn000.method.params.add(exp);
   }
   {if ("" != null) return jjtn000;}
    } 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);
        jjtn000.jjtSetLastToken(getToken(0));
      }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchPathItem OutPathItemOpt() throws ParseException {/*@bgen(jjtree) OutPathItemOpt */
  OutPathItemOpt jjtn000 = new OutPathItemOpt(JJTOUTPATHITEMOPT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier edgeName = null;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case MINUS:{
        jj_consume_token(MINUS);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          edgeName = Identifier();
          break;
          }
        default:
          jj_la1[252] = jj_gen;
          ;
        }
        jj_consume_token(MINUS);
        break;
        }
      case DECR:{
        jj_consume_token(DECR);
        break;
        }
      default:
        jj_la1[253] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      jj_consume_token(GT);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LBRACE:{
        jjtn000.filter = MatchFilter();
        break;
        }
      default:
        jj_la1[254] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
jjtn000.method = new MethodCall(-1);
   jjtn000.method.methodName = new Identifier("out");
   if (edgeName != null) {
     Expression exp = new Expression(-1);
     BaseExpression sub = new BaseExpression(edgeName.getStringValue());
     exp.mathExpression = sub;
     jjtn000.method.params.add(exp);
   }
   {if ("" != null) return jjtn000;}
    } 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);
        jjtn000.jjtSetLastToken(getToken(0));
      }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchPathItem InPathItemOpt() throws ParseException {/*@bgen(jjtree) InPathItemOpt */
  InPathItemOpt jjtn000 = new InPathItemOpt(JJTINPATHITEMOPT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier edgeName = null;
    try {
      jj_consume_token(LT);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case MINUS:{
        jj_consume_token(MINUS);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          edgeName = Identifier();
          break;
          }
        default:
          jj_la1[255] = jj_gen;
          ;
        }
        jj_consume_token(MINUS);
        break;
        }
      case DECR:{
        jj_consume_token(DECR);
        break;
        }
      default:
        jj_la1[256] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LBRACE:{
        jjtn000.filter = MatchFilter();
        break;
        }
      default:
        jj_la1[257] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
jjtn000.method = new MethodCall(-1);
   jjtn000.method.methodName = new Identifier("in");
   if(edgeName!=null){
     Expression exp = new Expression(-1);
     BaseExpression sub = new BaseExpression(edgeName.getStringValue());
     exp.mathExpression = sub;
     jjtn000.method.params.add(exp);
   }
   {if ("" != null) return jjtn000;}
    } 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);
        jjtn000.jjtSetLastToken(getToken(0));
      }
    }
    throw new Error("Missing return statement in function");
}

  final public MatchPathItem BothPathItemOpt() throws ParseException {/*@bgen(jjtree) BothPathItemOpt */
  BothPathItemOpt jjtn000 = new BothPathItemOpt(JJTBOTHPATHITEMOPT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier edgeName = null;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case MINUS:{
        jj_consume_token(MINUS);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          edgeName = Identifier();
          break;
          }
        default:
          jj_la1[258] = jj_gen;
          ;
        }
        jj_consume_token(MINUS);
        break;
        }
      case DECR:{
        jj_consume_token(DECR);
        break;
        }
      default:
        jj_la1[259] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LBRACE:{
        jjtn000.filter = MatchFilter();
        break;
        }
      default:
        jj_la1[260] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
jjtn000.method = new MethodCall(-1);
   jjtn000.method.methodName = new Identifier("both");
   if (edgeName != null) {
     Expression exp = new Expression(-1);
     BaseExpression sub = new BaseExpression(edgeName.getStringValue());
     exp.mathExpression = sub;
     jjtn000.method.params.add(exp);
   }
   {if ("" != null) return jjtn000;}
    } 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);
        jjtn000.jjtSetLastToken(getToken(0));
      }
    }
    throw new Error("Missing return statement in function");
}

  final public TruncateTypeStatement TruncateTypeStatement() throws ParseException {/*@bgen(jjtree) TruncateTypeStatement */
  TruncateTypeStatement jjtn000 = new TruncateTypeStatement(JJTTRUNCATETYPESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(TRUNCATE);
      jj_consume_token(TYPE);
      jjtn000.typeName = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case POLYMORPHIC:{
        jj_consume_token(POLYMORPHIC);
jjtn000.polymorphic = true;
        break;
        }
      default:
        jj_la1[261] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case UNSAFE:{
        jj_consume_token(UNSAFE);
jjtn000.unsafe = true;
        break;
        }
      default:
        jj_la1[262] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public TruncateBucketStatement TruncateBucketStatement() throws ParseException {/*@bgen(jjtree) TruncateBucketStatement */
  TruncateBucketStatement jjtn000 = new TruncateBucketStatement(JJTTRUNCATEBUCKETSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(TRUNCATE);
      jj_consume_token(BUCKET);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.bucketName = Identifier();
        break;
        }
      case INTEGER_LITERAL:
      case MINUS:{
        jjtn000.bucketNumber = PInteger();
        break;
        }
      default:
        jj_la1[263] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case UNSAFE:{
        jj_consume_token(UNSAFE);
jjtn000.unsafe = true;
        break;
        }
      default:
        jj_la1[264] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public TruncateRecordStatement TruncateRecordStatement() throws ParseException {/*@bgen(jjtree) TruncateRecordStatement */
  TruncateRecordStatement jjtn000 = new TruncateRecordStatement(JJTTRUNCATERECORDSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Rid lastRecord;
    try {
      jj_consume_token(TRUNCATE);
      jj_consume_token(RECORD);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case INTEGER_LITERAL:
      case LBRACE:
      case MINUS:
      case 250:{
        jjtn000.record = Rid();
        break;
        }
      case LBRACKET:{
        jj_consume_token(LBRACKET);
jjtn000.records = new ArrayList();
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case INTEGER_LITERAL:
        case LBRACE:
        case MINUS:
        case 250:{
          lastRecord = Rid();
jjtn000.records.add(lastRecord);
          label_43:
          while (true) {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case COMMA:{
              ;
              break;
              }
            default:
              jj_la1[265] = jj_gen;
              break label_43;
            }
            jj_consume_token(COMMA);
            lastRecord = Rid();
jjtn000.records.add(lastRecord);
          }
          break;
          }
        default:
          jj_la1[266] = jj_gen;
          ;
        }
        jj_consume_token(RBRACKET);
        break;
        }
      default:
        jj_la1[267] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CreateDocumentTypeStatement CreateDocumentTypeStatement() throws ParseException {/*@bgen(jjtree) CreateDocumentTypeStatement */
  CreateDocumentTypeStatement jjtn000 = new CreateDocumentTypeStatement(JJTCREATEDOCUMENTTYPESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier lastIdentifier;
  BucketIdentifier lastBucket;
    try {
      jj_consume_token(CREATE);
      jj_consume_token(DOCUMENT);
      jj_consume_token(TYPE);
      jjtn000.name = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case IF:{
        jj_consume_token(IF);
        jj_consume_token(NOT);
        jj_consume_token(EXISTS);
jjtn000.ifNotExists = true;
        break;
        }
      default:
        jj_la1[268] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case EXTENDS:{
        jj_consume_token(EXTENDS);
        lastIdentifier = Identifier();
jjtn000.supertypes = new ArrayList(); jjtn000.supertypes.add(lastIdentifier);
        label_44:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[269] = jj_gen;
            break label_44;
          }
          jj_consume_token(COMMA);
          lastIdentifier = Identifier();
jjtn000.supertypes.add(lastIdentifier);
        }
        break;
        }
      default:
        jj_la1[270] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKET:{
        jj_consume_token(BUCKET);
        lastBucket = BucketIdentifier();
jjtn000.buckets = new ArrayList(); jjtn000.buckets.add(lastBucket);
        label_45:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[271] = jj_gen;
            break label_45;
          }
          jj_consume_token(COMMA);
          lastBucket = BucketIdentifier();
jjtn000.buckets.add(lastBucket);
        }
        break;
        }
      default:
        jj_la1[272] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKETS:{
        jj_consume_token(BUCKETS);
        jjtn000.totalBucketNo = PInteger();
        break;
        }
      default:
        jj_la1[273] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CreateVertexTypeStatement CreateVertexTypeStatement() throws ParseException {/*@bgen(jjtree) CreateVertexTypeStatement */
  CreateVertexTypeStatement jjtn000 = new CreateVertexTypeStatement(JJTCREATEVERTEXTYPESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier lastIdentifier;
  BucketIdentifier lastBucket;
    try {
      jj_consume_token(CREATE);
      jj_consume_token(VERTEX);
      jj_consume_token(TYPE);
      jjtn000.name = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case IF:{
        jj_consume_token(IF);
        jj_consume_token(NOT);
        jj_consume_token(EXISTS);
jjtn000.ifNotExists = true;
        break;
        }
      default:
        jj_la1[274] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case EXTENDS:{
        jj_consume_token(EXTENDS);
        lastIdentifier = Identifier();
jjtn000.supertypes = new ArrayList(); jjtn000.supertypes.add(lastIdentifier);
        label_46:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[275] = jj_gen;
            break label_46;
          }
          jj_consume_token(COMMA);
          lastIdentifier = Identifier();
jjtn000.supertypes.add(lastIdentifier);
        }
        break;
        }
      default:
        jj_la1[276] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKET:{
        jj_consume_token(BUCKET);
        lastBucket = BucketIdentifier();
jjtn000.buckets = new ArrayList(); jjtn000.buckets.add(lastBucket);
        label_47:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[277] = jj_gen;
            break label_47;
          }
          jj_consume_token(COMMA);
          lastBucket = BucketIdentifier();
jjtn000.buckets.add(lastBucket);
        }
        break;
        }
      default:
        jj_la1[278] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKETS:{
        jj_consume_token(BUCKETS);
        jjtn000.totalBucketNo = PInteger();
        break;
        }
      default:
        jj_la1[279] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CreateEdgeTypeStatement CreateEdgeTypeStatement() throws ParseException {/*@bgen(jjtree) CreateEdgeTypeStatement */
  CreateEdgeTypeStatement jjtn000 = new CreateEdgeTypeStatement(JJTCREATEEDGETYPESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier lastIdentifier;
  BucketIdentifier lastBucket;
    try {
      jj_consume_token(CREATE);
      jj_consume_token(EDGE);
      jj_consume_token(TYPE);
      jjtn000.name = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case IF:{
        jj_consume_token(IF);
        jj_consume_token(NOT);
        jj_consume_token(EXISTS);
jjtn000.ifNotExists = true;
        break;
        }
      default:
        jj_la1[280] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case EXTENDS:{
        jj_consume_token(EXTENDS);
        lastIdentifier = Identifier();
jjtn000.supertypes = new ArrayList(); jjtn000.supertypes.add(lastIdentifier);
        label_48:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[281] = jj_gen;
            break label_48;
          }
          jj_consume_token(COMMA);
          lastIdentifier = Identifier();
jjtn000.supertypes.add(lastIdentifier);
        }
        break;
        }
      default:
        jj_la1[282] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKET:{
        jj_consume_token(BUCKET);
        lastBucket = BucketIdentifier();
jjtn000.buckets = new ArrayList(); jjtn000.buckets.add(lastBucket);
        label_49:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[283] = jj_gen;
            break label_49;
          }
          jj_consume_token(COMMA);
          lastBucket = BucketIdentifier();
jjtn000.buckets.add(lastBucket);
        }
        break;
        }
      default:
        jj_la1[284] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKETS:{
        jj_consume_token(BUCKETS);
        jjtn000.totalBucketNo = PInteger();
        break;
        }
      default:
        jj_la1[285] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public AlterTypeStatement AlterTypeStatement() throws ParseException {/*@bgen(jjtree) AlterTypeStatement */
  AlterTypeStatement jjtn000 = new AlterTypeStatement(JJTALTERTYPESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier lastIdentifier;
  PInteger lastInteger;
  Token lastToken;
    try {
      jj_consume_token(ALTER);
      jj_consume_token(TYPE);
      jjtn000.name = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case NAME:{
        jj_consume_token(NAME);
jjtn000.property = "name";
        jjtn000.identifierValue = Identifier();
        break;
        }
      case SUPERTYPE:{
        jj_consume_token(SUPERTYPE);
jjtn000.property = "supertype";
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case PLUS:
        case MINUS:{
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case PLUS:{
            jj_consume_token(PLUS);
jjtn000.identifierListAddRemove.add(true);
            break;
            }
          case MINUS:{
            jj_consume_token(MINUS);
jjtn000.identifierListAddRemove.add(false);
            break;
            }
          default:
            jj_la1[286] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          lastIdentifier = Identifier();
jjtn000.identifierListValue.add(lastIdentifier);
          label_50:
          while (true) {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case COMMA:{
              ;
              break;
              }
            default:
              jj_la1[287] = jj_gen;
              break label_50;
            }
            jj_consume_token(COMMA);
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case PLUS:{
              jj_consume_token(PLUS);
jjtn000.identifierListAddRemove.add(true);
              break;
              }
            case MINUS:{
              jj_consume_token(MINUS);
jjtn000.identifierListAddRemove.add(false);
              break;
              }
            default:
              jj_la1[288] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
            lastIdentifier = Identifier();
jjtn000.identifierListValue.add(lastIdentifier);
          }
          break;
          }
        case NULL:{
          jj_consume_token(NULL);
jjtn000.identifierListValue = null;
          break;
          }
        default:
          jj_la1[289] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      case BUCKET:{
        jj_consume_token(BUCKET);
jjtn000.property = "bucket";
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case PLUS:{
          jj_consume_token(PLUS);
jjtn000.identifierListAddRemove.add(true);
          break;
          }
        case MINUS:{
          jj_consume_token(MINUS);
jjtn000.identifierListAddRemove.add(false);
          break;
          }
        default:
          jj_la1[290] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        lastIdentifier = Identifier();
jjtn000.identifierListValue.add(lastIdentifier);
        label_51:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[291] = jj_gen;
            break label_51;
          }
          jj_consume_token(COMMA);
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case PLUS:{
            jj_consume_token(PLUS);
jjtn000.identifierListAddRemove.add(true);
            break;
            }
          case MINUS:{
            jj_consume_token(MINUS);
jjtn000.identifierListAddRemove.add(false);
            break;
            }
          default:
            jj_la1[292] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          lastIdentifier = Identifier();
jjtn000.identifierListValue.add(lastIdentifier);
        }
        break;
        }
      case BUCKETSELECTIONSTRATEGY:{
        jj_consume_token(BUCKETSELECTIONSTRATEGY);
jjtn000.property = "bucketSelectionStrategy";
        jjtn000.identifierValue = Identifier();
        break;
        }
      case CUSTOM:{
        jj_consume_token(CUSTOM);
        jjtn000.customKey = Identifier();
        jj_consume_token(EQ);
        jjtn000.customValue = Expression();
        break;
        }
      default:
        jj_la1[293] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DropTypeStatement DropTypeStatement() throws ParseException {/*@bgen(jjtree) DropTypeStatement */
  DropTypeStatement jjtn000 = new DropTypeStatement(JJTDROPTYPESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(DROP);
      jj_consume_token(TYPE);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.name = Identifier();
        break;
        }
      case HOOK:
      case COLON:{
        jjtn000.nameParam = InputParameter();
        break;
        }
      default:
        jj_la1[294] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case IF:{
        jj_consume_token(IF);
        jj_consume_token(EXISTS);
jjtn000.ifExists = true;
        break;
        }
      default:
        jj_la1[295] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case UNSAFE:{
        jj_consume_token(UNSAFE);
jjtn000.unsafe = true;
        break;
        }
      default:
        jj_la1[296] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CreatePropertyStatement CreatePropertyStatement() throws ParseException {/*@bgen(jjtree) CreatePropertyStatement */
  CreatePropertyStatement jjtn000 = new CreatePropertyStatement(JJTCREATEPROPERTYSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));CreatePropertyAttributeStatement lastAttribute;
    try {
      jj_consume_token(CREATE);
      jj_consume_token(PROPERTY);
      jjtn000.typeName = Identifier();
      jj_consume_token(DOT);
      jjtn000.propertyName = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case IF:{
        jj_consume_token(IF);
        jj_consume_token(NOT);
        jj_consume_token(EXISTS);
jjtn000.ifNotExists = true;
        break;
        }
      default:
        jj_la1[297] = jj_gen;
        ;
      }
      jjtn000.propertyType = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LPAREN:{
        jj_consume_token(LPAREN);
        lastAttribute = CreatePropertyAttributeStatement();
jjtn000.attributes.add(lastAttribute);
        label_52:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[298] = jj_gen;
            break label_52;
          }
          jj_consume_token(COMMA);
          lastAttribute = CreatePropertyAttributeStatement();
jjtn000.attributes.add(lastAttribute);
        }
        jj_consume_token(RPAREN);
        break;
        }
      default:
        jj_la1[299] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CreatePropertyAttributeStatement CreatePropertyAttributeStatement() throws ParseException {/*@bgen(jjtree) CreatePropertyAttributeStatement */
  CreatePropertyAttributeStatement jjtn000 = new CreatePropertyAttributeStatement(JJTCREATEPROPERTYATTRIBUTESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jjtn000.settingName = Identifier();
      if (getToken(1).kind != COMMA && getToken(1).kind != RPAREN) {
        jjtn000.settingValue = Expression();
      } else {
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public AlterPropertyStatement AlterPropertyStatement() throws ParseException {/*@bgen(jjtree) AlterPropertyStatement */
  AlterPropertyStatement jjtn000 = new AlterPropertyStatement(JJTALTERPROPERTYSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(ALTER);
      jj_consume_token(PROPERTY);
      jjtn000.typeName = Identifier();
      jj_consume_token(DOT);
      jjtn000.propertyName = Identifier();
      if (jj_2_139(3)) {
        jj_consume_token(CUSTOM);
        jjtn000.customPropertyName = Identifier();
        jj_consume_token(EQ);
        jjtn000.customPropertyValue = Expression();
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          jjtn000.settingName = Identifier();
          jjtn000.settingValue = Expression();
          break;
          }
        default:
          jj_la1[300] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DropPropertyStatement DropPropertyStatement() throws ParseException {/*@bgen(jjtree) DropPropertyStatement */
  DropPropertyStatement jjtn000 = new DropPropertyStatement(JJTDROPPROPERTYSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(DROP);
      jj_consume_token(PROPERTY);
      jjtn000.typeName = Identifier();
      jj_consume_token(DOT);
      jjtn000.propertyName = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case IF:{
        jj_consume_token(IF);
        jj_consume_token(EXISTS);
jjtn000.ifExists = true;
        break;
        }
      default:
        jj_la1[301] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case FORCE:{
        jj_consume_token(FORCE);
jjtn000.force = true;
        break;
        }
      default:
        jj_la1[302] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CreateIndexStatement CreateIndexStatement() throws ParseException {/*@bgen(jjtree) CreateIndexStatement */
  CreateIndexStatement jjtn000 = new CreateIndexStatement(JJTCREATEINDEXSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));CreateIndexStatement.Property lastProperty;
  Identifier lastIdentifier;
  RecordAttribute lastRecordAttr;
    try {
      jj_consume_token(CREATE);
      jj_consume_token(INDEX);
      if (jj_2_140(6)) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case IF:{
          jj_consume_token(IF);
          jj_consume_token(NOT);
          jj_consume_token(EXISTS);
jjtn000.ifNotExists = true;
          break;
          }
        default:
          jj_la1[303] = jj_gen;
          ;
        }
        jj_consume_token(ON);
        jjtn000.typeName = Identifier();
        jj_consume_token(LPAREN);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          lastIdentifier = Identifier();
lastProperty = new CreateIndexStatement.Property();
            lastProperty.name = lastIdentifier;
            jjtn000.propertyList.add(lastProperty);
          break;
          }
        case RECORD_ATTRIBUTE:{
          lastRecordAttr = RecordAttribute();
lastProperty = new CreateIndexStatement.Property();
            lastProperty.recordAttribute = lastRecordAttr;
            jjtn000.propertyList.add(lastProperty);
          break;
          }
        default:
          jj_la1[304] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case BY:{
          jj_consume_token(BY);
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case KEY:{
            jj_consume_token(KEY);
lastProperty.byKey = true;
            break;
            }
          case VALUE:{
            jj_consume_token(VALUE);
lastProperty.byValue = true;
            break;
            }
          default:
            jj_la1[305] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          break;
          }
        default:
          jj_la1[306] = jj_gen;
          ;
        }
        label_53:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[307] = jj_gen;
            break label_53;
          }
          jj_consume_token(COMMA);
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case ALIGN:
          case CUSTOM:
          case TO:
          case VALUE:
          case VALUES:
          case SET:
          case ADD:
          case PUT:
          case MERGE:
          case CONTENT:
          case REMOVE:
          case OFFSET:
          case RECORD:
          case CHECK:
          case NEAR:
          case WITH:
          case WITHIN:
          case MINDEPTH:
          case TYPE:
          case SUPERTYPE:
          case TYPES:
          case EXCEPTION:
          case PROFILE:
          case ON:
          case OFF:
          case TRUNCATE:
          case FIND:
          case EXTENDS:
          case BUCKETS:
          case BUCKETSELECTIONSTRATEGY:
          case ALTER:
          case NAME:
          case ADDBUCKET:
          case REMOVEBUCKET:
          case DROP:
          case PROPERTY:
          case FORCE:
          case SCHEMA:
          case INDEX:
          case ENGINE:
          case REBUILD:
          case FORMAT:
          case EXPORT:
          case IMPORT:
          case DATABASE:
          case OPTIMIZE:
          case LINK:
          case INVERSE:
          case EXPLAIN:
          case GRANT:
          case REVOKE:
          case READ:
          case EXECUTE:
          case ALL:
          case NONE:
          case FUNCTION:
          case PARAMETERS:
          case LANGUAGE:
          case BEGIN:
          case COMMIT:
          case ROLLBACK:
          case IF:
          case ELSE:
          case CONTINUE:
          case FAIL:
          case ISOLATION:
          case SLEEP:
          case CONSOLE:
          case START:
          case OPTIONAL:
          case COUNT:
          case EXISTS:
          case MOVE:
          case DEPTH_ALIAS:
          case PATH_ALIAS:
          case IDENTIFIED:
          case RID:
          case SYSTEM:
          case IN:
          case KEY:
          case IDENTIFIER:
          case QUOTED_IDENTIFIER:{
            lastIdentifier = Identifier();
lastProperty = new CreateIndexStatement.Property();
              lastProperty.name = lastIdentifier;
              jjtn000.propertyList.add(lastProperty);
            break;
            }
          case RECORD_ATTRIBUTE:{
            lastRecordAttr = RecordAttribute();
lastProperty = new CreateIndexStatement.Property();
              lastProperty.recordAttribute = lastRecordAttr;
              jjtn000.propertyList.add(lastProperty);
            break;
            }
          default:
            jj_la1[308] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case BY:{
            jj_consume_token(BY);
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case KEY:{
              jj_consume_token(KEY);
lastProperty.byKey = true;
              break;
              }
            case VALUE:{
              jj_consume_token(VALUE);
lastProperty.byValue = true;
              break;
              }
            default:
              jj_la1[309] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
            break;
            }
          default:
            jj_la1[310] = jj_gen;
            ;
          }
        }
        jj_consume_token(RPAREN);
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          jjtn000.name = Identifier();
          break;
          }
        default:
          jj_la1[311] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      if (jj_2_141(4)) {
        jj_consume_token(IF);
        jj_consume_token(NOT);
        jj_consume_token(EXISTS);
jjtn000.ifNotExists = true;
        jjtn000.type = Identifier();
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          jjtn000.type = Identifier();
          break;
          }
        default:
          jj_la1[312] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
      if (jj_2_144(2)) {
        jj_consume_token(ENGINE);
        jjtn000.engine = Identifier();
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          if (jj_2_142(2)) {
            jj_consume_token(SCHEMA);
            jjtn000.schema = Json();
          } else {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case ALIGN:
            case CUSTOM:
            case TO:
            case VALUE:
            case VALUES:
            case SET:
            case ADD:
            case PUT:
            case MERGE:
            case CONTENT:
            case REMOVE:
            case OFFSET:
            case RECORD:
            case CHECK:
            case NEAR:
            case WITH:
            case WITHIN:
            case MINDEPTH:
            case TYPE:
            case SUPERTYPE:
            case TYPES:
            case EXCEPTION:
            case PROFILE:
            case ON:
            case OFF:
            case TRUNCATE:
            case FIND:
            case EXTENDS:
            case BUCKETS:
            case BUCKETSELECTIONSTRATEGY:
            case ALTER:
            case NAME:
            case ADDBUCKET:
            case REMOVEBUCKET:
            case DROP:
            case PROPERTY:
            case FORCE:
            case SCHEMA:
            case INDEX:
            case ENGINE:
            case REBUILD:
            case FORMAT:
            case EXPORT:
            case IMPORT:
            case DATABASE:
            case OPTIMIZE:
            case LINK:
            case INVERSE:
            case EXPLAIN:
            case GRANT:
            case REVOKE:
            case READ:
            case EXECUTE:
            case ALL:
            case NONE:
            case FUNCTION:
            case PARAMETERS:
            case LANGUAGE:
            case BEGIN:
            case COMMIT:
            case ROLLBACK:
            case IF:
            case ELSE:
            case CONTINUE:
            case FAIL:
            case ISOLATION:
            case SLEEP:
            case CONSOLE:
            case START:
            case OPTIONAL:
            case COUNT:
            case EXISTS:
            case MOVE:
            case DEPTH_ALIAS:
            case PATH_ALIAS:
            case IDENTIFIED:
            case RID:
            case SYSTEM:
            case IN:
            case KEY:
            case IDENTIFIER:
            case QUOTED_IDENTIFIER:{
              lastIdentifier = Identifier();
jjtn000.keyTypes.add(lastIdentifier);
              label_54:
              while (true) {
                switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
                case COMMA:{
                  ;
                  break;
                  }
                default:
                  jj_la1[313] = jj_gen;
                  break label_54;
                }
                jj_consume_token(COMMA);
                lastIdentifier = Identifier();
jjtn000.keyTypes.add(lastIdentifier);
              }
              switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
              case SCHEMA:{
                jj_consume_token(SCHEMA);
                jjtn000.schema = Json();
                break;
                }
              default:
                jj_la1[314] = jj_gen;
                ;
              }
              break;
              }
            default:
              jj_la1[315] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
          }
          break;
          }
        default:
          jj_la1[316] = jj_gen;
          ;
        }
      } else {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case CUSTOM:
        case TO:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case OFFSET:
        case RECORD:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case EXISTS:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          if (jj_2_143(2)) {
            jj_consume_token(SCHEMA);
            jjtn000.schema = Json();
          } else {
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case ALIGN:
            case CUSTOM:
            case TO:
            case VALUE:
            case VALUES:
            case SET:
            case ADD:
            case PUT:
            case MERGE:
            case CONTENT:
            case REMOVE:
            case OFFSET:
            case RECORD:
            case CHECK:
            case NEAR:
            case WITH:
            case WITHIN:
            case MINDEPTH:
            case TYPE:
            case SUPERTYPE:
            case TYPES:
            case EXCEPTION:
            case PROFILE:
            case ON:
            case OFF:
            case TRUNCATE:
            case FIND:
            case EXTENDS:
            case BUCKETS:
            case BUCKETSELECTIONSTRATEGY:
            case ALTER:
            case NAME:
            case ADDBUCKET:
            case REMOVEBUCKET:
            case DROP:
            case PROPERTY:
            case FORCE:
            case SCHEMA:
            case INDEX:
            case ENGINE:
            case REBUILD:
            case FORMAT:
            case EXPORT:
            case IMPORT:
            case DATABASE:
            case OPTIMIZE:
            case LINK:
            case INVERSE:
            case EXPLAIN:
            case GRANT:
            case REVOKE:
            case READ:
            case EXECUTE:
            case ALL:
            case NONE:
            case FUNCTION:
            case PARAMETERS:
            case LANGUAGE:
            case BEGIN:
            case COMMIT:
            case ROLLBACK:
            case IF:
            case ELSE:
            case CONTINUE:
            case FAIL:
            case ISOLATION:
            case SLEEP:
            case CONSOLE:
            case START:
            case OPTIONAL:
            case COUNT:
            case EXISTS:
            case MOVE:
            case DEPTH_ALIAS:
            case PATH_ALIAS:
            case IDENTIFIED:
            case RID:
            case SYSTEM:
            case IN:
            case KEY:
            case IDENTIFIER:
            case QUOTED_IDENTIFIER:{
              lastIdentifier = Identifier();
jjtn000.keyTypes.add(lastIdentifier);
              label_55:
              while (true) {
                switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
                case COMMA:{
                  ;
                  break;
                  }
                default:
                  jj_la1[317] = jj_gen;
                  break label_55;
                }
                jj_consume_token(COMMA);
                lastIdentifier = Identifier();
jjtn000.keyTypes.add(lastIdentifier);
              }
              switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
              case SCHEMA:{
                jj_consume_token(SCHEMA);
                jjtn000.schema = Json();
                break;
                }
              default:
                jj_la1[318] = jj_gen;
                ;
              }
              break;
              }
            default:
              jj_la1[319] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
          }
          break;
          }
        default:
          jj_la1[320] = jj_gen;
          ;
        }
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case NULL_STRATEGY:{
        jj_consume_token(NULL_STRATEGY);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case SKIP2:{
          jj_consume_token(SKIP2);
jjtn000.nullStrategy = LSMTreeIndexAbstract.NULL_STRATEGY.SKIP;
          break;
          }
        case ERROR2:{
          jj_consume_token(ERROR2);
jjtn000.nullStrategy = LSMTreeIndexAbstract.NULL_STRATEGY.ERROR;
          break;
          }
        default:
          jj_la1[321] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      default:
        jj_la1[322] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public RebuildIndexStatement RebuildIndexStatement() throws ParseException {/*@bgen(jjtree) RebuildIndexStatement */
  RebuildIndexStatement jjtn000 = new RebuildIndexStatement(JJTREBUILDINDEXSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(REBUILD);
      jj_consume_token(INDEX);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.name = Identifier();
        break;
        }
      case STAR:{
        jj_consume_token(STAR);
jjtn000.all = true;
        break;
        }
      default:
        jj_la1[323] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DropIndexStatement DropIndexStatement() throws ParseException {/*@bgen(jjtree) DropIndexStatement */
  DropIndexStatement jjtn000 = new DropIndexStatement(JJTDROPINDEXSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(DROP);
      jj_consume_token(INDEX);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.name = Identifier();
        break;
        }
      case STAR:{
        jj_consume_token(STAR);
jjtn000.all = true;
        break;
        }
      default:
        jj_la1[324] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case IF:{
        jj_consume_token(IF);
        jj_consume_token(EXISTS);
jjtn000.ifExists = true;
        break;
        }
      default:
        jj_la1[325] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CreateBucketStatement CreateBucketStatement() throws ParseException {/*@bgen(jjtree) CreateBucketStatement */
  CreateBucketStatement jjtn000 = new CreateBucketStatement(JJTCREATEBUCKETSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(CREATE);
      jj_consume_token(BUCKET);
      jjtn000.name = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case IF:{
        jj_consume_token(IF);
        jj_consume_token(NOT);
        jj_consume_token(EXISTS);
jjtn000.ifNotExists = true;
        break;
        }
      default:
        jj_la1[326] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public AlterBucketStatement AlterBucketStatement() throws ParseException {/*@bgen(jjtree) AlterBucketStatement */
  AlterBucketStatement jjtn000 = new AlterBucketStatement(JJTALTERBUCKETSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(ALTER);
      jj_consume_token(BUCKET);
      jjtn000.name = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case STAR:{
        jj_consume_token(STAR);
jjtn000.starred = true;
        break;
        }
      default:
        jj_la1[327] = jj_gen;
        ;
      }
      jjtn000.attributeName = Identifier();
      jjtn000.attributeValue = Expression();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DropBucketStatement DropBucketStatement() throws ParseException {/*@bgen(jjtree) DropBucketStatement */
  DropBucketStatement jjtn000 = new DropBucketStatement(JJTDROPBUCKETSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(DROP);
      jj_consume_token(BUCKET);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.name = Identifier();
        break;
        }
      case INTEGER_LITERAL:
      case MINUS:{
        jjtn000.id = PInteger();
        break;
        }
      default:
        jj_la1[328] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case IF:{
        jj_consume_token(IF);
        jj_consume_token(EXISTS);
jjtn000.ifExists = true;
        break;
        }
      default:
        jj_la1[329] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public AlterDatabaseStatement AlterDatabaseStatement() throws ParseException {/*@bgen(jjtree) AlterDatabaseStatement */
  AlterDatabaseStatement jjtn000 = new AlterDatabaseStatement(JJTALTERDATABASESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(ALTER);
      jj_consume_token(DATABASE);
      jjtn000.settingName = Identifier();
      jjtn000.settingValue = Expression();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ExplainStatement ExplainStatement() throws ParseException {/*@bgen(jjtree) ExplainStatement */
  ExplainStatement jjtn000 = new ExplainStatement(JJTEXPLAINSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(EXPLAIN);
      jjtn000.statement = StatementInternal();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ProfileStatement ProfileStatement() throws ParseException {/*@bgen(jjtree) ProfileStatement */
  ProfileStatement jjtn000 = new ProfileStatement(JJTPROFILESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(PROFILE);
      jjtn000.statement = StatementInternal();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public LetStatement LetStatement() throws ParseException {/*@bgen(jjtree) LetStatement */
  LetStatement jjtn000 = new LetStatement(JJTLETSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(LET);
      jjtn000.name = Identifier();
      jj_consume_token(EQ);
      if (jj_2_145(2147483647)) {
        jjtn000.statement = StatementInternal();
      } else if (jj_2_146(2147483647)) {
        jjtn000.expression = Expression();
      } else {
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BeginStatement BeginStatement() throws ParseException {/*@bgen(jjtree) BeginStatement */
  BeginStatement jjtn000 = new BeginStatement(JJTBEGINSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(BEGIN);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ISOLATION:{
        jj_consume_token(ISOLATION);
        jjtn000.isolation = Identifier();
        break;
        }
      default:
        jj_la1[330] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CommitStatement CommitStatement() throws ParseException {/*@bgen(jjtree) CommitStatement */
  CommitStatement jjtn000 = new CommitStatement(JJTCOMMITSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Statement last;
    try {
      jj_consume_token(COMMIT);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case RETRY:{
        jj_consume_token(RETRY);
        jjtn000.retry = PInteger();
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ELSE:{
          jj_consume_token(ELSE);
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case LBRACE:{
jjtn000.elseStatements = new ArrayList();
            jj_consume_token(LBRACE);
            label_56:
            while (true) {
              last = StatementInternal();
jjtn000.addElse(last);
              jj_consume_token(SEMICOLON);
              switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
              case ALIGN:
              case SELECT:
              case TRAVERSE:
              case MATCH:
              case INSERT:
              case CREATE:
              case DELETE:
              case UPDATE:
              case DEFINE:
              case RETURN:
              case LET:
              case CHECK:
              case PROFILE:
              case TRUNCATE:
              case BACKUP:
              case ALTER:
              case DROP:
              case REBUILD:
              case EXPORT:
              case IMPORT:
              case EXPLAIN:
              case BEGIN:
              case COMMIT:
              case ROLLBACK:
              case IF:
              case SLEEP:{
                ;
                break;
                }
              default:
                jj_la1[331] = jj_gen;
                break label_56;
              }
            }
            jj_consume_token(RBRACE);
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case AND:{
              jj_consume_token(AND);
              switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
              case CONTINUE:{
                jj_consume_token(CONTINUE);
jjtn000.elseFail = false;
                break;
                }
              case FAIL:{
                jj_consume_token(FAIL);
jjtn000.elseFail = true;
                break;
                }
              default:
                jj_la1[332] = jj_gen;
                jj_consume_token(-1);
                throw new ParseException();
              }
              break;
              }
            default:
              jj_la1[333] = jj_gen;
              ;
            }
            break;
            }
          case CONTINUE:
          case FAIL:{
            switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
            case CONTINUE:{
              jj_consume_token(CONTINUE);
jjtn000.elseFail = false;
              break;
              }
            case FAIL:{
              jj_consume_token(FAIL);
jjtn000.elseFail = true;
              break;
              }
            default:
              jj_la1[334] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
            break;
            }
          default:
            jj_la1[335] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          break;
          }
        default:
          jj_la1[336] = jj_gen;
          ;
        }
        break;
        }
      default:
        jj_la1[337] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public RollbackStatement RollbackStatement() throws ParseException {/*@bgen(jjtree) RollbackStatement */
  RollbackStatement jjtn000 = new RollbackStatement(JJTROLLBACKSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(ROLLBACK);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ReturnStatement ReturnStatement() throws ParseException {/*@bgen(jjtree) ReturnStatement */
  ReturnStatement jjtn000 = new ReturnStatement(JJTRETURNSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(RETURN);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case ALIGN:
      case CUSTOM:
      case TO:
      case VALUE:
      case VALUES:
      case SET:
      case ADD:
      case PUT:
      case MERGE:
      case CONTENT:
      case REMOVE:
      case NULL:
      case OFFSET:
      case RECORD:
      case CHECK:
      case NEAR:
      case WITH:
      case WITHIN:
      case MINDEPTH:
      case TYPE:
      case SUPERTYPE:
      case TYPES:
      case EXCEPTION:
      case PROFILE:
      case ON:
      case OFF:
      case TRUNCATE:
      case FIND:
      case EXTENDS:
      case BUCKETS:
      case BUCKETSELECTIONSTRATEGY:
      case ALTER:
      case NAME:
      case ADDBUCKET:
      case REMOVEBUCKET:
      case DROP:
      case PROPERTY:
      case FORCE:
      case SCHEMA:
      case INDEX:
      case ENGINE:
      case REBUILD:
      case FORMAT:
      case EXPORT:
      case IMPORT:
      case DATABASE:
      case OPTIMIZE:
      case LINK:
      case INVERSE:
      case EXPLAIN:
      case GRANT:
      case REVOKE:
      case READ:
      case EXECUTE:
      case ALL:
      case NONE:
      case FUNCTION:
      case PARAMETERS:
      case LANGUAGE:
      case BEGIN:
      case COMMIT:
      case ROLLBACK:
      case IF:
      case ELSE:
      case CONTINUE:
      case FAIL:
      case ISOLATION:
      case SLEEP:
      case CONSOLE:
      case START:
      case OPTIONAL:
      case COUNT:
      case DISTINCT:
      case EXISTS:
      case MOVE:
      case DEPTH_ALIAS:
      case PATH_ALIAS:
      case IDENTIFIED:
      case RID:
      case SYSTEM:
      case THIS:
      case RECORD_ATTRIBUTE:
      case RID_STRING:
      case INTEGER_LITERAL:
      case FLOATING_POINT_LITERAL:
      case CHARACTER_LITERAL:
      case STRING_LITERAL:
      case TRUE:
      case FALSE:
      case LPAREN:
      case LBRACE:
      case LBRACKET:
      case HOOK:
      case COLON:
      case MINUS:
      case STAR:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:
      case 250:{
        jjtn000.expression = Expression();
        break;
        }
      default:
        jj_la1[338] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public IfStatement IfStatement() throws ParseException {/*@bgen(jjtree) IfStatement */
  IfStatement jjtn000 = new IfStatement(JJTIFSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Statement last;
    try {
      jj_consume_token(IF);
      jj_consume_token(LPAREN);
      jjtn000.expression = OrBlock();
      jj_consume_token(RPAREN);
      jj_consume_token(LBRACE);
      label_57:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case SELECT:
        case TRAVERSE:
        case MATCH:
        case INSERT:
        case CREATE:
        case CUSTOM:
        case DELETE:
        case UPDATE:
        case TO:
        case WHILE:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case DEFINE:
        case OFFSET:
        case RETURN:
        case RECORD:
        case LET:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BACKUP:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case FOREACH:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case TRUE:
        case FALSE:
        case LPAREN:
        case LBRACE:
        case LBRACKET:
        case SEMICOLON:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:
        case 250:{
          ;
          break;
          }
        default:
          jj_la1[339] = jj_gen;
          break label_57;
        }
        if (jj_2_147(2147483647)) {
          last = StatementSemicolon();
jjtn000.statements.add(last);
        } else {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case IF:{
            last = IfStatement();
jjtn000.statements.add(last);
            break;
            }
          case WHILE:{
            last = WhileBlock();
jjtn000.statements.add(last);
            break;
            }
          case FOREACH:{
            last = ForEachBlock();
jjtn000.statements.add(last);
            break;
            }
          case SEMICOLON:{
            jj_consume_token(SEMICOLON);
            break;
            }
          default:
            jj_la1[340] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
      }
      jj_consume_token(RBRACE);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public SleepStatement SleepStatement() throws ParseException {/*@bgen(jjtree) SleepStatement */
  SleepStatement jjtn000 = new SleepStatement(JJTSLEEPSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(SLEEP);
      jjtn000.expression = Expression();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ConsoleStatement ConsoleStatement() throws ParseException {/*@bgen(jjtree) ConsoleStatement */
  ConsoleStatement jjtn000 = new ConsoleStatement(JJTCONSOLESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(CONSOLE);
      jj_consume_token(DOT);
      jjtn000.logLevel = Identifier();
      jjtn000.message = Expression();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ForEachBlock ForEachBlock() throws ParseException {/*@bgen(jjtree) ForEachBlock */
  ForEachBlock jjtn000 = new ForEachBlock(JJTFOREACHBLOCK);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Statement last;
    try {
      jj_consume_token(FOREACH);
      jj_consume_token(LPAREN);
      jjtn000.loopVariable = Identifier();
      jj_consume_token(IN);
      jjtn000.loopValues = Expression();
      jj_consume_token(RPAREN);
      jj_consume_token(LBRACE);
      label_58:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case SELECT:
        case TRAVERSE:
        case MATCH:
        case INSERT:
        case CREATE:
        case CUSTOM:
        case DELETE:
        case UPDATE:
        case TO:
        case WHILE:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case DEFINE:
        case OFFSET:
        case RETURN:
        case RECORD:
        case LET:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BACKUP:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case FOREACH:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case TRUE:
        case FALSE:
        case LPAREN:
        case LBRACE:
        case LBRACKET:
        case SEMICOLON:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:
        case 250:{
          ;
          break;
          }
        default:
          jj_la1[341] = jj_gen;
          break label_58;
        }
        if (jj_2_148(2147483647)) {
          last = StatementSemicolon();
jjtn000.statements.add(last);
        } else {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case IF:{
            last = IfStatement();
jjtn000.statements.add(last);
            break;
            }
          case FOREACH:{
            last = ForEachBlock();
jjtn000.statements.add(last);
            break;
            }
          case WHILE:{
            last = WhileBlock();
jjtn000.statements.add(last);
            break;
            }
          case SEMICOLON:{
            jj_consume_token(SEMICOLON);
            break;
            }
          default:
            jj_la1[342] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
      }
      jj_consume_token(RBRACE);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public WhileBlock WhileBlock() throws ParseException {/*@bgen(jjtree) WhileBlock */
  WhileBlock jjtn000 = new WhileBlock(JJTWHILEBLOCK);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Statement last;
    try {
      jj_consume_token(WHILE);
      jj_consume_token(LPAREN);
      jjtn000.condition = OrBlock();
      jj_consume_token(RPAREN);
      jj_consume_token(LBRACE);
      label_59:
      while (true) {
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case ALIGN:
        case SELECT:
        case TRAVERSE:
        case MATCH:
        case INSERT:
        case CREATE:
        case CUSTOM:
        case DELETE:
        case UPDATE:
        case TO:
        case WHILE:
        case VALUE:
        case VALUES:
        case SET:
        case ADD:
        case PUT:
        case MERGE:
        case CONTENT:
        case REMOVE:
        case NULL:
        case DEFINE:
        case OFFSET:
        case RETURN:
        case RECORD:
        case LET:
        case CHECK:
        case NEAR:
        case WITH:
        case WITHIN:
        case MINDEPTH:
        case TYPE:
        case SUPERTYPE:
        case TYPES:
        case EXCEPTION:
        case PROFILE:
        case ON:
        case OFF:
        case TRUNCATE:
        case FIND:
        case EXTENDS:
        case BACKUP:
        case BUCKETS:
        case BUCKETSELECTIONSTRATEGY:
        case ALTER:
        case NAME:
        case ADDBUCKET:
        case REMOVEBUCKET:
        case DROP:
        case PROPERTY:
        case FORCE:
        case SCHEMA:
        case INDEX:
        case ENGINE:
        case REBUILD:
        case FORMAT:
        case EXPORT:
        case IMPORT:
        case DATABASE:
        case OPTIMIZE:
        case LINK:
        case INVERSE:
        case EXPLAIN:
        case GRANT:
        case REVOKE:
        case READ:
        case EXECUTE:
        case ALL:
        case NONE:
        case FUNCTION:
        case PARAMETERS:
        case LANGUAGE:
        case BEGIN:
        case COMMIT:
        case ROLLBACK:
        case IF:
        case ELSE:
        case CONTINUE:
        case FAIL:
        case ISOLATION:
        case SLEEP:
        case CONSOLE:
        case START:
        case OPTIONAL:
        case COUNT:
        case DISTINCT:
        case EXISTS:
        case FOREACH:
        case MOVE:
        case DEPTH_ALIAS:
        case PATH_ALIAS:
        case IDENTIFIED:
        case RID:
        case SYSTEM:
        case THIS:
        case RECORD_ATTRIBUTE:
        case RID_STRING:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case TRUE:
        case FALSE:
        case LPAREN:
        case LBRACE:
        case LBRACKET:
        case SEMICOLON:
        case HOOK:
        case COLON:
        case MINUS:
        case STAR:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:
        case 250:{
          ;
          break;
          }
        default:
          jj_la1[343] = jj_gen;
          break label_59;
        }
        if (jj_2_149(2147483647)) {
          last = StatementSemicolon();
jjtn000.statements.add(last);
        } else {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case IF:{
            last = IfStatement();
jjtn000.statements.add(last);
            break;
            }
          case FOREACH:{
            last = ForEachBlock();
jjtn000.statements.add(last);
            break;
            }
          case WHILE:{
            last = WhileBlock();
jjtn000.statements.add(last);
            break;
            }
          case SEMICOLON:{
            jj_consume_token(SEMICOLON);
            break;
            }
          default:
            jj_la1[344] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
        }
      }
      jj_consume_token(RBRACE);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ImportDatabaseStatement ImportDatabaseStatement() throws ParseException {/*@bgen(jjtree) ImportDatabaseStatement */
  ImportDatabaseStatement jjtn000 = new ImportDatabaseStatement(JJTIMPORTDATABASESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(IMPORT);
      jj_consume_token(DATABASE);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case HTTP_URL:
      case HTTPS_URL:
      case FILE_URL:
      case CLASSPATH_URL:{
        jjtn000.url = Url();
        break;
        }
      default:
        jj_la1[345] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WITH:{
        jj_consume_token(WITH);
        jjtn000.key = Expression();
        jj_consume_token(EQ);
        jjtn000.value = Expression();
jjtn000.settings.put( jjtn000.key, jjtn000.value );
        label_60:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[346] = jj_gen;
            break label_60;
          }
          jj_consume_token(COMMA);
          jjtn000.key = Expression();
          jj_consume_token(EQ);
          jjtn000.value = Expression();
jjtn000.settings.put( jjtn000.key, jjtn000.value );
        }
        break;
        }
      default:
        jj_la1[347] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public ExportDatabaseStatement ExportDatabaseStatement() throws ParseException {/*@bgen(jjtree) ExportDatabaseStatement */
  ExportDatabaseStatement jjtn000 = new ExportDatabaseStatement(JJTEXPORTDATABASESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(EXPORT);
      jj_consume_token(DATABASE);
      jjtn000.url = Url();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case FORMAT:{
        jj_consume_token(FORMAT);
        jjtn000.format = Identifier();
        break;
        }
      default:
        jj_la1[348] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case OVERWRITE:{
        jj_consume_token(OVERWRITE);
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case TRUE:{
          jj_consume_token(TRUE);
jjtn000.overwrite = BooleanExpression.TRUE;
          break;
          }
        case FALSE:{
          jj_consume_token(FALSE);
jjtn000.overwrite = BooleanExpression.FALSE;
          break;
          }
        default:
          jj_la1[349] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      default:
        jj_la1[350] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WITH:{
        jj_consume_token(WITH);
        jjtn000.key = Expression();
        jj_consume_token(EQ);
        jjtn000.value = Expression();
jjtn000.settings.put( jjtn000.key, jjtn000.value );
        label_61:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[351] = jj_gen;
            break label_61;
          }
          jj_consume_token(COMMA);
          jjtn000.key = Expression();
          jj_consume_token(EQ);
          jjtn000.value = Expression();
jjtn000.settings.put( jjtn000.key, jjtn000.value );
        }
        break;
        }
      default:
        jj_la1[352] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public Url Url() throws ParseException {/*@bgen(jjtree) Url */
 Url jjtn000 = new Url(JJTURL);
 boolean jjtc000 = true;
 jjtree.openNodeScope(jjtn000);
 jjtn000.jjtSetFirstToken(getToken(1));Token token;
    try {
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case HTTP_URL:{
        token = jj_consume_token(HTTP_URL);
jjtn000.urlString = token.image;
        break;
        }
      case HTTPS_URL:{
        token = jj_consume_token(HTTPS_URL);
jjtn000.urlString = token.image;
        break;
        }
      case FILE_URL:{
        token = jj_consume_token(FILE_URL);
jjtn000.urlString = token.image;
        break;
        }
      case CLASSPATH_URL:{
        token = jj_consume_token(CLASSPATH_URL);
jjtn000.urlString = token.image;
        break;
        }
      default:
        jj_la1[353] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public BackupDatabaseStatement BackupDatabaseStatement() throws ParseException {/*@bgen(jjtree) BackupDatabaseStatement */
  BackupDatabaseStatement jjtn000 = new BackupDatabaseStatement(JJTBACKUPDATABASESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));
    try {
      jj_consume_token(BACKUP);
      jj_consume_token(DATABASE);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case HTTP_URL:
      case HTTPS_URL:
      case FILE_URL:
      case CLASSPATH_URL:{
        jjtn000.url = Url();
        break;
        }
      default:
        jj_la1[354] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public CheckDatabaseStatement CheckDatabaseStatement() throws ParseException {/*@bgen(jjtree) CheckDatabaseStatement */
  CheckDatabaseStatement jjtn000 = new CheckDatabaseStatement(JJTCHECKDATABASESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Identifier lastType;
  BucketIdentifier lastBucket;
    try {
      jj_consume_token(CHECK);
      jj_consume_token(DATABASE);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case TYPE:{
        jj_consume_token(TYPE);
        lastType = Identifier();
jjtn000.types.add(lastType);
        label_62:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[355] = jj_gen;
            break label_62;
          }
          jj_consume_token(COMMA);
          lastType = Identifier();
jjtn000.types.add(lastType);
        }
        break;
        }
      default:
        jj_la1[356] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKET:{
        jj_consume_token(BUCKET);
        lastBucket = BucketIdentifier();
jjtn000.buckets.add(lastBucket);
        label_63:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[357] = jj_gen;
            break label_63;
          }
          jj_consume_token(COMMA);
          lastBucket = BucketIdentifier();
jjtn000.buckets.add(lastBucket);
        }
        break;
        }
      default:
        jj_la1[358] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case FIX:{
        jj_consume_token(FIX);
jjtn000.fix = true;
        break;
        }
      default:
        jj_la1[359] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public AlignDatabaseStatement AlignDatabaseStatement() throws ParseException {/*@bgen(jjtree) AlignDatabaseStatement */
  AlignDatabaseStatement jjtn000 = new AlignDatabaseStatement(JJTALIGNDATABASESTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));BucketIdentifier lastBucket;
  String lastType;
    try {
      jj_consume_token(ALIGN);
      jj_consume_token(DATABASE);
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } finally {
if (jjtc000) {
      jjtree.closeNodeScope(jjtn000, true);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DefineFunctionStatement DefineFunctionStatement() throws ParseException {/*@bgen(jjtree) DefineFunctionStatement */
  DefineFunctionStatement jjtn000 = new DefineFunctionStatement(JJTDEFINEFUNCTIONSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Token token;
  Identifier lastIdentifier;
    try {
      jj_consume_token(DEFINE);
      jj_consume_token(FUNCTION);
      jjtn000.libraryName = Identifier();
      jj_consume_token(DOT);
      jjtn000.functionName = Identifier();
      jjtn000.codeQuoted = PString();
jjtn000.code = jjtn000.codeQuoted.substring(1, jjtn000.codeQuoted.length() -1);
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case PARAMETERS:{
        jj_consume_token(PARAMETERS);
        jj_consume_token(LBRACKET);
        lastIdentifier = Identifier();
jjtn000.parameters = new ArrayList();
        jjtn000.parameters.add(lastIdentifier);
        label_64:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[360] = jj_gen;
            break label_64;
          }
          jj_consume_token(COMMA);
          lastIdentifier = Identifier();
jjtn000.parameters.add(lastIdentifier);
        }
        jj_consume_token(RBRACKET);
        break;
        }
      default:
        jj_la1[361] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LANGUAGE:{
        jj_consume_token(LANGUAGE);
        jjtn000.language = Identifier();
        break;
        }
      default:
        jj_la1[362] = jj_gen;
        ;
      }
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  final public DeleteFunctionStatement DeleteFunctionStatement() throws ParseException {/*@bgen(jjtree) DeleteFunctionStatement */
  DeleteFunctionStatement jjtn000 = new DeleteFunctionStatement(JJTDELETEFUNCTIONSTATEMENT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));Token token;
  Identifier lastIdentifier;
    try {
      jj_consume_token(DELETE);
      jj_consume_token(FUNCTION);
      jjtn000.libraryName = Identifier();
      jj_consume_token(DOT);
      jjtn000.functionName = Identifier();
jjtree.closeNodeScope(jjtn000, true);
    jjtc000 = false;
    jjtn000.jjtSetLastToken(getToken(0));
{if ("" != null) return jjtn000;}
    } 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);
      jjtn000.jjtSetLastToken(getToken(0));
    }
    }
    throw new Error("Missing return statement in function");
}

  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_3R_InsertStatement_1529_5_570()
 {
    if (jj_scan_token(RETURN)) return true;
    if (jj_3R_Projection_1758_3_418()) return true;
    return false;
  }

  private boolean jj_3R_TraverseProjectionItem_3065_3_694()
 {
    if (jj_3R_BaseIdentifier_1989_3_481()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TraverseProjectionItem_3067_7_838()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_InsertStatement_1528_5_569()
 {
    if (jj_3R_InsertBody_1565_3_136()) return true;
    return false;
  }

  private boolean jj_3R_UpdateRemoveItem_1498_33_751()
 {
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1526_5_568()
 {
    if (jj_3R_Bucket_2320_3_141()) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1524_5_567()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1524_40_691()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_PCollection_3053_9_460()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_PCollection_3051_7_323()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_PCollection_3053_9_460()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_InsertStatement_1521_1_270()
 {
    if (jj_scan_token(INSERT)) return true;
    if (jj_scan_token(INTO)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1524_5_567()) {
    jj_scanpos = xsp;
    if (jj_3R_InsertStatement_1526_5_568()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1528_5_569()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1529_5_570()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1531_5_571()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1554_5_572()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_PCollection_3047_3_146()
 {
    if (jj_scan_token(LBRACKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_PCollection_3051_7_323()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_UpdatePutItem_1505_3_652()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_UpdateRemoveItem_1498_3_660()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateRemoveItem_1498_33_751()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_Retry_3032_3_420()
 {
    if (jj_scan_token(RETRY)) return true;
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_UpdateIncrementItem_1489_5_750()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_Wait_3024_3_421()
 {
    if (jj_scan_token(WAIT)) return true;
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_UpdateIncrementItem_1488_3_658()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateIncrementItem_1489_5_750()) jj_scanpos = xsp;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1396_93_431()
 {
    if (jj_scan_token(COUNT)) return true;
    return false;
  }

  private boolean jj_3R_Timeout_3016_5_663()
 {
    if (jj_scan_token(EXCEPTION)) return true;
    return false;
  }

  private boolean jj_3R_UpdateItem_1479_5_749()
 {
    if (jj_scan_token(SLASHASSIGN)) return true;
    return false;
  }

  private boolean jj_3R_Timeout_3014_5_662()
 {
    if (jj_scan_token(RETURN)) return true;
    return false;
  }

  private boolean jj_3R_Timeout_3014_5_537()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Timeout_3014_5_662()) {
    jj_scanpos = xsp;
    if (jj_3R_Timeout_3016_5_663()) return true;
    }
    return false;
  }

  private boolean jj_3R_UpdateItem_1477_5_748()
 {
    if (jj_scan_token(STARASSIGN)) return true;
    return false;
  }

  private boolean jj_3R_UpdateItem_1475_5_747()
 {
    if (jj_scan_token(MINUSASSIGN)) return true;
    return false;
  }

  private boolean jj_3R_Timeout_3011_3_428()
 {
    if (jj_scan_token(TIMEOUT)) return true;
    if (jj_3R_PInteger_907_3_65()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Timeout_3014_5_537()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_UpdateItem_1473_5_746()
 {
    if (jj_scan_token(PLUSASSIGN)) return true;
    return false;
  }

  private boolean jj_3R_Skip_3002_9_767()
 {
    if (jj_3R_InputParameter_1710_3_144()) return true;
    return false;
  }

  private boolean jj_3R_UpdateItem_1471_5_745()
 {
    if (jj_scan_token(EQ)) return true;
    return false;
  }

  private boolean jj_3R_Skip_3000_9_766()
 {
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_UpdateItem_1469_5_744()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_UpdateItem_1468_3_650()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateItem_1469_5_744()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateItem_1471_5_745()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateItem_1473_5_746()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateItem_1475_5_747()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateItem_1477_5_748()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateItem_1479_5_749()) return true;
    }
    }
    }
    }
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_Skip_2993_9_765()
 {
    if (jj_3R_InputParameter_1710_3_144()) return true;
    return false;
  }

  private boolean jj_3R_Skip_2997_5_677()
 {
    if (jj_scan_token(OFFSET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Skip_3000_9_766()) {
    jj_scanpos = xsp;
    if (jj_3R_Skip_3002_9_767()) return true;
    }
    return false;
  }

  private boolean jj_3R_UpdateOperations_1457_9_661()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_UpdateRemoveItem_1498_3_660()) return true;
    return false;
  }

  private boolean jj_3R_Skip_2991_9_764()
 {
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2942_57_813()
 {
    if (jj_scan_token(ASC)) return true;
    return false;
  }

  private boolean jj_3R_UpdateOperations_1453_6_534()
 {
    if (jj_scan_token(REMOVE)) return true;
    if (jj_3R_UpdateRemoveItem_1498_3_660()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_UpdateOperations_1457_9_661()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_Skip_2988_5_676()
 {
    if (jj_scan_token(SKIP2)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Skip_2991_9_764()) {
    jj_scanpos = xsp;
    if (jj_3R_Skip_2993_9_765()) return true;
    }
    return false;
  }

  private boolean jj_3R_UpdateOperations_1449_9_659()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_UpdateIncrementItem_1488_3_658()) return true;
    return false;
  }

  private boolean jj_3R_Skip_2987_3_551()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Skip_2988_5_676()) {
    jj_scanpos = xsp;
    if (jj_3R_Skip_2997_5_677()) return true;
    }
    return false;
  }

  private boolean jj_3R_UpdateOperations_1445_9_657()
 {
    if (jj_scan_token(ADD)) return true;
    return false;
  }

  private boolean jj_3R_UpdateOperations_1443_9_656()
 {
    if (jj_scan_token(INCREMENT)) return true;
    return false;
  }

  private boolean jj_3R_Limit_2979_5_536()
 {
    if (jj_3R_InputParameter_1710_3_144()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2925_57_810()
 {
    if (jj_scan_token(ASC)) return true;
    return false;
  }

  private boolean jj_3R_Limit_2977_5_535()
 {
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1396_51_430()
 {
    if (jj_scan_token(AFTER)) return true;
    return false;
  }

  private boolean jj_3R_UpdateOperations_1441_5_533()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateOperations_1443_9_656()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateOperations_1445_9_657()) return true;
    }
    if (jj_3R_UpdateIncrementItem_1488_3_658()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_UpdateOperations_1449_9_659()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_UpdateOperations_1436_9_655()
 {
    if (jj_scan_token(CONTENT)) return true;
    return false;
  }

  private boolean jj_3R_UpdateOperations_1434_9_654()
 {
    if (jj_scan_token(MERGE)) return true;
    return false;
  }

  private boolean jj_3R_Limit_2975_3_427()
 {
    if (jj_scan_token(LIMIT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Limit_2977_5_535()) {
    jj_scanpos = xsp;
    if (jj_3R_Limit_2979_5_536()) return true;
    }
    return false;
  }

  private boolean jj_3R_UpdateOperations_1428_9_653()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_UpdatePutItem_1505_3_652()) return true;
    return false;
  }

  private boolean jj_3R_UpdateOperations_1432_5_532()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateOperations_1434_9_654()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateOperations_1436_9_655()) return true;
    }
    if (jj_3R_Json_3078_3_210()) return true;
    return false;
  }

  private boolean jj_3R_Unwind_2966_5_550()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_Unwind_2964_3_446()
 {
    if (jj_scan_token(UNWIND)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_Unwind_2966_5_550()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_UpdateOperations_1420_9_651()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_UpdateItem_1468_3_650()) return true;
    return false;
  }

  private boolean jj_3R_UpdateOperations_1424_5_531()
 {
    if (jj_scan_token(PUT)) return true;
    if (jj_3R_UpdatePutItem_1505_3_652()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_UpdateOperations_1428_9_653()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_OrderBy_2905_55_757()
 {
    if (jj_scan_token(ASC)) return true;
    return false;
  }

  private boolean jj_3R_GroupBy_2955_5_546()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1374_51_425()
 {
    if (jj_scan_token(AFTER)) return true;
    return false;
  }

  private boolean jj_3R_UpdateOperations_1416_5_530()
 {
    if (jj_scan_token(SET)) return true;
    if (jj_3R_UpdateItem_1468_3_650()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_UpdateOperations_1420_9_651()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_GroupBy_2953_3_444()
 {
    if (jj_scan_token(GROUP_BY)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_GroupBy_2955_5_546()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_OrderBy_2942_11_812()
 {
    if (jj_scan_token(DESC)) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2942_11_763()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2942_11_812()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2942_57_813()) return true;
    }
    return false;
  }

  private boolean jj_3R_UpdateOperations_1415_3_423()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateOperations_1416_5_530()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateOperations_1424_5_531()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateOperations_1432_5_532()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateOperations_1441_5_533()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateOperations_1453_6_534()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_OrderBy_2937_15_811()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2940_11_762()
 {
    if (jj_scan_token(RECORD_ATTRIBUTE)) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2935_11_761()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2937_15_811()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_OrderBy_2888_55_754()
 {
    if (jj_scan_token(ASC)) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1403_5_246()
 {
    if (jj_3R_Timeout_3011_3_428()) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1402_5_245()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1401_5_244()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2378_3_157()) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1398_7_432()
 {
    if (jj_3R_Projection_1758_3_418()) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1396_7_429()
 {
    if (jj_scan_token(BEFORE)) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2925_11_809()
 {
    if (jj_scan_token(DESC)) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2925_11_760()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2925_11_809()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2925_57_810()) return true;
    }
    return false;
  }

  private boolean jj_3R_OrderBy_2920_15_808()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2928_7_675()
 {
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2935_11_761()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2940_11_762()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2942_11_763()) jj_scanpos = xsp;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1395_5_243()
 {
    if (jj_scan_token(RETURN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1396_7_429()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateStatement_1396_51_430()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateStatement_1396_93_431()) return true;
    }
    }
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1398_7_432()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_OrderBy_2923_11_759()
 {
    if (jj_scan_token(RECORD_ATTRIBUTE)) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1393_5_242()
 {
    if (jj_scan_token(UPSERT)) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1392_5_241()
 {
    if (jj_3R_UpdateOperations_1415_3_423()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2918_11_758()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2920_15_808()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1390_3_83()
 {
    if (jj_scan_token(UPDATE)) return true;
    if (jj_3R_FromClause_2215_3_234()) return true;
    Token xsp;
    if (jj_3R_UpdateStatement_1392_5_241()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_UpdateStatement_1392_5_241()) { jj_scanpos = xsp; break; }
    }
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1393_5_242()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1395_5_243()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1401_5_244()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1402_5_245()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1403_5_246()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1381_5_240()
 {
    if (jj_3R_Timeout_3011_3_428()) return true;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1380_5_239()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2912_7_674()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2918_11_758()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2923_11_759()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2925_11_760()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1379_5_238()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2378_3_157()) return true;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1376_7_426()
 {
    if (jj_3R_Projection_1758_3_418()) return true;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1374_7_424()
 {
    if (jj_scan_token(BEFORE)) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2910_5_549()
 {
    if (jj_scan_token(COMMA)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2912_7_674()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2928_7_675()) return true;
    }
    return false;
  }

  private boolean jj_3R_OrderBy_2905_9_756()
 {
    if (jj_scan_token(DESC)) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2905_9_673()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2905_9_756()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2905_55_757()) return true;
    }
    return false;
  }

  private boolean jj_3R_OrderBy_2900_13_755()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1373_5_237()
 {
    if (jj_scan_token(RETURN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1374_7_424()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateEdgeStatement_1374_51_425()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1376_7_426()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_OrderBy_2903_9_672()
 {
    if (jj_scan_token(RECORD_ATTRIBUTE)) return true;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1371_5_236()
 {
    if (jj_scan_token(UPSERT)) return true;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1370_5_235()
 {
    if (jj_3R_UpdateOperations_1415_3_423()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2898_9_671()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2900_13_755()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1368_3_82()
 {
    if (jj_scan_token(UPDATE)) return true;
    if (jj_scan_token(EDGE)) return true;
    if (jj_3R_FromClause_2215_3_234()) return true;
    Token xsp;
    if (jj_3R_UpdateEdgeStatement_1370_5_235()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_UpdateEdgeStatement_1370_5_235()) { jj_scanpos = xsp; break; }
    }
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1371_5_236()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1373_5_237()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1379_5_238()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1380_5_239()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1381_5_240()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_DeleteEdgeWhereStatement_1360_5_309()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeWhereStatement_1359_5_308()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2378_3_157()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeWhereStatement_1358_5_307()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2888_9_753()
 {
    if (jj_scan_token(DESC)) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2888_9_670()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2888_9_753()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2888_55_754()) return true;
    }
    return false;
  }

  private boolean jj_3R_OrderBy_2883_13_752()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2891_5_548()
 {
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2898_9_671()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2903_9_672()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2905_9_673()) jj_scanpos = xsp;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2886_9_669()
 {
    if (jj_scan_token(RECORD_ATTRIBUTE)) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeWhereStatement_1357_3_135()
 {
    if (jj_scan_token(DELETE)) return true;
    if (jj_scan_token(EDGE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeWhereStatement_1358_5_307()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeWhereStatement_1359_5_308()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeWhereStatement_1360_5_309()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_OrderBy_2881_9_668()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2883_13_752()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_DeleteEdgeVToStatement_1348_5_304()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeVToStatement_1347_5_303()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2378_3_157()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeVToStatement_1345_3_133()
 {
    if (jj_scan_token(DELETE)) return true;
    if (jj_scan_token(EDGE)) return true;
    if (jj_scan_token(TO)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeVToStatement_1347_5_303()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeVToStatement_1348_5_304()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_OrderBy_2875_5_547()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2881_9_668()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2886_9_669()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2888_9_670()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_DeleteEdgeToStatement_1336_5_306()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeToStatement_1335_5_305()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2378_3_157()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2872_1_445()
 {
    if (jj_scan_token(ORDER_BY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2875_5_547()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2891_5_548()) return true;
    }
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_OrderBy_2910_5_549()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_DeleteEdgeToStatement_1331_3_134()
 {
    if (jj_scan_token(DELETE)) return true;
    if (jj_scan_token(EDGE)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(TO)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeToStatement_1335_5_305()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeToStatement_1336_5_306()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3_128()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeFromToStatement_1322_5_302()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    return false;
  }

  private boolean jj_3R_MatchesCondition_2857_5_392()
 {
    if (jj_3R_InputParameter_1710_3_144()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeFromToStatement_1321_5_301()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2378_3_157()) return true;
    return false;
  }

  private boolean jj_3R_MatchesCondition_2855_5_391()
 {
    if (jj_scan_token(CHARACTER_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeFromToStatement_1318_5_300()
 {
    if (jj_scan_token(TO)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_MatchesCondition_2853_5_390()
 {
    if (jj_3R_PString_712_3_247()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeFromToStatement_1315_5_299()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_MatchesCondition_2850_5_389()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeFromToStatement_1314_3_132()
 {
    if (jj_scan_token(DELETE)) return true;
    if (jj_scan_token(EDGE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeFromToStatement_1315_5_299()) jj_scanpos = xsp;
    if (jj_scan_token(FROM)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeFromToStatement_1318_5_300()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeFromToStatement_1321_5_301()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeFromToStatement_1322_5_302()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MatchesCondition_2848_3_190()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(MATCHES)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchesCondition_2850_5_389()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchesCondition_2853_5_390()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchesCondition_2855_5_391()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchesCondition_2857_5_392()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3_127()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeByRidStatement_1300_11_555()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Rid_624_3_143()) return true;
    return false;
  }

  private boolean jj_3R_ContainsTextCondition_2841_3_189()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(CONTAINSTEXT)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeByRidStatement_1294_9_449()
 {
    if (jj_3R_Rid_624_3_143()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_DeleteEdgeByRidStatement_1300_11_555()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_ContainsAnyCondition_2832_5_388()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3_126()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_OrBlock_2385_3_152()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

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

  private boolean jj_3R_DeleteEdgeByRidStatement_1291_5_298()
 {
    if (jj_scan_token(LBRACKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeByRidStatement_1294_9_449()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeByRidStatement_1289_5_297()
 {
    if (jj_3R_Rid_624_3_143()) return true;
    return false;
  }

  private boolean jj_3R_ContainsAnyCondition_2826_3_188()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(CONTAINSANY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_126()) {
    jj_scanpos = xsp;
    if (jj_3R_ContainsAnyCondition_2832_5_388()) return true;
    }
    return false;
  }

  private boolean jj_3_44()
 {
    if (jj_3R_DeleteEdgeWhereStatement_1357_3_135()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeByRidStatement_1287_3_131()
 {
    if (jj_scan_token(DELETE)) return true;
    if (jj_scan_token(EDGE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeByRidStatement_1289_5_297()) {
    jj_scanpos = xsp;
    if (jj_3R_DeleteEdgeByRidStatement_1291_5_298()) return true;
    }
    return false;
  }

  private boolean jj_3_43()
 {
    if (jj_3R_DeleteEdgeToStatement_1331_3_134()) return true;
    return false;
  }

  private boolean jj_3R_ContainsAllCondition_2817_5_387()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3_42()
 {
    if (jj_3R_DeleteEdgeVToStatement_1345_3_133()) return true;
    return false;
  }

  private boolean jj_3_124()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_OrBlock_2385_3_152()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3_41()
 {
    if (jj_3R_DeleteEdgeFromToStatement_1314_3_132()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeStatement_1276_5_223()
 {
    if (jj_3R_DeleteEdgeWhereStatement_1357_3_135()) return true;
    return false;
  }

  private boolean jj_3_40()
 {
    if (jj_3R_DeleteEdgeByRidStatement_1287_3_131()) return true;
    return false;
  }

  private boolean jj_3R_ContainsAllCondition_2811_3_187()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(CONTAINSALL)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_124()) {
    jj_scanpos = xsp;
    if (jj_3R_ContainsAllCondition_2817_5_387()) return true;
    }
    return false;
  }

  private boolean jj_3R_DeleteEdgeStatement_1273_5_222()
 {
    if (jj_3R_DeleteEdgeToStatement_1331_3_134()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeStatement_1270_5_221()
 {
    if (jj_3R_DeleteEdgeVToStatement_1345_3_133()) return true;
    return false;
  }

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

  private boolean jj_3R_NotInCondition_2803_5_382()
 {
    if (jj_3R_MathExpression_2107_3_158()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeStatement_1267_5_220()
 {
    if (jj_3R_DeleteEdgeFromToStatement_1314_3_132()) return true;
    return false;
  }

  private boolean jj_3_123()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_InputParameter_1710_3_144()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeStatement_1264_5_219()
 {
    if (jj_3R_DeleteEdgeByRidStatement_1287_3_131()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeStatement_1263_3_70()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeStatement_1264_5_219()) {
    jj_scanpos = xsp;
    if (jj_3R_DeleteEdgeStatement_1267_5_220()) {
    jj_scanpos = xsp;
    if (jj_3R_DeleteEdgeStatement_1270_5_221()) {
    jj_scanpos = xsp;
    if (jj_3R_DeleteEdgeStatement_1273_5_222()) {
    jj_scanpos = xsp;
    if (jj_3R_DeleteEdgeStatement_1276_5_223()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_NotInCondition_2795_5_196()
 {
    if (jj_3R_SelectWithoutTargetStatement_1121_3_311()) return true;
    return false;
  }

  private boolean jj_3R_NotInCondition_2793_5_195()
 {
    if (jj_3R_SelectStatement_1142_3_129()) return true;
    return false;
  }

  private boolean jj_3R_DeleteStatement_1256_5_600()
 {
    if (jj_scan_token(UNSAFE)) return true;
    return false;
  }

  private boolean jj_3R_DeleteStatement_1255_5_599()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    return false;
  }

  private boolean jj_3_122()
 {
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NotInCondition_2793_5_195()) {
    jj_scanpos = xsp;
    if (jj_3R_NotInCondition_2795_5_196()) return true;
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_DeleteStatement_1254_5_598()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2378_3_157()) return true;
    return false;
  }

  private boolean jj_3R_DeleteStatement_1253_5_597()
 {
    if (jj_scan_token(RETURN)) return true;
    if (jj_scan_token(BEFORE)) return true;
    return false;
  }

  private boolean jj_3R_NotInCondition_2788_3_182()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(NOT)) return true;
    if (jj_3R_InOperator_2753_3_380()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_122()) {
    jj_scanpos = xsp;
    if (jj_3_123()) {
    jj_scanpos = xsp;
    if (jj_3R_NotInCondition_2803_5_382()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_DeleteStatement_1250_3_69()
 {
    if (jj_scan_token(DELETE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(21)) jj_scanpos = xsp;
    if (jj_scan_token(FROM)) return true;
    if (jj_3R_FromClause_2215_3_234()) return true;
    xsp = jj_scanpos;
    if (jj_3R_DeleteStatement_1253_5_597()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteStatement_1254_5_598()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteStatement_1255_5_599()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteStatement_1256_5_600()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_MatchStatement_1243_7_786()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1242_7_785()
 {
    if (jj_3R_Skip_2987_3_551()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1241_7_784()
 {
    if (jj_3R_Unwind_2964_3_446()) return true;
    return false;
  }

  private boolean jj_3R_InCondition_2778_5_381()
 {
    if (jj_3R_MathExpression_2107_3_158()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1240_7_783()
 {
    if (jj_3R_OrderBy_2872_1_445()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1239_7_782()
 {
    if (jj_3R_GroupBy_2953_3_444()) return true;
    return false;
  }

  private boolean jj_3_120()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_InputParameter_1710_3_144()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_InCondition_2770_8_194()
 {
    if (jj_3R_SelectWithoutTargetStatement_1121_3_311()) return true;
    return false;
  }

  private boolean jj_3R_InCondition_2768_8_193()
 {
    if (jj_3R_SelectStatement_1142_3_129()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1231_9_823()
 {
    if (jj_scan_token(AS)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1230_9_822()
 {
    if (jj_3R_NestedProjection_1788_3_455()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1228_7_781()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1230_9_822()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1231_9_823()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3_119()
 {
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InCondition_2768_8_193()) {
    jj_scanpos = xsp;
    if (jj_3R_InCondition_2770_8_194()) return true;
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3_39()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_DeleteFunctionStatement_4299_3_85()
 {
    if (jj_scan_token(DELETE)) return true;
    if (jj_scan_token(FUNCTION)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_InCondition_2762_3_181()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_3R_InOperator_2753_3_380()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_119()) {
    jj_scanpos = xsp;
    if (jj_3_120()) {
    jj_scanpos = xsp;
    if (jj_3R_InCondition_2778_5_381()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_MatchStatement_1218_9_821()
 {
    if (jj_3R_NestedProjection_1788_3_455()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1220_7_780()
 {
    if (jj_scan_token(AS)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

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

  private boolean jj_3R_MatchStatement_1214_9_820()
 {
    if (jj_3R_NestedProjection_1788_3_455()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1216_7_779()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1218_9_821()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_DefineFunctionStatement_4286_7_249()
 {
    if (jj_scan_token(LANGUAGE)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_InOperator_2753_3_380()
 {
    if (jj_scan_token(IN)) return true;
    return false;
  }

  private boolean jj_3R_DefineFunctionStatement_4280_9_433()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3_38()
 {
    if (jj_scan_token(DISTINCT)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1214_9_820()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_ContainsCondition_2744_5_384()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1202_10_818()
 {
    if (jj_3R_MatchExpression_3119_3_578()) return true;
    return false;
  }

  private boolean jj_3_116()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_OrBlock_2385_3_152()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_DefineFunctionStatement_4273_7_248()
 {
    if (jj_scan_token(PARAMETERS)) return true;
    if (jj_scan_token(LBRACKET)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_DefineFunctionStatement_4280_9_433()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1200_7_778()
 {
    if (jj_scan_token(COMMA)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1202_10_818()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchStatement_1204_10_819()) return true;
    }
    return false;
  }

  private boolean jj_3R_ContainsCondition_2739_3_185()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(CONTAINS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_116()) {
    jj_scanpos = xsp;
    if (jj_3R_ContainsCondition_2744_5_384()) return true;
    }
    return false;
  }

  private boolean jj_3R_IsNotDefinedCondition_2732_3_179()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(IS)) return true;
    if (jj_scan_token(NOT)) return true;
    if (jj_scan_token(DEFINED)) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1196_3_488()
 {
    if (jj_scan_token(MATCH)) return true;
    if (jj_3R_MatchExpression_3119_3_578()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MatchStatement_1200_7_778()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RETURN)) return true;
    xsp = jj_scanpos;
    if (jj_3_38()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchStatement_1216_7_779()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1220_7_780()) jj_scanpos = xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MatchStatement_1228_7_781()) { jj_scanpos = xsp; break; }
    }
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1239_7_782()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1240_7_783()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1241_7_784()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1242_7_785()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1243_7_786()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_DefineFunctionStatement_4263_3_84()
 {
    if (jj_scan_token(DEFINE)) return true;
    if (jj_scan_token(FUNCTION)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_3R_PString_712_3_247()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DefineFunctionStatement_4273_7_248()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DefineFunctionStatement_4286_7_249()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_IsDefinedCondition_2725_3_180()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(IS)) return true;
    if (jj_scan_token(DEFINED)) return true;
    return false;
  }

  private boolean jj_3R_ExportDatabaseStatement_4184_75_737()
 {
    if (jj_scan_token(FALSE)) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1155_33_553()
 {
    if (jj_3R_Skip_2987_3_551()) return true;
    return false;
  }

  private boolean jj_3R_TraverseStatement_1182_5_816()
 {
    if (jj_scan_token(BREADTH_FIRST)) return true;
    return false;
  }

  private boolean jj_3R_IsNotNullCondition_2718_3_177()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(IS)) return true;
    if (jj_scan_token(NOT)) return true;
    if (jj_scan_token(NULL)) return true;
    return false;
  }

  private boolean jj_3R_TraverseStatement_1180_5_815()
 {
    if (jj_scan_token(DEPTH_FIRST)) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1153_31_552()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    return false;
  }

  private boolean jj_3R_AlignDatabaseStatement_4251_3_282()
 {
    if (jj_scan_token(ALIGN)) return true;
    if (jj_scan_token(DATABASE)) return true;
    return false;
  }

  private boolean jj_3R_TraverseStatement_1178_5_777()
 {
    if (jj_scan_token(STRATEGY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TraverseStatement_1180_5_815()) {
    jj_scanpos = xsp;
    if (jj_3R_TraverseStatement_1182_5_816()) return true;
    }
    return false;
  }

  private boolean jj_3R_TraverseStatement_1177_5_776()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    return false;
  }

  private boolean jj_3R_TraverseStatement_1176_5_775()
 {
    if (jj_scan_token(WHILE)) return true;
    if (jj_3R_WhereClause_2378_3_157()) return true;
    return false;
  }

  private boolean jj_3R_TraverseStatement_1175_5_774()
 {
    if (jj_scan_token(MAXDEPTH)) return true;
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_IsNullCondition_2711_3_178()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(IS)) return true;
    if (jj_scan_token(NULL)) return true;
    return false;
  }

  private boolean jj_3R_TraverseStatement_1171_7_814()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_TraverseProjectionItem_3065_3_694()) return true;
    return false;
  }

  private boolean jj_3R_CheckDatabaseStatement_4240_7_638()
 {
    if (jj_scan_token(FIX)) return true;
    return false;
  }

  private boolean jj_3R_CheckDatabaseStatement_4236_9_740()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_BucketIdentifier_654_3_714()) return true;
    return false;
  }

  private boolean jj_3R_TraverseStatement_1170_5_577()
 {
    if (jj_3R_TraverseProjectionItem_3065_3_694()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_TraverseStatement_1171_7_814()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_BackupDatabaseStatement_4217_27_635()
 {
    if (jj_3R_Url_4201_3_631()) return true;
    return false;
  }

  private boolean jj_3R_CheckDatabaseStatement_4232_9_739()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_CheckDatabaseStatement_4234_7_637()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_BucketIdentifier_654_3_714()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CheckDatabaseStatement_4236_9_740()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_TraverseStatement_1168_3_487()
 {
    if (jj_scan_token(TRAVERSE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TraverseStatement_1170_5_577()) jj_scanpos = xsp;
    if (jj_scan_token(FROM)) return true;
    if (jj_3R_FromClause_2215_3_234()) return true;
    xsp = jj_scanpos;
    if (jj_3R_TraverseStatement_1175_5_774()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_TraverseStatement_1176_5_775()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_TraverseStatement_1177_5_776()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_TraverseStatement_1178_5_777()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_BetweenCondition_2702_3_184()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(BETWEEN)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(AND)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_CheckDatabaseStatement_4230_7_636()
 {
    if (jj_scan_token(TYPE)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CheckDatabaseStatement_4232_9_739()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_SelectStatement_1157_7_290()
 {
    if (jj_3R_Timeout_3011_3_428()) return true;
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1129_33_825()
 {
    if (jj_3R_Skip_2987_3_551()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1155_7_448()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1155_33_553()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CheckDatabaseStatement_4228_3_281()
 {
    if (jj_scan_token(CHECK)) return true;
    if (jj_scan_token(DATABASE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CheckDatabaseStatement_4230_7_636()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CheckDatabaseStatement_4234_7_637()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CheckDatabaseStatement_4240_7_638()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2690_5_594()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1153_7_447()
 {
    if (jj_3R_Skip_2987_3_551()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1153_31_552()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_SelectStatement_1153_7_289()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1153_7_447()) {
    jj_scanpos = xsp;
    if (jj_3R_SelectStatement_1155_7_448()) return true;
    }
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1127_31_824()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2688_5_507()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_IndexMatchCondition_2690_5_594()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_SelectStatement_1151_7_288()
 {
    if (jj_3R_Unwind_2964_3_446()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1150_7_287()
 {
    if (jj_3R_OrderBy_2872_1_445()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1149_7_286()
 {
    if (jj_3R_GroupBy_2953_3_444()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1148_7_285()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2378_3_157()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1147_7_284()
 {
    if (jj_3R_LetClause_2224_3_443()) return true;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2682_5_593()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1144_7_283()
 {
    if (jj_3R_Projection_1758_3_418()) return true;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2680_5_506()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_IndexMatchCondition_2682_5_593()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_BackupDatabaseStatement_4216_3_280()
 {
    if (jj_scan_token(BACKUP)) return true;
    if (jj_scan_token(DATABASE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BackupDatabaseStatement_4217_27_635()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2677_5_394()
 {
    if (jj_scan_token(BETWEEN)) return true;
    if (jj_scan_token(LBRACKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_IndexMatchCondition_2680_5_506()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACKET)) return true;
    if (jj_scan_token(AND)) return true;
    if (jj_scan_token(LBRACKET)) return true;
    xsp = jj_scanpos;
    if (jj_3R_IndexMatchCondition_2688_5_507()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1142_3_129()
 {
    if (jj_scan_token(SELECT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1144_7_283()) jj_scanpos = xsp;
    if (jj_scan_token(FROM)) return true;
    if (jj_3R_FromClause_2215_3_234()) return true;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1147_7_284()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1148_7_285()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1149_7_286()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1150_7_287()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1151_7_288()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1153_7_289()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1157_7_290()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2670_9_592()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_Url_4208_3_735()
 {
    if (jj_scan_token(CLASSPATH_URL)) return true;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2669_7_505()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_IndexMatchCondition_2670_9_592()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_Url_4206_3_734()
 {
    if (jj_scan_token(FILE_URL)) return true;
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1131_7_698()
 {
    if (jj_3R_Timeout_3011_3_428()) return true;
    return false;
  }

  private boolean jj_3R_Url_4204_3_733()
 {
    if (jj_scan_token(HTTPS_URL)) return true;
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1129_7_790()
 {
    if (jj_3R_Limit_2975_3_427()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1129_33_825()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2666_5_393()
 {
    if (jj_3R_CompareOperator_2493_1_383()) return true;
    if (jj_scan_token(LBRACKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_IndexMatchCondition_2669_7_505()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_Url_4202_3_732()
 {
    if (jj_scan_token(HTTP_URL)) return true;
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1127_7_789()
 {
    if (jj_3R_Skip_2987_3_551()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1127_31_824()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1127_7_697()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1127_7_789()) {
    jj_scanpos = xsp;
    if (jj_3R_SelectWithoutTargetStatement_1129_7_790()) return true;
    }
    return false;
  }

  private boolean jj_3R_Url_4201_3_631()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Url_4202_3_732()) {
    jj_scanpos = xsp;
    if (jj_3R_Url_4204_3_733()) {
    jj_scanpos = xsp;
    if (jj_3R_Url_4206_3_734()) {
    jj_scanpos = xsp;
    if (jj_3R_Url_4208_3_735()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_ExportDatabaseStatement_4184_19_736()
 {
    if (jj_scan_token(TRUE)) return true;
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1125_7_696()
 {
    if (jj_3R_Unwind_2964_3_446()) return true;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2664_3_191()
 {
    if (jj_scan_token(KEY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_IndexMatchCondition_2666_5_393()) {
    jj_scanpos = xsp;
    if (jj_3R_IndexMatchCondition_2677_5_394()) return true;
    }
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1124_7_695()
 {
    if (jj_3R_LetClause_2224_3_443()) return true;
    return false;
  }

  private boolean jj_3R_ExportDatabaseStatement_4189_7_738()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1121_3_311()
 {
    if (jj_scan_token(SELECT)) return true;
    if (jj_3R_Projection_1758_3_418()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1124_7_695()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1125_7_696()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1127_7_697()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1131_7_698()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3_37()
 {
    if (jj_3R_SelectStatement_1142_3_129()) return true;
    return false;
  }

  private boolean jj_3R_ExportDatabaseStatement_4186_5_634()
 {
    if (jj_scan_token(WITH)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_ExportDatabaseStatement_4189_7_738()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_InstanceofCondition_2652_4_397()
 {
    if (jj_scan_token(CHARACTER_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_ExportDatabaseStatement_4184_5_633()
 {
    if (jj_scan_token(OVERWRITE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ExportDatabaseStatement_4184_19_736()) {
    jj_scanpos = xsp;
    if (jj_3R_ExportDatabaseStatement_4184_75_737()) return true;
    }
    return false;
  }

  private boolean jj_3R_QueryStatement_1114_5_358()
 {
    if (jj_3R_MatchStatement_1196_3_488()) return true;
    return false;
  }

  private boolean jj_3R_InstanceofCondition_2650_4_396()
 {
    if (jj_3R_PString_712_3_247()) return true;
    return false;
  }

  private boolean jj_3R_ExportDatabaseStatement_4183_5_632()
 {
    if (jj_scan_token(FORMAT)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

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

  private boolean jj_3R_QueryStatement_1112_5_357()
 {
    if (jj_3R_TraverseStatement_1168_3_487()) return true;
    return false;
  }

  private boolean jj_3R_InstanceofCondition_2648_4_395()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_QueryStatement_1110_5_356()
 {
    if (jj_3R_SelectWithoutTargetStatement_1121_3_311()) return true;
    return false;
  }

  private boolean jj_3R_InstanceofCondition_2647_3_192()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(INSTANCEOF)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InstanceofCondition_2648_4_395()) {
    jj_scanpos = xsp;
    if (jj_3R_InstanceofCondition_2650_4_396()) {
    jj_scanpos = xsp;
    if (jj_3R_InstanceofCondition_2652_4_397()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_ExportDatabaseStatement_4181_3_279()
 {
    if (jj_scan_token(EXPORT)) return true;
    if (jj_scan_token(DATABASE)) return true;
    if (jj_3R_Url_4201_3_631()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ExportDatabaseStatement_4183_5_632()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_ExportDatabaseStatement_4184_5_633()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_ExportDatabaseStatement_4186_5_634()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_QueryStatement_1107_5_355()
 {
    if (jj_3R_SelectStatement_1142_3_129()) return true;
    return false;
  }

  private boolean jj_3R_QueryStatement_1106_3_173()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_QueryStatement_1107_5_355()) {
    jj_scanpos = xsp;
    if (jj_3R_QueryStatement_1110_5_356()) {
    jj_scanpos = xsp;
    if (jj_3R_QueryStatement_1112_5_357()) {
    jj_scanpos = xsp;
    if (jj_3R_QueryStatement_1114_5_358()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_ImportDatabaseStatement_4171_7_731()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_ContainsValueCondition_2637_5_386()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3_36()
 {
    if (jj_3R_ProfileStatement_3993_3_128()) return true;
    return false;
  }

  private boolean jj_3_114()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_OrBlock_2385_3_152()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_ImportDatabaseStatement_4168_5_630()
 {
    if (jj_scan_token(WITH)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_ImportDatabaseStatement_4171_7_731()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_ImportDatabaseStatement_4166_5_629()
 {
    if (jj_3R_Url_4201_3_631()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1094_5_218()
 {
    if (jj_3R_LetStatement_4001_3_416()) return true;
    return false;
  }

  private boolean jj_3R_ContainsValueCondition_2631_3_186()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_3R_ContainsValueOperator_2581_3_385()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_114()) {
    jj_scanpos = xsp;
    if (jj_3R_ContainsValueCondition_2637_5_386()) return true;
    }
    return false;
  }

  private boolean jj_3R_ImportDatabaseStatement_4165_3_278()
 {
    if (jj_scan_token(IMPORT)) return true;
    if (jj_scan_token(DATABASE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ImportDatabaseStatement_4166_5_629()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_ImportDatabaseStatement_4168_5_630()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_StatementInternal_1091_5_217()
 {
    if (jj_3R_ProfileStatement_3993_3_128()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1085_9_127()
 {
    if (jj_3R_AlignDatabaseStatement_4251_3_282()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1089_5_216()
 {
    if (jj_3R_ExplainStatement_3985_3_415()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1083_9_126()
 {
    if (jj_3R_CheckDatabaseStatement_4228_3_281()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1081_9_125()
 {
    if (jj_3R_BackupDatabaseStatement_4216_3_280()) return true;
    return false;
  }

  private boolean jj_3R_BinaryCondition_2622_3_183()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_3R_CompareOperator_2493_1_383()) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

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

  private boolean jj_3R_StatementInternal_1079_9_124()
 {
    if (jj_3R_ExportDatabaseStatement_4181_3_279()) return true;
    return false;
  }

  private boolean jj_3R_WhileBlock_4152_5_848()
 {
    if (jj_3R_WhileBlock_4140_3_805()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1077_9_123()
 {
    if (jj_3R_ImportDatabaseStatement_4165_3_278()) return true;
    return false;
  }

  private boolean jj_3R_WhileBlock_4150_5_847()
 {
    if (jj_3R_ForEachBlock_4113_3_806()) return true;
    return false;
  }

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

  private boolean jj_3R_StatementInternal_1075_9_122()
 {
    if (jj_3R_IfStatement_4071_3_277()) return true;
    return false;
  }

  private boolean jj_3R_WhileBlock_4148_5_846()
 {
    if (jj_3R_IfStatement_4071_3_277()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1073_9_121()
 {
    if (jj_3R_SleepStatement_4093_3_276()) return true;
    return false;
  }

  private boolean jj_3R_RightBinaryCondition_2610_6_331()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_RightBinaryCondition_2611_8_461()) jj_scanpos = xsp;
    if (jj_3R_InOperator_2753_3_380()) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_WhileBlock_4145_5_845()
 {
    if (jj_3R_StatementSemicolon_948_3_66()) return true;
    return false;
  }

  private boolean jj_3R_WhileBlock_4145_5_836()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_WhileBlock_4145_5_845()) {
    jj_scanpos = xsp;
    if (jj_3R_WhileBlock_4148_5_846()) {
    jj_scanpos = xsp;
    if (jj_3R_WhileBlock_4150_5_847()) {
    jj_scanpos = xsp;
    if (jj_3R_WhileBlock_4152_5_848()) {
    jj_scanpos = xsp;
    if (jj_scan_token(171)) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_StatementInternal_1071_9_120()
 {
    if (jj_3R_ReturnStatement_4061_3_275()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1069_9_119()
 {
    if (jj_3R_RollbackStatement_4054_3_274()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1067_9_118()
 {
    if (jj_3R_CommitStatement_4025_3_273()) return true;
    return false;
  }

  private boolean jj_3R_RightBinaryCondition_2605_6_330()
 {
    if (jj_3R_CompareOperator_2493_1_383()) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3_32()
 {
    if (jj_3R_AlterBucketStatement_3950_3_94()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1065_9_117()
 {
    if (jj_3R_BeginStatement_4017_3_272()) return true;
    return false;
  }

  private boolean jj_3R_WhileBlock_4140_3_805()
 {
    if (jj_scan_token(WHILE)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_OrBlock_2385_3_152()) return true;
    if (jj_scan_token(RPAREN)) return true;
    if (jj_scan_token(LBRACE)) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_WhileBlock_4145_5_836()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

  private boolean jj_3R_RightBinaryCondition_2604_3_150()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_RightBinaryCondition_2605_6_330()) {
    jj_scanpos = xsp;
    if (jj_3R_RightBinaryCondition_2610_6_331()) return true;
    }
    return false;
  }

  private boolean jj_3_34()
 {
    if (jj_3R_AlterDatabaseStatement_3976_3_96()) return true;
    return false;
  }

  private boolean jj_3_33()
 {
    if (jj_3R_DropBucketStatement_3963_3_95()) return true;
    return false;
  }

  private boolean jj_3_30()
 {
    if (jj_3R_DropPropertyStatement_3781_3_92()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1056_9_116()
 {
    if (jj_3R_AlterBucketStatement_3950_3_94()) return true;
    return false;
  }

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

  private boolean jj_3R_NullSafeEqualsCompareOperator_2597_2_580()
 {
    if (jj_scan_token(NSEQ)) return true;
    return false;
  }

  private boolean jj_3_29()
 {
    if (jj_3R_AlterPropertyStatement_3757_3_91()) return true;
    return false;
  }

  private boolean jj_3R_ForEachBlock_4127_5_852()
 {
    if (jj_3R_WhileBlock_4140_3_805()) return true;
    return false;
  }

  private boolean jj_3_31()
 {
    if (jj_3R_DropIndexStatement_3927_3_93()) return true;
    return false;
  }

  private boolean jj_3_28()
 {
    if (jj_3R_DropTypeStatement_3709_3_90()) return true;
    return false;
  }

  private boolean jj_3R_ForEachBlock_4125_5_851()
 {
    if (jj_3R_ForEachBlock_4113_3_806()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1051_9_115()
 {
    if (jj_3R_RebuildIndexStatement_3915_3_271()) return true;
    return false;
  }

  private boolean jj_3R_ForEachBlock_4123_5_850()
 {
    if (jj_3R_IfStatement_4071_3_277()) return true;
    return false;
  }

  private boolean jj_3R_EqualsCompareOperator_2590_3_700()
 {
    if (jj_scan_token(EQEQ)) return true;
    return false;
  }

  private boolean jj_3_27()
 {
    if (jj_3R_AlterTypeStatement_3624_3_89()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1048_9_114()
 {
    if (jj_3R_DropPropertyStatement_3781_3_92()) return true;
    return false;
  }

  private boolean jj_3R_EqualsCompareOperator_2588_3_699()
 {
    if (jj_scan_token(EQ)) return true;
    return false;
  }

  private boolean jj_3R_ForEachBlock_4120_5_849()
 {
    if (jj_3R_StatementSemicolon_948_3_66()) return true;
    return false;
  }

  private boolean jj_3R_ForEachBlock_4120_5_837()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ForEachBlock_4120_5_849()) {
    jj_scanpos = xsp;
    if (jj_3R_ForEachBlock_4123_5_850()) {
    jj_scanpos = xsp;
    if (jj_3R_ForEachBlock_4125_5_851()) {
    jj_scanpos = xsp;
    if (jj_3R_ForEachBlock_4127_5_852()) {
    jj_scanpos = xsp;
    if (jj_scan_token(171)) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3_26()
 {
    if (jj_3R_TruncateRecordStatement_3511_3_88()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1045_9_113()
 {
    if (jj_3R_AlterPropertyStatement_3757_3_91()) return true;
    return false;
  }

  private boolean jj_3R_EqualsCompareOperator_2587_1_579()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_EqualsCompareOperator_2588_3_699()) {
    jj_scanpos = xsp;
    if (jj_3R_EqualsCompareOperator_2590_3_700()) return true;
    }
    return false;
  }

  private boolean jj_3_25()
 {
    if (jj_3R_TruncateBucketStatement_3498_3_87()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1042_9_112()
 {
    if (jj_3R_DropTypeStatement_3709_3_90()) return true;
    return false;
  }

  private boolean jj_3_24()
 {
    if (jj_3R_TruncateTypeStatement_3488_3_86()) return true;
    return false;
  }

  private boolean jj_3R_ContainsValueOperator_2581_3_385()
 {
    if (jj_scan_token(CONTAINSVALUE)) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1039_9_111()
 {
    if (jj_3R_AlterTypeStatement_3624_3_89()) return true;
    return false;
  }

  private boolean jj_3R_ForEachBlock_4113_3_806()
 {
    if (jj_scan_token(FOREACH)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(IN)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(RPAREN)) return true;
    if (jj_scan_token(LBRACE)) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_ForEachBlock_4120_5_837()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

  private boolean jj_3_23()
 {
    if (jj_3R_DeleteFunctionStatement_4299_3_85()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1036_9_110()
 {
    if (jj_3R_TruncateRecordStatement_3511_3_88()) return true;
    return false;
  }

  private boolean jj_3R_ContainsKeyOperator_2575_3_589()
 {
    if (jj_scan_token(CONTAINSKEY)) return true;
    return false;
  }

  private boolean jj_3_22()
 {
    if (jj_3R_DefineFunctionStatement_4263_3_84()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1033_9_109()
 {
    if (jj_3R_TruncateBucketStatement_3498_3_87()) return true;
    return false;
  }

  private boolean jj_3_21()
 {
    if (jj_3R_UpdateStatement_1390_3_83()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1030_9_108()
 {
    if (jj_3R_TruncateTypeStatement_3488_3_86()) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4040_68_844()
 {
    if (jj_scan_token(FAIL)) return true;
    return false;
  }

  private boolean jj_3R_WithinOperator_2569_3_591()
 {
    if (jj_scan_token(WITHIN)) return true;
    return false;
  }

  private boolean jj_3_20()
 {
    if (jj_3R_UpdateEdgeStatement_1368_3_82()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1027_9_107()
 {
    if (jj_3R_DeleteFunctionStatement_4299_3_85()) return true;
    return false;
  }

  private boolean jj_3_19()
 {
    if (jj_3R_CreateEdgeStatement_1690_3_81()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1024_9_106()
 {
    if (jj_3R_DefineFunctionStatement_4263_3_84()) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4044_58_835()
 {
    if (jj_scan_token(FAIL)) return true;
    return false;
  }

  private boolean jj_3R_NearOperator_2563_3_590()
 {
    if (jj_scan_token(NEAR)) return true;
    return false;
  }

  private boolean jj_3_18()
 {
    if (jj_3R_CreateVertexStatementEmptyNoTarget_1640_3_80()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1021_9_105()
 {
    if (jj_3R_UpdateStatement_1390_3_83()) return true;
    return false;
  }

  private boolean jj_3_17()
 {
    if (jj_3R_CreateVertexStatementEmpty_1647_3_79()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1018_9_104()
 {
    if (jj_3R_UpdateEdgeStatement_1368_3_82()) return true;
    return false;
  }

  private boolean jj_3R_SleepStatement_4093_3_276()
 {
    if (jj_scan_token(SLEEP)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_ILikeOperator_2557_3_588()
 {
    if (jj_scan_token(ILIKE)) return true;
    return false;
  }

  private boolean jj_3_16()
 {
    if (jj_3R_CreateVertexStatement_1659_3_78()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1015_9_103()
 {
    if (jj_3R_CreateEdgeStatement_1690_3_81()) return true;
    return false;
  }

  private boolean jj_3_15()
 {
    if (jj_3R_CreateVertexStatementNoTarget_1680_3_77()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1012_9_102()
 {
    if (jj_3R_CreateVertexStatementEmptyNoTarget_1640_3_80()) return true;
    return false;
  }

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

  private boolean jj_3R_LikeOperator_2551_3_587()
 {
    if (jj_scan_token(LIKE)) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1009_9_101()
 {
    if (jj_3R_CreateVertexStatementEmpty_1647_3_79()) return true;
    return false;
  }

  private boolean jj_3R_IfStatement_4082_5_730()
 {
    if (jj_3R_ForEachBlock_4113_3_806()) return true;
    return false;
  }

  private boolean jj_3R_IfStatement_4080_5_729()
 {
    if (jj_3R_WhileBlock_4140_3_805()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1006_9_100()
 {
    if (jj_3R_CreateVertexStatement_1659_3_78()) return true;
    return false;
  }

  private boolean jj_3R_IfStatement_4078_5_728()
 {
    if (jj_3R_IfStatement_4071_3_277()) return true;
    return false;
  }

  private boolean jj_3R_LeOperator_2545_3_586()
 {
    if (jj_scan_token(LE)) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1003_9_99()
 {
    if (jj_3R_CreateVertexStatementNoTarget_1680_3_77()) return true;
    return false;
  }

  private boolean jj_3R_IfStatement_4075_5_727()
 {
    if (jj_3R_StatementSemicolon_948_3_66()) return true;
    return false;
  }

  private boolean jj_3R_IfStatement_4075_5_628()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_IfStatement_4075_5_727()) {
    jj_scanpos = xsp;
    if (jj_3R_IfStatement_4078_5_728()) {
    jj_scanpos = xsp;
    if (jj_3R_IfStatement_4080_5_729()) {
    jj_scanpos = xsp;
    if (jj_3R_IfStatement_4082_5_730()) {
    jj_scanpos = xsp;
    if (jj_scan_token(171)) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3_14()
 {
    if (jj_3R_CreateBucketStatement_3941_3_76()) return true;
    return false;
  }

  private boolean jj_3R_GeOperator_2539_3_585()
 {
    if (jj_scan_token(GE)) return true;
    return false;
  }

  private boolean jj_3_13()
 {
    if (jj_3R_CreateIndexStatement_3797_3_75()) return true;
    return false;
  }

  private boolean jj_3R_IfStatement_4071_3_277()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_OrBlock_2385_3_152()) return true;
    if (jj_scan_token(RPAREN)) return true;
    if (jj_scan_token(LBRACE)) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_IfStatement_4075_5_628()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

  private boolean jj_3_12()
 {
    if (jj_3R_CreatePropertyStatement_3725_3_74()) return true;
    return false;
  }

  private boolean jj_3R_NeqOperator_2533_3_584()
 {
    if (jj_scan_token(NEQ)) return true;
    return false;
  }

  private boolean jj_3_11()
 {
    if (jj_3R_CreateEdgeTypeStatement_3594_3_73()) return true;
    return false;
  }

  private boolean jj_3R_ReturnStatement_4063_5_442()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3_10()
 {
    if (jj_3R_CreateVertexTypeStatement_3565_3_72()) return true;
    return false;
  }

  private boolean jj_3R_NeOperator_2527_3_583()
 {
    if (jj_scan_token(NE)) return true;
    return false;
  }

  private boolean jj_3_9()
 {
    if (jj_3R_CreateDocumentTypeStatement_3536_3_71()) return true;
    return false;
  }

  private boolean jj_3R_ReturnStatement_4061_3_275()
 {
    if (jj_scan_token(RETURN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ReturnStatement_4063_5_442()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_StatementInternal_983_9_98()
 {
    if (jj_3R_InsertStatement_1521_1_270()) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4040_21_843()
 {
    if (jj_scan_token(CONTINUE)) return true;
    return false;
  }

  private boolean jj_3R_GtOperator_2521_3_582()
 {
    if (jj_scan_token(GT)) return true;
    return false;
  }

  private boolean jj_3_8()
 {
    if (jj_3R_DeleteEdgeStatement_1263_3_70()) return true;
    return false;
  }

  private boolean jj_3R_RollbackStatement_4054_3_274()
 {
    if (jj_scan_token(ROLLBACK)) return true;
    return false;
  }

  private boolean jj_3_7()
 {
    if (jj_3R_DeleteStatement_1250_3_69()) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4044_11_834()
 {
    if (jj_scan_token(CONTINUE)) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_975_9_97()
 {
    if (jj_3R_QueryStatement_1106_3_173()) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4040_13_833()
 {
    if (jj_scan_token(AND)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CommitStatement_4040_21_843()) {
    jj_scanpos = xsp;
    if (jj_3R_CommitStatement_4040_68_844()) return true;
    }
    return false;
  }

  private boolean jj_3R_CommitStatement_4044_9_804()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CommitStatement_4044_11_834()) {
    jj_scanpos = xsp;
    if (jj_3R_CommitStatement_4044_58_835()) return true;
    }
    return false;
  }

  private boolean jj_3R_LtOperator_2515_3_581()
 {
    if (jj_scan_token(LT)) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4035_13_832()
 {
    if (jj_3R_StatementInternal_971_3_68()) return true;
    if (jj_scan_token(SEMICOLON)) return true;
    return false;
  }

  private boolean jj_3_35()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_StatementInternal_975_9_97()) {
    jj_scanpos = xsp;
    if (jj_3_7()) {
    jj_scanpos = xsp;
    if (jj_3_8()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_983_9_98()) {
    jj_scanpos = xsp;
    if (jj_3_9()) {
    jj_scanpos = xsp;
    if (jj_3_10()) {
    jj_scanpos = xsp;
    if (jj_3_11()) {
    jj_scanpos = xsp;
    if (jj_3_12()) {
    jj_scanpos = xsp;
    if (jj_3_13()) {
    jj_scanpos = xsp;
    if (jj_3_14()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1003_9_99()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1006_9_100()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1009_9_101()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1012_9_102()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1015_9_103()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1018_9_104()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1021_9_105()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1024_9_106()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1027_9_107()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1030_9_108()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1033_9_109()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1036_9_110()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1039_9_111()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1042_9_112()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1045_9_113()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1048_9_114()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1051_9_115()) {
    jj_scanpos = xsp;
    if (jj_3_31()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1056_9_116()) {
    jj_scanpos = xsp;
    if (jj_3_33()) {
    jj_scanpos = xsp;
    if (jj_3_34()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1065_9_117()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1067_9_118()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1069_9_119()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1071_9_120()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1073_9_121()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1075_9_122()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1077_9_123()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1079_9_124()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1081_9_125()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1083_9_126()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1085_9_127()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_CompareOperator_2506_5_504()
 {
    if (jj_3R_WithinOperator_2569_3_591()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2505_5_503()
 {
    if (jj_3R_NearOperator_2563_3_590()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2504_5_502()
 {
    if (jj_3R_ContainsKeyOperator_2575_3_589()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_971_3_68()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_35()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1089_5_216()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1091_5_217()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1094_5_218()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_CompareOperator_2503_5_501()
 {
    if (jj_3R_ILikeOperator_2557_3_588()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2502_5_500()
 {
    if (jj_3R_LikeOperator_2551_3_587()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2501_5_499()
 {
    if (jj_3R_LeOperator_2545_3_586()) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4031_9_803()
 {
    if (jj_scan_token(LBRACE)) return true;
    Token xsp;
    if (jj_3R_CommitStatement_4035_13_832()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CommitStatement_4035_13_832()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACE)) return true;
    xsp = jj_scanpos;
    if (jj_3R_CommitStatement_4040_13_833()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CompareOperator_2500_5_498()
 {
    if (jj_3R_GeOperator_2539_3_585()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2499_5_497()
 {
    if (jj_3R_NeqOperator_2533_3_584()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2498_5_496()
 {
    if (jj_3R_NeOperator_2527_3_583()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2497_5_495()
 {
    if (jj_3R_GtOperator_2521_3_582()) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4029_7_726()
 {
    if (jj_scan_token(ELSE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CommitStatement_4031_9_803()) {
    jj_scanpos = xsp;
    if (jj_3R_CommitStatement_4044_9_804()) return true;
    }
    return false;
  }

  private boolean jj_3R_CompareOperator_2496_5_494()
 {
    if (jj_3R_LtOperator_2515_3_581()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2495_5_493()
 {
    if (jj_3R_NullSafeEqualsCompareOperator_2597_2_580()) return true;
    return false;
  }

  private boolean jj_3R_ExpressionStatement_961_3_414()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3_6()
 {
    if (jj_3R_StatementInternal_971_3_68()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2494_3_492()
 {
    if (jj_3R_EqualsCompareOperator_2587_1_579()) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4027_5_441()
 {
    if (jj_scan_token(RETRY)) return true;
    if (jj_3R_PInteger_907_3_65()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CommitStatement_4029_7_726()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CompareOperator_2493_1_383()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CompareOperator_2494_3_492()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2495_5_493()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2496_5_494()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2497_5_495()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2498_5_496()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2499_5_497()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2500_5_498()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2501_5_499()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2502_5_500()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2503_5_501()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2504_5_502()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2505_5_503()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2506_5_504()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

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

  private boolean jj_3R_CommitStatement_4025_3_273()
 {
    if (jj_scan_token(COMMIT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CommitStatement_4027_5_441()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_StatementSemicolon_952_5_214()
 {
    if (jj_3R_ExpressionStatement_961_3_414()) return true;
    return false;
  }

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

  private boolean jj_3R_StatementSemicolon_949_5_213()
 {
    if (jj_3R_StatementInternal_971_3_68()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2486_3_379()
 {
    if (jj_scan_token(NULL)) return true;
    return false;
  }

  private boolean jj_3R_BeginStatement_4018_5_440()
 {
    if (jj_scan_token(ISOLATION)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3_146()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2484_3_378()
 {
    if (jj_scan_token(FALSE)) return true;
    return false;
  }

  private boolean jj_3R_StatementSemicolon_948_3_66()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_StatementSemicolon_949_5_213()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementSemicolon_952_5_214()) return true;
    }
    if (jj_scan_token(SEMICOLON)) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2482_3_377()
 {
    if (jj_scan_token(TRUE)) return true;
    return false;
  }

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

  private boolean jj_3R_BeginStatement_4017_3_272()
 {
    if (jj_scan_token(BEGIN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BeginStatement_4018_5_440()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3_5()
 {
    if (jj_3R_FloatingPoint_920_3_67()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2479_3_376()
 {
    if (jj_3R_InstanceofCondition_2647_3_192()) return true;
    return false;
  }

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

  private boolean jj_3_4()
 {
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2476_3_375()
 {
    if (jj_3R_IndexMatchCondition_2664_3_191()) return true;
    return false;
  }

  private boolean jj_3R_LetStatement_4008_5_518()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_Statement_940_3_211()
 {
    if (jj_3R_StatementInternal_971_3_68()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(171)) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2473_3_374()
 {
    if (jj_3R_MatchesCondition_2848_3_190()) return true;
    return false;
  }

  private boolean jj_3R_LetStatement_4005_5_517()
 {
    if (jj_3R_StatementInternal_971_3_68()) return true;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2470_3_373()
 {
    if (jj_3R_ContainsTextCondition_2841_3_189()) return true;
    return false;
  }

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

  private boolean jj_3R_PNumber_931_5_574()
 {
    if (jj_3R_FloatingPoint_920_3_67()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2467_3_372()
 {
    if (jj_3R_ContainsAnyCondition_2826_3_188()) return true;
    return false;
  }

  private boolean jj_3R_LetStatement_4001_3_416()
 {
    if (jj_scan_token(LET)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(EQ)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_LetStatement_4005_5_517()) {
    jj_scanpos = xsp;
    if (jj_3R_LetStatement_4008_5_518()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_PNumber_928_5_573()
 {
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2464_3_371()
 {
    if (jj_3R_ContainsAllCondition_2811_3_187()) return true;
    return false;
  }

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

  private boolean jj_3R_PNumber_927_3_480()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_PNumber_928_5_573()) {
    jj_scanpos = xsp;
    if (jj_3R_PNumber_931_5_574()) return true;
    }
    return false;
  }

  private boolean jj_3R_ConditionBlock_2461_3_370()
 {
    if (jj_3R_ContainsValueCondition_2631_3_186()) return true;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2458_3_369()
 {
    if (jj_3R_ContainsCondition_2739_3_185()) return true;
    return false;
  }

  private boolean jj_3R_ProfileStatement_3993_3_128()
 {
    if (jj_scan_token(PROFILE)) return true;
    if (jj_3R_StatementInternal_971_3_68()) return true;
    return false;
  }

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

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

  private boolean jj_3R_FloatingPoint_920_3_67()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FloatingPoint_920_5_215()) jj_scanpos = xsp;
    if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2455_3_368()
 {
    if (jj_3R_BetweenCondition_2702_3_184()) return true;
    return false;
  }

  private boolean jj_3_101()
 {
    if (jj_3R_IsDefinedCondition_2725_3_180()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2452_3_367()
 {
    if (jj_3R_BinaryCondition_2622_3_183()) return true;
    return false;
  }

  private boolean jj_3_100()
 {
    if (jj_3R_IsNotDefinedCondition_2732_3_179()) return true;
    return false;
  }

  private boolean jj_3R_ExplainStatement_3985_3_415()
 {
    if (jj_scan_token(EXPLAIN)) return true;
    if (jj_3R_StatementInternal_971_3_68()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2449_3_366()
 {
    if (jj_3R_NotInCondition_2788_3_182()) return true;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2446_3_365()
 {
    if (jj_3R_InCondition_2762_3_181()) return true;
    return false;
  }

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

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

  private boolean jj_3R_ConditionBlock_2443_3_364()
 {
    if (jj_3R_IsDefinedCondition_2725_3_180()) return true;
    return false;
  }

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

  private boolean jj_3R_AlterDatabaseStatement_3976_3_96()
 {
    if (jj_scan_token(ALTER)) return true;
    if (jj_scan_token(DATABASE)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2440_3_363()
 {
    if (jj_3R_IsNotDefinedCondition_2732_3_179()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2437_3_362()
 {
    if (jj_3R_IsNullCondition_2711_3_178()) return true;
    return false;
  }

  private boolean jj_3R_DropBucketStatement_3969_5_627()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(EXISTS)) return true;
    return false;
  }

  private boolean jj_3R_DropBucketStatement_3967_5_626()
 {
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2434_3_361()
 {
    if (jj_3R_IsNotNullCondition_2718_3_177()) return true;
    return false;
  }

  private boolean jj_3R_DropBucketStatement_3965_5_625()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2433_1_175()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ConditionBlock_2434_3_361()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2437_3_362()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2440_3_363()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2443_3_364()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2446_3_365()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2449_3_366()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2452_3_367()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2455_3_368()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2458_3_369()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2461_3_370()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2464_3_371()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2467_3_372()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2470_3_373()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2473_3_374()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2476_3_375()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2479_3_376()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2482_3_377()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2484_3_378()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2486_3_379()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

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

  private boolean jj_3R_DropBucketStatement_3963_3_95()
 {
    if (jj_scan_token(DROP)) return true;
    if (jj_scan_token(BUCKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DropBucketStatement_3965_5_625()) {
    jj_scanpos = xsp;
    if (jj_3R_DropBucketStatement_3967_5_626()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_DropBucketStatement_3969_5_627()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3_96()
 {
    if (jj_3R_ConditionBlock_2433_1_175()) return true;
    return false;
  }

  private boolean jj_3R_ParenthesisBlock_2426_3_176()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_OrBlock_2385_3_152()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

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

  private boolean jj_3R_AlterBucketStatement_3954_5_269()
 {
    if (jj_scan_token(STAR)) return true;
    return false;
  }

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

  private boolean jj_3R_NotBlock_2417_5_690()
 {
    if (jj_3R_ParenthesisBlock_2426_3_176()) return true;
    return false;
  }

  private boolean jj_3R_NotBlock_2414_5_689()
 {
    if (jj_3R_ConditionBlock_2433_1_175()) return true;
    return false;
  }

  private boolean jj_3R_AlterBucketStatement_3950_3_94()
 {
    if (jj_scan_token(ALTER)) return true;
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterBucketStatement_3954_5_269()) jj_scanpos = xsp;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_NotBlock_2413_3_566()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NotBlock_2414_5_689()) {
    jj_scanpos = xsp;
    if (jj_3R_NotBlock_2417_5_690()) return true;
    }
    return false;
  }

  private boolean jj_3R_NotBlock_2408_7_688()
 {
    if (jj_3R_ParenthesisBlock_2426_3_176()) return true;
    return false;
  }

  private boolean jj_3R_CreateBucketStatement_3943_5_619()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(NOT)) return true;
    if (jj_scan_token(EXISTS)) return true;
    return false;
  }

  private boolean jj_3R_NotBlock_2405_7_687()
 {
    if (jj_3R_ConditionBlock_2433_1_175()) return true;
    return false;
  }

  private boolean jj_3R_CreateBucketStatement_3941_3_76()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateBucketStatement_3943_5_619()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_NotBlock_2402_3_565()
 {
    if (jj_scan_token(NOT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NotBlock_2405_7_687()) {
    jj_scanpos = xsp;
    if (jj_3R_NotBlock_2408_7_688()) return true;
    }
    return false;
  }

  private boolean jj_3R_DropIndexStatement_3933_5_624()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(EXISTS)) return true;
    return false;
  }

  private boolean jj_3R_NotBlock_2401_1_465()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NotBlock_2402_3_565()) {
    jj_scanpos = xsp;
    if (jj_3R_NotBlock_2413_3_566()) return true;
    }
    return false;
  }

  private boolean jj_3R_DropIndexStatement_3931_5_623()
 {
    if (jj_scan_token(STAR)) return true;
    return false;
  }

  private boolean jj_3R_DropIndexStatement_3929_5_622()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_AndBlock_2394_5_466()
 {
    if (jj_scan_token(AND)) return true;
    if (jj_3R_NotBlock_2401_1_465()) return true;
    return false;
  }

  private boolean jj_3R_AndBlock_2393_3_335()
 {
    if (jj_3R_NotBlock_2401_1_465()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_AndBlock_2394_5_466()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_DropIndexStatement_3927_3_93()
 {
    if (jj_scan_token(DROP)) return true;
    if (jj_scan_token(INDEX)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DropIndexStatement_3929_5_622()) {
    jj_scanpos = xsp;
    if (jj_3R_DropIndexStatement_3931_5_623()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_DropIndexStatement_3933_5_624()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_OrBlock_2386_5_336()
 {
    if (jj_scan_token(OR)) return true;
    if (jj_3R_AndBlock_2393_3_335()) return true;
    return false;
  }

  private boolean jj_3R_RebuildIndexStatement_3919_5_621()
 {
    if (jj_scan_token(STAR)) return true;
    return false;
  }

  private boolean jj_3R_OrBlock_2385_3_152()
 {
    if (jj_3R_AndBlock_2393_3_335()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_OrBlock_2386_5_336()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_RebuildIndexStatement_3917_5_620()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_RebuildIndexStatement_3915_3_271()
 {
    if (jj_scan_token(REBUILD)) return true;
    if (jj_scan_token(INDEX)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_RebuildIndexStatement_3917_5_620()) {
    jj_scanpos = xsp;
    if (jj_3R_RebuildIndexStatement_3919_5_621()) return true;
    }
    return false;
  }

  private boolean jj_3R_WhereClause_2378_3_157()
 {
    if (jj_3R_OrBlock_2385_3_152()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3905_9_725()
 {
    if (jj_scan_token(ERROR2)) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3903_9_724()
 {
    if (jj_scan_token(SKIP2)) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3896_13_831()
 {
    if (jj_scan_token(SCHEMA)) return true;
    if (jj_3R_Json_3078_3_210()) return true;
    return false;
  }

  private boolean jj_3R_IndexIdentifier_2365_9_491()
 {
    if (jj_scan_token(INDEXVALUESDESC_IDENTIFIER)) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3901_7_618()
 {
    if (jj_scan_token(NULL_STRATEGY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3903_9_724()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3905_9_725()) return true;
    }
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3894_13_830()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_IndexIdentifier_2363_9_490()
 {
    if (jj_scan_token(INDEXVALUESASC_IDENTIFIER)) return true;
    return false;
  }

  private boolean jj_3R_IndexIdentifier_2361_9_489()
 {
    if (jj_scan_token(INDEXVALUES_IDENTIFIER)) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3891_9_802()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateIndexStatement_3894_13_830()) { jj_scanpos = xsp; break; }
    }
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3896_13_831()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_IndexIdentifier_2359_5_360()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_IndexIdentifier_2361_9_489()) {
    jj_scanpos = xsp;
    if (jj_3R_IndexIdentifier_2363_9_490()) {
    jj_scanpos = xsp;
    if (jj_3R_IndexIdentifier_2365_9_491()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3886_9_723()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_143()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3891_9_802()) return true;
    }
    return false;
  }

  private boolean jj_3_143()
 {
    if (jj_scan_token(SCHEMA)) return true;
    if (jj_3R_Json_3078_3_210()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3881_13_829()
 {
    if (jj_scan_token(SCHEMA)) return true;
    if (jj_3R_Json_3078_3_210()) return true;
    return false;
  }

  private boolean jj_3R_IndexIdentifier_2354_5_359()
 {
    if (jj_scan_token(INDEX_COLON)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3879_13_828()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3885_7_617()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3886_9_723()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_IndexIdentifier_2353_3_174()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_IndexIdentifier_2354_5_359()) {
    jj_scanpos = xsp;
    if (jj_3R_IndexIdentifier_2359_5_360()) return true;
    }
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3876_9_801()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateIndexStatement_3879_13_828()) { jj_scanpos = xsp; break; }
    }
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3881_13_829()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_SchemaIdentifier_2344_3_646()
 {
    if (jj_scan_token(SCHEMA_IDENTIFIER)) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3871_9_722()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_142()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3876_9_801()) return true;
    }
    return false;
  }

  private boolean jj_3_142()
 {
    if (jj_scan_token(SCHEMA)) return true;
    if (jj_3R_Json_3078_3_210()) return true;
    return false;
  }

  private boolean jj_3R_BucketList_2335_6_807()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3_144()
 {
    if (jj_scan_token(ENGINE)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3871_9_722()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3865_9_616()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_BucketList_2334_4_743()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_BucketList_2335_6_807()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_BucketList_2332_3_645()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_scan_token(LBRACKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BucketList_2334_4_743()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3_141()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(NOT)) return true;
    if (jj_scan_token(EXISTS)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

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

  private boolean jj_3R_Bucket_2323_5_313()
 {
    if (jj_scan_token(BUCKET_NUMBER_IDENTIFIER)) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3847_15_827()
 {
    if (jj_scan_token(VALUE)) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3854_7_615()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_Bucket_2321_5_312()
 {
    if (jj_scan_token(BUCKET_IDENTIFIER)) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3845_15_826()
 {
    if (jj_scan_token(KEY)) return true;
    return false;
  }

  private boolean jj_3R_Bucket_2320_3_141()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Bucket_2321_5_312()) {
    jj_scanpos = xsp;
    if (jj_3R_Bucket_2323_5_313()) return true;
    }
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3843_13_800()
 {
    if (jj_scan_token(BY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3845_15_826()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3847_15_827()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_FromItem_2308_9_649()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3836_13_413()
 {
    if (jj_3R_RecordAttribute_1920_3_147()) return true;
    return false;
  }

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

  private boolean jj_3R_FromItem_2305_5_529()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FromItem_2308_9_649()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_FromItem_2301_7_648()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3830_13_412()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3828_11_209()
 {
    if (jj_scan_token(COMMA)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3830_13_412()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3836_13_413()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3843_13_800()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3_93()
 {
    if (jj_3R_FunctionCall_1929_3_145()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FromItem_2301_7_648()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3824_13_411()
 {
    if (jj_scan_token(VALUE)) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2296_5_528()
 {
    if (jj_3R_InputParameter_1710_3_144()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2291_9_647()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3822_13_410()
 {
    if (jj_scan_token(KEY)) return true;
    return false;
  }

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

  private boolean jj_3R_CreateIndexStatement_3820_11_208()
 {
    if (jj_scan_token(BY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3822_13_410()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3824_13_411()) return true;
    }
    return false;
  }

  private boolean jj_3R_FromItem_2288_5_527()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_QueryStatement_1106_3_173()) return true;
    if (jj_scan_token(RPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FromItem_2291_9_647()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_FromItem_2286_5_526()
 {
    if (jj_3R_SchemaIdentifier_2344_3_646()) return true;
    return false;
  }

  private boolean jj_3R_LetClause_2224_65_545()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_LetItem_2231_3_544()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3813_11_207()
 {
    if (jj_3R_RecordAttribute_1920_3_147()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2283_5_525()
 {
    if (jj_3R_IndexIdentifier_2353_3_174()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2281_5_524()
 {
    if (jj_3R_BucketList_2332_3_645()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2275_9_742()
 {
    if (jj_3R_NamedParameter_1735_3_458()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2279_5_523()
 {
    if (jj_3R_Bucket_2320_3_141()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3807_11_206()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2272_9_741()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_PositionalParameter_1721_3_457()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2272_9_644()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FromItem_2272_9_741()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2275_9_742()) return true;
    }
    return false;
  }

  private boolean jj_3R_FromItem_2269_9_643()
 {
    if (jj_3R_NamedParameter_1735_3_458()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3802_10_205()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(NOT)) return true;
    if (jj_scan_token(EXISTS)) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2267_9_642()
 {
    if (jj_3R_PositionalParameter_1721_3_457()) return true;
    return false;
  }

  private boolean jj_3_140()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3802_10_205()) jj_scanpos = xsp;
    if (jj_scan_token(ON)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(LPAREN)) return true;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3807_11_206()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3813_11_207()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3820_11_208()) jj_scanpos = xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateIndexStatement_3828_11_209()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2264_5_522()
 {
    if (jj_scan_token(LBRACKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FromItem_2267_9_642()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2269_9_643()) return true;
    }
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_FromItem_2272_9_644()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2261_7_641()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Rid_624_3_143()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3797_3_75()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(INDEX)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_140()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3854_7_615()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3_141()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3865_9_616()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3_144()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3885_7_617()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3901_7_618()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3_91()
 {
    if (jj_scan_token(LBRACKET)) return true;
    if (jj_3R_Rid_624_3_143()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_FromItem_2261_7_641()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_Identifier_726_1_139()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(235)) {
    jj_scanpos = xsp;
    if (jj_scan_token(12)) {
    jj_scanpos = xsp;
    if (jj_scan_token(220)) {
    jj_scanpos = xsp;
    if (jj_scan_token(32)) {
    jj_scanpos = xsp;
    if (jj_scan_token(34)) {
    jj_scanpos = xsp;
    if (jj_scan_token(33)) {
    jj_scanpos = xsp;
    if (jj_scan_token(37)) {
    jj_scanpos = xsp;
    if (jj_scan_token(35)) {
    jj_scanpos = xsp;
    if (jj_scan_token(36)) {
    jj_scanpos = xsp;
    if (jj_scan_token(232)) {
    jj_scanpos = xsp;
    if (jj_scan_token(50)) {
    jj_scanpos = xsp;
    if (jj_scan_token(30)) {
    jj_scanpos = xsp;
    if (jj_scan_token(31)) {
    jj_scanpos = xsp;
    if (jj_scan_token(58)) {
    jj_scanpos = xsp;
    if (jj_scan_token(26)) {
    jj_scanpos = xsp;
    if (jj_scan_token(73)) {
    jj_scanpos = xsp;
    if (jj_scan_token(75)) {
    jj_scanpos = xsp;
    if (jj_scan_token(72)) {
    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(76)) {
    jj_scanpos = xsp;
    if (jj_scan_token(77)) {
    jj_scanpos = xsp;
    if (jj_scan_token(18)) {
    jj_scanpos = xsp;
    if (jj_scan_token(62)) {
    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(82)) {
    jj_scanpos = xsp;
    if (jj_scan_token(83)) {
    jj_scanpos = xsp;
    if (jj_scan_token(85)) {
    jj_scanpos = xsp;
    if (jj_scan_token(86)) {
    jj_scanpos = xsp;
    if (jj_scan_token(87)) {
    jj_scanpos = xsp;
    if (jj_scan_token(88)) {
    jj_scanpos = xsp;
    if (jj_scan_token(74)) {
    jj_scanpos = xsp;
    if (jj_scan_token(89)) {
    jj_scanpos = xsp;
    if (jj_scan_token(90)) {
    jj_scanpos = xsp;
    if (jj_scan_token(91)) {
    jj_scanpos = xsp;
    if (jj_scan_token(92)) {
    jj_scanpos = xsp;
    if (jj_scan_token(93)) {
    jj_scanpos = xsp;
    if (jj_scan_token(94)) {
    jj_scanpos = xsp;
    if (jj_scan_token(95)) {
    jj_scanpos = xsp;
    if (jj_scan_token(97)) {
    jj_scanpos = xsp;
    if (jj_scan_token(98)) {
    jj_scanpos = xsp;
    if (jj_scan_token(99)) {
    jj_scanpos = xsp;
    if (jj_scan_token(101)) {
    jj_scanpos = xsp;
    if (jj_scan_token(102)) {
    jj_scanpos = xsp;
    if (jj_scan_token(103)) {
    jj_scanpos = xsp;
    if (jj_scan_token(104)) {
    jj_scanpos = xsp;
    if (jj_scan_token(105)) {
    jj_scanpos = xsp;
    if (jj_scan_token(106)) {
    jj_scanpos = xsp;
    if (jj_scan_token(107)) {
    jj_scanpos = xsp;
    if (jj_scan_token(108)) {
    jj_scanpos = xsp;
    if (jj_scan_token(109)) {
    jj_scanpos = xsp;
    if (jj_scan_token(110)) {
    jj_scanpos = xsp;
    if (jj_scan_token(111)) {
    jj_scanpos = xsp;
    if (jj_scan_token(112)) {
    jj_scanpos = xsp;
    if (jj_scan_token(113)) {
    jj_scanpos = xsp;
    if (jj_scan_token(114)) {
    jj_scanpos = xsp;
    if (jj_scan_token(116)) {
    jj_scanpos = xsp;
    if (jj_scan_token(115)) {
    jj_scanpos = xsp;
    if (jj_scan_token(117)) {
    jj_scanpos = xsp;
    if (jj_scan_token(118)) {
    jj_scanpos = xsp;
    if (jj_scan_token(119)) {
    jj_scanpos = xsp;
    if (jj_scan_token(120)) {
    jj_scanpos = xsp;
    if (jj_scan_token(121)) {
    jj_scanpos = xsp;
    if (jj_scan_token(122)) {
    jj_scanpos = xsp;
    if (jj_scan_token(123)) {
    jj_scanpos = xsp;
    if (jj_scan_token(125)) {
    jj_scanpos = xsp;
    if (jj_scan_token(126)) {
    jj_scanpos = xsp;
    if (jj_scan_token(127)) {
    jj_scanpos = xsp;
    if (jj_scan_token(128)) {
    jj_scanpos = xsp;
    if (jj_scan_token(129)) {
    jj_scanpos = xsp;
    if (jj_scan_token(130)) {
    jj_scanpos = xsp;
    if (jj_scan_token(132)) {
    jj_scanpos = xsp;
    if (jj_scan_token(134)) {
    jj_scanpos = xsp;
    if (jj_scan_token(135)) {
    jj_scanpos = xsp;
    if (jj_scan_token(136)) {
    jj_scanpos = xsp;
    if (jj_scan_token(137)) {
    jj_scanpos = xsp;
    if (jj_scan_token(138)) {
    jj_scanpos = xsp;
    if (jj_scan_token(139)) {
    jj_scanpos = xsp;
    if (jj_scan_token(236)) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_FromItem_2256_5_521()
 {
    if (jj_3R_Rid_624_3_143()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2255_3_422()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FromItem_2256_5_521()) {
    jj_scanpos = xsp;
    if (jj_3_91()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2264_5_522()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2279_5_523()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2281_5_524()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2283_5_525()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2286_5_526()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2288_5_527()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2296_5_528()) {
    jj_scanpos = xsp;
    if (jj_3_93()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2305_5_529()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_DropPropertyStatement_3786_5_268()
 {
    if (jj_scan_token(FORCE)) return true;
    return false;
  }

  private boolean jj_3R_DropPropertyStatement_3785_5_267()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(EXISTS)) return true;
    return false;
  }

  private boolean jj_3R_PString_712_3_247()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(160)) {
    jj_scanpos = xsp;
    if (jj_scan_token(143)) return true;
    }
    return false;
  }

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

  private boolean jj_3R_DropPropertyStatement_3781_3_92()
 {
    if (jj_scan_token(DROP)) return true;
    if (jj_scan_token(PROPERTY)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DropPropertyStatement_3785_5_267()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DropPropertyStatement_3786_5_268()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_LetItem_2236_5_667()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_QueryStatement_1106_3_173()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3_3()
 {
    if (jj_3R_StatementSemicolon_948_3_66()) return true;
    return false;
  }

  private boolean jj_3R_AlterPropertyStatement_3770_5_266()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_LetItem_2233_5_666()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_LetItem_2231_3_544()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(EQ)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_LetItem_2233_5_666()) {
    jj_scanpos = xsp;
    if (jj_3R_LetItem_2236_5_667()) return true;
    }
    return false;
  }

  private boolean jj_3_139()
 {
    if (jj_scan_token(CUSTOM)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_LetClause_2224_3_443()
 {
    if (jj_scan_token(LET)) return true;
    if (jj_3R_LetItem_2231_3_544()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_LetClause_2224_65_545()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_AlterPropertyStatement_3757_3_91()
 {
    if (jj_scan_token(ALTER)) return true;
    if (jj_scan_token(PROPERTY)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_139()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterPropertyStatement_3770_5_266()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_FromClause_2215_3_234()
 {
    if (jj_3R_FromItem_2255_3_422()) return true;
    return false;
  }

  private boolean jj_3R_CreatePropertyAttributeStatement_3746_6_799()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_CreatePropertyAttributeStatement_3744_3_720()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreatePropertyAttributeStatement_3746_6_799()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_BaseExpression_2207_5_354()
 {
    if (jj_scan_token(NULL)) return true;
    return false;
  }

  private boolean jj_3R_BaseExpression_2202_9_486()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

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

  private boolean jj_3R_BaseExpression_2199_9_485()
 {
    if (jj_scan_token(CHARACTER_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_BaseExpression_2197_9_484()
 {
    if (jj_3R_PString_712_3_247()) return true;
    return false;
  }

  private boolean jj_3R_CreatePropertyStatement_3734_6_721()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_CreatePropertyAttributeStatement_3744_3_720()) return true;
    return false;
  }

  private boolean jj_3R_CreatePropertyStatement_3732_5_614()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_CreatePropertyAttributeStatement_3744_3_720()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreatePropertyStatement_3734_6_721()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

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

  private boolean jj_3R_BaseExpression_2195_5_353()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BaseExpression_2197_9_484()) {
    jj_scanpos = xsp;
    if (jj_3R_BaseExpression_2199_9_485()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_BaseExpression_2202_9_486()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CreatePropertyStatement_3729_5_613()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(NOT)) return true;
    if (jj_scan_token(EXISTS)) return true;
    return false;
  }

  private boolean jj_3R_BaseExpression_2190_9_483()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_BucketIdentifier_657_5_798()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_BucketIdentifier_655_5_797()
 {
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_CreatePropertyStatement_3725_3_74()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(PROPERTY)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreatePropertyStatement_3729_5_613()) jj_scanpos = xsp;
    if (jj_3R_Identifier_726_1_139()) return true;
    xsp = jj_scanpos;
    if (jj_3R_CreatePropertyStatement_3732_5_614()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_BucketIdentifier_654_3_714()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BucketIdentifier_655_5_797()) {
    jj_scanpos = xsp;
    if (jj_3R_BucketIdentifier_657_5_798()) return true;
    }
    return false;
  }

  private boolean jj_3R_BaseExpression_2187_5_352()
 {
    if (jj_3R_InputParameter_1710_3_144()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BaseExpression_2190_9_483()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_BaseExpression_2182_9_482()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_DropTypeStatement_3716_5_265()
 {
    if (jj_scan_token(UNSAFE)) return true;
    return false;
  }

  private boolean jj_3R_DropTypeStatement_3715_5_264()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(EXISTS)) return true;
    return false;
  }

  private boolean jj_3R_BaseExpression_2179_5_351()
 {
    if (jj_3R_BaseIdentifier_1989_3_481()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BaseExpression_2182_9_482()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_BaseExpression_2177_5_350()
 {
    if (jj_3R_PNumber_927_3_480()) return true;
    return false;
  }

  private boolean jj_3R_DropTypeStatement_3713_3_263()
 {
    if (jj_3R_InputParameter_1710_3_144()) return true;
    return false;
  }

  private boolean jj_3R_BaseExpression_2176_3_172()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BaseExpression_2177_5_350()) {
    jj_scanpos = xsp;
    if (jj_3R_BaseExpression_2179_5_351()) {
    jj_scanpos = xsp;
    if (jj_3R_BaseExpression_2187_5_352()) {
    jj_scanpos = xsp;
    if (jj_3R_BaseExpression_2195_5_353()) {
    jj_scanpos = xsp;
    if (jj_3R_BaseExpression_2207_5_354()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_DropTypeStatement_3711_3_262()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_DropTypeStatement_3709_3_90()
 {
    if (jj_scan_token(DROP)) return true;
    if (jj_scan_token(TYPE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DropTypeStatement_3711_3_262()) {
    jj_scanpos = xsp;
    if (jj_3R_DropTypeStatement_3713_3_263()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_DropTypeStatement_3715_5_264()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DropTypeStatement_3716_5_265()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_Rid_633_5_317()
 {
    if (jj_scan_token(LBRACE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(142)) {
    jj_scanpos = xsp;
    if (jj_scan_token(143)) return true;
    }
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

  private boolean jj_3R_ParenthesisExpression_2167_5_349()
 {
    if (jj_3R_InsertStatement_1521_1_270()) return true;
    return false;
  }

  private boolean jj_3R_ParenthesisExpression_2165_5_348()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3_2()
 {
    if (jj_3R_PInteger_907_3_65()) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

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

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

  private boolean jj_3R_AlterTypeStatement_3696_5_261()
 {
    if (jj_scan_token(CUSTOM)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3_1()
 {
    if (jj_scan_token(250)) return true;
    if (jj_3R_PInteger_907_3_65()) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

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

  private boolean jj_3R_AlterTypeStatement_3694_5_260()
 {
    if (jj_scan_token(BUCKETSELECTIONSTRATEGY)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_ParenthesisExpression_2160_3_171()
 {
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_83()) {
    jj_scanpos = xsp;
    if (jj_3R_ParenthesisExpression_2165_5_348()) {
    jj_scanpos = xsp;
    if (jj_3R_ParenthesisExpression_2167_5_349()) return true;
    }
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

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

  private boolean jj_3R_Rid_624_3_143()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_1()) {
    jj_scanpos = xsp;
    if (jj_3_2()) {
    jj_scanpos = xsp;
    if (jj_3R_Rid_633_5_317()) return true;
    }
    }
    return false;
  }

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

  private boolean jj_3R_FirstLevelExpression_2151_5_347()
 {
    if (jj_3R_BaseExpression_2176_3_172()) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3680_9_439()
 {
    if (jj_scan_token(COMMA)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterTypeStatement_3682_11_542()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3686_11_543()) return true;
    }
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_FirstLevelExpression_2148_5_346()
 {
    if (jj_3R_ParenthesisExpression_2160_3_171()) return true;
    return false;
  }

  private boolean jj_3R_FirstLevelExpression_2147_3_170()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FirstLevelExpression_2148_5_346()) {
    jj_scanpos = xsp;
    if (jj_3R_FirstLevelExpression_2151_5_347()) return true;
    }
    return false;
  }

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

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

  private boolean jj_3R_MathExpression_2131_7_169()
 {
    if (jj_scan_token(XOR)) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3663_9_436()
 {
    if (jj_scan_token(NULL)) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3667_5_259()
 {
    if (jj_scan_token(BUCKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterTypeStatement_3670_9_437()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3674_9_438()) return true;
    }
    if (jj_3R_Identifier_726_1_139()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_AlterTypeStatement_3680_9_439()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_MathExpression_2129_7_168()
 {
    if (jj_scan_token(BIT_OR)) return true;
    return false;
  }

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

  private boolean jj_3R_MathExpression_2127_7_167()
 {
    if (jj_scan_token(BIT_AND)) return true;
    return false;
  }

  private boolean jj_3R_MathExpression_2125_7_166()
 {
    if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
    return false;
  }

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

  private boolean jj_3R_MathExpression_2123_7_165()
 {
    if (jj_scan_token(RSHIFT)) return true;
    return false;
  }

  private boolean jj_3R_MathExpression_2121_7_164()
 {
    if (jj_scan_token(LSHIFT)) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3649_13_541()
 {
    if (jj_scan_token(COMMA)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterTypeStatement_3651_15_664()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3655_15_665()) return true;
    }
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

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

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

  private boolean jj_3R_MathExpression_2115_7_161()
 {
    if (jj_scan_token(REM)) return true;
    return false;
  }

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

  private boolean jj_3R_MathExpression_2113_7_160()
 {
    if (jj_scan_token(SLASH)) return true;
    return false;
  }

  private boolean jj_3R_MathExpression_2111_7_159()
 {
    if (jj_scan_token(STAR)) return true;
    return false;
  }

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

  private boolean jj_3_80()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MathExpression_2111_7_159()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2113_7_160()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2115_7_161()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2117_7_162()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2119_7_163()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2121_7_164()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2123_7_165()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2125_7_166()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2127_7_167()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2129_7_168()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2131_7_169()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    if (jj_3R_FirstLevelExpression_2147_3_170()) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3637_9_435()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterTypeStatement_3639_13_539()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3643_13_540()) return true;
    }
    if (jj_3R_Identifier_726_1_139()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_AlterTypeStatement_3649_13_541()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_MathExpression_2107_3_158()
 {
    if (jj_3R_FirstLevelExpression_2147_3_170()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3_80()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

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

  private boolean jj_3R_AlterTypeStatement_3632_5_258()
 {
    if (jj_scan_token(SUPERTYPE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterTypeStatement_3637_9_435()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3663_9_436()) return true;
    }
    return false;
  }

  private boolean jj_3R_ArrayConcatExpressionElement_2095_5_479()
 {
    if (jj_3R_Json_3078_3_210()) return true;
    return false;
  }

  private boolean jj_3R_ArrayConcatExpressionElement_2092_5_478()
 {
    if (jj_3R_MathExpression_2107_3_158()) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3627_5_257()
 {
    if (jj_scan_token(NAME)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_ArrayConcatExpressionElement_2089_5_477()
 {
    if (jj_3R_Rid_624_3_143()) return true;
    return false;
  }

  private boolean jj_3R_ArrayConcatExpressionElement_2087_5_476()
 {
    if (jj_scan_token(FALSE)) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3624_3_89()
 {
    if (jj_scan_token(ALTER)) return true;
    if (jj_scan_token(TYPE)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterTypeStatement_3627_5_257()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3632_5_258()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3667_5_259()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3694_5_260()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3696_5_261()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_ArrayConcatExpressionElement_2085_5_475()
 {
    if (jj_scan_token(TRUE)) return true;
    return false;
  }

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

  private boolean jj_3R_ArrayConcatExpressionElement_2082_3_344()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_77()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayConcatExpressionElement_2085_5_475()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayConcatExpressionElement_2087_5_476()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayConcatExpressionElement_2089_5_477()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayConcatExpressionElement_2092_5_478()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayConcatExpressionElement_2095_5_479()) return true;
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_CreateEdgeTypeStatement_3612_7_612()
 {
    if (jj_scan_token(BUCKETS)) return true;
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeTypeStatement_3608_9_719()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_BucketIdentifier_654_3_714()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeTypeStatement_3606_7_611()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_BucketIdentifier_654_3_714()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateEdgeTypeStatement_3608_9_719()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_ArrayConcatExpression_2071_5_345()
 {
    if (jj_scan_token(SC_OR)) return true;
    if (jj_3R_ArrayConcatExpressionElement_2082_3_344()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeTypeStatement_3601_9_718()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_ArrayConcatExpression_2069_3_156()
 {
    if (jj_3R_ArrayConcatExpressionElement_2082_3_344()) return true;
    Token xsp;
    if (jj_3R_ArrayConcatExpression_2071_5_345()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_ArrayConcatExpression_2071_5_345()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_CreateEdgeTypeStatement_3599_7_610()
 {
    if (jj_scan_token(EXTENDS)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateEdgeTypeStatement_3601_9_718()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_CreateEdgeTypeStatement_3597_7_609()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(NOT)) return true;
    if (jj_scan_token(EXISTS)) return true;
    return false;
  }

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

  private boolean jj_3R_Expression_2058_5_296()
 {
    if (jj_3R_Json_3078_3_210()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeTypeStatement_3594_3_73()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(EDGE)) return true;
    if (jj_scan_token(TYPE)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeTypeStatement_3597_7_609()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeTypeStatement_3599_7_610()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeTypeStatement_3606_7_611()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeTypeStatement_3612_7_612()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_Expression_2055_5_295()
 {
    if (jj_3R_MathExpression_2107_3_158()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexTypeStatement_3583_7_608()
 {
    if (jj_scan_token(BUCKETS)) return true;
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3_75()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_WhereClause_2378_3_157()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3_72()
 {
    if (jj_3R_ArrayConcatExpression_2069_3_156()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexTypeStatement_3579_9_717()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_BucketIdentifier_654_3_714()) return true;
    return false;
  }

  private boolean jj_3R_Expression_2047_5_294()
 {
    if (jj_3R_Rid_624_3_143()) return true;
    return false;
  }

  private boolean jj_3R_Expression_2045_5_293()
 {
    if (jj_scan_token(FALSE)) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexTypeStatement_3577_7_607()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_BucketIdentifier_654_3_714()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateVertexTypeStatement_3579_9_717()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_Expression_2043_5_292()
 {
    if (jj_scan_token(TRUE)) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexTypeStatement_3572_9_716()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3_73()
 {
    if (jj_scan_token(NULL)) return true;
    return false;
  }

  private boolean jj_3_71()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_Expression_2038_5_291()
 {
    if (jj_3R_ArrayConcatExpression_2069_3_156()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexTypeStatement_3570_7_606()
 {
    if (jj_scan_token(EXTENDS)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateVertexTypeStatement_3572_9_716()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_CreateVertexTypeStatement_3568_7_605()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(NOT)) return true;
    if (jj_scan_token(EXISTS)) return true;
    return false;
  }

  private boolean jj_3R_Expression_2037_3_130()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Expression_2038_5_291()) {
    jj_scanpos = xsp;
    if (jj_3_73()) {
    jj_scanpos = xsp;
    if (jj_3R_Expression_2043_5_292()) {
    jj_scanpos = xsp;
    if (jj_3R_Expression_2045_5_293()) {
    jj_scanpos = xsp;
    if (jj_3R_Expression_2047_5_294()) {
    jj_scanpos = xsp;
    if (jj_3_75()) {
    jj_scanpos = xsp;
    if (jj_3R_Expression_2055_5_295()) {
    jj_scanpos = xsp;
    if (jj_3R_Expression_2058_5_296()) return true;
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

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

  private boolean jj_3R_Modifier_2028_5_343()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexTypeStatement_3565_3_72()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(VERTEX)) return true;
    if (jj_scan_token(TYPE)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexTypeStatement_3568_7_605()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexTypeStatement_3570_7_606()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexTypeStatement_3577_7_607()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexTypeStatement_3583_7_608()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_Modifier_2022_8_341()
 {
    if (jj_3R_MethodCall_1947_3_154()) return true;
    return false;
  }

  private boolean jj_3R_Modifier_2025_5_342()
 {
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_SuffixIdentifier_1973_3_149()) return true;
    return false;
  }

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

  private boolean jj_3R_CreateDocumentTypeStatement_3554_7_604()
 {
    if (jj_scan_token(BUCKETS)) return true;
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

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

  private boolean jj_3R_CreateDocumentTypeStatement_3550_9_715()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_BucketIdentifier_654_3_714()) return true;
    return false;
  }

  private boolean jj_3R_Modifier_2015_9_474()
 {
    if (jj_3R_ArraySingleValuesSelector_1862_3_153()) return true;
    return false;
  }

  private boolean jj_3R_Modifier_2012_9_473()
 {
    if (jj_3R_OrBlock_2385_3_152()) return true;
    return false;
  }

  private boolean jj_3R_CreateDocumentTypeStatement_3548_7_603()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_BucketIdentifier_654_3_714()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateDocumentTypeStatement_3550_9_715()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_Modifier_2009_9_472()
 {
    if (jj_3R_ArrayRangeSelector_1870_3_151()) return true;
    return false;
  }

  private boolean jj_3R_CreateDocumentTypeStatement_3543_9_713()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_Modifier_2006_9_471()
 {
    if (jj_3R_RightBinaryCondition_2604_3_150()) return true;
    return false;
  }

  private boolean jj_3R_FunctionCall_1937_77_459()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_CreateDocumentTypeStatement_3541_7_602()
 {
    if (jj_scan_token(EXTENDS)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateDocumentTypeStatement_3543_9_713()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_CreateDocumentTypeStatement_3539_7_601()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(NOT)) return true;
    if (jj_scan_token(EXISTS)) return true;
    return false;
  }

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

  private boolean jj_3R_Modifier_2003_5_340()
 {
    if (jj_scan_token(LBRACKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Modifier_2006_9_471()) {
    jj_scanpos = xsp;
    if (jj_3R_Modifier_2009_9_472()) {
    jj_scanpos = xsp;
    if (jj_3R_Modifier_2012_9_473()) {
    jj_scanpos = xsp;
    if (jj_3R_Modifier_2015_9_474()) return true;
    }
    }
    }
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

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

  private boolean jj_3R_Modifier_2002_3_155()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Modifier_2003_5_340()) {
    jj_scanpos = xsp;
    if (jj_3R_Modifier_2022_8_341()) {
    jj_scanpos = xsp;
    if (jj_3R_Modifier_2025_5_342()) return true;
    }
    }
    xsp = jj_scanpos;
    if (jj_3R_Modifier_2028_5_343()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CreateDocumentTypeStatement_3536_3_71()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(DOCUMENT)) return true;
    if (jj_scan_token(TYPE)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateDocumentTypeStatement_3539_7_601()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateDocumentTypeStatement_3541_7_602()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateDocumentTypeStatement_3548_7_603()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateDocumentTypeStatement_3554_7_604()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_BaseIdentifier_1993_5_576()
 {
    if (jj_3R_SuffixIdentifier_1973_3_149()) return true;
    return false;
  }

  private boolean jj_3R_TruncateRecordStatement_3520_11_538()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Rid_624_3_143()) return true;
    return false;
  }

  private boolean jj_3R_BaseIdentifier_1990_5_575()
 {
    if (jj_3R_LevelZeroIdentifier_1958_3_148()) return true;
    return false;
  }

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

  private boolean jj_3R_BaseIdentifier_1989_3_481()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BaseIdentifier_1990_5_575()) {
    jj_scanpos = xsp;
    if (jj_3R_BaseIdentifier_1993_5_576()) return true;
    }
    return false;
  }

  private boolean jj_3R_TruncateRecordStatement_3518_9_434()
 {
    if (jj_3R_Rid_624_3_143()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_TruncateRecordStatement_3520_11_538()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_SuffixIdentifier_1980_5_329()
 {
    if (jj_scan_token(STAR)) return true;
    return false;
  }

  private boolean jj_3R_TruncateRecordStatement_3515_5_256()
 {
    if (jj_scan_token(LBRACKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TruncateRecordStatement_3518_9_434()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_TruncateRecordStatement_3513_5_255()
 {
    if (jj_3R_Rid_624_3_143()) return true;
    return false;
  }

  private boolean jj_3R_SuffixIdentifier_1977_5_328()
 {
    if (jj_3R_RecordAttribute_1920_3_147()) return true;
    return false;
  }

  private boolean jj_3_61()
 {
    if (jj_3R_PCollection_3047_3_146()) return true;
    return false;
  }

  private boolean jj_3R_SuffixIdentifier_1974_5_327()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_TruncateRecordStatement_3511_3_88()
 {
    if (jj_scan_token(TRUNCATE)) return true;
    if (jj_scan_token(RECORD)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TruncateRecordStatement_3513_5_255()) {
    jj_scanpos = xsp;
    if (jj_3R_TruncateRecordStatement_3515_5_256()) return true;
    }
    return false;
  }

  private boolean jj_3R_SuffixIdentifier_1973_3_149()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SuffixIdentifier_1974_5_327()) {
    jj_scanpos = xsp;
    if (jj_3R_SuffixIdentifier_1977_5_328()) {
    jj_scanpos = xsp;
    if (jj_3R_SuffixIdentifier_1980_5_329()) return true;
    }
    }
    return false;
  }

  private boolean jj_3_60()
 {
    if (jj_3R_FunctionCall_1929_3_145()) return true;
    return false;
  }

  private boolean jj_3R_TruncateBucketStatement_3504_5_254()
 {
    if (jj_scan_token(UNSAFE)) return true;
    return false;
  }

  private boolean jj_3R_TruncateBucketStatement_3502_5_253()
 {
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_TruncateBucketStatement_3500_5_252()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_LevelZeroIdentifier_1964_5_326()
 {
    if (jj_3R_PCollection_3047_3_146()) return true;
    return false;
  }

  private boolean jj_3R_LevelZeroIdentifier_1962_5_325()
 {
    if (jj_scan_token(THIS)) return true;
    return false;
  }

  private boolean jj_3R_TruncateBucketStatement_3498_3_87()
 {
    if (jj_scan_token(TRUNCATE)) return true;
    if (jj_scan_token(BUCKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TruncateBucketStatement_3500_5_252()) {
    jj_scanpos = xsp;
    if (jj_3R_TruncateBucketStatement_3502_5_253()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_TruncateBucketStatement_3504_5_254()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_LevelZeroIdentifier_1959_5_324()
 {
    if (jj_3R_FunctionCall_1929_3_145()) return true;
    return false;
  }

  private boolean jj_3R_LevelZeroIdentifier_1958_3_148()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_LevelZeroIdentifier_1959_5_324()) {
    jj_scanpos = xsp;
    if (jj_3R_LevelZeroIdentifier_1962_5_325()) {
    jj_scanpos = xsp;
    if (jj_3R_LevelZeroIdentifier_1964_5_326()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_TruncateTypeStatement_3491_5_251()
 {
    if (jj_scan_token(UNSAFE)) return true;
    return false;
  }

  private boolean jj_3R_TruncateTypeStatement_3490_5_250()
 {
    if (jj_scan_token(POLYMORPHIC)) return true;
    return false;
  }

  private boolean jj_3R_MethodCall_1950_7_470()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_TruncateTypeStatement_3488_3_86()
 {
    if (jj_scan_token(TRUNCATE)) return true;
    if (jj_scan_token(TYPE)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TruncateTypeStatement_3490_5_250()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_TruncateTypeStatement_3491_5_251()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MethodCall_1949_5_339()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MethodCall_1950_7_470()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_MethodCall_1947_3_154()
 {
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MethodCall_1949_5_339()) jj_scanpos = xsp;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_FunctionCall_1937_7_322()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_FunctionCall_1937_77_459()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_BothPathItemOpt_3470_6_409()
 {
    if (jj_3R_MatchFilter_3228_3_401()) return true;
    return false;
  }

  private boolean jj_3R_BothPathItemOpt_3464_10_516()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_FunctionCall_1932_5_321()
 {
    if (jj_scan_token(DISTINCT)) return true;
    return false;
  }

  private boolean jj_3R_FunctionCall_1930_5_320()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_BothPathItemOpt_3462_7_408()
 {
    if (jj_scan_token(MINUS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BothPathItemOpt_3464_10_516()) jj_scanpos = xsp;
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

  private boolean jj_3R_FunctionCall_1929_3_145()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FunctionCall_1930_5_320()) {
    jj_scanpos = xsp;
    if (jj_3R_FunctionCall_1932_5_321()) return true;
    }
    if (jj_scan_token(LPAREN)) return true;
    xsp = jj_scanpos;
    if (jj_3R_FunctionCall_1937_7_322()) jj_scanpos = xsp;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_BothPathItemOpt_3461_5_204()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BothPathItemOpt_3462_7_408()) {
    jj_scanpos = xsp;
    if (jj_scan_token(193)) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_BothPathItemOpt_3470_6_409()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_RecordAttribute_1920_3_147()
 {
    if (jj_scan_token(RECORD_ATTRIBUTE)) return true;
    return false;
  }

  private boolean jj_3R_Alias_1913_3_456()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_InPathItemOpt_3443_6_407()
 {
    if (jj_3R_MatchFilter_3228_3_401()) return true;
    return false;
  }

  private boolean jj_3R_InPathItemOpt_3437_10_515()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_ArrayRangeSelector_1899_9_464()
 {
    if (jj_scan_token(ELLIPSIS)) return true;
    return false;
  }

  private boolean jj_3R_InPathItemOpt_3435_7_406()
 {
    if (jj_scan_token(MINUS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InPathItemOpt_3437_10_515()) jj_scanpos = xsp;
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

  private boolean jj_3R_ArrayRangeSelector_1897_9_463()
 {
    if (jj_scan_token(RANGE)) return true;
    return false;
  }

  private boolean jj_3R_InPathItemOpt_3433_5_203()
 {
    if (jj_scan_token(LT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InPathItemOpt_3435_7_406()) {
    jj_scanpos = xsp;
    if (jj_scan_token(193)) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_InPathItemOpt_3443_6_407()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_ArrayRangeSelector_1894_5_334()
 {
    if (jj_3R_ArrayNumberSelector_1849_3_462()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ArrayRangeSelector_1897_9_463()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayRangeSelector_1899_9_464()) return true;
    }
    if (jj_3R_ArrayNumberSelector_1849_3_462()) return true;
    return false;
  }

  private boolean jj_3R_ArrayRangeSelector_1882_5_333()
 {
    if (jj_scan_token(ELLIPSIS_INTEGER_RANGE)) return true;
    return false;
  }

  private boolean jj_3R_OutPathItemOpt_3415_6_405()
 {
    if (jj_3R_MatchFilter_3228_3_401()) return true;
    return false;
  }

  private boolean jj_3R_OutPathItemOpt_3408_10_514()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_OutPathItemOpt_3406_7_404()
 {
    if (jj_scan_token(MINUS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OutPathItemOpt_3408_10_514()) jj_scanpos = xsp;
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

  private boolean jj_3R_ArrayRangeSelector_1871_5_332()
 {
    if (jj_scan_token(INTEGER_RANGE)) return true;
    return false;
  }

  private boolean jj_3R_OutPathItemOpt_3405_5_202()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OutPathItemOpt_3406_7_404()) {
    jj_scanpos = xsp;
    if (jj_scan_token(193)) return true;
    }
    if (jj_scan_token(GT)) return true;
    xsp = jj_scanpos;
    if (jj_3R_OutPathItemOpt_3415_6_405()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_ArrayRangeSelector_1870_3_151()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ArrayRangeSelector_1871_5_332()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayRangeSelector_1882_5_333()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayRangeSelector_1894_5_334()) return true;
    }
    }
    return false;
  }

  private boolean jj_3_59()
 {
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_ArraySingleValuesSelector_1863_5_338()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_ArraySelector_1833_3_337()) return true;
    return false;
  }

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

  private boolean jj_3R_ArraySingleValuesSelector_1862_3_153()
 {
    if (jj_3R_ArraySelector_1833_3_337()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_ArraySingleValuesSelector_1863_5_338()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

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

  private boolean jj_3R_ArrayNumberSelector_1850_5_563()
 {
    if (jj_3R_InputParameter_1710_3_144()) return true;
    return false;
  }

  private boolean jj_3R_BothPathItem_3380_10_513()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

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

  private boolean jj_3R_ArrayNumberSelector_1849_3_462()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ArrayNumberSelector_1850_5_563()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayNumberSelector_1853_5_564()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_BothPathItem_3378_7_402()
 {
    if (jj_scan_token(MINUS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BothPathItem_3380_10_513()) jj_scanpos = xsp;
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

  private boolean jj_3R_BothPathItem_3377_5_201()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BothPathItem_3378_7_402()) {
    jj_scanpos = xsp;
    if (jj_scan_token(193)) return true;
    }
    if (jj_3R_MatchFilter_3228_3_401()) return true;
    return false;
  }

  private boolean jj_3R_ArraySelector_1840_5_469()
 {
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_ArraySelector_1837_5_468()
 {
    if (jj_3R_InputParameter_1710_3_144()) return true;
    return false;
  }

  private boolean jj_3R_ArraySelector_1834_5_467()
 {
    if (jj_3R_Rid_624_3_143()) return true;
    return false;
  }

  private boolean jj_3R_ArraySelector_1833_3_337()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ArraySelector_1834_5_467()) {
    jj_scanpos = xsp;
    if (jj_3R_ArraySelector_1837_5_468()) {
    jj_scanpos = xsp;
    if (jj_3R_ArraySelector_1840_5_469()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_NestedProjectionItem_1827_4_686()
 {
    if (jj_scan_token(AS)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_NestedProjectionItem_1826_4_685()
 {
    if (jj_3R_NestedProjection_1788_3_455()) return true;
    return false;
  }

  private boolean jj_3R_NestedProjectionItem_1823_6_773()
 {
    if (jj_scan_token(STAR)) return true;
    return false;
  }

  private boolean jj_3R_InPathItem_3353_10_861()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_NestedProjectionItem_1821_6_772()
 {
    if (jj_scan_token(BANG)) return true;
    return false;
  }

  private boolean jj_3R_NestedProjectionItem_1820_5_684()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NestedProjectionItem_1821_6_772()) jj_scanpos = xsp;
    if (jj_3R_Expression_2037_3_130()) return true;
    xsp = jj_scanpos;
    if (jj_3R_NestedProjectionItem_1823_6_773()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_InPathItem_3351_7_858()
 {
    if (jj_scan_token(MINUS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InPathItem_3353_10_861()) jj_scanpos = xsp;
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

  private boolean jj_3R_Projection_1764_59_640()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_ProjectionItem_1776_3_142()) return true;
    return false;
  }

  private boolean jj_3R_NestedProjectionItem_1817_5_683()
 {
    if (jj_scan_token(STAR)) return true;
    return false;
  }

  private boolean jj_3R_InPathItem_3349_5_853()
 {
    if (jj_scan_token(LT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InPathItem_3351_7_858()) {
    jj_scanpos = xsp;
    if (jj_scan_token(193)) return true;
    }
    if (jj_3R_MatchFilter_3228_3_401()) return true;
    return false;
  }

  private boolean jj_3R_NestedProjectionItem_1816_3_557()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NestedProjectionItem_1817_5_683()) {
    jj_scanpos = xsp;
    if (jj_3R_NestedProjectionItem_1820_5_684()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_NestedProjectionItem_1826_4_685()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_NestedProjectionItem_1827_4_686()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_Projection_1760_57_639()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_ProjectionItem_1776_3_142()) return true;
    return false;
  }

  private boolean jj_3R_NestedProjection_1799_5_558()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_NestedProjectionItem_1816_3_557()) return true;
    return false;
  }

  private boolean jj_3R_OutPathItem_3324_10_511()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_OutPathItem_3322_7_400()
 {
    if (jj_scan_token(MINUS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OutPathItem_3324_10_511()) jj_scanpos = xsp;
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

  private boolean jj_3R_NestedProjection_1788_3_455()
 {
    if (jj_scan_token(COLON)) return true;
    if (jj_scan_token(LBRACE)) return true;
    if (jj_3R_NestedProjectionItem_1816_3_557()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_NestedProjection_1799_5_558()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

  private boolean jj_3R_OutPathItem_3321_5_200()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OutPathItem_3322_7_400()) {
    jj_scanpos = xsp;
    if (jj_scan_token(193)) return true;
    }
    if (jj_scan_token(GT)) return true;
    if (jj_3R_MatchFilter_3228_3_401()) return true;
    return false;
  }

  private boolean jj_3R_ProjectionItem_1779_5_316()
 {
    if (jj_scan_token(AS)) return true;
    if (jj_3R_Alias_1913_3_456()) return true;
    return false;
  }

  private boolean jj_3R_ProjectionItem_1778_5_315()
 {
    if (jj_3R_NestedProjection_1788_3_455()) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3311_5_712()
 {
    if (jj_scan_token(PATH_ALIAS)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_ProjectionItem_1776_4_314()
 {
    if (jj_scan_token(BANG)) return true;
    return false;
  }

  private boolean jj_3R_ProjectionItem_1776_3_142()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ProjectionItem_1776_4_314()) jj_scanpos = xsp;
    if (jj_3R_Expression_2037_3_130()) return true;
    xsp = jj_scanpos;
    if (jj_3R_ProjectionItem_1778_5_315()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_ProjectionItem_1779_5_316()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3303_9_796()
 {
    if (jj_scan_token(FALSE)) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3307_5_711()
 {
    if (jj_scan_token(DEPTH_ALIAS)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3301_9_795()
 {
    if (jj_scan_token(TRUE)) return true;
    return false;
  }

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

  private boolean jj_3R_MatchFilterItem_3298_5_710()
 {
    if (jj_scan_token(OPTIONAL)) return true;
    if (jj_scan_token(COLON)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchFilterItem_3301_9_795()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3303_9_796()) return true;
    }
    return false;
  }

  private boolean jj_3R_Projection_1762_5_520()
 {
    if (jj_scan_token(DISTINCT)) return true;
    if (jj_3R_ProjectionItem_1776_3_142()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_Projection_1764_59_640()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3294_5_709()
 {
    if (jj_scan_token(MAXDEPTH)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_Projection_1759_5_519()
 {
    if (jj_3R_ProjectionItem_1776_3_142()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_Projection_1760_57_639()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_Projection_1758_3_418()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Projection_1759_5_519()) {
    jj_scanpos = xsp;
    if (jj_3R_Projection_1762_5_520()) return true;
    }
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3286_5_708()
 {
    if (jj_scan_token(WHILE)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_WhereClause_2378_3_157()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3278_5_707()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_WhereClause_2378_3_157()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_NamedParameter_1743_5_562()
 {
    if (jj_scan_token(FROM)) return true;
    return false;
  }

  private boolean jj_3R_NamedParameter_1741_5_561()
 {
    if (jj_scan_token(LIMIT)) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3274_5_706()
 {
    if (jj_scan_token(AS)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_NamedParameter_1739_5_560()
 {
    if (jj_scan_token(SKIP2)) return true;
    return false;
  }

  private boolean jj_3R_NamedParameter_1737_5_559()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3266_9_794()
 {
    if (jj_scan_token(BUCKET_NUMBER_IDENTIFIER)) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3270_5_705()
 {
    if (jj_scan_token(RID)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Rid_624_3_143()) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3264_9_793()
 {
    if (jj_scan_token(BUCKET_IDENTIFIER)) return true;
    return false;
  }

  private boolean jj_3R_NamedParameter_1735_3_458()
 {
    if (jj_scan_token(COLON)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NamedParameter_1737_5_559()) {
    jj_scanpos = xsp;
    if (jj_3R_NamedParameter_1739_5_560()) {
    jj_scanpos = xsp;
    if (jj_3R_NamedParameter_1741_5_561()) {
    jj_scanpos = xsp;
    if (jj_3R_NamedParameter_1743_5_562()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3258_10_792()
 {
    if (jj_3R_PInteger_907_3_65()) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3262_5_704()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchFilterItem_3264_9_793()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3266_9_794()) return true;
    }
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3256_10_791()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1691_40_419()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_PositionalParameter_1721_3_457()
 {
    if (jj_scan_token(HOOK)) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3253_5_703()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_scan_token(COLON)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchFilterItem_3256_10_791()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3258_10_792()) return true;
    }
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3249_5_702()
 {
    if (jj_scan_token(TYPES)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_InputParameter_1713_5_319()
 {
    if (jj_3R_NamedParameter_1735_3_458()) return true;
    return false;
  }

  private boolean jj_3R_InputParameter_1711_5_318()
 {
    if (jj_3R_PositionalParameter_1721_3_457()) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3245_5_701()
 {
    if (jj_scan_token(TYPE)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_InputParameter_1710_3_144()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InputParameter_1711_5_318()) {
    jj_scanpos = xsp;
    if (jj_3R_InputParameter_1713_5_319()) return true;
    }
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3244_3_595()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchFilterItem_3245_5_701()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3249_5_702()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3253_5_703()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3262_5_704()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3270_5_705()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3274_5_706()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3278_5_707()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3286_5_708()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3294_5_709()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3298_5_710()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3307_5_711()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3311_5_712()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_MatchFilter_3233_11_596()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_MatchFilterItem_3244_3_595()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1703_5_233()
 {
    if (jj_3R_Wait_3024_3_421()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1702_5_232()
 {
    if (jj_3R_Retry_3032_3_420()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1701_5_231()
 {
    if (jj_3R_InsertBody_1565_3_136()) return true;
    return false;
  }

  private boolean jj_3R_MatchFilter_3231_9_512()
 {
    if (jj_3R_MatchFilterItem_3244_3_595()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MatchFilter_3233_11_596()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1700_5_230()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(NOT)) return true;
    if (jj_scan_token(EXISTS)) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1691_5_229()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1691_40_419()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_MatchFilter_3228_3_401()
 {
    if (jj_scan_token(LBRACE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchFilter_3231_9_512()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItemArrows_3221_7_855()
 {
    if (jj_3R_MatchFilter_3228_3_401()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1690_3_81()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(EDGE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1691_5_229()) jj_scanpos = xsp;
    if (jj_scan_token(FROM)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    if (jj_scan_token(TO)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1700_5_230()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1701_5_231()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1702_5_232()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1703_5_233()) jj_scanpos = xsp;
    return false;
  }

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

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

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

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

  private boolean jj_3R_MultiMatchPathItemArrows_3211_9_510()
 {
    if (jj_3R_BothPathItemOpt_3461_5_204()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexStatementNoTarget_1680_3_77()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(VERTEX)) return true;
    if (jj_3R_InsertBody_1565_3_136()) return true;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItemArrows_3208_9_509()
 {
    if (jj_3R_InPathItemOpt_3433_5_203()) return true;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItemArrows_3205_9_508()
 {
    if (jj_3R_OutPathItemOpt_3405_5_202()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexStatement_1674_5_227()
 {
    if (jj_3R_InsertBody_1565_3_136()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexStatement_1673_5_226()
 {
    if (jj_scan_token(RETURN)) return true;
    if (jj_3R_Projection_1758_3_418()) return true;
    return false;
  }

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

  private boolean jj_3R_MultiMatchPathItemArrows_3204_7_398()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MultiMatchPathItemArrows_3205_9_508()) {
    jj_scanpos = xsp;
    if (jj_3R_MultiMatchPathItemArrows_3208_9_509()) {
    jj_scanpos = xsp;
    if (jj_3R_MultiMatchPathItemArrows_3211_9_510()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_CreateVertexStatement_1670_5_225()
 {
    if (jj_3R_Bucket_2320_3_141()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexStatement_1665_9_417()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItemArrows_3200_3_198()
 {
    if (jj_scan_token(DOT)) return true;
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    if (jj_3R_MultiMatchPathItemArrows_3204_7_398()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MultiMatchPathItemArrows_3204_7_398()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    xsp = jj_scanpos;
    if (jj_3R_MultiMatchPathItemArrows_3221_7_855()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_CreateVertexStatement_1661_5_224()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexStatement_1665_9_417()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItem_3190_7_857()
 {
    if (jj_3R_MatchFilter_3228_3_401()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexStatement_1659_3_78()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(VERTEX)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexStatement_1661_5_224()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateVertexStatement_1670_5_225()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexStatement_1673_5_226()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexStatement_1674_5_227()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItem_3186_7_856()
 {
    if (jj_3R_MatchPathItem_3151_3_197()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexStatementEmpty_1650_5_228()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexStatementEmpty_1647_3_79()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(VERTEX)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexStatementEmpty_1650_5_228()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItem_3179_3_199()
 {
    if (jj_scan_token(DOT)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_MatchPathItemFirst_3170_3_399()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MultiMatchPathItem_3186_7_856()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    xsp = jj_scanpos;
    if (jj_3R_MultiMatchPathItem_3190_7_857()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MatchPathItemFirst_3172_7_860()
 {
    if (jj_3R_MatchFilter_3228_3_401()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexStatementEmptyNoTarget_1640_3_80()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(VERTEX)) return true;
    return false;
  }

  private boolean jj_3R_InsertBody_1629_12_454()
 {
    if (jj_3R_InputParameter_1710_3_144()) return true;
    return false;
  }

  private boolean jj_3R_InsertBody_1627_12_453()
 {
    if (jj_3R_Json_3078_3_210()) return true;
    return false;
  }

  private boolean jj_3R_MatchPathItemFirst_3170_3_399()
 {
    if (jj_3R_FunctionCall_1929_3_145()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchPathItemFirst_3172_7_860()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_FieldMatchPathItem_3163_7_859()
 {
    if (jj_3R_MatchFilter_3228_3_401()) return true;
    return false;
  }

  private boolean jj_3R_InsertBody_1625_7_310()
 {
    if (jj_scan_token(CONTENT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertBody_1627_12_453()) {
    jj_scanpos = xsp;
    if (jj_3R_InsertBody_1629_12_454()) return true;
    }
    return false;
  }

  private boolean jj_3R_FieldMatchPathItem_3160_3_854()
 {
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FieldMatchPathItem_3163_7_859()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_InsertBody_1617_9_452()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_MatchPathItem_3153_7_403()
 {
    if (jj_3R_MatchFilter_3228_3_401()) return true;
    return false;
  }

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

  private boolean jj_3R_MatchPathItem_3151_3_197()
 {
    if (jj_3R_MethodCall_1947_3_154()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchPathItem_3153_7_403()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_MatchExpression_3140_9_842()
 {
    if (jj_3R_FieldMatchPathItem_3160_3_854()) return true;
    return false;
  }

  private boolean jj_3_50()
 {
    if (jj_scan_token(SET)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_InsertBody_1617_9_452()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_InsertBody_1601_11_556()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_MatchExpression_3137_9_841()
 {
    if (jj_3R_BothPathItem_3377_5_201()) return true;
    return false;
  }

  private boolean jj_3R_MatchExpression_3135_9_840()
 {
    if (jj_3R_InPathItem_3349_5_853()) return true;
    return false;
  }

  private boolean jj_3R_MatchExpression_3132_9_839()
 {
    if (jj_3R_OutPathItem_3321_5_200()) return true;
    return false;
  }

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

  private boolean jj_3R_InsertBody_1593_9_451()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_InsertBody_1601_11_556()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

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

  private boolean jj_3R_InsertBody_1588_9_450()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

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

  private boolean jj_3R_MatchExpression_3122_7_817()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_130()) {
    jj_scanpos = xsp;
    if (jj_3_131()) {
    jj_scanpos = xsp;
    if (jj_3_132()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchExpression_3132_9_839()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchExpression_3135_9_840()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchExpression_3137_9_841()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchExpression_3140_9_842()) return true;
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_MatchExpression_3119_3_578()
 {
    if (jj_3R_MatchFilter_3228_3_401()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MatchExpression_3122_7_817()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_InsertBody_1575_9_140()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_Json_3103_11_771()
 {
    if (jj_scan_token(CHARACTER_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_Json_3101_11_770()
 {
    if (jj_3R_PString_712_3_247()) return true;
    return false;
  }

  private boolean jj_3R_Json_3099_11_769()
 {
    if (jj_scan_token(RECORD_ATTRIBUTE)) return true;
    return false;
  }

  private boolean jj_3_49()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_InsertBody_1575_9_140()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    if (jj_scan_token(VALUES)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_InsertBody_1588_9_450()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_InsertBody_1593_9_451()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_Json_3097_11_768()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_Json_3094_9_682()
 {
    if (jj_scan_token(COMMA)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Json_3097_11_768()) {
    jj_scanpos = xsp;
    if (jj_3R_Json_3099_11_769()) {
    jj_scanpos = xsp;
    if (jj_3R_Json_3101_11_770()) {
    jj_scanpos = xsp;
    if (jj_3R_Json_3103_11_771()) return true;
    }
    }
    }
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    return false;
  }

  private boolean jj_3R_InsertBody_1565_3_136()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_49()) {
    jj_scanpos = xsp;
    if (jj_3_50()) {
    jj_scanpos = xsp;
    if (jj_3R_InsertBody_1625_7_310()) return true;
    }
    }
    return false;
  }

  private boolean jj_3_47()
 {
    if (jj_3R_SelectStatement_1142_3_129()) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1524_40_691()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_Json_3089_9_681()
 {
    if (jj_scan_token(CHARACTER_LITERAL)) return true;
    return false;
  }

  private boolean jj_3R_Json_3087_9_680()
 {
    if (jj_3R_PString_712_3_247()) return true;
    return false;
  }

  private boolean jj_3R_Json_3085_9_679()
 {
    if (jj_scan_token(RECORD_ATTRIBUTE)) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1554_5_572()
 {
    if (jj_scan_token(UNSAFE)) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1547_11_138()
 {
    if (jj_3R_SelectWithoutTargetStatement_1121_3_311()) return true;
    return false;
  }

  private boolean jj_3R_Json_3083_9_678()
 {
    if (jj_3R_Identifier_726_1_139()) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1544_11_137()
 {
    if (jj_3R_SelectStatement_1142_3_129()) return true;
    return false;
  }

  private boolean jj_3_46()
 {
    if (jj_3R_SelectStatement_1142_3_129()) return true;
    return false;
  }

  private boolean jj_3R_Json_3081_7_554()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Json_3083_9_678()) {
    jj_scanpos = xsp;
    if (jj_3R_Json_3085_9_679()) {
    jj_scanpos = xsp;
    if (jj_3R_Json_3087_9_680()) {
    jj_scanpos = xsp;
    if (jj_3R_Json_3089_9_681()) return true;
    }
    }
    }
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Expression_2037_3_130()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_Json_3094_9_682()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3_48()
 {
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1544_11_137()) {
    jj_scanpos = xsp;
    if (jj_3R_InsertStatement_1547_11_138()) return true;
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1537_10_788()
 {
    if (jj_3R_SelectWithoutTargetStatement_1121_3_311()) return true;
    return false;
  }

  private boolean jj_3R_Json_3078_3_210()
 {
    if (jj_scan_token(LBRACE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Json_3081_7_554()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1534_10_787()
 {
    if (jj_3R_SelectStatement_1142_3_129()) return true;
    return false;
  }

  private boolean jj_3_45()
 {
    if (jj_3R_InsertBody_1565_3_136()) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1533_8_693()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1534_10_787()) {
    jj_scanpos = xsp;
    if (jj_3R_InsertStatement_1537_10_788()) return true;
    }
    return false;
  }

  private boolean jj_3R_TraverseProjectionItem_3067_7_838()
 {
    if (jj_3R_Modifier_2002_3_155()) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1531_7_692()
 {
    if (jj_scan_token(FROM)) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1531_5_571()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1531_7_692()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1533_8_693()) {
    jj_scanpos = xsp;
    if (jj_3_48()) return true;
    }
    return false;
  }

  /** Generated Token Manager. */
  public SqlParserTokenManager token_source;
  /** 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[363];
  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 private int[] jj_la1_4;
  static private int[] jj_la1_5;
  static private int[] jj_la1_6;
  static private int[] jj_la1_7;
  static {
	   jj_la1_init_0();
	   jj_la1_init_1();
	   jj_la1_init_2();
	   jj_la1_init_3();
	   jj_la1_init_4();
	   jj_la1_init_5();
	   jj_la1_init_6();
	   jj_la1_init_7();
	}
	private static void jj_la1_init_0() {
	   jj_la1_0 = new int[] {0x0,0x0,0xc4041000,0xd48ff000,0x10000000,0x0,0xc4041000,0x0,0x0,0x0,0xc4041000,0xe000,0x10000,0x0,0x1000,0x0,0x0,0xe000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc4041000,0x0,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc4041000,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x8000000,0x0,0x0,0x0,0x0,0x0,0xc4041000,0x4000000,0x8000000,0x0,0x8000000,0x0,0x8000000,0x0,0xc4041000,0x8000000,0x0,0x0,0x1000000,0x0,0xc4041000,0x0,0x8000000,0x0,0x0,0x0,0x1000000,0x0,0xc4041000,0x0,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc4041000,0x0,0x2000000,0x2000,0x2000,0x2000,0x2002000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc4041000,0x0,0x0,0x0,0x0,0x0,0xc6041000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc4041000,0x0,0x0,0x0,0x0,0x0,0xc4041000,0x0,0xc4041000,0x0,0xc4041000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc4051000,0x0,0xc4041000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc4041000,0x0,0x0,0xc4041000,0x0,0x0,0x0,0x0,0xc4041000,0x0,0x0,0x0,0x0,0x0,0xc4041000,0x0,0xc4041000,0x0,0xc4041000,0x0,0xc4041000,0x0,0x2000,0xc4041000,0x2000,0xc4041000,0x0,0x0,0xc4041000,0x0,0x0,0x0,0xc4041000,0x0,0x0,0xc4041000,0x0,0x0,0xc4041000,0x0,0x0,0x0,0xc4041000,0x0,0x0,0xc4041000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc4041000,0xc4041000,0x0,0xc4041000,0xc4041000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18000000,0xc4041000,0x0,0x0,0x18000000,0xc4041000,0x0,0xc4041000,0x0,0xc4041000,0x0,0xc4041000,0x0,0x0,0xc4041000,0x0,0x0,0xc4041000,0x0,0x0,0x0,0x0,0xc4041000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0xc4041000,0x0,0x0,0x0,0x0,0x0,0xc4041000,0x0,0x0,0x0,0xc4041000,0x40000000,0x0,0x0,0xc4041000,0x40000000,0x0,0xc4041000,0xc4041000,0x0,0x0,0xc4041000,0xc4041000,0x0,0x0,0xc4041000,0xc4041000,0x0,0x0,0xc4041000,0xc4041000,0x0,0x0,0x0,0xc4041000,0x0,0x0,0x8bf000,0x0,0x0,0x0,0x0,0x0,0x0,0xc4041000,0xd48ff000,0x10000000,0xd48ff000,0x10000000,0xd48ff000,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
	}
	private static void jj_la1_init_1() {
	   jj_la1_1 = new int[] {0x0,0x0,0x4404003f,0x6484063f,0x0,0x0,0x4404003f,0x0,0x0,0x0,0x4404023f,0x0,0x0,0x0,0x40800000,0x0,0x20000000,0x0,0x20000000,0x0,0x8000,0x50000,0x58000,0x58000,0x80000,0x4404023f,0x20000000,0x0,0x2000,0x1000,0x0,0x8000,0x50000,0x58000,0x58000,0x80000,0x0,0x4404003f,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x200000,0x2000,0x1000,0x0,0x50000,0x8000,0x0,0x800000,0x0,0x8000,0x80000000,0x0,0x0,0x0,0x4404003f,0x0,0x0,0x8000,0x0,0x8000,0x0,0x8000,0x4404003f,0x0,0x8000,0x7f,0x0,0x3000000,0x4404023f,0x800000,0x0,0x8000,0x80000,0x7f,0x0,0x3000000,0x4404023f,0x800000,0x0,0x8000,0x80000,0x0,0x0,0x18,0x42,0x0,0x0,0x7f,0x0,0x0,0x0,0x0,0x0,0x4404003f,0x800000,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x800000,0x0,0x4404003f,0x0,0x11,0x10000000,0x8000000,0x0,0x4405803f,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x4404023f,0x0,0x200000,0x0,0x0,0x0,0x4404003f,0x0,0x4404023f,0x0,0x4404023f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4404023f,0x0,0x4404023f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4404003f,0x0,0x0,0x4404003f,0x0,0x0,0x100,0x80,0x4404023f,0x200,0x0,0x0,0x0,0x0,0x4404003f,0x0,0x4404023f,0x0,0x4404023f,0x0,0x4404023f,0x0,0x0,0x4404023f,0x0,0x4404023f,0x0,0x0,0x4404003f,0x500000,0x500000,0x0,0x4404003f,0x500000,0x500000,0x4404003f,0x0,0x0,0x4404003f,0x500000,0x500000,0x0,0x4404003f,0x500000,0x500000,0x4404003f,0x0,0x0,0x0,0x0,0x0,0x50000,0x800000,0x800000,0x0,0x4404023f,0x4404003f,0x0,0x4404003f,0x4404003f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200000,0x4404003f,0x0,0x0,0x200000,0x4404003f,0x0,0x4404003f,0x0,0x4404003f,0x0,0x4404003f,0x0,0x0,0x4404003f,0x0,0x0,0x4404003f,0x0,0x0,0x0,0x80000000,0x4404003f,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x4404003f,0x0,0x80000000,0x0,0x0,0x0,0x4404003f,0x0,0x0,0x0,0x4404003f,0x0,0x4000,0x0,0x4404003f,0x0,0x4000,0x4404003f,0x4404003f,0x0,0x0,0x4404003f,0x4404003f,0x0,0x0,0x4404003f,0x4404003f,0x30000,0x0,0x4404003f,0x4404003f,0x0,0x0,0x0,0x4404003f,0x0,0x0,0x60800400,0x0,0x80,0x0,0x0,0x0,0x10000000,0x4404023f,0x6484063f,0x0,0x6484063f,0x0,0x6484063f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
	}
	private static void jj_la1_init_2() {
	   jj_la1_2 = new int[] {0x0,0x0,0xffedff38,0xfffdff38,0x0,0x0,0xffedff38,0x0,0x0,0x0,0xffedff38,0x0,0x0,0x0,0x100000,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x80,0x0,0x0,0x6,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0xffedff38,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0x0,0xffedff38,0x0,0x0,0x0,0x0,0xffedff38,0x0,0x28,0x0,0x0,0x28,0xffedff38,0x0,0xffedff38,0x0,0xffedff38,0x0,0xffedff38,0x28,0x0,0xffedff38,0x0,0xffedff38,0x0,0x0,0xffedff38,0x0,0x0,0x0,0xffedff38,0x0,0x0,0xffedff38,0x0,0x0,0xffedff38,0x0,0x0,0x0,0xffedff38,0x0,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x1000,0x0,0xffedff38,0xffedff38,0x0,0xffedff38,0xffedff38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa80,0xffedff38,0x0,0x0,0xa80,0xffedff38,0x0,0xffedff38,0x0,0xffedff38,0x0,0xffedff38,0x0,0x0,0xffedff38,0x0,0x0,0xffedff38,0x0,0x0,0x20000,0x0,0xffedff38,0x0,0x0,0x0,0x0,0x0,0x0,0x80000,0x0,0x0,0x200000,0x0,0x0,0x80000,0x0,0x0,0x200000,0x0,0x0,0x80000,0x0,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1400400,0xffedff38,0x0,0x0,0x0,0x0,0x0,0xffedff38,0x0,0x20000000,0x0,0xffedff38,0x0,0x0,0x0,0xffedff38,0x0,0x0,0xffedff38,0xffedff38,0x0,0x40000000,0xffedff38,0xffedff38,0x0,0x40000000,0xffedff38,0xffedff38,0x0,0x0,0xffedff38,0xffedff38,0x0,0x0,0x0,0xffedff38,0x0,0x0,0x8912000,0x0,0x0,0x0,0x0,0x0,0x0,0xffedff38,0xfffdff38,0x0,0xfffdff38,0x0,0xfffdff38,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x0,};
	}
	private static void jj_la1_init_3() {
	   jj_la1_3 = new int[] {0x0,0x0,0xefffffee,0xefffffee,0x1000000,0x0,0xefffffee,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x4,0x41e00060,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x1000000,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0xefffffee,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0xefffffee,0x0,0xefffffee,0x0,0xefffffee,0x0,0x0,0xefffffee,0x0,0xefffffee,0x0,0x0,0xefffffee,0x0,0x0,0x0,0xefffffee,0x0,0x0,0xefffffee,0x0,0x0,0xefffffee,0x0,0x0,0x0,0xefffffee,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0xefffffee,0x0,0xefffffee,0xefffffee,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x0,0xefffffee,0x0,0xefffffee,0x0,0xefffffee,0x0,0xefffffee,0x0,0x0,0xefffffee,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0xefffffee,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xefffffee,0x1000000,0x0,0x1000000,0x0,0x0,0xefffffee,0x1000000,0x0,0x1000000,0xefffffee,0x0,0x0,0x0,0xefffffee,0x0,0x0,0xefffffee,0xefffffee,0x0,0x0,0xefffffee,0xefffffee,0x0,0x0,0xefffffee,0xefffffee,0x0,0x1,0xefffffee,0xefffffee,0x1000000,0x1000000,0x0,0xefffffee,0x1000000,0x20000000,0x41e00864,0xc000000,0x0,0xc000000,0xc000000,0x2000000,0x0,0xefffffee,0xefffffee,0x1000000,0xefffffee,0x1000000,0xefffffee,0x1000000,0x0,0x0,0x0,0x8,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x80000,0x100000,};
	}
	private static void jj_la1_init_4() {
	   jj_la1_4 = new int[] {0xc000,0x0,0x400fd7,0x8440bfff,0x20,0x8000,0xfd7,0x0,0x0,0x0,0x8440bfdf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8440bfdf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3fdf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x400000,0xfd7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfd7,0x0,0x0,0x0,0x0,0x0,0x8440bfdf,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x8440bfdf,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfd7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfd7,0x0,0x0,0x0,0x0,0x0,0xfd7,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x8440bfdf,0x0,0x0,0x0,0x0,0x400000,0xfdf,0x0,0x8440bfdf,0x0,0x8440bfdf,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8440bfdf,0x80008000,0x8440bfdf,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0xfd7,0x0,0x0,0xfd7,0x0,0x0,0x0,0x0,0x8440bfdf,0x0,0x0,0x0,0x0,0x0,0x80008fd7,0x0,0x8440bfdf,0x0,0x8440bfdf,0x0,0x8440bfdf,0x0,0x0,0x8440bfdf,0x0,0x8440bfdf,0x80008000,0x0,0x2fd7,0x0,0x0,0x0,0x2fd7,0x0,0x0,0x2fd7,0x0,0x0,0x2fd7,0x0,0x0,0x0,0x2fd7,0x0,0x0,0x2fd7,0x0,0x0,0x400000,0x400000,0x400000,0x0,0x0,0x0,0x0,0x8440bfdf,0x8000afd7,0x0,0x8000afd7,0x8000afd7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x582,0x400fd7,0x0,0x0,0x582,0xfd7,0x0,0xfd7,0x0,0xfd7,0x0,0xfd7,0x0,0x0,0xfd7,0x0,0x0,0xfd7,0x0,0x0,0x0,0x0,0x400fd7,0x0,0x0,0x400000,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfd7,0x0,0x0,0x0,0x0,0x0,0xfd7,0x0,0x0,0x0,0x2fd7,0x0,0x0,0x0,0x2fd7,0x0,0x0,0xfd7,0xfd7,0x0,0x0,0xfd7,0xfd7,0x0,0x0,0xfd7,0xfd7,0x0,0x0,0xfd7,0xfd7,0x0,0x0,0x0,0x400fd7,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8440bfdf,0x8440bfff,0x20,0x8440bfff,0x20,0x8440bfff,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
	}
	private static void jj_la1_init_5() {
	   jj_la1_5 = new int[] {0x0,0x80,0x0,0x3000ab9,0x800,0x1,0x0,0x0,0x0,0x800,0x30002b9,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34002b9,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x200,0x0,0x0,0x0,0x0,0x0,0x1000,0x80,0x2000000,0x2000000,0x0,0x1000,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x80,0x280,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34002b9,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x34002b9,0x0,0x0,0x0,0x0,0x1000,0x1000,0x0,0x0,0x1000,0x1000,0x0,0x2200,0x20000,0x2200,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x1000,0x1000,0x1000,0x1000,0x1000,0x3000080,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x3000000,0x0,0x1000,0x1000,0x0,0x400000,0x2000000,0x0,0x1000,0x400000,0x0,0x34002b9,0x2000000,0x0,0x1000,0x0,0x3000006,0x0,0x1000,0x30002b9,0x1000,0x30002b9,0x0,0x0,0x200,0x2000,0x18,0x80,0x40000000,0x18,0x80,0x0,0x30002b9,0x1,0x3000201,0x1000,0x20,0x1000,0x3000000,0x2001000,0x2001000,0x80,0x200,0x3000020,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x30002b9,0x18,0x3c3e0000,0x60000,0x0,0x3c3e0000,0x1,0x1000,0x30002b9,0x1000,0x30002b9,0x1000,0x30002b9,0x3c3e0000,0x0,0x3000221,0x0,0x3000221,0x3000001,0x2200,0x0,0x0,0x0,0x2200,0x0,0x0,0x0,0x20,0x1000,0x2200,0x0,0x0,0x0,0x2200,0x0,0x0,0x0,0x20,0x1000,0x1000,0x3000000,0x3000000,0x3000000,0x0,0x0,0x0,0x1000,0x30002b9,0x1,0x1000,0x1,0x1,0x102000,0x100000,0x2000,0x80,0x80,0x80,0x80,0x100000,0x80,0x1000,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x80,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x1000,0x80,0x280,0x0,0x1000,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x3000000,0x0,0x0,0x0,0x1000,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x30002b9,0x3000ab9,0x800,0x3000ab9,0x800,0x3000ab9,0x800,0x0,0x1000,0x0,0x0,0x18,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x1000,0x0,0x0,0x1000,0x0,0x0,};
	}
	private static void jj_la1_init_6() {
	   jj_la1_6 = new int[] {0x0,0x0,0x10000008,0x10000018,0x0,0x0,0x10000000,0x8,0x8,0x0,0x10000018,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000018,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000010,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x8,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x10000018,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000018,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf000,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x10000018,0x0,0x0,0x0,0x6000000,0x0,0x10000000,0x0,0x10000018,0x0,0x10000018,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1800f7c,0x10000018,0x0,0x10000018,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x18000018,0x0,0x60000000,0x0,0x8000000,0x78000000,0x10000000,0x0,0x10000018,0x0,0x10000018,0x0,0x10000018,0x60000000,0x0,0x10000018,0x0,0x10000018,0x0,0x0,0x10000000,0x0,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,0x0,0x8,0x8,0x8,0x0,0x0,0x0,0x0,0x10000018,0x10000000,0x0,0x10000000,0x10000000,0xa,0x0,0x0,0x0,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0x10000008,0x0,0x0,0x0,0x10000000,0xa,0x10000000,0xa,0x10000000,0xa,0x10000000,0xa,0x0,0x10000000,0xa,0x0,0x10000000,0xa,0x0,0x0,0x0,0x10000008,0x0,0x0,0x8,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc,0x0,0xc,0xc,0xc,0x0,0xc,0x0,0x10000000,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x10000000,0x0,0x0,0x10000000,0x10000000,0x0,0x0,0x10000000,0x10000000,0x0,0x0,0x10000010,0x10000010,0x0,0x0,0x10,0x10000008,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000018,0x10000018,0x0,0x10000018,0x0,0x10000018,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
	}
	private static void jj_la1_init_7() {
	   jj_la1_7 = new int[] {0x0,0x0,0x1900,0x4001900,0x0,0x0,0x1900,0x0,0x0,0x0,0x4001900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4001900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x4000000,0x1900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1900,0x0,0x0,0x0,0x0,0x0,0x4001900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4001900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x61900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x400,0x0,0x400,0x1900,0x0,0x0,0x0,0x0,0x0,0x1900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4001900,0x0,0x0,0x0,0x0,0x0,0x1900,0x0,0x4001900,0x0,0x4001900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4001900,0x0,0x1900,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x60400,0x800000,0x1900,0x60000,0x0,0x1900,0x1c000,0x1e000,0x0,0x0,0x4001900,0x0,0x10,0x0,0x0,0x10,0x1900,0x0,0x4001900,0x0,0x4001900,0x0,0x4001900,0x11,0x0,0x1900,0x0,0x1900,0x0,0x0,0x1900,0x0,0x0,0x0,0x1900,0x0,0x0,0x1900,0x0,0x0,0x1900,0x0,0x0,0x0,0x1900,0x0,0x0,0x1900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4001900,0x1900,0x0,0x1900,0x1900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x60400,0x1900,0x60000,0x0,0x60400,0x1900,0x0,0x1900,0x0,0x1900,0x0,0x1900,0x0,0x0,0x1900,0x0,0x0,0x1900,0x0,0x0,0x0,0x0,0x1900,0x0,0x0,0x4000000,0x4000000,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x1900,0x0,0x0,0x0,0x0,0x0,0x1900,0x0,0x0,0x0,0x1900,0x100,0x0,0x0,0x1900,0x100,0x0,0x1900,0x1900,0x0,0x0,0x1900,0x1900,0x0,0x0,0x1900,0x1900,0x0,0x0,0x1900,0x1900,0x0,0x0,0x0,0x1900,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4001900,0x4001900,0x0,0x4001900,0x0,0x4001900,0x0,0x780000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x780000,0x780000,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,};
	}
  final private JJCalls[] jj_2_rtns = new JJCalls[149];
  private boolean jj_rescan = false;
  private int jj_gc = 0;

  /** Constructor with user supplied CharStream. */
  public SqlParser(CharStream stream) {
	 token_source = new SqlParserTokenManager(stream);
	 token = new Token();
	 jj_ntk = -1;
	 jj_gen = 0;
	 for (int i = 0; i < 363; 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(CharStream stream) {
	 token_source.ReInit(stream);
	 token = new Token();
	 jj_ntk = -1;
	 jjtree.reset();
	 jj_gen = 0;
	 for (int i = 0; i < 363; 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 SqlParser(SqlParserTokenManager tm) {
	 token_source = tm;
	 token = new Token();
	 jj_ntk = -1;
	 jj_gen = 0;
	 for (int i = 0; i < 363; 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(SqlParserTokenManager tm) {
	 token_source = tm;
	 token = new Token();
	 jj_ntk = -1;
	 jjtree.reset();
	 jj_gen = 0;
	 for (int i = 0; i < 363; 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();
  }

  @SuppressWarnings("serial")
  static private final class LookaheadSuccess extends java.lang.Error {
    @Override
    public Throwable fillInStackTrace() {
      return this;
    }
  }
  static private final 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_f() {
	 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];
	   }

	   for (int[] oldentry : jj_expentries) {
		 if (oldentry.length == jj_expentry.length) {
		   boolean isMatched = true;

		   for (int i = 0; i < jj_expentry.length; i++) {
			 if (oldentry[i] != jj_expentry[i]) {
			   isMatched = false;
			   break;
			 }

		   }
		   if (isMatched) {
			 jj_expentries.add(jj_expentry);
			 break;
		   }
		 }
	   }

	   if (pos != 0) {
		 jj_lasttokens[(jj_endpos = pos) - 1] = kind;
	   }
	 }
  }

  /** Generate ParseException. */
  public ParseException generateParseException() {
	 jj_expentries.clear();
	 boolean[] la1tokens = new boolean[251];
	 if (jj_kind >= 0) {
	   la1tokens[jj_kind] = true;
	   jj_kind = -1;
	 }
	 for (int i = 0; i < 363; 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;
			 }
		   }
		   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 - 2025 Weber Informatics LLC | Privacy Policy