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

import java.io.*;
import java.util.*;
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;
  private String command;

  public SqlParser(final Database database, final String command) {
    this(database, new ByteArrayInputStream(command.getBytes()));
    this.command = command;
  }

  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(253);
        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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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<Statement> ParseScript() throws ParseException {/*@bgen(jjtree) ParseScript */
  ParseScript jjtn000 = new ParseScript(JJTPARSESCRIPT);
  boolean jjtc000 = true;
  jjtree.openNodeScope(jjtn000);
  jjtn000.jjtSetFirstToken(getToken(1));List<Statement> result = new ArrayList<Statement>();
  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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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 253:{
          ;
          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 OF:{
        token = jj_consume_token(OF);
        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 INDEX:{
        token = jj_consume_token(INDEX);
        break;
        }
      case ENGINE:{
        token = jj_consume_token(ENGINE);
        break;
        }
      case METADATA:{
        token = jj_consume_token(METADATA);
        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 UNIDIRECTIONAL:{
        token = jj_consume_token(UNIDIRECTIONAL);
        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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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 253:{
          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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 253:{
        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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 253:{
        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 253:{
          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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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 253:{
          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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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 253:{
          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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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<Expression> lastExpressionList;
    try {
      if (jj_2_49(3)) {
        jj_consume_token(LPAREN);
        lastIdentifier = Identifier();
jjtn000.identifierList = new ArrayList<Identifier>();
        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<List<Expression>>();
        lastExpressionList = new ArrayList<Expression>();
        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<Expression>();
          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>();
        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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 UNIDIRECTIONAL:{
        jj_consume_token(UNIDIRECTIONAL);
jjtn000.unidirectional = true;
        break;
        }
      default:
        jj_la1[123] = jj_gen;
        ;
      }
      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[124] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case SET:
      case CONTENT:
      case LPAREN:{
        jjtn000.body = InsertBody();
        break;
        }
      default:
        jj_la1[125] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case RETRY:{
        jjtn000.retry = Retry();
        break;
        }
      default:
        jj_la1[126] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case WAIT:{
        jjtn000.wait = Wait();
        break;
        }
      default:
        jj_la1[127] = 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[128] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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[129] = 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<ProjectionItem> items = new java.util.ArrayList<ProjectionItem>();
  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[130] = 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[131] = jj_gen;
              break label_18;
            }
            jj_consume_token(COMMA);
            lastItem = ProjectionItem();
items.add(lastItem);
          }
          break;
          }
        default:
          jj_la1[132] = 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[133] = jj_gen;
        ;
      }
      jjtn000.expression = Expression();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case COLON:{
        jjtn000.nestedProjection = NestedProjection();
        break;
        }
      default:
        jj_la1[134] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case AS:{
        jj_consume_token(AS);
        jjtn000.alias = Alias();
        break;
        }
      default:
        jj_la1[135] = 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[136] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 253:{
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case BANG:{
          jj_consume_token(BANG);
jjtn000.exclude = true;
          break;
          }
        default:
          jj_la1[137] = 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[138] = jj_gen;
          ;
        }
        break;
        }
      default:
        jj_la1[139] = 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[140] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case AS:{
        jj_consume_token(AS);
        jjtn000.alias = Identifier();
        break;
        }
      default:
        jj_la1[141] = 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[142] = 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[143] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        jjtn000.toSelector = ArrayNumberSelector();
        break;
        }
      default:
        jj_la1[144] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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[145] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 253:{
        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[146] = jj_gen;
            break label_21;
          }
          jj_consume_token(COMMA);
          lastExpression = Expression();
jjtn000.params.add(lastExpression);
        }
        break;
        }
      default:
        jj_la1[147] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 253:{
        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[148] = jj_gen;
            break label_22;
          }
          jj_consume_token(COMMA);
          lastExpression = Expression();
jjtn000.params.add(lastExpression);
        }
        break;
        }
      default:
        jj_la1[149] = 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[150] = 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[151] = 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[152] = 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[153] = 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[154] = 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[155] = 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[156] = 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[157] = 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[158] = 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[159] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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 253:{
          jjtn000.expression = Expression();
          break;
          }
        case INSERT:{
          jjtn000.statement = InsertStatement();
          break;
          }
        default:
          jj_la1[160] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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[161] = 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[162] = 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[163] = 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[164] = 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 253:{
        lastRid = Rid();
jjtn000.rids.add(lastRid);
        break;
        }
      default:
        jj_la1[169] = 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[165] = 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[166] = 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[167] = 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[168] = 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[170] = 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[171] = 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 OF:
                  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 INDEX:
                  case ENGINE:
                  case METADATA:
                  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 UNIDIRECTIONAL:
                  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[172] = 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[173] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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[174] = jj_gen;
            break label_28;
          }
          jj_consume_token(COMMA);
          lastIdentifier = Identifier();
jjtn000.buckets.add(lastIdentifier);
        }
        break;
        }
      default:
        jj_la1[175] = 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[176] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
jjtn000.indexNameString = token.image.split(":")[1];
        break;
        }
      default:
        jj_la1[177] = 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[178] = 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[179] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 253:{
        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[180] = 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[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 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[182] = 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[183] = 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[184] = jj_gen;
          ;
        }
        jjtn000.inOperator = InOperator();
        jjtn000.right = Expression();
        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 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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[186] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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 253:{
          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[187] = jj_gen;
              break label_31;
            }
            jj_consume_token(COMMA);
            lastExpression = Expression();
jjtn000.leftExpressions.add(lastExpression);
          }
          break;
          }
        default:
          jj_la1[188] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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 253:{
          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[189] = jj_gen;
              break label_32;
            }
            jj_consume_token(COMMA);
            lastExpression = Expression();
jjtn000.leftExpressions.add(lastExpression);
          }
          break;
          }
        default:
          jj_la1[190] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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 253:{
          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[191] = jj_gen;
              break label_33;
            }
            jj_consume_token(COMMA);
            lastExpression = Expression();
jjtn000.rightExpressions.add(lastExpression);
          }
          break;
          }
        default:
          jj_la1[192] = jj_gen;
          ;
        }
        jj_consume_token(RBRACKET);
        break;
        }
      default:
        jj_la1[193] = 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[194] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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[195] = 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[196] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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[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 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[198] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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[199] = jj_gen;
            ;
          }
          break;
          }
        case RECORD_ATTRIBUTE:{
          lastToken = jj_consume_token(RECORD_ATTRIBUTE);
lastItem.recordAttr = lastToken.image;
          break;
          }
        default:
          jj_la1[200] = 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[201] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          break;
          }
        default:
          jj_la1[202] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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[203] = jj_gen;
            ;
          }
          break;
          }
        case RECORD_ATTRIBUTE:{
          lastToken = jj_consume_token(RECORD_ATTRIBUTE);
lastItem.recordAttr = lastToken.image;
          break;
          }
        default:
          jj_la1[204] = 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[205] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          break;
          }
        default:
          jj_la1[206] = jj_gen;
          ;
        }
        jj_consume_token(RPAREN);
        break;
        }
      default:
        jj_la1[207] = 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[208] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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 OF:
          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 INDEX:
          case ENGINE:
          case METADATA:
          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 UNIDIRECTIONAL:
          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[209] = jj_gen;
              ;
            }
            break;
            }
          case RECORD_ATTRIBUTE:{
            lastToken = jj_consume_token(RECORD_ATTRIBUTE);
lastItem.recordAttr = lastToken.image;
            break;
            }
          default:
            jj_la1[210] = 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[211] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
            break;
            }
          default:
            jj_la1[212] = 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 OF:
          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 INDEX:
          case ENGINE:
          case METADATA:
          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 UNIDIRECTIONAL:
          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[213] = jj_gen;
              ;
            }
            break;
            }
          case RECORD_ATTRIBUTE:{
            lastToken = jj_consume_token(RECORD_ATTRIBUTE);
lastItem.recordAttr = lastToken.image;
            break;
            }
          default:
            jj_la1[214] = 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[215] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
            break;
            }
          default:
            jj_la1[216] = jj_gen;
            ;
          }
          jj_consume_token(RPAREN);
          break;
          }
        default:
          jj_la1[217] = 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[218] = 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[219] = 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[220] = 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[221] = 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[222] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      default:
        jj_la1[223] = 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[224] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      default:
        jj_la1[225] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 253:{
        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[226] = jj_gen;
            break label_37;
          }
          jj_consume_token(COMMA);
          lastExpression = Expression();
jjtn000.expressions.add(lastExpression);
        }
        break;
        }
      default:
        jj_la1[227] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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[228] = 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[229] = 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 OF:
          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 INDEX:
          case ENGINE:
          case METADATA:
          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 UNIDIRECTIONAL:
          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[230] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          jj_consume_token(COLON);
          lastItem.right = Expression();
jjtn000.items.add(lastItem);
        }
        break;
        }
      default:
        jj_la1[231] = 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[232] = 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[233] = 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[234] = 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[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 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[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 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[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 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[238] = 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[239] = 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[240] = 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[241] = jj_gen;
            break label_42;
          }
          jj_consume_token(COMMA);
          lastItem = MatchFilterItem();
jjtn000.items.add(lastItem);
        }
        break;
        }
      default:
        jj_la1[242] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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[243] = 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[244] = 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[245] = 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[246] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          edgeName = Identifier();
          break;
          }
        default:
          jj_la1[247] = jj_gen;
          ;
        }
        jj_consume_token(MINUS);
        break;
        }
      case DECR:{
        jj_consume_token(DECR);
        break;
        }
      default:
        jj_la1[248] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          edgeName = Identifier();
          break;
          }
        default:
          jj_la1[249] = jj_gen;
          ;
        }
        jj_consume_token(MINUS);
        break;
        }
      case DECR:{
        jj_consume_token(DECR);
        break;
        }
      default:
        jj_la1[250] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          edgeName = Identifier();
          break;
          }
        default:
          jj_la1[251] = jj_gen;
          ;
        }
        jj_consume_token(MINUS);
        break;
        }
      case DECR:{
        jj_consume_token(DECR);
        break;
        }
      default:
        jj_la1[252] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          edgeName = Identifier();
          break;
          }
        default:
          jj_la1[253] = jj_gen;
          ;
        }
        jj_consume_token(MINUS);
        break;
        }
      case DECR:{
        jj_consume_token(DECR);
        break;
        }
      default:
        jj_la1[254] = 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[255] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          edgeName = Identifier();
          break;
          }
        default:
          jj_la1[256] = jj_gen;
          ;
        }
        jj_consume_token(MINUS);
        break;
        }
      case DECR:{
        jj_consume_token(DECR);
        break;
        }
      default:
        jj_la1[257] = 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[258] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          edgeName = Identifier();
          break;
          }
        default:
          jj_la1[259] = jj_gen;
          ;
        }
        jj_consume_token(MINUS);
        break;
        }
      case DECR:{
        jj_consume_token(DECR);
        break;
        }
      default:
        jj_la1[260] = 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[261] = 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[262] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case UNSAFE:{
        jj_consume_token(UNSAFE);
jjtn000.unsafe = true;
        break;
        }
      default:
        jj_la1[263] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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[264] = 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[265] = 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 253:{
        jjtn000.record = Rid();
        break;
        }
      case LBRACKET:{
        jj_consume_token(LBRACKET);
jjtn000.records = new ArrayList<Rid>();
        switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
        case INTEGER_LITERAL:
        case LBRACE:
        case MINUS:
        case 253:{
          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[266] = jj_gen;
              break label_43;
            }
            jj_consume_token(COMMA);
            lastRecord = Rid();
jjtn000.records.add(lastRecord);
          }
          break;
          }
        default:
          jj_la1[267] = jj_gen;
          ;
        }
        jj_consume_token(RBRACKET);
        break;
        }
      default:
        jj_la1[268] = 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[269] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case EXTENDS:{
        jj_consume_token(EXTENDS);
        lastIdentifier = Identifier();
jjtn000.supertypes = new ArrayList<Identifier>(); jjtn000.supertypes.add(lastIdentifier);
        label_44:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[270] = jj_gen;
            break label_44;
          }
          jj_consume_token(COMMA);
          lastIdentifier = Identifier();
jjtn000.supertypes.add(lastIdentifier);
        }
        break;
        }
      default:
        jj_la1[271] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKET:{
        jj_consume_token(BUCKET);
        lastBucket = BucketIdentifier();
jjtn000.buckets = new ArrayList<BucketIdentifier>(); jjtn000.buckets.add(lastBucket);
        label_45:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[272] = jj_gen;
            break label_45;
          }
          jj_consume_token(COMMA);
          lastBucket = BucketIdentifier();
jjtn000.buckets.add(lastBucket);
        }
        break;
        }
      default:
        jj_la1[273] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKETS:{
        jj_consume_token(BUCKETS);
        jjtn000.totalBucketNo = PInteger();
        break;
        }
      default:
        jj_la1[274] = 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[275] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case EXTENDS:{
        jj_consume_token(EXTENDS);
        lastIdentifier = Identifier();
jjtn000.supertypes = new ArrayList<Identifier>(); jjtn000.supertypes.add(lastIdentifier);
        label_46:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[276] = jj_gen;
            break label_46;
          }
          jj_consume_token(COMMA);
          lastIdentifier = Identifier();
jjtn000.supertypes.add(lastIdentifier);
        }
        break;
        }
      default:
        jj_la1[277] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKET:{
        jj_consume_token(BUCKET);
        lastBucket = BucketIdentifier();
jjtn000.buckets = new ArrayList<BucketIdentifier>(); jjtn000.buckets.add(lastBucket);
        label_47:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[278] = jj_gen;
            break label_47;
          }
          jj_consume_token(COMMA);
          lastBucket = BucketIdentifier();
jjtn000.buckets.add(lastBucket);
        }
        break;
        }
      default:
        jj_la1[279] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKETS:{
        jj_consume_token(BUCKETS);
        jjtn000.totalBucketNo = PInteger();
        break;
        }
      default:
        jj_la1[280] = 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[281] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case EXTENDS:{
        jj_consume_token(EXTENDS);
        lastIdentifier = Identifier();
jjtn000.supertypes = new ArrayList<Identifier>(); jjtn000.supertypes.add(lastIdentifier);
        label_48:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[282] = jj_gen;
            break label_48;
          }
          jj_consume_token(COMMA);
          lastIdentifier = Identifier();
jjtn000.supertypes.add(lastIdentifier);
        }
        break;
        }
      default:
        jj_la1[283] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKET:{
        jj_consume_token(BUCKET);
        lastBucket = BucketIdentifier();
jjtn000.buckets = new ArrayList<BucketIdentifier>(); jjtn000.buckets.add(lastBucket);
        label_49:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[284] = jj_gen;
            break label_49;
          }
          jj_consume_token(COMMA);
          lastBucket = BucketIdentifier();
jjtn000.buckets.add(lastBucket);
        }
        break;
        }
      default:
        jj_la1[285] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKETS:{
        jj_consume_token(BUCKETS);
        jjtn000.totalBucketNo = PInteger();
        break;
        }
      default:
        jj_la1[286] = 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[287] = 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[288] = 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[289] = 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[290] = 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[291] = 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[292] = 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[293] = 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[294] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      case IN:
      case KEY:
      case IDENTIFIER:
      case QUOTED_IDENTIFIER:{
        jjtn000.name = Identifier();
        break;
        }
      case HOOK:
      case COLON:{
        jjtn000.nameParam = InputParameter();
        break;
        }
      default:
        jj_la1[295] = 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[296] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case UNSAFE:{
        jj_consume_token(UNSAFE);
jjtn000.unsafe = true;
        break;
        }
      default:
        jj_la1[297] = 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[298] = jj_gen;
        ;
      }
      jjtn000.propertyType = Identifier();
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case OF:{
        jj_consume_token(OF);
        jjtn000.ofType = Identifier();
        break;
        }
      default:
        jj_la1[299] = jj_gen;
        ;
      }
      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[300] = jj_gen;
            break label_52;
          }
          jj_consume_token(COMMA);
          lastAttribute = CreatePropertyAttributeStatement();
jjtn000.attributes.add(lastAttribute);
        }
        jj_consume_token(RPAREN);
        break;
        }
      default:
        jj_la1[301] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          jjtn000.settingName = Identifier();
          jjtn000.settingValue = Expression();
          break;
          }
        default:
          jj_la1[302] = 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[303] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case FORCE:{
        jj_consume_token(FORCE);
jjtn000.force = true;
        break;
        }
      default:
        jj_la1[304] = 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[305] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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[306] = 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[307] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          break;
          }
        default:
          jj_la1[308] = jj_gen;
          ;
        }
        label_53:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[309] = 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 OF:
          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 INDEX:
          case ENGINE:
          case METADATA:
          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 UNIDIRECTIONAL:
          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[310] = 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[311] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
            break;
            }
          default:
            jj_la1[312] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          jjtn000.name = Identifier();
          break;
          }
        default:
          jj_la1[313] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          jjtn000.type = Identifier();
          break;
          }
        default:
          jj_la1[314] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          if (jj_2_142(2)) {
            jj_consume_token(METADATA);
            jjtn000.metadata = 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 OF:
            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 INDEX:
            case ENGINE:
            case METADATA:
            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 UNIDIRECTIONAL:
            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[315] = 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 METADATA:{
                jj_consume_token(METADATA);
                jjtn000.metadata = Json();
                break;
                }
              default:
                jj_la1[316] = jj_gen;
                ;
              }
              break;
              }
            default:
              jj_la1[317] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
          }
          break;
          }
        default:
          jj_la1[318] = 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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        case IN:
        case KEY:
        case IDENTIFIER:
        case QUOTED_IDENTIFIER:{
          if (jj_2_143(2)) {
            jj_consume_token(METADATA);
            jjtn000.metadata = 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 OF:
            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 INDEX:
            case ENGINE:
            case METADATA:
            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 UNIDIRECTIONAL:
            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[319] = 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 METADATA:{
                jj_consume_token(METADATA);
                jjtn000.metadata = Json();
                break;
                }
              default:
                jj_la1[320] = jj_gen;
                ;
              }
              break;
              }
            default:
              jj_la1[321] = jj_gen;
              jj_consume_token(-1);
              throw new ParseException();
            }
          }
          break;
          }
        default:
          jj_la1[322] = 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[323] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      default:
        jj_la1[324] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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[325] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      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_56:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[326] = jj_gen;
            break label_56;
          }
          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[327] = 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_57:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[328] = jj_gen;
            break label_57;
          }
          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[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 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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[330] = 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[331] = 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[332] = 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[333] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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[334] = 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[335] = 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[336] = 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_58:
            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[337] = jj_gen;
                break label_58;
              }
            }
            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[338] = jj_gen;
                jj_consume_token(-1);
                throw new ParseException();
              }
              break;
              }
            default:
              jj_la1[339] = jj_gen;
              ;
            }
            break;
            }
          case CONTINUE:{
            jj_consume_token(CONTINUE);
jjtn000.elseFail = false;
            break;
            }
          case FAIL:{
            jj_consume_token(FAIL);
jjtn000.elseFail = true;
            break;
            }
          default:
            jj_la1[340] = jj_gen;
            jj_consume_token(-1);
            throw new ParseException();
          }
          break;
          }
        default:
          jj_la1[341] = jj_gen;
          ;
        }
        break;
        }
      default:
        jj_la1[342] = 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 OF:
      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 INDEX:
      case ENGINE:
      case METADATA:
      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 UNIDIRECTIONAL:
      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 253:{
        jjtn000.expression = Expression();
        break;
        }
      default:
        jj_la1[343] = 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_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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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 253:{
          ;
          break;
          }
        default:
          jj_la1[344] = jj_gen;
          break label_59;
        }
        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[345] = 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_60:
      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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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 253:{
          ;
          break;
          }
        default:
          jj_la1[346] = jj_gen;
          break label_60;
        }
        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[347] = 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_61:
      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 OF:
        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 INDEX:
        case ENGINE:
        case METADATA:
        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 UNIDIRECTIONAL:
        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 253:{
          ;
          break;
          }
        default:
          jj_la1[348] = jj_gen;
          break label_61;
        }
        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[349] = 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[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_62:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[351] = jj_gen;
            break label_62;
          }
          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 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);
      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[353] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case FORMAT:{
        jj_consume_token(FORMAT);
        jjtn000.format = Identifier();
        break;
        }
      default:
        jj_la1[354] = 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[355] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
        }
      default:
        jj_la1[356] = 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_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);
          jjtn000.key = Expression();
          jj_consume_token(EQ);
          jjtn000.value = Expression();
jjtn000.settings.put( jjtn000.key, jjtn000.value );
        }
        break;
        }
      default:
        jj_la1[358] = 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[359] = 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[360] = 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_64:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[361] = jj_gen;
            break label_64;
          }
          jj_consume_token(COMMA);
          lastType = Identifier();
jjtn000.types.add(lastType);
        }
        break;
        }
      default:
        jj_la1[362] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case BUCKET:{
        jj_consume_token(BUCKET);
        lastBucket = BucketIdentifier();
jjtn000.buckets.add(lastBucket);
        label_65:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[363] = jj_gen;
            break label_65;
          }
          jj_consume_token(COMMA);
          lastBucket = BucketIdentifier();
jjtn000.buckets.add(lastBucket);
        }
        break;
        }
      default:
        jj_la1[364] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case FIX:{
        jj_consume_token(FIX);
jjtn000.fix = true;
        break;
        }
      default:
        jj_la1[365] = 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<Identifier>();
      jjtn000.parameters.add(lastIdentifier);
        label_66:
        while (true) {
          switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
          case COMMA:{
            ;
            break;
            }
          default:
            jj_la1[366] = jj_gen;
            break label_66;
          }
          jj_consume_token(COMMA);
          lastIdentifier = Identifier();
jjtn000.parameters.add(lastIdentifier);
        }
        jj_consume_token(RBRACKET);
        break;
        }
      default:
        jj_la1[367] = jj_gen;
        ;
      }
      switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
      case LANGUAGE:{
        jj_consume_token(LANGUAGE);
        jjtn000.language = Identifier();
        break;
        }
      default:
        jj_la1[368] = 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_PCollection_3060_7_326()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_PCollection_3062_9_463()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_UpdatePutItem_1522_3_658()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

  private boolean jj_3R_UpdateRemoveItem_1515_3_666()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateRemoveItem_1515_33_756()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_Retry_3048_3_423()
 {
    if (jj_scan_token(RETRY)) return true;
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_UpdateIncrementItem_1506_5_755()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

  private boolean jj_3R_Wait_3041_3_424()
 {
    if (jj_scan_token(WAIT)) return true;
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_UpdateIncrementItem_1505_3_664()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateIncrementItem_1506_5_755()) jj_scanpos = xsp;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

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

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

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

  private boolean jj_3R_Timeout_3031_5_540()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Timeout_3031_5_668()) {
    jj_scanpos = xsp;
    if (jj_3R_Timeout_3033_5_669()) return true;
    }
    return false;
  }

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

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

  private boolean jj_3R_Timeout_3028_3_431()
 {
    if (jj_scan_token(TIMEOUT)) return true;
    if (jj_3R_PInteger_922_3_67()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Timeout_3031_5_540()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_Skip_3019_9_772()
 {
    if (jj_3R_InputParameter_1728_3_146()) return true;
    return false;
  }

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

  private boolean jj_3R_Skip_3017_9_771()
 {
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_UpdateItem_1486_5_749()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

  private boolean jj_3R_UpdateItem_1485_3_656()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateItem_1486_5_749()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateItem_1488_5_750()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateItem_1490_5_751()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateItem_1492_5_752()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateItem_1494_5_753()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateItem_1496_5_754()) return true;
    }
    }
    }
    }
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_Skip_3010_9_770()
 {
    if (jj_3R_InputParameter_1728_3_146()) return true;
    return false;
  }

  private boolean jj_3R_Skip_3014_5_683()
 {
    if (jj_scan_token(OFFSET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Skip_3017_9_771()) {
    jj_scanpos = xsp;
    if (jj_3R_Skip_3019_9_772()) return true;
    }
    return false;
  }

  private boolean jj_3R_UpdateOperations_1474_9_667()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_UpdateRemoveItem_1515_3_666()) return true;
    return false;
  }

  private boolean jj_3R_Skip_3008_9_769()
 {
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

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

  private boolean jj_3R_UpdateOperations_1470_6_537()
 {
    if (jj_scan_token(REMOVE)) return true;
    if (jj_3R_UpdateRemoveItem_1515_3_666()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_UpdateOperations_1474_9_667()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_Skip_3005_5_682()
 {
    if (jj_scan_token(SKIP2)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Skip_3008_9_769()) {
    jj_scanpos = xsp;
    if (jj_3R_Skip_3010_9_770()) return true;
    }
    return false;
  }

  private boolean jj_3R_UpdateOperations_1466_9_665()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_UpdateIncrementItem_1505_3_664()) return true;
    return false;
  }

  private boolean jj_3R_Skip_3004_3_554()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Skip_3005_5_682()) {
    jj_scanpos = xsp;
    if (jj_3R_Skip_3014_5_683()) return true;
    }
    return false;
  }

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

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

  private boolean jj_3R_Limit_2996_5_539()
 {
    if (jj_3R_InputParameter_1728_3_146()) return true;
    return false;
  }

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

  private boolean jj_3R_Limit_2994_5_538()
 {
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

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

  private boolean jj_3R_UpdateOperations_1458_5_536()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateOperations_1460_9_662()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateOperations_1462_9_663()) return true;
    }
    if (jj_3R_UpdateIncrementItem_1505_3_664()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_UpdateOperations_1466_9_665()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

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

  private boolean jj_3R_Limit_2992_3_430()
 {
    if (jj_scan_token(LIMIT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Limit_2994_5_538()) {
    jj_scanpos = xsp;
    if (jj_3R_Limit_2996_5_539()) return true;
    }
    return false;
  }

  private boolean jj_3R_UpdateOperations_1445_9_659()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_UpdatePutItem_1522_3_658()) return true;
    return false;
  }

  private boolean jj_3R_UpdateOperations_1449_5_535()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateOperations_1451_9_660()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateOperations_1453_9_661()) return true;
    }
    if (jj_3R_Json_3087_3_212()) return true;
    return false;
  }

  private boolean jj_3R_Unwind_2983_5_553()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_Unwind_2981_3_449()
 {
    if (jj_scan_token(UNWIND)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_Unwind_2983_5_553()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_UpdateOperations_1437_9_657()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_UpdateItem_1485_3_656()) return true;
    return false;
  }

  private boolean jj_3R_UpdateOperations_1441_5_534()
 {
    if (jj_scan_token(PUT)) return true;
    if (jj_3R_UpdatePutItem_1522_3_658()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_UpdateOperations_1445_9_659()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_GroupBy_2972_5_549()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

  private boolean jj_3R_UpdateOperations_1433_5_533()
 {
    if (jj_scan_token(SET)) return true;
    if (jj_3R_UpdateItem_1485_3_656()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_UpdateOperations_1437_9_657()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_GroupBy_2970_3_447()
 {
    if (jj_scan_token(GROUP_BY)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_GroupBy_2972_5_549()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_OrderBy_2959_11_768()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2959_11_822()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2959_57_823()) return true;
    }
    return false;
  }

  private boolean jj_3R_UpdateOperations_1432_3_426()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateOperations_1433_5_533()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateOperations_1441_5_534()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateOperations_1449_5_535()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateOperations_1458_5_536()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateOperations_1470_6_537()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_OrderBy_2954_15_821()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

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

  private boolean jj_3R_OrderBy_2952_11_766()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2954_15_821()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_UpdateStatement_1420_5_249()
 {
    if (jj_3R_Timeout_3028_3_431()) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1419_5_248()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1418_5_247()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2396_3_159()) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1415_7_435()
 {
    if (jj_3R_Projection_1776_3_421()) return true;
    return false;
  }

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

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

  private boolean jj_3R_OrderBy_2942_11_765()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2942_11_819()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2942_57_820()) return true;
    }
    return false;
  }

  private boolean jj_3R_OrderBy_2937_15_818()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2945_7_681()
 {
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2952_11_766()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2957_11_767()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2959_11_768()) jj_scanpos = xsp;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1412_5_246()
 {
    if (jj_scan_token(RETURN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1413_7_432()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateStatement_1413_51_433()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateStatement_1413_93_434()) return true;
    }
    }
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1415_7_435()) jj_scanpos = xsp;
    return false;
  }

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

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

  private boolean jj_3R_UpdateStatement_1409_5_244()
 {
    if (jj_3R_UpdateOperations_1432_3_426()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2935_11_763()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2937_15_818()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_UpdateStatement_1407_3_85()
 {
    if (jj_scan_token(UPDATE)) return true;
    if (jj_3R_FromClause_2233_3_237()) return true;
    Token xsp;
    if (jj_3R_UpdateStatement_1409_5_244()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_UpdateStatement_1409_5_244()) { jj_scanpos = xsp; break; }
    }
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1410_5_245()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1412_5_246()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1418_5_247()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1419_5_248()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateStatement_1420_5_249()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1398_5_243()
 {
    if (jj_3R_Timeout_3028_3_431()) return true;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1397_5_242()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2929_7_680()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2935_11_763()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2940_11_764()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2942_11_765()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1396_5_241()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2396_3_159()) return true;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1393_7_429()
 {
    if (jj_3R_Projection_1776_3_421()) return true;
    return false;
  }

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

  private boolean jj_3R_OrderBy_2927_5_552()
 {
    if (jj_scan_token(COMMA)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2929_7_680()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2945_7_681()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_OrderBy_2922_9_679()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2922_9_761()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2922_55_762()) return true;
    }
    return false;
  }

  private boolean jj_3R_OrderBy_2917_13_760()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1390_5_240()
 {
    if (jj_scan_token(RETURN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1391_7_427()) {
    jj_scanpos = xsp;
    if (jj_3R_UpdateEdgeStatement_1391_51_428()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1393_7_429()) jj_scanpos = xsp;
    return false;
  }

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

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

  private boolean jj_3R_UpdateEdgeStatement_1387_5_238()
 {
    if (jj_3R_UpdateOperations_1432_3_426()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2915_9_677()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2917_13_760()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_UpdateEdgeStatement_1385_3_84()
 {
    if (jj_scan_token(UPDATE)) return true;
    if (jj_scan_token(EDGE)) return true;
    if (jj_3R_FromClause_2233_3_237()) return true;
    Token xsp;
    if (jj_3R_UpdateEdgeStatement_1387_5_238()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_UpdateEdgeStatement_1387_5_238()) { jj_scanpos = xsp; break; }
    }
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1388_5_239()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1390_5_240()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1396_5_241()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1397_5_242()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_UpdateEdgeStatement_1398_5_243()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_DeleteEdgeWhereStatement_1377_5_312()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeWhereStatement_1376_5_311()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2396_3_159()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeWhereStatement_1375_5_310()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

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

  private boolean jj_3R_OrderBy_2905_9_676()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2905_9_758()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2905_55_759()) return true;
    }
    return false;
  }

  private boolean jj_3R_OrderBy_2900_13_757()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2908_5_551()
 {
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2915_9_677()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2920_9_678()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2922_9_679()) jj_scanpos = xsp;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

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

  private boolean jj_3R_DeleteEdgeWhereStatement_1374_3_137()
 {
    if (jj_scan_token(DELETE)) return true;
    if (jj_scan_token(EDGE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeWhereStatement_1375_5_310()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeWhereStatement_1376_5_311()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeWhereStatement_1377_5_312()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_OrderBy_2898_9_674()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2900_13_757()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_DeleteEdgeVToStatement_1365_5_307()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeVToStatement_1364_5_306()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2396_3_159()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeVToStatement_1362_3_135()
 {
    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_2055_3_132()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeVToStatement_1364_5_306()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeVToStatement_1365_5_307()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_OrderBy_2892_5_550()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2898_9_674()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2903_9_675()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2905_9_676()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_DeleteEdgeToStatement_1353_5_309()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeToStatement_1352_5_308()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2396_3_159()) return true;
    return false;
  }

  private boolean jj_3R_OrderBy_2889_1_448()
 {
    if (jj_scan_token(ORDER_BY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OrderBy_2892_5_550()) {
    jj_scanpos = xsp;
    if (jj_3R_OrderBy_2908_5_551()) return true;
    }
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_OrderBy_2927_5_552()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_DeleteEdgeToStatement_1348_3_136()
 {
    if (jj_scan_token(DELETE)) return true;
    if (jj_scan_token(EDGE)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(TO)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeToStatement_1352_5_308()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeToStatement_1353_5_309()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_MatchesCondition_2875_5_395()
 {
    if (jj_3R_InputParameter_1728_3_146()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeFromToStatement_1339_5_305()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeFromToStatement_1338_5_304()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2396_3_159()) return true;
    return false;
  }

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

  private boolean jj_3R_MatchesCondition_2871_5_393()
 {
    if (jj_3R_PString_723_3_250()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeFromToStatement_1335_5_303()
 {
    if (jj_scan_token(TO)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_MatchesCondition_2868_5_392()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeFromToStatement_1332_5_302()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeFromToStatement_1331_3_134()
 {
    if (jj_scan_token(DELETE)) return true;
    if (jj_scan_token(EDGE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeFromToStatement_1332_5_302()) jj_scanpos = xsp;
    if (jj_scan_token(FROM)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeFromToStatement_1335_5_303()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeFromToStatement_1338_5_304()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeFromToStatement_1339_5_305()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MatchesCondition_2866_3_192()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(MATCHES)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchesCondition_2868_5_392()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchesCondition_2871_5_393()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchesCondition_2873_5_394()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchesCondition_2875_5_395()) return true;
    }
    }
    }
    return false;
  }

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

  private boolean jj_3R_DeleteEdgeByRidStatement_1317_11_558()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Rid_635_3_145()) return true;
    return false;
  }

  private boolean jj_3R_ContainsTextCondition_2859_3_191()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(CONTAINSTEXT)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeByRidStatement_1311_9_452()
 {
    if (jj_3R_Rid_635_3_145()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_DeleteEdgeByRidStatement_1317_11_558()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_ContainsAnyCondition_2850_5_391()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

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

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

  private boolean jj_3R_ContainsAnyCondition_2844_3_190()
 {
    if (jj_3R_Expression_2055_3_132()) 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_2850_5_391()) return true;
    }
    return false;
  }

  private boolean jj_3R_DeleteEdgeByRidStatement_1306_5_300()
 {
    if (jj_3R_Rid_635_3_145()) return true;
    return false;
  }

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

  private boolean jj_3R_DeleteEdgeByRidStatement_1304_3_133()
 {
    if (jj_scan_token(DELETE)) return true;
    if (jj_scan_token(EDGE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeByRidStatement_1306_5_300()) {
    jj_scanpos = xsp;
    if (jj_3R_DeleteEdgeByRidStatement_1308_5_301()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_ContainsAllCondition_2835_5_390()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

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

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

  private boolean jj_3R_DeleteEdgeStatement_1293_5_225()
 {
    if (jj_3R_DeleteEdgeWhereStatement_1374_3_137()) return true;
    return false;
  }

  private boolean jj_3R_ContainsAllCondition_2829_3_189()
 {
    if (jj_3R_Expression_2055_3_132()) 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_2835_5_390()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_DeleteEdgeStatement_1290_5_224()
 {
    if (jj_3R_DeleteEdgeToStatement_1348_3_136()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeStatement_1287_5_223()
 {
    if (jj_3R_DeleteEdgeVToStatement_1362_3_135()) return true;
    return false;
  }

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

  private boolean jj_3R_NotInCondition_2821_5_385()
 {
    if (jj_3R_MathExpression_2125_3_160()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeStatement_1284_5_222()
 {
    if (jj_3R_DeleteEdgeFromToStatement_1331_3_134()) return true;
    return false;
  }

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

  private boolean jj_3R_DeleteEdgeStatement_1281_5_221()
 {
    if (jj_3R_DeleteEdgeByRidStatement_1304_3_133()) return true;
    return false;
  }

  private boolean jj_3R_DeleteEdgeStatement_1280_3_72()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteEdgeStatement_1281_5_221()) {
    jj_scanpos = xsp;
    if (jj_3R_DeleteEdgeStatement_1284_5_222()) {
    jj_scanpos = xsp;
    if (jj_3R_DeleteEdgeStatement_1287_5_223()) {
    jj_scanpos = xsp;
    if (jj_3R_DeleteEdgeStatement_1290_5_224()) {
    jj_scanpos = xsp;
    if (jj_3R_DeleteEdgeStatement_1293_5_225()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_NotInCondition_2813_5_198()
 {
    if (jj_3R_SelectWithoutTargetStatement_1136_3_314()) return true;
    return false;
  }

  private boolean jj_3R_NotInCondition_2811_5_197()
 {
    if (jj_3R_SelectStatement_1157_3_131()) return true;
    return false;
  }

  private boolean jj_3R_DeleteStatement_1273_5_603()
 {
    if (jj_scan_token(UNSAFE)) 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_2811_5_197()) {
    jj_scanpos = xsp;
    if (jj_3R_NotInCondition_2813_5_198()) return true;
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_DeleteStatement_1272_5_602()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    return false;
  }

  private boolean jj_3R_DeleteStatement_1271_5_601()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2396_3_159()) return true;
    return false;
  }

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

  private boolean jj_3R_NotInCondition_2806_3_184()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(NOT)) return true;
    if (jj_3R_InOperator_2771_3_383()) 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_2821_5_385()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_DeleteStatement_1267_3_71()
 {
    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_2233_3_237()) return true;
    xsp = jj_scanpos;
    if (jj_3R_DeleteStatement_1270_5_600()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteStatement_1271_5_601()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteStatement_1272_5_602()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DeleteStatement_1273_5_603()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_MatchStatement_1260_7_791()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1259_7_790()
 {
    if (jj_3R_Skip_3004_3_554()) return true;
    return false;
  }

  private boolean jj_3R_InCondition_2796_5_384()
 {
    if (jj_3R_MathExpression_2125_3_160()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1258_7_789()
 {
    if (jj_3R_Unwind_2981_3_449()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1257_7_788()
 {
    if (jj_3R_OrderBy_2889_1_448()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1256_7_787()
 {
    if (jj_3R_GroupBy_2970_3_447()) return true;
    return false;
  }

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

  private boolean jj_3R_InCondition_2788_8_196()
 {
    if (jj_3R_SelectWithoutTargetStatement_1136_3_314()) return true;
    return false;
  }

  private boolean jj_3R_InCondition_2786_8_195()
 {
    if (jj_3R_SelectStatement_1157_3_131()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1248_9_833()
 {
    if (jj_scan_token(AS)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1247_9_832()
 {
    if (jj_3R_NestedProjection_1806_3_458()) return true;
    return false;
  }

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

  private boolean jj_3R_MatchStatement_1245_7_786()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1247_9_832()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1248_9_833()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_InCondition_2780_3_183()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_3R_InOperator_2771_3_383()) 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_2796_5_384()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_MatchStatement_1235_9_831()
 {
    if (jj_3R_NestedProjection_1806_3_458()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1237_7_785()
 {
    if (jj_scan_token(AS)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_DeleteFunctionStatement_4311_3_87()
 {
    if (jj_scan_token(DELETE)) return true;
    if (jj_scan_token(FUNCTION)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

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

  private boolean jj_3R_MatchStatement_1231_9_830()
 {
    if (jj_3R_NestedProjection_1806_3_458()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1233_7_784()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1235_9_831()) jj_scanpos = xsp;
    return false;
  }

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

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

  private boolean jj_3R_DefineFunctionStatement_4299_5_252()
 {
    if (jj_scan_token(LANGUAGE)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_ContainsCondition_2762_5_387()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

  private boolean jj_3R_DefineFunctionStatement_4293_7_436()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_MatchStatement_1219_10_828()
 {
    if (jj_3R_MatchExpression_3128_3_581()) return true;
    return false;
  }

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

  private boolean jj_3R_ContainsCondition_2757_3_187()
 {
    if (jj_3R_Expression_2055_3_132()) 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_2762_5_387()) return true;
    }
    return false;
  }

  private boolean jj_3R_MatchStatement_1217_7_783()
 {
    if (jj_scan_token(COMMA)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1219_10_828()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchStatement_1221_10_829()) return true;
    }
    return false;
  }

  private boolean jj_3R_DefineFunctionStatement_4286_5_251()
 {
    if (jj_scan_token(PARAMETERS)) return true;
    if (jj_scan_token(LBRACKET)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_DefineFunctionStatement_4293_7_436()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_IsNotDefinedCondition_2750_3_181()
 {
    if (jj_3R_Expression_2055_3_132()) 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_1213_3_491()
 {
    if (jj_scan_token(MATCH)) return true;
    if (jj_3R_MatchExpression_3128_3_581()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MatchStatement_1217_7_783()) { 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_1233_7_784()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1237_7_785()) jj_scanpos = xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MatchStatement_1245_7_786()) { jj_scanpos = xsp; break; }
    }
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1256_7_787()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1257_7_788()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1258_7_789()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1259_7_790()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchStatement_1260_7_791()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_IsDefinedCondition_2743_3_182()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(IS)) return true;
    if (jj_scan_token(DEFINED)) return true;
    return false;
  }

  private boolean jj_3R_DefineFunctionStatement_4277_3_86()
 {
    if (jj_scan_token(DEFINE)) return true;
    if (jj_scan_token(FUNCTION)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_3R_PString_723_3_250()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DefineFunctionStatement_4286_5_251()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DefineFunctionStatement_4299_5_252()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_SelectStatement_1171_35_556()
 {
    if (jj_3R_Skip_3004_3_554()) return true;
    return false;
  }

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

  private boolean jj_3R_IsNotNullCondition_2736_3_179()
 {
    if (jj_3R_Expression_2055_3_132()) 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_1197_5_825()
 {
    if (jj_scan_token(DEPTH_FIRST)) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1169_33_555()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    return false;
  }

  private boolean jj_3R_TraverseStatement_1195_5_782()
 {
    if (jj_scan_token(STRATEGY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TraverseStatement_1197_5_825()) {
    jj_scanpos = xsp;
    if (jj_3R_TraverseStatement_1199_5_826()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_TraverseStatement_1194_5_781()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    return false;
  }

  private boolean jj_3R_TraverseStatement_1193_5_780()
 {
    if (jj_scan_token(WHILE)) return true;
    if (jj_3R_WhereClause_2396_3_159()) return true;
    return false;
  }

  private boolean jj_3R_TraverseStatement_1192_5_779()
 {
    if (jj_scan_token(MAXDEPTH)) return true;
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_IsNullCondition_2729_3_180()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(IS)) return true;
    if (jj_scan_token(NULL)) return true;
    return false;
  }

  private boolean jj_3R_TraverseStatement_1188_7_824()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_TraverseProjectionItem_3074_3_700()) return true;
    return false;
  }

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

  private boolean jj_3R_TraverseStatement_1187_5_580()
 {
    if (jj_3R_TraverseProjectionItem_3074_3_700()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_TraverseStatement_1188_7_824()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_BackupDatabaseStatement_4236_25_641()
 {
    if (jj_3R_Url_4221_3_739()) return true;
    return false;
  }

  private boolean jj_3R_CheckDatabaseStatement_4253_7_745()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_BucketIdentifier_665_3_720()) return true;
    return false;
  }

  private boolean jj_3R_TraverseStatement_1185_3_490()
 {
    if (jj_scan_token(TRAVERSE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TraverseStatement_1187_5_580()) jj_scanpos = xsp;
    if (jj_scan_token(FROM)) return true;
    if (jj_3R_FromClause_2233_3_237()) return true;
    xsp = jj_scanpos;
    if (jj_3R_TraverseStatement_1192_5_779()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_TraverseStatement_1193_5_780()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_TraverseStatement_1194_5_781()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_TraverseStatement_1195_5_782()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_BetweenCondition_2720_3_186()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(BETWEEN)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(AND)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_CheckDatabaseStatement_4249_7_744()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_CheckDatabaseStatement_4251_5_643()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_BucketIdentifier_665_3_720()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CheckDatabaseStatement_4253_7_745()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_CheckDatabaseStatement_4247_5_642()
 {
    if (jj_scan_token(TYPE)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CheckDatabaseStatement_4249_7_744()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_SelectStatement_1174_7_293()
 {
    if (jj_3R_Timeout_3028_3_431()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1171_9_451()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1171_35_556()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CheckDatabaseStatement_4246_3_284()
 {
    if (jj_scan_token(CHECK)) return true;
    if (jj_scan_token(DATABASE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CheckDatabaseStatement_4247_5_642()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CheckDatabaseStatement_4251_5_643()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CheckDatabaseStatement_4257_5_644()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2708_5_597()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1169_9_450()
 {
    if (jj_3R_Skip_3004_3_554()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1169_33_555()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_SelectStatement_1169_9_292()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1169_9_450()) {
    jj_scanpos = xsp;
    if (jj_3R_SelectStatement_1171_9_451()) return true;
    }
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1144_33_835()
 {
    if (jj_3R_Skip_3004_3_554()) return true;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2706_5_510()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_IndexMatchCondition_2708_5_597()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1142_31_834()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1166_7_291()
 {
    if (jj_3R_Unwind_2981_3_449()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1165_7_290()
 {
    if (jj_3R_OrderBy_2889_1_448()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1164_7_289()
 {
    if (jj_3R_GroupBy_2970_3_447()) return true;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2700_5_596()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1163_7_288()
 {
    if (jj_scan_token(WHERE)) return true;
    if (jj_3R_WhereClause_2396_3_159()) return true;
    return false;
  }

  private boolean jj_3R_SelectStatement_1162_7_287()
 {
    if (jj_3R_LetClause_2242_3_446()) return true;
    return false;
  }

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

  private boolean jj_3R_IndexMatchCondition_2698_5_509()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_IndexMatchCondition_2700_5_596()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_SelectStatement_1159_7_286()
 {
    if (jj_3R_Projection_1776_3_421()) return true;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2695_5_397()
 {
    if (jj_scan_token(BETWEEN)) return true;
    if (jj_scan_token(LBRACKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_IndexMatchCondition_2698_5_509()) 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_2706_5_510()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2688_9_595()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

  private boolean jj_3R_SelectStatement_1157_3_131()
 {
    if (jj_scan_token(SELECT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1159_7_286()) jj_scanpos = xsp;
    if (jj_scan_token(FROM)) return true;
    if (jj_3R_FromClause_2233_3_237()) return true;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1162_7_287()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1163_7_288()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1164_7_289()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1165_7_290()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1166_7_291()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1169_9_292()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectStatement_1174_7_293()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_IndexMatchCondition_2687_7_508()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_IndexMatchCondition_2688_9_595()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

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

  private boolean jj_3R_Url_4221_3_739()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Url_4222_3_813()) {
    jj_scanpos = xsp;
    if (jj_3R_Url_4224_3_814()) {
    jj_scanpos = xsp;
    if (jj_3R_Url_4226_3_815()) {
    jj_scanpos = xsp;
    if (jj_3R_Url_4228_3_816()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2684_5_396()
 {
    if (jj_3R_CompareOperator_2511_1_386()) return true;
    if (jj_scan_token(LBRACKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_IndexMatchCondition_2687_7_508()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

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

  private boolean jj_3R_SelectWithoutTargetStatement_1146_7_704()
 {
    if (jj_3R_Timeout_3028_3_431()) return true;
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1144_7_795()
 {
    if (jj_3R_Limit_2992_3_430()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1144_33_835()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_IndexMatchCondition_2682_3_193()
 {
    if (jj_scan_token(KEY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_IndexMatchCondition_2684_5_396()) {
    jj_scanpos = xsp;
    if (jj_3R_IndexMatchCondition_2695_5_397()) return true;
    }
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1142_7_794()
 {
    if (jj_3R_Skip_3004_3_554()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1142_31_834()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1142_7_703()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1142_7_794()) {
    jj_scanpos = xsp;
    if (jj_3R_SelectWithoutTargetStatement_1144_7_795()) return true;
    }
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1140_7_702()
 {
    if (jj_3R_Unwind_2981_3_449()) return true;
    return false;
  }

  private boolean jj_3R_ExportDatabaseStatement_4209_7_743()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1139_7_701()
 {
    if (jj_3R_LetClause_2242_3_446()) return true;
    return false;
  }

  private boolean jj_3R_ExportDatabaseStatement_4206_5_640()
 {
    if (jj_scan_token(WITH)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_ExportDatabaseStatement_4209_7_743()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_ExportDatabaseStatement_4204_5_639()
 {
    if (jj_scan_token(OVERWRITE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ExportDatabaseStatement_4204_19_741()) {
    jj_scanpos = xsp;
    if (jj_3R_ExportDatabaseStatement_4204_75_742()) return true;
    }
    return false;
  }

  private boolean jj_3R_SelectWithoutTargetStatement_1136_3_314()
 {
    if (jj_scan_token(SELECT)) return true;
    if (jj_3R_Projection_1776_3_421()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1139_7_701()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1140_7_702()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1142_7_703()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_SelectWithoutTargetStatement_1146_7_704()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_ExportDatabaseStatement_4203_5_638()
 {
    if (jj_scan_token(FORMAT)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

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

  private boolean jj_3R_ExportDatabaseStatement_4202_5_637()
 {
    if (jj_3R_Url_4221_3_739()) return true;
    return false;
  }

  private boolean jj_3R_InstanceofCondition_2668_4_399()
 {
    if (jj_3R_PString_723_3_250()) return true;
    return false;
  }

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

  private boolean jj_3R_InstanceofCondition_2666_4_398()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_QueryStatement_1129_5_361()
 {
    if (jj_3R_MatchStatement_1213_3_491()) return true;
    return false;
  }

  private boolean jj_3R_ExportDatabaseStatement_4201_3_282()
 {
    if (jj_scan_token(EXPORT)) return true;
    if (jj_scan_token(DATABASE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ExportDatabaseStatement_4202_5_637()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_ExportDatabaseStatement_4203_5_638()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_ExportDatabaseStatement_4204_5_639()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_ExportDatabaseStatement_4206_5_640()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_InstanceofCondition_2665_3_194()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(INSTANCEOF)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InstanceofCondition_2666_4_398()) {
    jj_scanpos = xsp;
    if (jj_3R_InstanceofCondition_2668_4_399()) {
    jj_scanpos = xsp;
    if (jj_3R_InstanceofCondition_2670_4_400()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_QueryStatement_1127_5_360()
 {
    if (jj_3R_TraverseStatement_1185_3_490()) return true;
    return false;
  }

  private boolean jj_3R_QueryStatement_1125_5_359()
 {
    if (jj_3R_SelectWithoutTargetStatement_1136_3_314()) return true;
    return false;
  }

  private boolean jj_3R_ImportDatabaseStatement_4191_7_740()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_QueryStatement_1122_5_358()
 {
    if (jj_3R_SelectStatement_1157_3_131()) return true;
    return false;
  }

  private boolean jj_3R_ContainsValueCondition_2655_5_389()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_QueryStatement_1121_3_175()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_QueryStatement_1122_5_358()) {
    jj_scanpos = xsp;
    if (jj_3R_QueryStatement_1125_5_359()) {
    jj_scanpos = xsp;
    if (jj_3R_QueryStatement_1127_5_360()) {
    jj_scanpos = xsp;
    if (jj_3R_QueryStatement_1129_5_361()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_ImportDatabaseStatement_4188_5_636()
 {
    if (jj_scan_token(WITH)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_ImportDatabaseStatement_4191_7_740()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_ImportDatabaseStatement_4186_5_635()
 {
    if (jj_3R_Url_4221_3_739()) return true;
    return false;
  }

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

  private boolean jj_3R_ImportDatabaseStatement_4185_3_281()
 {
    if (jj_scan_token(IMPORT)) return true;
    if (jj_scan_token(DATABASE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ImportDatabaseStatement_4186_5_635()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_ImportDatabaseStatement_4188_5_636()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_ContainsValueCondition_2649_3_188()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_3R_ContainsValueOperator_2599_3_388()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_114()) {
    jj_scanpos = xsp;
    if (jj_3R_ContainsValueCondition_2655_5_389()) return true;
    }
    return false;
  }

  private boolean jj_3R_StatementInternal_1109_5_220()
 {
    if (jj_3R_LetStatement_4021_3_419()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1106_5_219()
 {
    if (jj_3R_ProfileStatement_4013_3_130()) return true;
    return false;
  }

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

  private boolean jj_3R_StatementInternal_1100_9_129()
 {
    if (jj_3R_AlignDatabaseStatement_4267_3_285()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1104_5_218()
 {
    if (jj_3R_ExplainStatement_4005_3_418()) return true;
    return false;
  }

  private boolean jj_3R_BinaryCondition_2640_3_185()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_3R_CompareOperator_2511_1_386()) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_WhileBlock_4172_5_856()
 {
    if (jj_3R_WhileBlock_4160_3_811()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1098_9_128()
 {
    if (jj_3R_CheckDatabaseStatement_4246_3_284()) return true;
    return false;
  }

  private boolean jj_3R_WhileBlock_4170_5_855()
 {
    if (jj_3R_ForEachBlock_4133_3_812()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1096_9_127()
 {
    if (jj_3R_BackupDatabaseStatement_4236_3_283()) return true;
    return false;
  }

  private boolean jj_3R_WhileBlock_4168_5_854()
 {
    if (jj_3R_IfStatement_4091_3_280()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1094_9_126()
 {
    if (jj_3R_ExportDatabaseStatement_4201_3_282()) return true;
    return false;
  }

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

  private boolean jj_3R_StatementInternal_1092_9_125()
 {
    if (jj_3R_ImportDatabaseStatement_4185_3_281()) return true;
    return false;
  }

  private boolean jj_3R_WhileBlock_4165_5_853()
 {
    if (jj_3R_StatementSemicolon_963_3_68()) return true;
    return false;
  }

  private boolean jj_3R_WhileBlock_4165_5_844()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_WhileBlock_4165_5_853()) {
    jj_scanpos = xsp;
    if (jj_3R_WhileBlock_4168_5_854()) {
    jj_scanpos = xsp;
    if (jj_3R_WhileBlock_4170_5_855()) {
    jj_scanpos = xsp;
    if (jj_3R_WhileBlock_4172_5_856()) {
    jj_scanpos = xsp;
    if (jj_scan_token(174)) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_StatementInternal_1090_9_124()
 {
    if (jj_3R_IfStatement_4091_3_280()) return true;
    return false;
  }

  private boolean jj_3R_RightBinaryCondition_2628_6_334()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_RightBinaryCondition_2629_8_464()) jj_scanpos = xsp;
    if (jj_3R_InOperator_2771_3_383()) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1088_9_123()
 {
    if (jj_3R_SleepStatement_4113_3_279()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1086_9_122()
 {
    if (jj_3R_ReturnStatement_4081_3_278()) return true;
    return false;
  }

  private boolean jj_3R_RightBinaryCondition_2623_6_333()
 {
    if (jj_3R_CompareOperator_2511_1_386()) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_WhileBlock_4160_3_811()
 {
    if (jj_scan_token(WHILE)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_OrBlock_2403_3_154()) 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_4165_5_844()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1084_9_121()
 {
    if (jj_3R_RollbackStatement_4074_3_277()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1082_9_120()
 {
    if (jj_3R_CommitStatement_4045_3_276()) return true;
    return false;
  }

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

  private boolean jj_3R_RightBinaryCondition_2622_3_152()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_RightBinaryCondition_2623_6_333()) {
    jj_scanpos = xsp;
    if (jj_3R_RightBinaryCondition_2628_6_334()) return true;
    }
    return false;
  }

  private boolean jj_3R_StatementInternal_1080_9_119()
 {
    if (jj_3R_BeginStatement_4037_3_275()) return true;
    return false;
  }

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

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

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

  private boolean jj_3R_ForEachBlock_4147_5_860()
 {
    if (jj_3R_WhileBlock_4160_3_811()) return true;
    return false;
  }

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

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

  private boolean jj_3R_ForEachBlock_4145_5_859()
 {
    if (jj_3R_ForEachBlock_4133_3_812()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1071_9_118()
 {
    if (jj_3R_AlterBucketStatement_3970_3_96()) return true;
    return false;
  }

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

  private boolean jj_3R_ForEachBlock_4143_5_858()
 {
    if (jj_3R_IfStatement_4091_3_280()) return true;
    return false;
  }

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

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

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

  private boolean jj_3R_ForEachBlock_4140_5_857()
 {
    if (jj_3R_StatementSemicolon_963_3_68()) return true;
    return false;
  }

  private boolean jj_3R_ForEachBlock_4140_5_845()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ForEachBlock_4140_5_857()) {
    jj_scanpos = xsp;
    if (jj_3R_ForEachBlock_4143_5_858()) {
    jj_scanpos = xsp;
    if (jj_3R_ForEachBlock_4145_5_859()) {
    jj_scanpos = xsp;
    if (jj_3R_ForEachBlock_4147_5_860()) {
    jj_scanpos = xsp;
    if (jj_scan_token(174)) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_StatementInternal_1066_9_117()
 {
    if (jj_3R_RebuildIndexStatement_3917_3_274()) return true;
    return false;
  }

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

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

  private boolean jj_3R_StatementInternal_1063_9_116()
 {
    if (jj_3R_DropPropertyStatement_3783_3_94()) return true;
    return false;
  }

  private boolean jj_3R_EqualsCompareOperator_2605_1_582()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_EqualsCompareOperator_2606_3_705()) {
    jj_scanpos = xsp;
    if (jj_3R_EqualsCompareOperator_2608_3_706()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_StatementInternal_1060_9_115()
 {
    if (jj_3R_AlterPropertyStatement_3759_3_93()) return true;
    return false;
  }

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

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

  private boolean jj_3R_ForEachBlock_4133_3_812()
 {
    if (jj_scan_token(FOREACH)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(IN)) return true;
    if (jj_3R_Expression_2055_3_132()) 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_4140_5_845()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1057_9_114()
 {
    if (jj_3R_DropTypeStatement_3710_3_92()) return true;
    return false;
  }

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

  private boolean jj_3R_StatementInternal_1054_9_113()
 {
    if (jj_3R_AlterTypeStatement_3625_3_91()) return true;
    return false;
  }

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

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

  private boolean jj_3R_StatementInternal_1051_9_112()
 {
    if (jj_3R_TruncateRecordStatement_3518_3_90()) return true;
    return false;
  }

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

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

  private boolean jj_3R_StatementInternal_1048_9_111()
 {
    if (jj_3R_TruncateBucketStatement_3505_3_89()) return true;
    return false;
  }

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

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

  private boolean jj_3R_StatementInternal_1045_9_110()
 {
    if (jj_3R_TruncateTypeStatement_3495_3_88()) return true;
    return false;
  }

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

  private boolean jj_3R_StatementInternal_1042_9_109()
 {
    if (jj_3R_DeleteFunctionStatement_4311_3_87()) return true;
    return false;
  }

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

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

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

  private boolean jj_3R_StatementInternal_1039_9_108()
 {
    if (jj_3R_DefineFunctionStatement_4277_3_86()) return true;
    return false;
  }

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

  private boolean jj_3R_SleepStatement_4113_3_279()
 {
    if (jj_scan_token(SLEEP)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1036_9_107()
 {
    if (jj_3R_UpdateStatement_1407_3_85()) return true;
    return false;
  }

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

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

  private boolean jj_3R_StatementInternal_1033_9_106()
 {
    if (jj_3R_UpdateEdgeStatement_1385_3_84()) return true;
    return false;
  }

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

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

  private boolean jj_3R_StatementInternal_1030_9_105()
 {
    if (jj_3R_CreateEdgeStatement_1707_3_83()) return true;
    return false;
  }

  private boolean jj_3R_IfStatement_4102_5_738()
 {
    if (jj_3R_ForEachBlock_4133_3_812()) return true;
    return false;
  }

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

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

  private boolean jj_3R_StatementInternal_1027_9_104()
 {
    if (jj_3R_CreateVertexStatementEmptyNoTarget_1657_3_82()) return true;
    return false;
  }

  private boolean jj_3R_IfStatement_4100_5_737()
 {
    if (jj_3R_WhileBlock_4160_3_811()) return true;
    return false;
  }

  private boolean jj_3R_IfStatement_4098_5_736()
 {
    if (jj_3R_IfStatement_4091_3_280()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1024_9_103()
 {
    if (jj_3R_CreateVertexStatementEmpty_1664_3_81()) return true;
    return false;
  }

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

  private boolean jj_3R_IfStatement_4095_5_735()
 {
    if (jj_3R_StatementSemicolon_963_3_68()) return true;
    return false;
  }

  private boolean jj_3R_IfStatement_4095_5_634()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_IfStatement_4095_5_735()) {
    jj_scanpos = xsp;
    if (jj_3R_IfStatement_4098_5_736()) {
    jj_scanpos = xsp;
    if (jj_3R_IfStatement_4100_5_737()) {
    jj_scanpos = xsp;
    if (jj_3R_IfStatement_4102_5_738()) {
    jj_scanpos = xsp;
    if (jj_scan_token(174)) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_StatementInternal_1021_9_102()
 {
    if (jj_3R_CreateVertexStatement_1676_3_80()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_1018_9_101()
 {
    if (jj_3R_CreateVertexStatementNoTarget_1697_3_79()) return true;
    return false;
  }

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

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

  private boolean jj_3R_IfStatement_4091_3_280()
 {
    if (jj_scan_token(IF)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_OrBlock_2403_3_154()) 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_4095_5_634()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

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

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

  private boolean jj_3R_ReturnStatement_4083_5_445()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

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

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

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

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

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

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

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

  private boolean jj_3R_StatementInternal_998_9_100()
 {
    if (jj_3R_InsertStatement_1538_1_273()) return true;
    return false;
  }

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

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

  private boolean jj_3R_CommitStatement_4060_13_843()
 {
    if (jj_scan_token(AND)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CommitStatement_4060_21_851()) {
    jj_scanpos = xsp;
    if (jj_3R_CommitStatement_4060_68_852()) return true;
    }
    return false;
  }

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

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

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

  private boolean jj_3R_StatementInternal_990_9_99()
 {
    if (jj_3R_QueryStatement_1121_3_175()) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4055_13_842()
 {
    if (jj_3R_StatementInternal_986_3_70()) return true;
    if (jj_scan_token(SEMICOLON)) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2524_5_507()
 {
    if (jj_3R_WithinOperator_2587_3_594()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2523_5_506()
 {
    if (jj_3R_NearOperator_2581_3_593()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2522_5_505()
 {
    if (jj_3R_ContainsKeyOperator_2593_3_592()) return true;
    return false;
  }

  private boolean jj_3_35()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_StatementInternal_990_9_99()) {
    jj_scanpos = xsp;
    if (jj_3_7()) {
    jj_scanpos = xsp;
    if (jj_3_8()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_998_9_100()) {
    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_1018_9_101()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1021_9_102()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1024_9_103()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1027_9_104()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1030_9_105()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1033_9_106()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1036_9_107()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1039_9_108()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1042_9_109()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1045_9_110()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1048_9_111()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1051_9_112()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1054_9_113()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1057_9_114()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1060_9_115()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1063_9_116()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1066_9_117()) {
    jj_scanpos = xsp;
    if (jj_3_31()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1071_9_118()) {
    jj_scanpos = xsp;
    if (jj_3_33()) {
    jj_scanpos = xsp;
    if (jj_3_34()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1080_9_119()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1082_9_120()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1084_9_121()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1086_9_122()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1088_9_123()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1090_9_124()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1092_9_125()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1094_9_126()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1096_9_127()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1098_9_128()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1100_9_129()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_CompareOperator_2521_5_504()
 {
    if (jj_3R_ILikeOperator_2575_3_591()) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4051_9_808()
 {
    if (jj_scan_token(LBRACE)) return true;
    Token xsp;
    if (jj_3R_CommitStatement_4055_13_842()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CommitStatement_4055_13_842()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACE)) return true;
    xsp = jj_scanpos;
    if (jj_3R_CommitStatement_4060_13_843()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CompareOperator_2520_5_503()
 {
    if (jj_3R_LikeOperator_2569_3_590()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2519_5_502()
 {
    if (jj_3R_LeOperator_2563_3_589()) return true;
    return false;
  }

  private boolean jj_3R_StatementInternal_986_3_70()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_35()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1104_5_218()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1106_5_219()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementInternal_1109_5_220()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_CompareOperator_2518_5_501()
 {
    if (jj_3R_GeOperator_2557_3_588()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2517_5_500()
 {
    if (jj_3R_NeqOperator_2551_3_587()) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4049_7_734()
 {
    if (jj_scan_token(ELSE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CommitStatement_4051_9_808()) {
    jj_scanpos = xsp;
    if (jj_3R_CommitStatement_4064_9_809()) {
    jj_scanpos = xsp;
    if (jj_3R_CommitStatement_4064_56_810()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_CompareOperator_2516_5_499()
 {
    if (jj_3R_NeOperator_2545_3_586()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2515_5_498()
 {
    if (jj_3R_GtOperator_2539_3_585()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2514_5_497()
 {
    if (jj_3R_LtOperator_2533_3_584()) return true;
    return false;
  }

  private boolean jj_3R_CompareOperator_2513_5_496()
 {
    if (jj_3R_NullSafeEqualsCompareOperator_2615_2_583()) return true;
    return false;
  }

  private boolean jj_3R_CommitStatement_4047_5_444()
 {
    if (jj_scan_token(RETRY)) return true;
    if (jj_3R_PInteger_922_3_67()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CommitStatement_4049_7_734()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CompareOperator_2512_3_495()
 {
    if (jj_3R_EqualsCompareOperator_2605_1_582()) return true;
    return false;
  }

  private boolean jj_3R_ExpressionStatement_976_3_417()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

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

  private boolean jj_3R_CompareOperator_2511_1_386()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CompareOperator_2512_3_495()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2513_5_496()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2514_5_497()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2515_5_498()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2516_5_499()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2517_5_500()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2518_5_501()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2519_5_502()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2520_5_503()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2521_5_504()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2522_5_505()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2523_5_506()) {
    jj_scanpos = xsp;
    if (jj_3R_CompareOperator_2524_5_507()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

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

  private boolean jj_3R_BeginStatement_4038_5_443()
 {
    if (jj_scan_token(ISOLATION)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

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

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

  private boolean jj_3R_StatementSemicolon_967_5_216()
 {
    if (jj_3R_ExpressionStatement_976_3_417()) return true;
    return false;
  }

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

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

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

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

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

  private boolean jj_3R_StatementSemicolon_964_5_215()
 {
    if (jj_3R_StatementInternal_986_3_70()) return true;
    return false;
  }

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

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

  private boolean jj_3R_StatementSemicolon_963_3_68()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_StatementSemicolon_964_5_215()) {
    jj_scanpos = xsp;
    if (jj_3R_StatementSemicolon_967_5_216()) return true;
    }
    if (jj_scan_token(SEMICOLON)) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2497_3_379()
 {
    if (jj_3R_InstanceofCondition_2665_3_194()) return true;
    return false;
  }

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

  private boolean jj_3R_LetStatement_4028_5_521()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2494_3_378()
 {
    if (jj_3R_IndexMatchCondition_2682_3_193()) return true;
    return false;
  }

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

  private boolean jj_3R_LetStatement_4025_5_520()
 {
    if (jj_3R_StatementInternal_986_3_70()) return true;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2491_3_377()
 {
    if (jj_3R_MatchesCondition_2866_3_192()) return true;
    return false;
  }

  private boolean jj_3R_Statement_955_3_213()
 {
    if (jj_3R_StatementInternal_986_3_70()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(174)) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2488_3_376()
 {
    if (jj_3R_ContainsTextCondition_2859_3_191()) return true;
    return false;
  }

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

  private boolean jj_3R_LetStatement_4021_3_419()
 {
    if (jj_scan_token(LET)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(EQ)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_LetStatement_4025_5_520()) {
    jj_scanpos = xsp;
    if (jj_3R_LetStatement_4028_5_521()) return true;
    }
    return false;
  }

  private boolean jj_3R_ConditionBlock_2485_3_375()
 {
    if (jj_3R_ContainsAnyCondition_2844_3_190()) return true;
    return false;
  }

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

  private boolean jj_3R_PNumber_946_5_577()
 {
    if (jj_3R_FloatingPoint_935_3_69()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2482_3_374()
 {
    if (jj_3R_ContainsAllCondition_2829_3_189()) return true;
    return false;
  }

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

  private boolean jj_3R_PNumber_943_5_576()
 {
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2479_3_373()
 {
    if (jj_3R_ContainsValueCondition_2649_3_188()) return true;
    return false;
  }

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

  private boolean jj_3R_ProfileStatement_4013_3_130()
 {
    if (jj_scan_token(PROFILE)) return true;
    if (jj_3R_StatementInternal_986_3_70()) return true;
    return false;
  }

  private boolean jj_3R_PNumber_942_3_483()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_PNumber_943_5_576()) {
    jj_scanpos = xsp;
    if (jj_3R_PNumber_946_5_577()) return true;
    }
    return false;
  }

  private boolean jj_3R_ConditionBlock_2476_3_372()
 {
    if (jj_3R_ContainsCondition_2757_3_187()) return true;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2473_3_371()
 {
    if (jj_3R_BetweenCondition_2720_3_186()) return true;
    return false;
  }

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

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

  private boolean jj_3R_ExplainStatement_4005_3_418()
 {
    if (jj_scan_token(EXPLAIN)) return true;
    if (jj_3R_StatementInternal_986_3_70()) return true;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2470_3_370()
 {
    if (jj_3R_BinaryCondition_2640_3_185()) return true;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2467_3_369()
 {
    if (jj_3R_NotInCondition_2806_3_184()) return true;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2464_3_368()
 {
    if (jj_3R_InCondition_2780_3_183()) return true;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2461_3_367()
 {
    if (jj_3R_IsDefinedCondition_2743_3_182()) return true;
    return false;
  }

  private boolean jj_3R_AlterDatabaseStatement_3996_3_98()
 {
    if (jj_scan_token(ALTER)) return true;
    if (jj_scan_token(DATABASE)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

  private boolean jj_3R_ConditionBlock_2458_3_366()
 {
    if (jj_3R_IsNotDefinedCondition_2750_3_181()) return true;
    return false;
  }

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

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

  private boolean jj_3R_ConditionBlock_2455_3_365()
 {
    if (jj_3R_IsNullCondition_2729_3_180()) return true;
    return false;
  }

  private boolean jj_3R_DropBucketStatement_3987_5_632()
 {
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_DropBucketStatement_3985_5_631()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2452_3_364()
 {
    if (jj_3R_IsNotNullCondition_2736_3_179()) return true;
    return false;
  }

  private boolean jj_3R_ConditionBlock_2451_1_177()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ConditionBlock_2452_3_364()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2455_3_365()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2458_3_366()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2461_3_367()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2464_3_368()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2467_3_369()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2470_3_370()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2473_3_371()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2476_3_372()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2479_3_373()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2482_3_374()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2485_3_375()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2488_3_376()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2491_3_377()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2494_3_378()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2497_3_379()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2500_3_380()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2502_3_381()) {
    jj_scanpos = xsp;
    if (jj_3R_ConditionBlock_2504_3_382()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

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

  private boolean jj_3R_DropBucketStatement_3983_3_97()
 {
    if (jj_scan_token(DROP)) return true;
    if (jj_scan_token(BUCKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DropBucketStatement_3985_5_631()) {
    jj_scanpos = xsp;
    if (jj_3R_DropBucketStatement_3987_5_632()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_DropBucketStatement_3989_5_633()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_ParenthesisBlock_2444_3_178()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_OrBlock_2403_3_154()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

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

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

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

  private boolean jj_3R_NotBlock_2435_5_696()
 {
    if (jj_3R_ParenthesisBlock_2444_3_178()) return true;
    return false;
  }

  private boolean jj_3R_AlterBucketStatement_3970_3_96()
 {
    if (jj_scan_token(ALTER)) return true;
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterBucketStatement_3974_5_272()) jj_scanpos = xsp;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_NotBlock_2432_5_695()
 {
    if (jj_3R_ConditionBlock_2451_1_177()) return true;
    return false;
  }

  private boolean jj_3R_NotBlock_2431_3_569()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NotBlock_2432_5_695()) {
    jj_scanpos = xsp;
    if (jj_3R_NotBlock_2435_5_696()) return true;
    }
    return false;
  }

  private boolean jj_3R_NotBlock_2426_7_694()
 {
    if (jj_3R_ParenthesisBlock_2444_3_178()) return true;
    return false;
  }

  private boolean jj_3R_CreateBucketStatement_3963_5_623()
 {
    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_2423_7_693()
 {
    if (jj_3R_ConditionBlock_2451_1_177()) return true;
    return false;
  }

  private boolean jj_3R_CreateBucketStatement_3961_3_78()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateBucketStatement_3963_5_623()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_NotBlock_2420_3_568()
 {
    if (jj_scan_token(NOT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NotBlock_2423_7_693()) {
    jj_scanpos = xsp;
    if (jj_3R_NotBlock_2426_7_694()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_NotBlock_2419_1_468()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NotBlock_2420_3_568()) {
    jj_scanpos = xsp;
    if (jj_3R_NotBlock_2431_3_569()) return true;
    }
    return false;
  }

  private boolean jj_3R_DropIndexStatement_3949_5_628()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_AndBlock_2412_5_469()
 {
    if (jj_scan_token(AND)) return true;
    if (jj_3R_NotBlock_2419_1_468()) return true;
    return false;
  }

  private boolean jj_3R_DropIndexStatement_3947_3_95()
 {
    if (jj_scan_token(DROP)) return true;
    if (jj_scan_token(INDEX)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DropIndexStatement_3949_5_628()) {
    jj_scanpos = xsp;
    if (jj_3R_DropIndexStatement_3951_5_629()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_DropIndexStatement_3953_5_630()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_AndBlock_2411_3_338()
 {
    if (jj_3R_NotBlock_2419_1_468()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_AndBlock_2412_5_469()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_RebuildIndexStatement_3937_7_733()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_OrBlock_2404_5_339()
 {
    if (jj_scan_token(OR)) return true;
    if (jj_3R_AndBlock_2411_3_338()) return true;
    return false;
  }

  private boolean jj_3R_OrBlock_2403_3_154()
 {
    if (jj_3R_AndBlock_2411_3_338()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_OrBlock_2404_5_339()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_RebuildIndexStatement_3934_5_627()
 {
    if (jj_scan_token(WITH)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_RebuildIndexStatement_3937_7_733()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_RebuildIndexStatement_3928_9_732()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_WhereClause_2396_3_159()
 {
    if (jj_3R_OrBlock_2403_3_154()) return true;
    return false;
  }

  private boolean jj_3R_RebuildIndexStatement_3925_7_626()
 {
    if (jj_scan_token(WITH)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_RebuildIndexStatement_3928_9_732()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_RebuildIndexStatement_3920_7_624()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

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

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

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

  private boolean jj_3R_RebuildIndexStatement_3917_3_274()
 {
    if (jj_scan_token(REBUILD)) return true;
    if (jj_scan_token(INDEX)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_RebuildIndexStatement_3920_7_624()) {
    jj_scanpos = xsp;
    if (jj_3R_RebuildIndexStatement_3922_7_625()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_RebuildIndexStatement_3925_7_626()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_RebuildIndexStatement_3934_5_627()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_IndexIdentifier_2377_5_363()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_IndexIdentifier_2379_9_492()) {
    jj_scanpos = xsp;
    if (jj_3R_IndexIdentifier_2381_9_493()) {
    jj_scanpos = xsp;
    if (jj_3R_IndexIdentifier_2383_9_494()) return true;
    }
    }
    return false;
  }

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

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

  private boolean jj_3R_IndexIdentifier_2372_5_362()
 {
    if (jj_scan_token(INDEX_COLON)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3898_13_841()
 {
    if (jj_scan_token(METADATA)) return true;
    if (jj_3R_Json_3087_3_212()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3903_7_622()
 {
    if (jj_scan_token(NULL_STRATEGY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3905_9_730()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3907_9_731()) return true;
    }
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3896_13_840()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_IndexIdentifier_2371_3_176()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_IndexIdentifier_2372_5_362()) {
    jj_scanpos = xsp;
    if (jj_3R_IndexIdentifier_2377_5_363()) return true;
    }
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3893_9_807()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateIndexStatement_3896_13_840()) { jj_scanpos = xsp; break; }
    }
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3898_13_841()) jj_scanpos = xsp;
    return false;
  }

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

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

  private boolean jj_3_143()
 {
    if (jj_scan_token(METADATA)) return true;
    if (jj_3R_Json_3087_3_212()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3883_13_839()
 {
    if (jj_scan_token(METADATA)) return true;
    if (jj_3R_Json_3087_3_212()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3881_13_838()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_BucketList_2353_6_817()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3887_7_621()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3888_9_729()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_BucketList_2352_4_748()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_BucketList_2353_6_817()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_BucketList_2350_3_651()
 {
    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_2352_4_748()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3878_9_806()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateIndexStatement_3881_13_838()) { jj_scanpos = xsp; break; }
    }
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3883_13_839()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3_142()
 {
    if (jj_scan_token(METADATA)) return true;
    if (jj_3R_Json_3087_3_212()) return true;
    return false;
  }

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

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

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

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

  private boolean jj_3R_CreateIndexStatement_3867_9_620()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_Bucket_2338_3_143()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Bucket_2339_5_315()) {
    jj_scanpos = xsp;
    if (jj_3R_Bucket_2341_5_316()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_FromItem_2326_9_655()
 {
    if (jj_3R_Modifier_2020_3_157()) 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_737_1_141()) return true;
    return false;
  }

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

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

  private boolean jj_3R_CreateIndexStatement_3856_7_619()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2323_5_532()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FromItem_2326_9_655()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_FromItem_2319_7_654()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3845_13_805()
 {
    if (jj_scan_token(BY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3847_15_836()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3849_15_837()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_FromItem_2314_5_531()
 {
    if (jj_3R_InputParameter_1728_3_146()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2309_9_653()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3838_13_416()
 {
    if (jj_3R_RecordAttribute_1938_3_149()) return true;
    return false;
  }

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

  private boolean jj_3R_FromItem_2306_5_530()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_QueryStatement_1121_3_175()) return true;
    if (jj_scan_token(RPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FromItem_2309_9_653()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3832_13_415()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2304_5_529()
 {
    if (jj_3R_SchemaIdentifier_2362_3_652()) return true;
    return false;
  }

  private boolean jj_3R_LetClause_2242_65_548()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_LetItem_2249_3_547()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2301_5_528()
 {
    if (jj_3R_IndexIdentifier_2371_3_176()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3830_11_211()
 {
    if (jj_scan_token(COMMA)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3832_13_415()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3838_13_416()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3845_13_805()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_FromItem_2299_5_527()
 {
    if (jj_3R_BucketList_2350_3_651()) return true;
    return false;
  }

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

  private boolean jj_3R_FromItem_2293_9_747()
 {
    if (jj_3R_NamedParameter_1753_3_461()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2297_5_526()
 {
    if (jj_3R_Bucket_2338_3_143()) return true;
    return false;
  }

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

  private boolean jj_3R_FromItem_2290_9_746()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_PositionalParameter_1739_3_460()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2290_9_650()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FromItem_2290_9_746()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2293_9_747()) return true;
    }
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3822_11_210()
 {
    if (jj_scan_token(BY)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3824_13_413()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3826_13_414()) return true;
    }
    return false;
  }

  private boolean jj_3R_FromItem_2287_9_649()
 {
    if (jj_3R_NamedParameter_1753_3_461()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2285_9_648()
 {
    if (jj_3R_PositionalParameter_1739_3_460()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3815_11_209()
 {
    if (jj_3R_RecordAttribute_1938_3_149()) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2282_5_525()
 {
    if (jj_scan_token(LBRACKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FromItem_2285_9_648()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2287_9_649()) return true;
    }
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_FromItem_2290_9_650()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_FromItem_2279_7_647()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Rid_635_3_145()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3809_11_208()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

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

  private boolean jj_3R_FromItem_2274_5_524()
 {
    if (jj_3R_Rid_635_3_145()) return true;
    return false;
  }

  private boolean jj_3R_CreateIndexStatement_3804_10_207()
 {
    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_2273_3_425()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FromItem_2274_5_524()) {
    jj_scanpos = xsp;
    if (jj_3_91()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2282_5_525()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2297_5_526()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2299_5_527()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2301_5_528()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2304_5_529()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2306_5_530()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2314_5_531()) {
    jj_scanpos = xsp;
    if (jj_3_93()) {
    jj_scanpos = xsp;
    if (jj_3R_FromItem_2323_5_532()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3_140()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3804_10_207()) jj_scanpos = xsp;
    if (jj_scan_token(ON)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(LPAREN)) return true;
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3809_11_208()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3815_11_209()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3822_11_210()) jj_scanpos = xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateIndexStatement_3830_11_211()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_Identifier_737_1_141()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(238)) {
    jj_scanpos = xsp;
    if (jj_scan_token(12)) {
    jj_scanpos = xsp;
    if (jj_scan_token(223)) {
    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(235)) {
    jj_scanpos = xsp;
    if (jj_scan_token(50)) {
    jj_scanpos = xsp;
    if (jj_scan_token(51)) {
    jj_scanpos = xsp;
    if (jj_scan_token(30)) {
    jj_scanpos = xsp;
    if (jj_scan_token(31)) {
    jj_scanpos = xsp;
    if (jj_scan_token(59)) {
    jj_scanpos = xsp;
    if (jj_scan_token(26)) {
    jj_scanpos = xsp;
    if (jj_scan_token(74)) {
    jj_scanpos = xsp;
    if (jj_scan_token(76)) {
    jj_scanpos = xsp;
    if (jj_scan_token(73)) {
    jj_scanpos = xsp;
    if (jj_scan_token(68)) {
    jj_scanpos = xsp;
    if (jj_scan_token(69)) {
    jj_scanpos = xsp;
    if (jj_scan_token(70)) {
    jj_scanpos = xsp;
    if (jj_scan_token(77)) {
    jj_scanpos = xsp;
    if (jj_scan_token(78)) {
    jj_scanpos = xsp;
    if (jj_scan_token(18)) {
    jj_scanpos = xsp;
    if (jj_scan_token(63)) {
    jj_scanpos = xsp;
    if (jj_scan_token(79)) {
    jj_scanpos = xsp;
    if (jj_scan_token(80)) {
    jj_scanpos = xsp;
    if (jj_scan_token(81)) {
    jj_scanpos = xsp;
    if (jj_scan_token(83)) {
    jj_scanpos = xsp;
    if (jj_scan_token(84)) {
    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(89)) {
    jj_scanpos = xsp;
    if (jj_scan_token(75)) {
    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(96)) {
    jj_scanpos = xsp;
    if (jj_scan_token(98)) {
    jj_scanpos = xsp;
    if (jj_scan_token(99)) {
    jj_scanpos = xsp;
    if (jj_scan_token(100)) {
    jj_scanpos = xsp;
    if (jj_scan_token(101)) {
    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(115)) {
    jj_scanpos = xsp;
    if (jj_scan_token(116)) {
    jj_scanpos = xsp;
    if (jj_scan_token(118)) {
    jj_scanpos = xsp;
    if (jj_scan_token(117)) {
    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(124)) {
    jj_scanpos = xsp;
    if (jj_scan_token(125)) {
    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(131)) {
    jj_scanpos = xsp;
    if (jj_scan_token(132)) {
    jj_scanpos = xsp;
    if (jj_scan_token(134)) {
    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(140)) {
    jj_scanpos = xsp;
    if (jj_scan_token(141)) {
    jj_scanpos = xsp;
    if (jj_scan_token(142)) {
    jj_scanpos = xsp;
    if (jj_scan_token(239)) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

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

  private boolean jj_3R_CreateIndexStatement_3799_3_77()
 {
    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_3856_7_619()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3_141()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3867_9_620()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3_144()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateIndexStatement_3887_7_621()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_CreateIndexStatement_3903_7_622()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_PString_723_3_250()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(163)) {
    jj_scanpos = xsp;
    if (jj_scan_token(146)) return true;
    }
    return false;
  }

  private boolean jj_3R_LetItem_2254_5_673()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_QueryStatement_1121_3_175()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

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

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

  private boolean jj_3R_LetItem_2251_5_672()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_LetItem_2249_3_547()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(EQ)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_LetItem_2251_5_672()) {
    jj_scanpos = xsp;
    if (jj_3R_LetItem_2254_5_673()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_DropPropertyStatement_3783_3_94()
 {
    if (jj_scan_token(DROP)) return true;
    if (jj_scan_token(PROPERTY)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DropPropertyStatement_3787_5_270()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DropPropertyStatement_3788_5_271()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_LetClause_2242_3_446()
 {
    if (jj_scan_token(LET)) return true;
    if (jj_3R_LetItem_2249_3_547()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_LetClause_2242_65_548()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_AlterPropertyStatement_3772_5_269()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

  private boolean jj_3R_FromClause_2233_3_237()
 {
    if (jj_3R_FromItem_2273_3_425()) return true;
    return false;
  }

  private boolean jj_3_139()
 {
    if (jj_scan_token(CUSTOM)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

  private boolean jj_3R_BaseExpression_2220_9_489()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

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

  private boolean jj_3R_AlterPropertyStatement_3759_3_93()
 {
    if (jj_scan_token(ALTER)) return true;
    if (jj_scan_token(PROPERTY)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_139()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterPropertyStatement_3772_5_269()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_BaseExpression_2215_9_487()
 {
    if (jj_3R_PString_723_3_250()) return true;
    return false;
  }

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

  private boolean jj_3R_CreatePropertyAttributeStatement_3748_6_804()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_BaseExpression_2213_5_356()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BaseExpression_2215_9_487()) {
    jj_scanpos = xsp;
    if (jj_3R_BaseExpression_2217_9_488()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_BaseExpression_2220_9_489()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_BaseExpression_2208_9_486()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

  private boolean jj_3R_CreatePropertyAttributeStatement_3746_3_726()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreatePropertyAttributeStatement_3748_6_804()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_BaseExpression_2205_5_355()
 {
    if (jj_3R_InputParameter_1728_3_146()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BaseExpression_2208_9_486()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_BaseExpression_2200_9_485()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

  private boolean jj_3R_BucketIdentifier_668_5_803()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_CreatePropertyStatement_3736_6_727()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_CreatePropertyAttributeStatement_3746_3_726()) return true;
    return false;
  }

  private boolean jj_3R_BucketIdentifier_666_5_802()
 {
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_CreatePropertyStatement_3734_5_618()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_CreatePropertyAttributeStatement_3746_3_726()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreatePropertyStatement_3736_6_727()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_BucketIdentifier_665_3_720()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BucketIdentifier_666_5_802()) {
    jj_scanpos = xsp;
    if (jj_3R_BucketIdentifier_668_5_803()) return true;
    }
    return false;
  }

  private boolean jj_3R_CreatePropertyStatement_3732_5_617()
 {
    if (jj_scan_token(OF)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_BaseExpression_2197_5_354()
 {
    if (jj_3R_BaseIdentifier_2007_3_484()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BaseExpression_2200_9_485()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CreatePropertyStatement_3730_5_616()
 {
    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_2195_5_353()
 {
    if (jj_3R_PNumber_942_3_483()) return true;
    return false;
  }

  private boolean jj_3R_BaseExpression_2194_3_174()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BaseExpression_2195_5_353()) {
    jj_scanpos = xsp;
    if (jj_3R_BaseExpression_2197_5_354()) {
    jj_scanpos = xsp;
    if (jj_3R_BaseExpression_2205_5_355()) {
    jj_scanpos = xsp;
    if (jj_3R_BaseExpression_2213_5_356()) {
    jj_scanpos = xsp;
    if (jj_3R_BaseExpression_2225_5_357()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_CreatePropertyStatement_3726_3_76()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(PROPERTY)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreatePropertyStatement_3730_5_616()) jj_scanpos = xsp;
    if (jj_3R_Identifier_737_1_141()) return true;
    xsp = jj_scanpos;
    if (jj_3R_CreatePropertyStatement_3732_5_617()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreatePropertyStatement_3734_5_618()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_ParenthesisExpression_2185_5_352()
 {
    if (jj_3R_InsertStatement_1538_1_273()) return true;
    return false;
  }

  private boolean jj_3R_ParenthesisExpression_2183_5_351()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

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

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

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

  private boolean jj_3R_Rid_644_5_320()
 {
    if (jj_scan_token(LBRACE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_scan_token(145)) {
    jj_scanpos = xsp;
    if (jj_scan_token(146)) return true;
    }
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

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

  private boolean jj_3R_DropTypeStatement_3714_3_266()
 {
    if (jj_3R_InputParameter_1728_3_146()) return true;
    return false;
  }

  private boolean jj_3R_ParenthesisExpression_2178_3_173()
 {
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_83()) {
    jj_scanpos = xsp;
    if (jj_3R_ParenthesisExpression_2183_5_351()) {
    jj_scanpos = xsp;
    if (jj_3R_ParenthesisExpression_2185_5_352()) return true;
    }
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3_2()
 {
    if (jj_3R_PInteger_922_3_67()) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_DropTypeStatement_3712_3_265()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_DropTypeStatement_3710_3_92()
 {
    if (jj_scan_token(DROP)) return true;
    if (jj_scan_token(TYPE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_DropTypeStatement_3712_3_265()) {
    jj_scanpos = xsp;
    if (jj_3R_DropTypeStatement_3714_3_266()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_DropTypeStatement_3716_5_267()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_DropTypeStatement_3717_5_268()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3_1()
 {
    if (jj_scan_token(253)) return true;
    if (jj_3R_PInteger_922_3_67()) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_FirstLevelExpression_2169_5_350()
 {
    if (jj_3R_BaseExpression_2194_3_174()) return true;
    return false;
  }

  private boolean jj_3R_Rid_635_3_145()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_1()) {
    jj_scanpos = xsp;
    if (jj_3_2()) {
    jj_scanpos = xsp;
    if (jj_3R_Rid_644_5_320()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_FirstLevelExpression_2166_5_349()
 {
    if (jj_3R_ParenthesisExpression_2178_3_173()) return true;
    return false;
  }

  private boolean jj_3R_FirstLevelExpression_2165_3_172()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FirstLevelExpression_2166_5_349()) {
    jj_scanpos = xsp;
    if (jj_3R_FirstLevelExpression_2169_5_350()) return true;
    }
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3697_5_264()
 {
    if (jj_scan_token(CUSTOM)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3695_5_263()
 {
    if (jj_scan_token(BUCKETSELECTIONSTRATEGY)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

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

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

  private boolean jj_3R_MathExpression_2149_7_171()
 {
    if (jj_scan_token(XOR)) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3681_9_442()
 {
    if (jj_scan_token(COMMA)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterTypeStatement_3683_11_545()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3687_11_546()) return true;
    }
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_MathExpression_2147_7_170()
 {
    if (jj_scan_token(BIT_OR)) return true;
    return false;
  }

  private boolean jj_3R_MathExpression_2145_7_169()
 {
    if (jj_scan_token(BIT_AND)) return true;
    return false;
  }

  private boolean jj_3R_MathExpression_2143_7_168()
 {
    if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
    return false;
  }

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

  private boolean jj_3R_MathExpression_2141_7_167()
 {
    if (jj_scan_token(RSHIFT)) return true;
    return false;
  }

  private boolean jj_3R_MathExpression_2139_7_166()
 {
    if (jj_scan_token(LSHIFT)) return true;
    return false;
  }

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

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

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

  private boolean jj_3R_MathExpression_2133_7_163()
 {
    if (jj_scan_token(REM)) return true;
    return false;
  }

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

  private boolean jj_3R_MathExpression_2131_7_162()
 {
    if (jj_scan_token(SLASH)) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3668_5_262()
 {
    if (jj_scan_token(BUCKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterTypeStatement_3671_9_440()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3675_9_441()) return true;
    }
    if (jj_3R_Identifier_737_1_141()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_AlterTypeStatement_3681_9_442()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

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

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

  private boolean jj_3_80()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MathExpression_2129_7_161()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2131_7_162()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2133_7_163()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2135_7_164()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2137_7_165()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2139_7_166()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2141_7_167()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2143_7_168()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2145_7_169()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2147_7_170()) {
    jj_scanpos = xsp;
    if (jj_3R_MathExpression_2149_7_171()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    if (jj_3R_FirstLevelExpression_2165_3_172()) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3650_13_544()
 {
    if (jj_scan_token(COMMA)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterTypeStatement_3652_15_670()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3656_15_671()) return true;
    }
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_MathExpression_2125_3_160()
 {
    if (jj_3R_FirstLevelExpression_2165_3_172()) 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_2125_3_160()) return true;
    return false;
  }

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

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

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

  private boolean jj_3R_ArrayConcatExpressionElement_2113_5_482()
 {
    if (jj_3R_Json_3087_3_212()) return true;
    return false;
  }

  private boolean jj_3R_ArrayConcatExpressionElement_2110_5_481()
 {
    if (jj_3R_MathExpression_2125_3_160()) return true;
    return false;
  }

  private boolean jj_3R_ArrayConcatExpressionElement_2107_5_480()
 {
    if (jj_3R_Rid_635_3_145()) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3638_9_438()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterTypeStatement_3640_13_542()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3644_13_543()) return true;
    }
    if (jj_3R_Identifier_737_1_141()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_AlterTypeStatement_3650_13_544()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_ArrayConcatExpressionElement_2103_5_478()
 {
    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_2100_3_347()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_77()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayConcatExpressionElement_2103_5_478()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayConcatExpressionElement_2105_5_479()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayConcatExpressionElement_2107_5_480()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayConcatExpressionElement_2110_5_481()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayConcatExpressionElement_2113_5_482()) return true;
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3633_5_261()
 {
    if (jj_scan_token(SUPERTYPE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterTypeStatement_3638_9_438()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3664_9_439()) return true;
    }
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3628_5_260()
 {
    if (jj_scan_token(NAME)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_ArrayConcatExpression_2089_5_348()
 {
    if (jj_scan_token(SC_OR)) return true;
    if (jj_3R_ArrayConcatExpressionElement_2100_3_347()) return true;
    return false;
  }

  private boolean jj_3R_AlterTypeStatement_3625_3_91()
 {
    if (jj_scan_token(ALTER)) return true;
    if (jj_scan_token(TYPE)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_AlterTypeStatement_3628_5_260()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3633_5_261()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3668_5_262()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3695_5_263()) {
    jj_scanpos = xsp;
    if (jj_3R_AlterTypeStatement_3697_5_264()) return true;
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_ArrayConcatExpression_2087_3_158()
 {
    if (jj_3R_ArrayConcatExpressionElement_2100_3_347()) return true;
    Token xsp;
    if (jj_3R_ArrayConcatExpression_2089_5_348()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_ArrayConcatExpression_2089_5_348()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_CreateEdgeTypeStatement_3614_5_615()
 {
    if (jj_scan_token(BUCKETS)) return true;
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeTypeStatement_3610_7_725()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_BucketIdentifier_665_3_720()) return true;
    return false;
  }

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

  private boolean jj_3R_Expression_2076_5_299()
 {
    if (jj_3R_Json_3087_3_212()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeTypeStatement_3608_5_614()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_BucketIdentifier_665_3_720()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateEdgeTypeStatement_3610_7_725()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_Expression_2073_5_298()
 {
    if (jj_3R_MathExpression_2125_3_160()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeTypeStatement_3603_7_724()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3_75()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_WhereClause_2396_3_159()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3_72()
 {
    if (jj_3R_ArrayConcatExpression_2087_3_158()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeTypeStatement_3601_5_613()
 {
    if (jj_scan_token(EXTENDS)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateEdgeTypeStatement_3603_7_724()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_Expression_2065_5_297()
 {
    if (jj_3R_Rid_635_3_145()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeTypeStatement_3599_5_612()
 {
    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_2063_5_296()
 {
    if (jj_scan_token(FALSE)) return true;
    return false;
  }

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

  private boolean jj_3R_CreateEdgeTypeStatement_3597_3_75()
 {
    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_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeTypeStatement_3599_5_612()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeTypeStatement_3601_5_613()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeTypeStatement_3608_5_614()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeTypeStatement_3614_5_615()) jj_scanpos = xsp;
    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_2020_3_157()) return true;
    return false;
  }

  private boolean jj_3R_Expression_2056_5_294()
 {
    if (jj_3R_ArrayConcatExpression_2087_3_158()) return true;
    return false;
  }

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

  private boolean jj_3R_Expression_2055_3_132()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Expression_2056_5_294()) {
    jj_scanpos = xsp;
    if (jj_3_73()) {
    jj_scanpos = xsp;
    if (jj_3R_Expression_2061_5_295()) {
    jj_scanpos = xsp;
    if (jj_3R_Expression_2063_5_296()) {
    jj_scanpos = xsp;
    if (jj_3R_Expression_2065_5_297()) {
    jj_scanpos = xsp;
    if (jj_3_75()) {
    jj_scanpos = xsp;
    if (jj_3R_Expression_2073_5_298()) {
    jj_scanpos = xsp;
    if (jj_3R_Expression_2076_5_299()) return true;
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_CreateVertexTypeStatement_3587_5_611()
 {
    if (jj_scan_token(BUCKETS)) return true;
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexTypeStatement_3583_7_723()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_BucketIdentifier_665_3_720()) return true;
    return false;
  }

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

  private boolean jj_3R_CreateVertexTypeStatement_3581_5_610()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_BucketIdentifier_665_3_720()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateVertexTypeStatement_3583_7_723()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_Modifier_2046_5_346()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

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

  private boolean jj_3R_CreateVertexTypeStatement_3576_7_722()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_Modifier_2040_8_344()
 {
    if (jj_3R_MethodCall_1965_3_156()) return true;
    return false;
  }

  private boolean jj_3R_Modifier_2043_5_345()
 {
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_SuffixIdentifier_1991_3_151()) return true;
    return false;
  }

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

  private boolean jj_3R_CreateVertexTypeStatement_3574_5_609()
 {
    if (jj_scan_token(EXTENDS)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateVertexTypeStatement_3576_7_722()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_CreateVertexTypeStatement_3572_5_608()
 {
    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_Modifier_2033_9_477()
 {
    if (jj_3R_ArraySingleValuesSelector_1880_3_155()) return true;
    return false;
  }

  private boolean jj_3R_Modifier_2030_9_476()
 {
    if (jj_3R_OrBlock_2403_3_154()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexTypeStatement_3570_3_74()
 {
    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_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexTypeStatement_3572_5_608()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexTypeStatement_3574_5_609()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexTypeStatement_3581_5_610()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexTypeStatement_3587_5_611()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_Modifier_2027_9_475()
 {
    if (jj_3R_ArrayRangeSelector_1888_3_153()) return true;
    return false;
  }

  private boolean jj_3R_Modifier_2024_9_474()
 {
    if (jj_3R_RightBinaryCondition_2622_3_152()) return true;
    return false;
  }

  private boolean jj_3R_FunctionCall_1955_77_462()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_CreateDocumentTypeStatement_3560_5_607()
 {
    if (jj_scan_token(BUCKETS)) return true;
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_CreateDocumentTypeStatement_3556_7_721()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_BucketIdentifier_665_3_720()) return true;
    return false;
  }

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

  private boolean jj_3R_Modifier_2021_5_343()
 {
    if (jj_scan_token(LBRACKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Modifier_2024_9_474()) {
    jj_scanpos = xsp;
    if (jj_3R_Modifier_2027_9_475()) {
    jj_scanpos = xsp;
    if (jj_3R_Modifier_2030_9_476()) {
    jj_scanpos = xsp;
    if (jj_3R_Modifier_2033_9_477()) return true;
    }
    }
    }
    if (jj_scan_token(RBRACKET)) return true;
    return false;
  }

  private boolean jj_3R_CreateDocumentTypeStatement_3554_5_606()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_BucketIdentifier_665_3_720()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateDocumentTypeStatement_3556_7_721()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_Modifier_2020_3_157()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Modifier_2021_5_343()) {
    jj_scanpos = xsp;
    if (jj_3R_Modifier_2040_8_344()) {
    jj_scanpos = xsp;
    if (jj_3R_Modifier_2043_5_345()) return true;
    }
    }
    xsp = jj_scanpos;
    if (jj_3R_Modifier_2046_5_346()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CreateDocumentTypeStatement_3549_7_719()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_CreateDocumentTypeStatement_3547_5_605()
 {
    if (jj_scan_token(EXTENDS)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_CreateDocumentTypeStatement_3549_7_719()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_BaseIdentifier_2011_5_579()
 {
    if (jj_3R_SuffixIdentifier_1991_3_151()) return true;
    return false;
  }

  private boolean jj_3R_CreateDocumentTypeStatement_3545_5_604()
 {
    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_BaseIdentifier_2008_5_578()
 {
    if (jj_3R_LevelZeroIdentifier_1976_3_150()) return true;
    return false;
  }

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

  private boolean jj_3R_CreateDocumentTypeStatement_3543_3_73()
 {
    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_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateDocumentTypeStatement_3545_5_604()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateDocumentTypeStatement_3547_5_605()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateDocumentTypeStatement_3554_5_606()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateDocumentTypeStatement_3560_5_607()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_BaseIdentifier_2007_3_484()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BaseIdentifier_2008_5_578()) {
    jj_scanpos = xsp;
    if (jj_3R_BaseIdentifier_2011_5_579()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_TruncateRecordStatement_3527_11_541()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Rid_635_3_145()) return true;
    return false;
  }

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

  private boolean jj_3R_SuffixIdentifier_1995_5_331()
 {
    if (jj_3R_RecordAttribute_1938_3_149()) return true;
    return false;
  }

  private boolean jj_3R_TruncateRecordStatement_3525_9_437()
 {
    if (jj_3R_Rid_635_3_145()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_TruncateRecordStatement_3527_11_541()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3_61()
 {
    if (jj_3R_PCollection_3057_3_148()) return true;
    return false;
  }

  private boolean jj_3R_SuffixIdentifier_1992_5_330()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_SuffixIdentifier_1991_3_151()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_SuffixIdentifier_1992_5_330()) {
    jj_scanpos = xsp;
    if (jj_3R_SuffixIdentifier_1995_5_331()) {
    jj_scanpos = xsp;
    if (jj_3R_SuffixIdentifier_1998_5_332()) return true;
    }
    }
    return false;
  }

  private boolean jj_3_60()
 {
    if (jj_3R_FunctionCall_1947_3_147()) return true;
    return false;
  }

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

  private boolean jj_3R_TruncateRecordStatement_3520_5_258()
 {
    if (jj_3R_Rid_635_3_145()) return true;
    return false;
  }

  private boolean jj_3R_LevelZeroIdentifier_1982_5_329()
 {
    if (jj_3R_PCollection_3057_3_148()) return true;
    return false;
  }

  private boolean jj_3R_TruncateRecordStatement_3518_3_90()
 {
    if (jj_scan_token(TRUNCATE)) return true;
    if (jj_scan_token(RECORD)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TruncateRecordStatement_3520_5_258()) {
    jj_scanpos = xsp;
    if (jj_3R_TruncateRecordStatement_3522_5_259()) return true;
    }
    return false;
  }

  private boolean jj_3R_LevelZeroIdentifier_1980_5_328()
 {
    if (jj_scan_token(THIS)) return true;
    return false;
  }

  private boolean jj_3R_LevelZeroIdentifier_1977_5_327()
 {
    if (jj_3R_FunctionCall_1947_3_147()) return true;
    return false;
  }

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

  private boolean jj_3R_LevelZeroIdentifier_1976_3_150()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_LevelZeroIdentifier_1977_5_327()) {
    jj_scanpos = xsp;
    if (jj_3R_LevelZeroIdentifier_1980_5_328()) {
    jj_scanpos = xsp;
    if (jj_3R_LevelZeroIdentifier_1982_5_329()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_TruncateBucketStatement_3509_5_256()
 {
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_TruncateBucketStatement_3507_5_255()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_MethodCall_1968_7_473()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_TruncateBucketStatement_3505_3_89()
 {
    if (jj_scan_token(TRUNCATE)) return true;
    if (jj_scan_token(BUCKET)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TruncateBucketStatement_3507_5_255()) {
    jj_scanpos = xsp;
    if (jj_3R_TruncateBucketStatement_3509_5_256()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_TruncateBucketStatement_3511_5_257()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MethodCall_1967_5_342()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MethodCall_1968_7_473()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_MethodCall_1965_3_156()
 {
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MethodCall_1967_5_342()) jj_scanpos = xsp;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

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

  private boolean jj_3R_TruncateTypeStatement_3497_5_253()
 {
    if (jj_scan_token(POLYMORPHIC)) return true;
    return false;
  }

  private boolean jj_3R_TruncateTypeStatement_3495_3_88()
 {
    if (jj_scan_token(TRUNCATE)) return true;
    if (jj_scan_token(TYPE)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TruncateTypeStatement_3497_5_253()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_TruncateTypeStatement_3498_5_254()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_FunctionCall_1955_7_325()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_FunctionCall_1955_77_462()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_FunctionCall_1950_5_324()
 {
    if (jj_scan_token(DISTINCT)) return true;
    return false;
  }

  private boolean jj_3R_FunctionCall_1948_5_323()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_FunctionCall_1947_3_147()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FunctionCall_1948_5_323()) {
    jj_scanpos = xsp;
    if (jj_3R_FunctionCall_1950_5_324()) return true;
    }
    if (jj_scan_token(LPAREN)) return true;
    xsp = jj_scanpos;
    if (jj_3R_FunctionCall_1955_7_325()) jj_scanpos = xsp;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_BothPathItemOpt_3477_6_412()
 {
    if (jj_3R_MatchFilter_3236_3_404()) return true;
    return false;
  }

  private boolean jj_3R_BothPathItemOpt_3471_10_519()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_BothPathItemOpt_3469_7_411()
 {
    if (jj_scan_token(MINUS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BothPathItemOpt_3471_10_519()) jj_scanpos = xsp;
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

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

  private boolean jj_3R_BothPathItemOpt_3468_5_206()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BothPathItemOpt_3469_7_411()) {
    jj_scanpos = xsp;
    if (jj_scan_token(196)) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_BothPathItemOpt_3477_6_412()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_Alias_1931_3_459()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_ArrayRangeSelector_1917_9_467()
 {
    if (jj_scan_token(ELLIPSIS)) return true;
    return false;
  }

  private boolean jj_3R_ArrayRangeSelector_1915_9_466()
 {
    if (jj_scan_token(RANGE)) return true;
    return false;
  }

  private boolean jj_3R_InPathItemOpt_3450_6_410()
 {
    if (jj_3R_MatchFilter_3236_3_404()) return true;
    return false;
  }

  private boolean jj_3R_InPathItemOpt_3444_10_518()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_ArrayRangeSelector_1912_5_337()
 {
    if (jj_3R_ArrayNumberSelector_1867_3_465()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ArrayRangeSelector_1915_9_466()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayRangeSelector_1917_9_467()) return true;
    }
    if (jj_3R_ArrayNumberSelector_1867_3_465()) return true;
    return false;
  }

  private boolean jj_3R_InPathItemOpt_3442_7_409()
 {
    if (jj_scan_token(MINUS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InPathItemOpt_3444_10_518()) jj_scanpos = xsp;
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

  private boolean jj_3R_InPathItemOpt_3440_5_205()
 {
    if (jj_scan_token(LT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InPathItemOpt_3442_7_409()) {
    jj_scanpos = xsp;
    if (jj_scan_token(196)) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_InPathItemOpt_3450_6_410()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_ArrayRangeSelector_1900_5_336()
 {
    if (jj_scan_token(ELLIPSIS_INTEGER_RANGE)) return true;
    return false;
  }

  private boolean jj_3R_ArrayRangeSelector_1889_5_335()
 {
    if (jj_scan_token(INTEGER_RANGE)) return true;
    return false;
  }

  private boolean jj_3R_OutPathItemOpt_3422_6_408()
 {
    if (jj_3R_MatchFilter_3236_3_404()) return true;
    return false;
  }

  private boolean jj_3R_ArrayRangeSelector_1888_3_153()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ArrayRangeSelector_1889_5_335()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayRangeSelector_1900_5_336()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayRangeSelector_1912_5_337()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_OutPathItemOpt_3415_10_517()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3_59()
 {
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_ArraySingleValuesSelector_1881_5_341()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_ArraySelector_1851_3_340()) return true;
    return false;
  }

  private boolean jj_3R_OutPathItemOpt_3413_7_407()
 {
    if (jj_scan_token(MINUS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OutPathItemOpt_3415_10_517()) jj_scanpos = xsp;
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

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

  private boolean jj_3R_ArraySingleValuesSelector_1880_3_155()
 {
    if (jj_3R_ArraySelector_1851_3_340()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_ArraySingleValuesSelector_1881_5_341()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_OutPathItemOpt_3412_5_204()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OutPathItemOpt_3413_7_407()) {
    jj_scanpos = xsp;
    if (jj_scan_token(196)) return true;
    }
    if (jj_scan_token(GT)) return true;
    xsp = jj_scanpos;
    if (jj_3R_OutPathItemOpt_3422_6_408()) jj_scanpos = xsp;
    return false;
  }

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

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

  private boolean jj_3R_ArrayNumberSelector_1868_5_566()
 {
    if (jj_3R_InputParameter_1728_3_146()) return true;
    return false;
  }

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

  private boolean jj_3R_ArrayNumberSelector_1867_3_465()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ArrayNumberSelector_1868_5_566()) {
    jj_scanpos = xsp;
    if (jj_3R_ArrayNumberSelector_1871_5_567()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_ArraySelector_1858_5_472()
 {
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_BothPathItem_3387_10_516()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_ArraySelector_1855_5_471()
 {
    if (jj_3R_InputParameter_1728_3_146()) return true;
    return false;
  }

  private boolean jj_3R_ArraySelector_1852_5_470()
 {
    if (jj_3R_Rid_635_3_145()) return true;
    return false;
  }

  private boolean jj_3R_BothPathItem_3385_7_405()
 {
    if (jj_scan_token(MINUS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BothPathItem_3387_10_516()) jj_scanpos = xsp;
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

  private boolean jj_3R_ArraySelector_1851_3_340()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ArraySelector_1852_5_470()) {
    jj_scanpos = xsp;
    if (jj_3R_ArraySelector_1855_5_471()) {
    jj_scanpos = xsp;
    if (jj_3R_ArraySelector_1858_5_472()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_BothPathItem_3384_5_203()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_BothPathItem_3385_7_405()) {
    jj_scanpos = xsp;
    if (jj_scan_token(196)) return true;
    }
    if (jj_3R_MatchFilter_3236_3_404()) return true;
    return false;
  }

  private boolean jj_3R_NestedProjectionItem_1845_4_692()
 {
    if (jj_scan_token(AS)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_NestedProjectionItem_1844_4_691()
 {
    if (jj_3R_NestedProjection_1806_3_458()) return true;
    return false;
  }

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

  private boolean jj_3R_NestedProjectionItem_1839_6_777()
 {
    if (jj_scan_token(BANG)) return true;
    return false;
  }

  private boolean jj_3R_NestedProjectionItem_1838_5_690()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NestedProjectionItem_1839_6_777()) jj_scanpos = xsp;
    if (jj_3R_Expression_2055_3_132()) return true;
    xsp = jj_scanpos;
    if (jj_3R_NestedProjectionItem_1841_6_778()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_Projection_1782_59_646()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_ProjectionItem_1794_3_144()) return true;
    return false;
  }

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

  private boolean jj_3R_NestedProjectionItem_1834_3_560()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NestedProjectionItem_1835_5_689()) {
    jj_scanpos = xsp;
    if (jj_3R_NestedProjectionItem_1838_5_690()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_NestedProjectionItem_1844_4_691()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_NestedProjectionItem_1845_4_692()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_InPathItem_3360_10_869()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_Projection_1778_57_645()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_ProjectionItem_1794_3_144()) return true;
    return false;
  }

  private boolean jj_3R_InPathItem_3358_7_866()
 {
    if (jj_scan_token(MINUS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InPathItem_3360_10_869()) jj_scanpos = xsp;
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

  private boolean jj_3R_InPathItem_3356_5_861()
 {
    if (jj_scan_token(LT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InPathItem_3358_7_866()) {
    jj_scanpos = xsp;
    if (jj_scan_token(196)) return true;
    }
    if (jj_3R_MatchFilter_3236_3_404()) return true;
    return false;
  }

  private boolean jj_3R_NestedProjection_1817_5_561()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_NestedProjectionItem_1834_3_560()) return true;
    return false;
  }

  private boolean jj_3R_NestedProjection_1806_3_458()
 {
    if (jj_scan_token(COLON)) return true;
    if (jj_scan_token(LBRACE)) return true;
    if (jj_3R_NestedProjectionItem_1834_3_560()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_NestedProjection_1817_5_561()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

  private boolean jj_3R_OutPathItem_3331_10_514()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_ProjectionItem_1797_5_319()
 {
    if (jj_scan_token(AS)) return true;
    if (jj_3R_Alias_1931_3_459()) return true;
    return false;
  }

  private boolean jj_3R_ProjectionItem_1796_5_318()
 {
    if (jj_3R_NestedProjection_1806_3_458()) return true;
    return false;
  }

  private boolean jj_3R_OutPathItem_3329_7_403()
 {
    if (jj_scan_token(MINUS)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OutPathItem_3331_10_514()) jj_scanpos = xsp;
    if (jj_scan_token(MINUS)) return true;
    return false;
  }

  private boolean jj_3R_ProjectionItem_1794_4_317()
 {
    if (jj_scan_token(BANG)) return true;
    return false;
  }

  private boolean jj_3R_OutPathItem_3328_5_202()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_OutPathItem_3329_7_403()) {
    jj_scanpos = xsp;
    if (jj_scan_token(196)) return true;
    }
    if (jj_scan_token(GT)) return true;
    if (jj_3R_MatchFilter_3236_3_404()) return true;
    return false;
  }

  private boolean jj_3R_ProjectionItem_1794_3_144()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_ProjectionItem_1794_4_317()) jj_scanpos = xsp;
    if (jj_3R_Expression_2055_3_132()) return true;
    xsp = jj_scanpos;
    if (jj_3R_ProjectionItem_1796_5_318()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_ProjectionItem_1797_5_319()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_MatchFilterItem_3318_5_718()
 {
    if (jj_scan_token(PATH_ALIAS)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_Projection_1780_5_523()
 {
    if (jj_scan_token(DISTINCT)) return true;
    if (jj_3R_ProjectionItem_1794_3_144()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_Projection_1782_59_646()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_MatchFilterItem_3314_5_717()
 {
    if (jj_scan_token(DEPTH_ALIAS)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

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

  private boolean jj_3R_Projection_1777_5_522()
 {
    if (jj_3R_ProjectionItem_1794_3_144()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_Projection_1778_57_645()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_Projection_1776_3_421()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Projection_1777_5_522()) {
    jj_scanpos = xsp;
    if (jj_3R_Projection_1780_5_523()) return true;
    }
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3305_5_716()
 {
    if (jj_scan_token(OPTIONAL)) return true;
    if (jj_scan_token(COLON)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchFilterItem_3308_9_800()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3310_9_801()) return true;
    }
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3301_5_715()
 {
    if (jj_scan_token(MAXDEPTH)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_NamedParameter_1761_5_565()
 {
    if (jj_scan_token(FROM)) return true;
    return false;
  }

  private boolean jj_3R_NamedParameter_1759_5_564()
 {
    if (jj_scan_token(LIMIT)) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3293_5_714()
 {
    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_2396_3_159()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

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

  private boolean jj_3R_NamedParameter_1755_5_562()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_NamedParameter_1753_3_461()
 {
    if (jj_scan_token(COLON)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_NamedParameter_1755_5_562()) {
    jj_scanpos = xsp;
    if (jj_3R_NamedParameter_1757_5_563()) {
    jj_scanpos = xsp;
    if (jj_3R_NamedParameter_1759_5_564()) {
    jj_scanpos = xsp;
    if (jj_3R_NamedParameter_1761_5_565()) return true;
    }
    }
    }
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3285_5_713()
 {
    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_2396_3_159()) return true;
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3281_5_712()
 {
    if (jj_scan_token(AS)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1708_40_422()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

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

  private boolean jj_3R_MatchFilterItem_3277_5_711()
 {
    if (jj_scan_token(RID)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Rid_635_3_145()) return true;
    return false;
  }

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

  private boolean jj_3R_PositionalParameter_1739_3_460()
 {
    if (jj_scan_token(HOOK)) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3265_10_797()
 {
    if (jj_3R_PInteger_922_3_67()) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3269_5_710()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchFilterItem_3271_9_798()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3273_9_799()) return true;
    }
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3263_10_796()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_InputParameter_1731_5_322()
 {
    if (jj_3R_NamedParameter_1753_3_461()) return true;
    return false;
  }

  private boolean jj_3R_InputParameter_1729_5_321()
 {
    if (jj_3R_PositionalParameter_1739_3_460()) return true;
    return false;
  }

  private boolean jj_3R_InputParameter_1728_3_146()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InputParameter_1729_5_321()) {
    jj_scanpos = xsp;
    if (jj_3R_InputParameter_1731_5_322()) return true;
    }
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3260_5_709()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_scan_token(COLON)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchFilterItem_3263_10_796()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3265_10_797()) return true;
    }
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3256_5_708()
 {
    if (jj_scan_token(TYPES)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1721_5_236()
 {
    if (jj_3R_Wait_3041_3_424()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1720_5_235()
 {
    if (jj_3R_Retry_3048_3_423()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1719_5_234()
 {
    if (jj_3R_InsertBody_1582_3_138()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1718_5_233()
 {
    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_MatchFilterItem_3252_5_707()
 {
    if (jj_scan_token(TYPE)) return true;
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1717_5_232()
 {
    if (jj_scan_token(UNIDIRECTIONAL)) return true;
    return false;
  }

  private boolean jj_3R_MatchFilterItem_3251_3_598()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchFilterItem_3252_5_707()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3256_5_708()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3260_5_709()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3269_5_710()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3277_5_711()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3281_5_712()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3285_5_713()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3293_5_714()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3301_5_715()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3305_5_716()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3314_5_717()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchFilterItem_3318_5_718()) return true;
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_MatchFilter_3240_9_599()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_MatchFilterItem_3251_3_598()) return true;
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1708_5_231()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1708_40_422()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MatchFilter_3238_7_515()
 {
    if (jj_3R_MatchFilterItem_3251_3_598()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MatchFilter_3240_9_599()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_CreateEdgeStatement_1707_3_83()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(EDGE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1708_5_231()) jj_scanpos = xsp;
    if (jj_scan_token(FROM)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    if (jj_scan_token(TO)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1717_5_232()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1718_5_233()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1719_5_234()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1720_5_235()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateEdgeStatement_1721_5_236()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_MatchFilter_3236_3_404()
 {
    if (jj_scan_token(LBRACE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchFilter_3238_7_515()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

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

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

  private boolean jj_3R_CreateVertexStatementNoTarget_1697_3_79()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(VERTEX)) return true;
    if (jj_3R_InsertBody_1582_3_138()) return true;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItemArrows_3229_5_863()
 {
    if (jj_3R_MatchFilter_3236_3_404()) return true;
    return false;
  }

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

  private boolean jj_3R_CreateVertexStatement_1691_5_229()
 {
    if (jj_3R_InsertBody_1582_3_138()) return true;
    return false;
  }

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

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

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

  private boolean jj_3R_CreateVertexStatement_1687_5_227()
 {
    if (jj_3R_Bucket_2338_3_143()) return true;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItemArrows_3219_7_513()
 {
    if (jj_3R_BothPathItemOpt_3468_5_206()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexStatement_1682_9_420()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItemArrows_3216_7_512()
 {
    if (jj_3R_InPathItemOpt_3440_5_205()) return true;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItemArrows_3213_7_511()
 {
    if (jj_3R_OutPathItemOpt_3412_5_204()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexStatement_1678_5_226()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexStatement_1682_9_420()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItemArrows_3212_5_401()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MultiMatchPathItemArrows_3213_7_511()) {
    jj_scanpos = xsp;
    if (jj_3R_MultiMatchPathItemArrows_3216_7_512()) {
    jj_scanpos = xsp;
    if (jj_3R_MultiMatchPathItemArrows_3219_7_513()) return true;
    }
    }
    return false;
  }

  private boolean jj_3R_CreateVertexStatement_1676_3_80()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(VERTEX)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexStatement_1678_5_226()) {
    jj_scanpos = xsp;
    if (jj_3R_CreateVertexStatement_1687_5_227()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexStatement_1690_5_228()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexStatement_1691_5_229()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItemArrows_3209_3_200()
 {
    if (jj_scan_token(DOT)) return true;
    if (jj_scan_token(LPAREN)) return true;
    Token xsp;
    if (jj_3R_MultiMatchPathItemArrows_3212_5_401()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MultiMatchPathItemArrows_3212_5_401()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    xsp = jj_scanpos;
    if (jj_3R_MultiMatchPathItemArrows_3229_5_863()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_CreateVertexStatementEmpty_1667_5_230()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItem_3199_7_865()
 {
    if (jj_3R_MatchFilter_3236_3_404()) return true;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItem_3195_7_864()
 {
    if (jj_3R_MatchPathItem_3160_3_199()) return true;
    return false;
  }

  private boolean jj_3R_CreateVertexStatementEmpty_1664_3_81()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(VERTEX)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_CreateVertexStatementEmpty_1667_5_230()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_CreateVertexStatementEmptyNoTarget_1657_3_82()
 {
    if (jj_scan_token(CREATE)) return true;
    if (jj_scan_token(VERTEX)) return true;
    return false;
  }

  private boolean jj_3R_InsertBody_1646_12_457()
 {
    if (jj_3R_InputParameter_1728_3_146()) return true;
    return false;
  }

  private boolean jj_3R_InsertBody_1644_12_456()
 {
    if (jj_3R_Json_3087_3_212()) return true;
    return false;
  }

  private boolean jj_3R_MultiMatchPathItem_3188_3_201()
 {
    if (jj_scan_token(DOT)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_MatchPathItemFirst_3179_3_402()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MultiMatchPathItem_3195_7_864()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    xsp = jj_scanpos;
    if (jj_3R_MultiMatchPathItem_3199_7_865()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MatchPathItemFirst_3181_7_868()
 {
    if (jj_3R_MatchFilter_3236_3_404()) return true;
    return false;
  }

  private boolean jj_3R_InsertBody_1642_7_313()
 {
    if (jj_scan_token(CONTENT)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertBody_1644_12_456()) {
    jj_scanpos = xsp;
    if (jj_3R_InsertBody_1646_12_457()) return true;
    }
    return false;
  }

  private boolean jj_3R_MatchPathItemFirst_3179_3_402()
 {
    if (jj_3R_FunctionCall_1947_3_147()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchPathItemFirst_3181_7_868()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_FieldMatchPathItem_3172_7_867()
 {
    if (jj_3R_MatchFilter_3236_3_404()) return true;
    return false;
  }

  private boolean jj_3R_InsertBody_1634_9_455()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_FieldMatchPathItem_3169_3_862()
 {
    if (jj_scan_token(DOT)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_FieldMatchPathItem_3172_7_867()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_MatchPathItem_3162_7_406()
 {
    if (jj_3R_MatchFilter_3236_3_404()) return true;
    return false;
  }

  private boolean jj_3_50()
 {
    if (jj_scan_token(SET)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    if (jj_scan_token(EQ)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_InsertBody_1634_9_455()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_InsertBody_1618_11_559()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

  private boolean jj_3R_MatchPathItem_3160_3_199()
 {
    if (jj_3R_MethodCall_1965_3_156()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_MatchPathItem_3162_7_406()) jj_scanpos = xsp;
    return false;
  }

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

  private boolean jj_3R_MatchExpression_3149_9_850()
 {
    if (jj_3R_FieldMatchPathItem_3169_3_862()) return true;
    return false;
  }

  private boolean jj_3R_MatchExpression_3146_9_849()
 {
    if (jj_3R_BothPathItem_3384_5_203()) return true;
    return false;
  }

  private boolean jj_3R_InsertBody_1610_9_454()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_InsertBody_1618_11_559()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_MatchExpression_3144_9_848()
 {
    if (jj_3R_InPathItem_3356_5_861()) return true;
    return false;
  }

  private boolean jj_3R_MatchExpression_3141_9_847()
 {
    if (jj_3R_OutPathItem_3328_5_202()) return true;
    return false;
  }

  private boolean jj_3R_InsertBody_1605_9_453()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

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

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

  private boolean jj_3R_MatchExpression_3131_7_827()
 {
    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_3141_9_847()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchExpression_3144_9_848()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchExpression_3146_9_849()) {
    jj_scanpos = xsp;
    if (jj_3R_MatchExpression_3149_9_850()) return true;
    }
    }
    }
    }
    }
    }
    return false;
  }

  private boolean jj_3R_InsertBody_1592_9_142()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_MatchExpression_3128_3_581()
 {
    if (jj_3R_MatchFilter_3236_3_404()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_MatchExpression_3131_7_827()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3_49()
 {
    if (jj_scan_token(LPAREN)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_InsertBody_1592_9_142()) { 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_2055_3_132()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_InsertBody_1605_9_453()) { jj_scanpos = xsp; break; }
    }
    if (jj_scan_token(RPAREN)) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_InsertBody_1610_9_454()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

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

  private boolean jj_3R_Json_3110_11_775()
 {
    if (jj_3R_PString_723_3_250()) return true;
    return false;
  }

  private boolean jj_3R_InsertBody_1582_3_138()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_49()) {
    jj_scanpos = xsp;
    if (jj_3_50()) {
    jj_scanpos = xsp;
    if (jj_3R_InsertBody_1642_7_313()) return true;
    }
    }
    return false;
  }

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

  private boolean jj_3_47()
 {
    if (jj_3R_SelectStatement_1157_3_131()) return true;
    return false;
  }

  private boolean jj_3R_Json_3106_11_773()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1541_40_697()
 {
    if (jj_scan_token(BUCKET)) return true;
    if (jj_3R_Identifier_737_1_141()) return true;
    return false;
  }

  private boolean jj_3R_Json_3103_9_688()
 {
    if (jj_scan_token(COMMA)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Json_3106_11_773()) {
    jj_scanpos = xsp;
    if (jj_3R_Json_3108_11_774()) {
    jj_scanpos = xsp;
    if (jj_3R_Json_3110_11_775()) {
    jj_scanpos = xsp;
    if (jj_3R_Json_3112_11_776()) return true;
    }
    }
    }
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    return false;
  }

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

  private boolean jj_3R_InsertStatement_1564_11_140()
 {
    if (jj_3R_SelectWithoutTargetStatement_1136_3_314()) return true;
    return false;
  }

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

  private boolean jj_3R_InsertStatement_1561_11_139()
 {
    if (jj_3R_SelectStatement_1157_3_131()) return true;
    return false;
  }

  private boolean jj_3_46()
 {
    if (jj_3R_SelectStatement_1157_3_131()) return true;
    return false;
  }

  private boolean jj_3R_Json_3096_9_686()
 {
    if (jj_3R_PString_723_3_250()) return true;
    return false;
  }

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

  private boolean jj_3R_Json_3092_9_684()
 {
    if (jj_3R_Identifier_737_1_141()) 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_1561_11_139()) {
    jj_scanpos = xsp;
    if (jj_3R_InsertStatement_1564_11_140()) return true;
    }
    if (jj_scan_token(RPAREN)) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1554_10_793()
 {
    if (jj_3R_SelectWithoutTargetStatement_1136_3_314()) return true;
    return false;
  }

  private boolean jj_3R_Json_3090_7_557()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Json_3092_9_684()) {
    jj_scanpos = xsp;
    if (jj_3R_Json_3094_9_685()) {
    jj_scanpos = xsp;
    if (jj_3R_Json_3096_9_686()) {
    jj_scanpos = xsp;
    if (jj_3R_Json_3098_9_687()) return true;
    }
    }
    }
    if (jj_scan_token(COLON)) return true;
    if (jj_3R_Expression_2055_3_132()) return true;
    while (true) {
      xsp = jj_scanpos;
      if (jj_3R_Json_3103_9_688()) { jj_scanpos = xsp; break; }
    }
    return false;
  }

  private boolean jj_3R_InsertStatement_1551_10_792()
 {
    if (jj_3R_SelectStatement_1157_3_131()) return true;
    return false;
  }

  private boolean jj_3_45()
 {
    if (jj_3R_InsertBody_1582_3_138()) return true;
    return false;
  }

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

  private boolean jj_3R_InsertStatement_1550_8_699()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1551_10_792()) {
    jj_scanpos = xsp;
    if (jj_3R_InsertStatement_1554_10_793()) return true;
    }
    return false;
  }

  private boolean jj_3R_InsertStatement_1548_7_698()
 {
    if (jj_scan_token(FROM)) return true;
    return false;
  }

  private boolean jj_3R_Json_3087_3_212()
 {
    if (jj_scan_token(LBRACE)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_Json_3090_7_557()) jj_scanpos = xsp;
    if (jj_scan_token(RBRACE)) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1548_5_574()
 {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1548_7_698()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1550_8_699()) {
    jj_scanpos = xsp;
    if (jj_3_48()) return true;
    }
    return false;
  }

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

  private boolean jj_3R_InsertStatement_1545_5_572()
 {
    if (jj_3R_InsertBody_1582_3_138()) return true;
    return false;
  }

  private boolean jj_3R_TraverseProjectionItem_3076_7_846()
 {
    if (jj_3R_Modifier_2020_3_157()) return true;
    return false;
  }

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

  private boolean jj_3R_InsertStatement_1543_5_571()
 {
    if (jj_3R_Bucket_2338_3_143()) return true;
    return false;
  }

  private boolean jj_3R_InsertStatement_1541_5_570()
 {
    if (jj_3R_Identifier_737_1_141()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1541_40_697()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_TraverseProjectionItem_3074_3_700()
 {
    if (jj_3R_BaseIdentifier_2007_3_484()) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_TraverseProjectionItem_3076_7_846()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_InsertStatement_1538_1_273()
 {
    if (jj_scan_token(INSERT)) return true;
    if (jj_scan_token(INTO)) return true;
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1541_5_570()) {
    jj_scanpos = xsp;
    if (jj_3R_InsertStatement_1543_5_571()) return true;
    }
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1545_5_572()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1546_5_573()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1548_5_574()) jj_scanpos = xsp;
    xsp = jj_scanpos;
    if (jj_3R_InsertStatement_1571_5_575()) jj_scanpos = xsp;
    return false;
  }

  private boolean jj_3R_PCollection_3062_9_463()
 {
    if (jj_scan_token(COMMA)) return true;
    if (jj_3R_Expression_2055_3_132()) 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[369];
  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,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,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,0x0,0x0,0x0,0x0,0xc4041000,0x0,0x0,0x0,0xc4041000,0x0,0x0,0x8bf000,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,0x0,};
	}
	private static void jj_la1_init_1() {
	   jj_la1_1 = new int[] {0x0,0x0,0x880c003f,0xc90c063f,0x0,0x0,0x880c003f,0x0,0x0,0x0,0x880c023f,0x0,0x0,0x0,0x81000000,0x0,0x40000000,0x0,0x40000000,0x0,0x8000,0x90000,0x98000,0x98000,0x100000,0x880c023f,0x40000000,0x0,0x2000,0x1000,0x0,0x8000,0x90000,0x98000,0x98000,0x100000,0x0,0x880c003f,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0x400000,0x2000,0x1000,0x0,0x90000,0x8000,0x0,0x1000000,0x0,0x8000,0x0,0x0,0x0,0x0,0x880c003f,0x0,0x0,0x8000,0x0,0x8000,0x0,0x8000,0x880c003f,0x0,0x8000,0x7f,0x0,0x6000000,0x880c023f,0x1000000,0x0,0x8000,0x100000,0x7f,0x0,0x6000000,0x880c023f,0x1000000,0x0,0x8000,0x100000,0x0,0x0,0x18,0x42,0x0,0x0,0x7f,0x0,0x0,0x0,0x0,0x0,0x880c003f,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x1000000,0x0,0x880c003f,0x0,0x0,0x11,0x20000000,0x10000000,0x0,0x880d803f,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0x0,0x880c023f,0x0,0x400000,0x0,0x0,0x0,0x880c003f,0x0,0x880c023f,0x0,0x880c023f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x880c023f,0x0,0x880c023f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x880c003f,0x0,0x0,0x880c003f,0x0,0x0,0x100,0x80,0x880c023f,0x200,0x0,0x0,0x0,0x0,0x880c003f,0x0,0x880c023f,0x0,0x880c023f,0x0,0x880c023f,0x0,0x0,0x880c023f,0x0,0x880c023f,0x0,0x0,0x880c003f,0xa00000,0xa00000,0x0,0x880c003f,0xa00000,0xa00000,0x880c003f,0x0,0x0,0x880c003f,0xa00000,0xa00000,0x0,0x880c003f,0xa00000,0xa00000,0x880c003f,0x0,0x0,0x0,0x0,0x0,0x90000,0x1000000,0x1000000,0x0,0x880c023f,0x880c003f,0x0,0x880c003f,0x880c003f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x880c003f,0x0,0x0,0x400000,0x880c003f,0x0,0x880c003f,0x0,0x880c003f,0x0,0x880c003f,0x0,0x0,0x880c003f,0x0,0x0,0x880c003f,0x0,0x0,0x0,0x0,0x880c003f,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,0x200,0x0,0x0,0x0,0x0,0x880c003f,0x0,0x0,0x0,0x40000,0x0,0x0,0x880c003f,0x0,0x0,0x0,0x880c003f,0x0,0x4000,0x0,0x880c003f,0x0,0x4000,0x880c003f,0x880c003f,0x0,0x0,0x880c003f,0x880c003f,0x0,0x0,0x880c003f,0x880c003f,0x30000,0x0,0x880c003f,0x0,0x0,0x0,0x0,0x880c003f,0x0,0x0,0x0,0x880c003f,0x0,0x0,0xc1000400,0x0,0x80,0x0,0x0,0x20000000,0x880c023f,0xc90c063f,0x0,0xc90c063f,0x0,0xc90c063f,0x0,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,0x7fdbfe70,0x7ffbfe70,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x100,0x0,0x0,0xc,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x7fdbfe70,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x50,0x0,0x0,0x50,0x7fdbfe70,0x0,0x7fdbfe70,0x0,0x7fdbfe70,0x0,0x7fdbfe70,0x50,0x0,0x7fdbfe70,0x0,0x7fdbfe70,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x7fdbfe70,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x7fdbfe70,0x0,0x0,0x0,0x0,0x0,0x0,0x2000,0x2000,0x0,0x7fdbfe70,0x7fdbfe70,0x0,0x7fdbfe70,0x7fdbfe70,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1500,0x7fdbfe70,0x0,0x0,0x1500,0x7fdbfe70,0x0,0x7fdbfe70,0x0,0x7fdbfe70,0x0,0x7fdbfe70,0x0,0x0,0x7fdbfe70,0x0,0x0,0x7fdbfe70,0x0,0x0,0x40000,0x1,0x7fdbfe70,0x1,0x0,0x0,0x0,0x0,0x0,0x100000,0x0,0x0,0x400000,0x0,0x0,0x100000,0x0,0x0,0x400000,0x0,0x0,0x100000,0x0,0x0,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2800800,0x7fdbfe70,0x0,0x1,0x0,0x0,0x0,0x0,0x7fdbfe70,0x0,0x40000000,0x0,0x7fdbfe70,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x7fdbfe70,0x7fdbfe70,0x0,0x0,0x7fdbfe70,0x7fdbfe70,0x0,0x0,0x7fdbfe70,0x7fdbfe70,0x0,0x0,0x7fdbfe70,0x0,0x20,0x0,0x20,0x7fdbfe70,0x0,0x0,0x0,0x7fdbfe70,0x0,0x0,0x11224000,0x0,0x0,0x0,0x0,0x0,0x7fdbfe70,0x7ffbfe70,0x0,0x7ffbfe70,0x0,0x7ffbfe70,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,};
	}
	private static void jj_la1_init_3() {
	   jj_la1_3 = new int[] {0x0,0x0,0xbfffffbd,0xbfffffbd,0x4000000,0x0,0xbfffffbd,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0x10,0x7800180,0x2000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,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,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0x4000000,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0xbfffffbd,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0xbfffffbd,0x0,0xbfffffbd,0x0,0xbfffffbd,0x0,0x0,0xbfffffbd,0x0,0xbfffffbd,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0xbfffffbd,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0xbfffffbd,0x0,0xbfffffbd,0xbfffffbd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0xbfffffbd,0x0,0xbfffffbd,0x0,0xbfffffbd,0x0,0xbfffffbd,0x0,0x0,0xbfffffbd,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xbfffffbd,0x4000000,0x0,0x4000000,0x0,0x0,0x0,0xbfffffbd,0x4000000,0x0,0x4000000,0xbfffffbd,0x0,0x0,0x0,0xbfffffbd,0x0,0x0,0xbfffffbd,0xbfffffbd,0x0,0x8,0xbfffffbd,0xbfffffbd,0x0,0x8,0xbfffffbd,0xbfffffbd,0x0,0x2,0xbfffffbd,0x0,0x0,0x0,0x0,0xbfffffbd,0x4000000,0x4000000,0x0,0xbfffffbd,0x4000000,0x80000000,0x7802190,0x30000000,0x0,0x30000000,0x8000000,0x0,0xbfffffbd,0xbfffffbd,0x4000000,0xbfffffbd,0x4000000,0xbfffffbd,0x4000000,0x0,0x0,0x0,0x0,0x20,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x200000,0x400000,};
	}
	private static void jj_la1_init_4() {
	   jj_la1_4 = new int[] {0x60000,0x0,0x2007f5f,0x2205ffff,0x80,0x40000,0x7f5f,0x0,0x0,0x0,0x2205ff7f,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2205ff7f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1ff7f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x2000000,0x7f5f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f5f,0x0,0x0,0x0,0x0,0x0,0x2205ff7f,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x2205ff7f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f5f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7f5f,0x4000,0x0,0x0,0x0,0x0,0x0,0x7f5f,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x2205ff7f,0x0,0x0,0x0,0x0,0x2000000,0x7f7f,0x0,0x2205ff7f,0x0,0x2205ff7f,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2205ff7f,0x40000,0x2205ff7f,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x0,0x7f5f,0x0,0x0,0x7f5f,0x0,0x0,0x0,0x0,0x2205ff7f,0x0,0x0,0x0,0x0,0x0,0x47f5f,0x0,0x2205ff7f,0x0,0x2205ff7f,0x0,0x2205ff7f,0x0,0x0,0x2205ff7f,0x0,0x2205ff7f,0x40000,0x0,0x17f5f,0x0,0x0,0x0,0x17f5f,0x0,0x0,0x17f5f,0x0,0x0,0x17f5f,0x0,0x0,0x0,0x17f5f,0x0,0x0,0x17f5f,0x0,0x0,0x2000000,0x2000000,0x2000000,0x0,0x0,0x0,0x0,0x2205ff7f,0x57f5f,0x0,0x57f5f,0x57f5f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1608,0x2007f5f,0x0,0x0,0x1608,0x7f5f,0x0,0x7f5f,0x0,0x7f5f,0x0,0x7f5f,0x0,0x0,0x7f5f,0x0,0x0,0x7f5f,0x0,0x0,0x0,0x0,0x2007f5f,0x0,0x0,0x2000000,0x2000000,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,0x7f5f,0x0,0x0,0x0,0x0,0x0,0x0,0x7f5f,0x0,0x0,0x0,0x17f5f,0x0,0x0,0x0,0x17f5f,0x0,0x0,0x7f5f,0x7f5f,0x0,0x0,0x7f5f,0x7f5f,0x0,0x0,0x7f5f,0x7f5f,0x0,0x0,0x7f5f,0x0,0x0,0x0,0x0,0x7f5f,0x0,0x0,0x0,0x2007f5f,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x2205ff7f,0x2205ffff,0x80,0x2205ffff,0x80,0x2205ffff,0x80,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_5() {
	   jj_la1_5 = new int[] {0x0,0x400,0x0,0x180055cc,0x4000,0x8,0x0,0x0,0x0,0x4000,0x180015cc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1a0015cc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x1000,0x0,0x0,0x0,0x0,0x0,0x8000,0x400,0x10000000,0x10000000,0x0,0x8000,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x400,0x1400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1a0015cc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1a0015cc,0x0,0x0,0x0,0x0,0x8000,0x8000,0x0,0x0,0x8000,0x8000,0x0,0x11000,0x100000,0x11000,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x8000,0x8000,0x8000,0x8000,0x8000,0x18000400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x18000000,0x0,0x8000,0x8000,0x0,0x2000000,0x10000000,0x0,0x8000,0x2000000,0x0,0x1a0015cc,0x10000000,0x0,0x8000,0x0,0x18000030,0x0,0x8000,0x180015cc,0x8000,0x180015cc,0x0,0x0,0x1000,0x10000,0xc0,0x400,0x0,0xc0,0x400,0x0,0x180015cc,0xc,0x1800100c,0x8000,0x100,0x8000,0x18000000,0x10008000,0x10008000,0x400,0x1000,0x18000100,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x180015cc,0xc0,0xe1f00000,0x300000,0x0,0xe1f00000,0xc,0x8000,0x180015cc,0x8000,0x180015cc,0x8000,0x180015cc,0xe1f00000,0x0,0x1800110c,0x0,0x1800110c,0x1800000c,0x11000,0x0,0x0,0x0,0x11000,0x0,0x0,0x0,0x100,0x8000,0x11000,0x0,0x0,0x0,0x11000,0x0,0x0,0x0,0x100,0x8000,0x8000,0x18000000,0x18000000,0x18000000,0x0,0x0,0x0,0x8000,0x180015cc,0xc,0x8000,0xc,0xc,0x810000,0x800000,0x10000,0x400,0x400,0x400,0x400,0x800000,0x400,0x8000,0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x400,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x8000,0x400,0x1400,0x0,0x8000,0x0,0x8000,0x0,0x0,0x0,0x8000,0x0,0x8000,0x0,0x0,0x0,0x8000,0x0,0x8000,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x8000,0x0,0x0,0x18000000,0x0,0x0,0x0,0x0,0x8000,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x8000,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x180015cc,0x180055cc,0x4000,0x180055cc,0x4000,0x180055cc,0x4000,0x0,0x8000,0x0,0x0,0x0,0xc0,0x0,0x8000,0x0,0x0,0x0,0x8000,0x0,0x8000,0x0,0x0,0x8000,0x0,0x0,};
	}
	private static void jj_la1_init_6() {
	   jj_la1_6 = new int[] {0x0,0x0,0x80000040,0x800000c0,0x0,0x0,0x80000000,0x40,0x40,0x0,0x800000c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000080,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x40,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x800000c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x78000,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x800000c0,0x0,0x0,0x0,0x30000000,0x0,0x80000000,0x0,0x800000c0,0x0,0x800000c0,0x0,0x80,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0xc007be0,0x800000c0,0x0,0x800000c0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x80000000,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0xc00000c0,0x0,0x1,0x0,0x40000000,0xc0000001,0x80000000,0x0,0x800000c0,0x0,0x800000c0,0x0,0x800000c0,0x1,0x0,0x800000c0,0x0,0x800000c0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x80000000,0x0,0x0,0x80000000,0x0,0x0,0x80000000,0x0,0x0,0x0,0x80000000,0x0,0x0,0x80000000,0x0,0x0,0x40,0x40,0x40,0x0,0x0,0x0,0x0,0x800000c0,0x80000000,0x0,0x80000000,0x80000000,0x50,0x0,0x0,0x0,0x0,0x0,0x0,0x50,0x0,0x0,0x0,0x80000040,0x0,0x0,0x0,0x80000000,0x50,0x80000000,0x50,0x80000000,0x50,0x80000000,0x50,0x0,0x80000000,0x50,0x0,0x80000000,0x50,0x0,0x0,0x0,0x80000040,0x0,0x0,0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x60,0x0,0x60,0x60,0x60,0x0,0x60,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x80000000,0x0,0x0,0x80000000,0x80000000,0x0,0x0,0x80000000,0x80000000,0x0,0x0,0x80000000,0x80000000,0x0,0x0,0x80000080,0x0,0x0,0x0,0x0,0x80000080,0x0,0x0,0x80,0x80000040,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800000c0,0x800000c0,0x0,0x800000c0,0x0,0x800000c0,0x0,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,0xc800,0x2000c800,0x0,0x0,0xc800,0x0,0x0,0x0,0x2000c800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000c800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x20000000,0xc800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc800,0x0,0x0,0x0,0x0,0x0,0x2000c800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000c800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000,0x30c800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000,0x2000,0x0,0x2000,0xc800,0x0,0x0,0x0,0x0,0x0,0x0,0xc800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000c800,0x0,0x0,0x0,0x0,0x0,0xc800,0x0,0x2000c800,0x0,0x2000c800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000c800,0x0,0xc800,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x302000,0x4000000,0xc800,0x300000,0x0,0xc800,0xe0000,0xf0000,0x0,0x0,0x2000c800,0x0,0x83,0x0,0x0,0x83,0xc800,0x0,0x2000c800,0x0,0x2000c800,0x0,0x2000c800,0x8b,0x0,0xc800,0x0,0xc800,0x0,0x0,0xc800,0x0,0x0,0x0,0xc800,0x0,0x0,0xc800,0x0,0x0,0xc800,0x0,0x0,0x0,0xc800,0x0,0x0,0xc800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000c800,0xc800,0x0,0xc800,0xc800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x302000,0xc800,0x300000,0x0,0x302000,0xc800,0x0,0xc800,0x0,0xc800,0x0,0xc800,0x0,0x0,0xc800,0x0,0x0,0xc800,0x0,0x0,0x0,0x0,0xc800,0x0,0x0,0x20000000,0x20000000,0x0,0x0,0x0,0x0,0x2000,0x0,0x0,0x0,0x0,0x0,0x2000,0x0,0x0,0x0,0x0,0x0,0x2000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000,0xc800,0x0,0x0,0x0,0x0,0x0,0x0,0xc800,0x0,0x0,0x0,0xc800,0x800,0x0,0x0,0xc800,0x800,0x0,0xc800,0xc800,0x0,0x0,0xc800,0xc800,0x0,0x0,0xc800,0xc800,0x0,0x0,0xc800,0x0,0x0,0x0,0x0,0xc800,0x0,0x0,0x0,0xc800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000c800,0x2000c800,0x0,0x2000c800,0x0,0x2000c800,0x0,0x3c00000,0x0,0x0,0x3c00000,0x0,0x0,0x0,0x0,0x0,0x3c00000,0x3c00000,0x0,0x0,0x0,0x2000,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 < 369; 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 < 369; 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 < 369; 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 < 369; 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<int[]> jj_expentries = new java.util.ArrayList<int[]>();
  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[254];
	 if (jj_kind >= 0) {
	   la1tokens[jj_kind] = true;
	   jj_kind = -1;
	 }
	 for (int i = 0; i < 369; i++) {
	   if (jj_la1[i] == jj_gen) {
		 for (int j = 0; j < 32; j++) {
		   if ((jj_la1_0[i] & (1<<j)) != 0) {
			 la1tokens[j] = true;
		   }
		   if ((jj_la1_1[i] & (1<<j)) != 0) {
			 la1tokens[32+j] = true;
		   }
		   if ((jj_la1_2[i] & (1<<j)) != 0) {
			 la1tokens[64+j] = true;
		   }
		   if ((jj_la1_3[i] & (1<<j)) != 0) {
			 la1tokens[96+j] = true;
		   }
		   if ((jj_la1_4[i] & (1<<j)) != 0) {
			 la1tokens[128+j] = true;
		   }
		   if ((jj_la1_5[i] & (1<<j)) != 0) {
			 la1tokens[160+j] = true;
		   }
		   if ((jj_la1_6[i] & (1<<j)) != 0) {
			 la1tokens[192+j] = true;
		   }
		   if ((jj_la1_7[i] & (1<<j)) != 0) {
			 la1tokens[224+j] = true;
		   }
		 }
	   }
	 }
	 for (int i = 0; i < 254; i++) {
	   if (la1tokens[i]) {
		 jj_expentry = new int[1];
		 jj_expentry[0] = i;
		 jj_expentries.add(jj_expentry);
	   }
	 }
	 jj_endpos = 0;
	 jj_rescan_token();
	 jj_add_error_token(0, 0);
	 int[][] exptokseq = new int[jj_expentries.size()][];
	 for (int i = 0; i < jj_expentries.size(); i++) {
	   exptokseq[i] = jj_expentries.get(i);
	 }
	 return new ParseException(token, exptokseq, tokenImage);
  }

  private boolean trace_enabled;

/** Trace enabled. */
  final public boolean trace_enabled() {
	 return trace_enabled;
  }

  /** Enable tracing. */
  final public void enable_tracing() {
  }

  /** Disable tracing. */
  final public void disable_tracing() {
  }

  private void jj_rescan_token() {
	 jj_rescan = true;
	 for (int i = 0; i < 149; i++) {
	   try {
		 JJCalls p = jj_2_rtns[i];

		 do {
		   if (p.gen > 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;
  }

}
