/* Copyright (c) 2001-2024, The HSQL Development Group
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this
 * list of conditions and the following disclaimer.
 *
 * Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * Neither the name of the HSQL Development Group nor the names of its
 * contributors may be used to endorse or promote products derived from this
 * software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */


package org.hsqldb;

import org.hsqldb.lib.IntKeyHashMap;
import org.hsqldb.lib.IntValueHashMap;
import org.hsqldb.lib.OrderedIntHashSet;

/**
 * Defines and enumerates reserved and non-reserved SQL keywords.<p>
 *
 * @author Fred Toussi (fredt@users dot sourceforge.net)
 * @version 2.7.4
 * @since 1.7.2
 */
public final class Tokens {
    //J-
    // SQL 2023 reserved words partial set
    static final String        T_ABS                              = "ABS";
    static final String        T_ABSENT                           = "ABSENT";
    static final String        T_ACOS                             = "ACOS";
    public static final String T_ALL                              = "ALL";
    static final String        T_ALLOCATE                         = "ALLOCATE";
    public static final String T_ALTER                            = "ALTER";
    static final String        T_AND                              = "AND";
    public static final String T_ANY                              = "ANY";
    public static final String T_ANY_VALUE                        = "ANY_VALUE";
    static final String        T_ARE                              = "ARE";
    public static final String T_ARRAY                            = "ARRAY";
    public static final String T_ARRAY_AGG                        = "ARRAY_AGG";
    static final String        T_ARRAY_MAX_CARDINALITY            = "ARRAY_MAX_CARDINALITY";
    public static final String T_AS                               = "AS";
    static final String        T_ASENSITIVE                       = "ASENSITIVE";
    static final String        T_ASIN                             = "ASIN";
    static final String        T_ASYMMETRIC                       = "ASYMMETRIC";
    static final String        T_AT                               = "AT";
    static final String        T_ATAN                             = "ATAN";
    static final String        T_ATOMIC                           = "ATOMIC";
    public static final String T_AUTHORIZATION                    = "AUTHORIZATION";
    public static final String T_AVG                              = "AVG";
    static final String        T_BEGIN                            = "BEGIN";
    static final String        T_BEGIN_FRAME                      = "BEGIN_FRAME";
    static final String        T_BEGIN_PARTITION                  = "BEGIN_PARTITION";
    static final String        T_BETWEEN                          = "BETWEEN";
    public static final String T_BIGINT                           = "BIGINT";
    public static final String T_BINARY                           = "BINARY";
    static final String        T_BIT_LENGTH                       = "BIT_LENGTH";
    public static final String T_BLOB                             = "BLOB";
    public static final String T_BOOLEAN                          = "BOOLEAN";
    static final String        T_BOTH                             = "BOTH";
    static final String        T_BY                               = "BY";
    public static final String T_CALL                             = "CALL";
    static final String        T_CALLED                           = "CALLED";
    static final String        T_CARDINALITY                      = "CARDINALITY";
    public static final String T_CASCADED                         = "CASCADED";
    public static final String T_CASE                             = "CASE";
    static final String        T_CAST                             = "CAST";
    static final String        T_CEIL                             = "CEIL";
    static final String        T_CEILING                          = "CEILING";
    public static final String T_CHAR                             = "CHAR";
    static final String        T_CHAR_LENGTH                      = "CHAR_LENGTH";
    public static final String T_CHARACTER                        = "CHARACTER";
    static final String        T_CHARACTER_LENGTH                 = "CHARACTER_LENGTH";
    public static final String T_CHECK                            = "CHECK";
    public static final String T_CLOB                             = "CLOB";
    static final String        T_CLOSE                            = "CLOSE";
    static final String        T_COALESCE                         = "COALESCE";
    public static final String T_COLLATE                          = "COLLATE";
    static final String        T_COLLECT                          = "COLLECT";
    static final String        T_COLUMN                           = "COLUMN";
    public static final String T_COMMIT                           = "COMMIT";
    static final String        T_COMPARABLE                       = "COMPARABLE";    // SQL/JRT
    static final String        T_CONDITION                        = "CONDIITON";
    public static final String T_CONNECT                          = "CONNECT";
    public static final String T_CONSTRAINT                       = "CONSTRAINT";
    public static final String T_CONTAINS                         = "CONTAINS";
    public static final String T_CONVERT                          = "CONVERT";
    static final String        T_CORR                             = "CORR";
    static final String        T_CORRESPONDING                    = "CORRESPONDING";
    static final String        T_COUNT                            = "COUNT";
    static final String        T_COS                              = "COS";
    static final String        T_COSH                             = "COSH";
    static final String        T_COVAR_POP                        = "COVAR_POP";
    static final String        T_COVAR_SAMP                       = "COVAR_SAMP";
    public static final String T_CREATE                           = "CREATE";
    static final String        T_CROSS                            = "CROSS";
    static final String        T_CUBE                             = "CUBE";
    static final String        T_CUME_DIST                        = "CUME_DIST";
    static final String        T_CURRENT                          = "CURRENT";
    static final String        T_CURRENT_CATALOG                  = "CURRENT_CATALOG";
    static final String        T_CURRENT_DATE                     = "CURRENT_DATE";
    static final String        T_CURRENT_DEFAULT_TRANSFORM_GROUP  = "CURRENT_DEFAULT_TRANSFORM_GROUP";
    static final String        T_CURRENT_PATH                     = "CURRENT_PATH";
    static final String        T_CURRENT_ROLE                     = "CURRENT_ROLE";
    static final String        T_CURRENT_ROW                      = "CURRENT_ROW";
    static final String        T_CURRENT_SCHEMA                   = "CURRENT_SCHEMA";
    static final String        T_CURRENT_TIME                     = "CURRENT_TIME";
    static final String        T_CURRENT_TIMESTAMP                = "CURRENT_TIMESTAMP";
    static final String        T_CURRENT_TRANSFORM_GROUP_FOR_TYPE = "CURRENT_TRANSFORM_GROUP_FOR_TYPE";
    static final String        T_CURRENT_USER                     = "CURRENT_USER";
    static final String        T_CURSOR                           = "CURSOR";
    static final String        T_CYCLE                            = "CYCLE";
    public static final String T_DATE                             = "DATE";
    public static final String T_DAY                              = "DAY";
    static final String        T_DEALLOCATE                       = "DEALLOCATE";
    public static final String T_DEC                              = "DEC";
    public static final String T_DECIMAL                          = "DECIMAL";
    static final String        T_DECLARE                          = "DECLARE";
    public static final String T_DEFAULT                          = "DEFAULT";
    public static final String T_DELETE                           = "DELETE";
    static final String        T_DENSE_RANK                       = "DENSE_RANK";
    static final String        T_DEREF                            = "DEREF";
    static final String        T_DESCRIBE                         = "DESCRIBE";
    static final String        T_DETERMINISTIC                    = "DETERMINISTIC";
    static final String        T_DISCONNECT                       = "DISCONNECT";
    static final String        T_DISTINCT                         = "DISTINCT";
    public static final String T_DO                               = "DO";
    public static final String T_DOUBLE                           = "DOUBLE";
    static final String        T_DROP                             = "DROP";
    static final String        T_DYNAMIC                          = "DYNAMIC";
    static final String        T_EACH                             = "EACH";
    static final String        T_ELEMENT                          = "ELEMENT";
    static final String        T_ELSE                             = "ELSE";
    static final String        T_ELSEIF                           = "ELSEIF";
    static final String        T_EMPTY                            = "EMPTY";
    static final String        T_EXIT                             = "EXIT";
    static final String        T_END                              = "END";
    static final String        T_END_EXEC                         = "END_EXEC";
    static final String        T_END_FRAME                        = "END_FRAME";
    static final String        T_END_PARTITION                    = "END_PARTITION";
    static final String        T_EQUALS                           = "EQUALS";
    static final String        T_ESCAPE                           = "ESCAPE";
    static final String        T_EVERY                            = "EVERY";
    static final String        T_EXCEPT                           = "EXCEPT";
    public static final String T_EXEC                             = "EXEC";
    public static final String T_EXECUTE                          = "EXECUTE";
    static final String        T_EXISTS                           = "EXISTS";
    static final String        T_EXP                              = "EXP";
    public static final String T_EXTERNAL                         = "EXTERNAL";
    static final String        T_EXTRACT                          = "EXTRACT";
    public static final String T_FALSE                            = "FALSE";
    static final String        T_FETCH                            = "FETCH";
    public static final String T_FILTER                           = "FILTER";
    static final String        T_FIRST_VALUE                      = "FIRST_VALUE";
    public static final String T_FLOAT                            = "FLOAT";
    static final String        T_FLOOR                            = "FLOOR";
    public static final String T_FOR                              = "FOR";
    public static final String T_FOREIGN                          = "FOREIGN";
    static final String        T_FRAME_ROW                        = "FRAME_ROW";
    static final String        T_FREE                             = "FREE";
    public static final String T_FROM                             = "FROM";
    static final String        T_FULL                             = "FULL";
    public static final String T_FUNCTION                         = "FUNCTION";
    static final String        T_FUSION                           = "FUSION";
    public static final String T_GET                              = "GET";
    static final String        T_GLOBAL                           = "GLOBAL";
    public static final String T_GRANT                            = "GRANT";
    static final String        T_GROUP                            = "GROUP";
    static final String        T_GROUPS                           = "GROUPS";
    static final String        T_GROUPING                         = "GROUPING";
    static final String        T_HANDLER                          = "HANDLER";
    static final String        T_HAVING                           = "HAVING";
    static final String        T_HOLD                             = "HOLD";
    public static final String T_HOUR                             = "HOUR";
    static final String        T_IDENTITY                         = "IDENTITY";
    static final String        T_IF                               = "IF";
    static final String        T_IMPORT                           = "IMPORT";
    static final String        T_IN                               = "IN";
    static final String        T_INDICATOR                        = "INDICATOR";
    public static final String T_INITIAL                          = "INITIAL";
    static final String        T_INNER                            = "INNER";
    static final String        T_INOUT                            = "INOUT";
    static final String        T_INSENSITIVE                      = "INSENSITIVE";
    public static final String T_INSERT                           = "INSERT";
    public static final String T_INT                              = "INT";
    public static final String T_INTEGER                          = "INTEGER";
    static final String        T_INTERSECT                        = "INTERSECT";
    static final String        T_INTERSECTION                     = "INTERSECTION";
    public static final String T_INTERVAL                         = "INTERVAL";
    static final String        T_INTO                             = "INTO";
    static final String        T_ITERATE                          = "ITERATE";
    public static final String T_IS                               = "IS";
    static final String        T_JAR                              = "JAR";    // SQL/JRT
    static final String        T_JOIN                             = "JOIN";
    static final String        T_JSON                             = "JSON";
    static final String        T_JSON_ARRAY                       = "JSON_ARRAY";
    static final String        T_JSON_ARRAYAGG                    = "JSON_ARRAYAGG";
    static final String        T_JSON_EXISTS                      = "JSON_EXISTS";
    static final String        T_JSON_OBJECT                      = "JSON_OBJECT";
    static final String        T_JSON_OBJECTAGG                   = "JSON_OBJECTAGG";
    static final String        T_JSON_QUERY                       = "JSON_QUERY";
    static final String        T_JSON_TABLE                       = "JSON_TABLE";
    static final String        T_JSON_VALUE                       = "JSON_VALUE";
    static final String        T_LAG                              = "LAG";
    public static final String T_LANGUAGE                         = "LANGUAGE";
    static final String        T_LARGE                            = "LARGE";
    static final String        T_LAST_VALUE                       = "LAST_VALUE";
    static final String        T_LATERAL                          = "LATERAL";
    static final String        T_LEAD                             = "LEAD";
    static final String        T_LEADING                          = "LEADING";
    static final String        T_LEAST                            = "LEAST";
    static final String        T_LEAVE                            = "LEAVE";
    static final String        T_LEFT                             = "LEFT";
    static final String        T_LIKE                             = "LIKE";
    static final String        T_LIKE_REGX                        = "LIKE_REGX";
    static final String        T_LISTAGG                          = "LISTAGG";
    static final String        T_LN                               = "LN";
    public static final String T_LOCAL                            = "LOCAL";
    static final String        T_LOCALTIME                        = "LOCALTIME";
    static final String        T_LOCALTIMESTAMP                   = "LOCALTIMESTAMP";
    public static final String T_LOG                              = "LOG";
    static final String        T_LOG10                            = "LOG10";
    public static final String T_LOOP                             = "LOOP";
    public static final String T_LOWER                            = "LOWER";
    static final String        T_LPAD                             = "LPAD";
    static final String        T_LTRIM                            = "LTRIM";
    static final String        T_MATCH                            = "MATCH";
    public static final String T_MAX                              = "MAX";
    static final String        T_MAX_CARDINALITY                  = "MAX_CARDINALITY";
    static final String        T_MEMBER                           = "MEMBER";
    static final String        T_MERGE                            = "MERGE";
    static final String        T_METHOD                           = "METHOD";
    static final String        T_MIN                              = "MIN";
    public static final String T_MINUTE                           = "MINUTE";
    static final String        T_MOD                              = "MOD";
    static final String        T_MODIFIES                         = "MODIFIES";
    static final String        T_MODULE                           = "MODULE";
    public static final String T_MONTH                            = "MONTH";
    public static final String T_MULTISET                         = "MULTISET";
    static final String        T_NATIONAL                         = "NATIONAL";
    static final String        T_NATURAL                          = "NATURAL";
    static final String        T_NCHAR                            = "NCHAR";
    static final String        T_NCLOB                            = "NCLOB";
    static final String        T_NEW                              = "NEW";
    public static final String T_NO                               = "NO";
    public static final String T_NONE                             = "NONE";
    static final String        T_NORMALIZE                        = "NORMALIZE";
    static final String        T_NOT                              = "NOT";
    static final String        T_NTH_VALUE                        = "NTH_VALUE";
    static final String        T_NTILE                            = "NTILE";
    public static final String T_NULL                             = "NULL";
    public static final String T_NULLIF                           = "NULLIF";
    public static final String T_NUMERIC                          = "NUMERIC";
    static final String        T_OCCURRENCES_REGEX                = "OCCURRENCES_REGEX";
    static final String        T_OCTET_LENGTH                     = "OCTET_LENGTH";
    static final String        T_OF                               = "OF";
    static final String        T_OFFSET                           = "OFFSET";
    static final String        T_OLD                              = "OLD";
    public static final String T_OMIT                             = "OMIT";
    public static final String T_ON                               = "ON";
    public static final String T_ONLY                             = "ONLY";
    static final String        T_OPEN                             = "OPEN";
    static final String        T_OR                               = "OR";
    public static final String T_ORDER                            = "ORDER";
    static final String        T_OUT                              = "OUT";
    static final String        T_OUTER                            = "OUTER";
    static final String        T_OVER                             = "OVER";
    static final String        T_OVERLAPS                         = "OVERLAPS";
    static final String        T_OVERLAY                          = "OVERLAY";
    static final String        T_PARAMETER                        = "PARAMETER";
    static final String        T_PARTITION                        = "PARTITION";
    static final String        T_PERCENT                          = "PERCENT";
    static final String        T_PERCENT_RANK                     = "PERCENT_RANK";
    static final String        T_PERCENTILE_CONT                  = "PERCENTILE_CONT";
    static final String        T_PERCENTILE_DISC                  = "PERCENTILE_DISC";
    static final String        T_PERIOD                           = "PERIOD";
    static final String        T_PORTION                          = "PORTION";
    static final String        T_POSITION                         = "POSITION";
    static final String        T_POSITION_REGEX                   = "POSITION_REGEX";
    static final String        T_POWER                            = "POWER";
    static final String        T_PRECEDES                         = "PRECEDES";
    static final String        T_PRECISION                        = "PRECISION";
    static final String        T_PREPARE                          = "PREPARE";
    static final String        T_PRIMARY                          = "PRIMARY";
    public static final String T_PROCEDURE                        = "PROCEDURE";
    static final String        T_RANGE                            = "RANGE";
    static final String        T_RANK                             = "RANK";
    static final String        T_READS                            = "READS";
    public static final String T_REAL                             = "REAL";
    public static final String T_RECURSIVE                        = "RECURSIVE";
    static final String        T_REF                              = "REF";
    public static final String T_REFERENCES                       = "REFERENCES";
    static final String        T_REFERENCING                      = "REFERENCING";
    static final String        T_REGR_AVGX                        = "REGR_AVGX";
    static final String        T_REGR_AVGY                        = "REGR_AVGY";
    static final String        T_REGR_COUNT                       = "REGR_COUNT";
    static final String        T_REGR_INTERCEPT                   = "REGR_INTERCEPT";
    static final String        T_REGR_R2                          = "REGR_R2";
    static final String        T_REGR_SLOPE                       = "REGR_SLOPE";
    static final String        T_REGR_SXX                         = "REGR_SXX";
    static final String        T_REGR_SXY                         = "REGR_SXY";
    static final String        T_REGR_SYY                         = "REGR_SYY";
    static final String        T_RELEASE                          = "RELEASE";
    static final String        T_REPEAT                           = "REPEAT";
    static final String        T_RESIGNAL                         = "RESIGNAL";
    public static final String T_RESULT                           = "RESULT";
    static final String        T_RETURN                           = "RETURN";
    static final String        T_RETURNS                          = "RETURNS";
    static final String        T_REVOKE                           = "REVOKE";
    static final String        T_RIGHT                            = "RIGHT";
    public static final String T_ROLLBACK                         = "ROLLBACK";
    static final String        T_ROLLUP                           = "ROLLUP";
    public static final String T_ROW                              = "ROW";
    static final String        T_ROW_NUMBER                       = "ROW_NUMBER";
    public static final String T_ROWS                             = "ROWS";
    static final String        T_RPAD                             = "RPAD";
    static final String        T_RTRIM                            = "RTRIM";
    static final String        T_SAVEPOINT                        = "SAVEPOINT";
    static final String        T_SCOPE                            = "SCOPE";
    static final String        T_SCROLL                           = "SCROLL";
    public static final String T_SEARCH                           = "SEARCH";
    public static final String T_SECOND                           = "SECOND";
    public static final String T_SELECT                           = "SELECT";
    static final String        T_SENSITIVE                        = "SENSITIVE";
    static final String        T_SESSION_USER                     = "SESSION_USER";
    public static final String T_SET                              = "SET";
    static final String        T_SIGNAL                           = "SIGNAL";
    static final String        T_SIMILAR                          = "SIMILAR";
    static final String        T_SIN                              = "SIN";
    static final String        T_SINH                             = "SINH";
    public static final String T_SMALLINT                         = "SMALLINT";
    static final String        T_SOME                             = "SOME";
    public static final String T_SPECIFIC                         = "SPECIFIC";
    static final String        T_SPECIFICTYPE                     = "SPECIFICTYPE";
    public static final String T_SQL                              = "SQL";
    static final String        T_SQLEXCEPTION                     = "SQLEXCEPTION";
    static final String        T_SQLSTATE                         = "SQLSTATE";
    static final String        T_SQLWARNING                       = "SQLWARNING";
    static final String        T_SQRT                             = "SQRT";
    static final String        T_STACKED                          = "STACKED";
    static final String        T_START                            = "START";
    static final String        T_STATIC                           = "STATIC";
    static final String        T_STDDEV_POP                       = "STDDEV_POP";
    static final String        T_STDDEV_SAMP                      = "STDDEV_SAMP";
    static final String        T_SUBMULTISET                      = "SUBMULTISET";
    static final String        T_SUBSTRING                        = "SUBSTRING";
    static final String        T_SUBSTRING_REGEX                  = "SUBSTRING_REGEX";
    static final String        T_SUCCEEDS                         = "SUCCEEDS";
    static final String        T_SUM                              = "SUM";
    static final String        T_SYMMETRIC                        = "SYMMETRIC";
    static final String        T_SYSTEM                           = "SYSTEM";
    static final String        T_SYSTEM_TIME                      = "SYSTEM_TIME";
    static final String        T_SYSTEM_USER                      = "SYSTEM_USER";
    public static final String T_TABLE                            = "TABLE";
    static final String        T_TABLESAMPLE                      = "TABLESAMPLE";
    static final String        T_TAN                              = "TAN";
    static final String        T_TANH                             = "TANH";
    static final String        T_THEN                             = "THEN";
    public static final String T_TIME                             = "TIME";
    public static final String T_TIMESTAMP                        = "TIMESTAMP";
    public static final String T_TIMEZONE_HOUR                    = "TIMEZONE_HOUR";
    public static final String T_TIMEZONE_MINUTE                  = "TIMEZONE_MINUTE";
    public static final String T_TO                               = "TO";
    public static final String T_TRAILING                         = "TRAILING";
    public static final String T_TRANSLATE                        = "TRANSLATE";
    static final String        T_TRANSLATE_REGEX                  = "TRANSLATE_REGEX";
    static final String        T_TRANSLATION                      = "TRANSLATION";
    static final String        T_TREAT                            = "TREAT";
    public static final String T_TRIGGER                          = "TRIGGER";
    static final String        T_TRIM                             = "TRIM";
    static final String        T_TRIM_ARRAY                       = "TRIM_ARRAY";
    public static final String T_TRUE                             = "TRUE";
    public static final String T_TRUNCATE                         = "TRUNCATE";
    static final String        T_UESCAPE                          = "UESCAPE";
    static final String        T_UNDO                             = "UNDO";
    static final String        T_UNION                            = "UNION";
    public static final String T_UNIQUE                           = "UNIQUE";
    public static final String T_UNKNOWN                          = "UNKNOWN";
    static final String        T_UNNEST                           = "UNNEST";
    static final String        T_UNTIL                            = "UNTIL";
    public static final String T_UPDATE                           = "UPDATE";
    static final String        T_UPPER                            = "UPPER";
    public static final String T_USER                             = "USER";
    public static final String T_USING                            = "USING";
    static final String        T_VALUE                            = "VALUE";
    static final String        T_VALUES                           = "VALUES";
    static final String        T_VALUE_OF                         = "VALUE_OF";
    static final String        T_VAR_POP                          = "VAR_POP";
    static final String        T_VAR_SAMP                         = "VAR_SAMP";
    public static final String T_VARBINARY                        = "VARBINARY";
    public static final String T_VARCHAR                          = "VARCHAR";
    static final String        T_VARYING                          = "VARYING";
    static final String        T_VERSIONING                       = "VERSIONING";
    static final String        T_WHEN                             = "WHEN";
    static final String        T_WHENEVER                         = "WHENEVER";
    public static final String T_WHERE                            = "WHERE";
    public static final String T_WHILE                            = "WHILE";
    static final String        T_WIDTH_BUCKET                     = "WIDTH_BUCKET";
    static final String        T_WINDOW                           = "WINDOW";
    public static final String T_WITH                             = "WITH";
    static final String        T_WITHIN                           = "WITHIN";
    static final String        T_WITHOUT                          = "WITHOUT";
    public static final String T_YEAR                             = "YEAR";

    // ops
    static final String        T_ASTERISK       = "*";
    public static final String T_COMMA          = ",";
    static final String        T_CIRCUMFLEX     = "^";
    public static final String T_CLOSEBRACKET   = ")";
    public static final String T_COLON          = ":";
    static final String        T_CONCAT_OP      = "||";
    public static final String T_DIVIDE_OP      = "/";
    static final String        T_EQUALS_OP      = "=";
    static final String        T_GREATER_OP     = ">";
    static final String        T_GREATER_EQUALS = ">=";
    public static final String T_LEFTBRACE      = "{";
    public static final String T_LEFTBRACKET    = "[";
    static final String        T_LESS_OP        = "<";
    static final String        T_LESS_EQUALS    = "<=";
    static final String        T_PERCENT_OP     = "%";
    static final String        T_PLUS_OP        = "+";
    static final String        T_MINUS_OP       = "-";
    static final String        T_NOT_EQUALS     = "<>";
    static final String        T_NOT_EQUALS_ALT = "!=";
    public static final String T_OPENBRACKET    = "(";
    static final String        T_QUESTION       = "?";
    public static final String T_RIGHTBRACE     = "}";
    public static final String T_RIGHTBRACKET   = "]";
    static final String        T_SEMICOLON      = ";";
    static final String        T_DOUBLE_COLON   = "::";
    static final String        T_DOUBLE_PERIOD  = "..";
    static final String        T_ARG_ASSIGN     = "=>";

    // SQL:200n non-reserved words partial set
    static final String        T_A                           = "A";
    static final String        T_ABSOLUTE                    = "ABSOLUTE";
    static final String        T_ACTION                      = "ACTION";
    static final String        T_ADA                         = "ADA";
    static final String        T_ADD                         = "ADD";
    static final String        T_ADMIN                       = "ADMIN";
    static final String        T_AFTER                       = "AFTER";
    static final String        T_ALWAYS                      = "ALWAYS";
    static final String        T_ASC                         = "ASC";
    static final String        T_ASSERTION                   = "ASSERTION";
    static final String        T_ASSIGNMENT                  = "ASSIGNMENT";
    static final String        T_ATTRIBUTE                   = "ATTRIBUTE";
    static final String        T_ATTRIBUTES                  = "ATTRIBUTES";
    static final String        T_BEFORE                      = "BEFORE";
    static final String        T_BERNOULLI                   = "BERNOULLI";
    public static final String T_BIT                         = "BIT";
    static final String        T_BITLENGTH                   = "BITLENGTH";
    static final String        T_BREADTH                     = "BREADTH";
    static final String        T_C                           = "C";
    static final String        T_CASCADE                     = "CASCADE";
    public static final String T_CATALOG                     = "CATALOG";
    public static final String T_CATALOG_NAME                = "CATALOG_NAME";
    static final String        T_CHAIN                       = "CHAIN";
    static final String        T_CHARACTER_SET_CATALOG       = "CHARACTER_SET_CATALOG";
    static final String        T_CHARACTER_SET_NAME          = "CHARACTER_SET_NAME";
    static final String        T_CHARACTER_SET_SCHEMA        = "CHARACTER_SET_SCHEMA";
    static final String        T_CHARACTERISTICS             = "CHARACTERISTICS";
    static final String        T_CHARACTERS                  = "CHARACTERS";
    static final String        T_CLASS_ORIGIN                = "CLASS_ORIGIN";
    static final String        T_COBOL                       = "COBOL";
    public static final String T_COLLATION                   = "COLLATION";
    static final String        T_COLLATION_CATALOG           = "COLLATION_CATALOG";
    static final String        T_COLLATION_NAME              = "COLLATION_NAME";
    static final String        T_COLLATION_SCHEMA            = "COLLATION_SCHEMA";
    static final String        T_COLUMN_NAME                 = "COLUMN_NAME";
    static final String        T_COMMAND_FUNCTION            = "COMMAND_FUNCTION";
    static final String        T_COMMAND_FUNCTION_CODE       = "COMMAND_FUNCTION_CODE";
    public static final String T_COMMITTED                   = "COMMITTED";
    static final String        T_CONDITION_IDENTIFIER        = "CONDIITON_IDENTIFIER";
    static final String        T_CONDITION_NUMBER            = "CONDITION_NUMBER";
    static final String        T_CONDITIONAL                 = "CONDITIONAL";
    static final String        T_CONNECTION                  = "CONNECTION";
    static final String        T_CONNECTION_NAME             = "CONNECTION_NAME";
    static final String        T_CONSTRAINT_CATALOG          = "CONSTRAINT_CATALOG";
    static final String        T_CONSTRAINT_NAME             = "CONSTRAINT_NAME";
    static final String        T_CONSTRAINT_SCHEMA           = "CONSTRAINT_SCHEMA";
    static final String        T_CONSTRAINTS                 = "CONSTRAINTS";
    static final String        T_CONSTRUCTOR                 = "CONSTRUCTOR";
    static final String        T_CONTINUE                    = "CONTINUE";
    static final String        T_CURRENT_COLLATION           = "CURRENT_COLLATION";
    static final String        T_CURSOR_NAME                 = "CURSOR_NAME";
    public static final String T_DATA                        = "DATA";
    static final String        T_INTERVAL_CODE               = "DATETIME_INTERVAL_CODE";
    static final String        T_DATETIME_INTERVAL_PRECISION = "DATETIME_INTERVAL_PRECISION";
    public static final String T_DEFAULTS                    = "DEFAULTS";
    static final String        T_DEFERRABLE                  = "DEFERRABLE";
    static final String        T_DEFERRED                    = "DEFERRED";
    static final String        T_DEFINED                     = "DEFINED";
    static final String        T_DEFINER                     = "DEFINER";
    static final String        T_DEGREE                      = "DEGREE";
    static final String        T_DEPTH                       = "DEPTH";
    static final String        T_DERIVED                     = "DERIVED";
    static final String        T_DESC                        = "DESC";
    static final String        T_DESCRIPTOR                  = "DESCRIPTOR";
    static final String        T_DIAGNOSTICS                 = "DIAGNOSTICS";
    static final String        T_DISPATCH                    = "DISPATCH";
    public static final String T_DOMAIN                      = "DOMAIN";
    static final String        T_DYNAMIC_FUNCTION            = "DYNAMIC_FUNCTION";
    static final String        T_DYNAMIC_FUNCTION_CODE       = "DYNAMIC_FUNCTION_CODE";
    static final String        T_ENCODING                    = "ENCODING";
    static final String        T_ENFORCED                    = "ENFORCED";
    public static final String T_ERROR                       = "ERROR";
    static final String        T_EXCEPTION                   = "EXCEPTION";
    static final String        T_EXCLUDE                     = "EXCLUDE";
    static final String        T_EXCLUDING                   = "EXCLUDING";
    static final String        T_EXPRESSION                  = "EXPRESSION";
    static final String        T_FINAL                       = "FINAL";
    public static final String T_FIRST                       = "FIRST";
    static final String        T_FLAG                        = "FLAG";
    static final String        T_FOLLOWING                   = "FOLLOWING";
    static final String        T_FORMAT                      = "FORMAT";
    static final String        T_FORTRAN                     = "FORTRAN";
    static final String        T_FOUND                       = "FOUND";
    public static final String T_G_FACTOR                    = "G";
    static final String        T_GENERATED                   = "GENERATED";
    static final String        T_GENERAL                     = "GENERAL";
    static final String        T_GO                          = "GO";
    static final String        T_GOTO                        = "GOTO";
    static final String        T_GRANTED                     = "GRANTED";
    static final String        T_HIERARCHY                   = "HIERARCHY";
    static final String        T_IGNORE                      = "IGNORE";
    static final String        T_IMMEDIATE                   = "IMMEDIATE";
    static final String        T_IMMEDIATELY                 = "IMMEDIATELY";
    static final String        T_IMPLEMENTATION              = "IMPLEMENTATION";
    static final String        T_INCLUDING                   = "INCLUDING";
    public static final String T_INCREMENT                   = "INCREMENT";
    static final String        T_INITIALLY                   = "INITIALLY";
    static final String        T_INPUT                       = "INPUT";
    static final String        T_INSTANCE                    = "INSTANCE";
    static final String        T_INSTANTIABLE                = "INSTANTIABLE";
    static final String        T_INSTEAD                     = "INSTEAD";
    static final String        T_INTERFACE                   = "INTERFACE";     // SQL/JRT
    static final String        T_INVOKER                     = "INVOKER";
    public static final String T_ISOLATION                   = "ISOLATION";
    public static final String T_JAVA                        = "JAVA";          // SQL/JRT
    public static final String T_K_FACTOR                    = "K";
    static final String        T_KEEP                        = "KEEP";
    static final String        T_KEY                         = "KEY";
    static final String        T_KEYS                        = "KEYS";
    static final String        T_KEY_MEMBER                  = "KEY_MEMBER";
    static final String        T_KEY_TYPE                    = "KEY_TYPE";
    static final String        T_LAST                        = "LAST";
    static final String        T_LENGTH                      = "LENGTH";
    public static final String T_LEVEL                       = "LEVEL";
    public static final String T_LIBRARY                     = "LIBRARY";
    static final String        T_LOCATOR                     = "LOCATOR";
    public static final String T_M_FACTOR                    = "M";
    static final String        T_MAP                         = "MAP";
    static final String        T_MATCHED                     = "MATCHED";
    static final String        T_MAXVALUE                    = "MAXVALUE";
    static final String        T_MESSAGE_LENGTH              = "MESSAGE_LENGTH";
    static final String        T_MESSAGE_OCTET_LENGTH        = "MESSAGE_OCTET_LENGTH";
    static final String        T_MESSAGE_TEXT                = "MESSAGE_TEXT";
    static final String        T_MINVALUE                    = "MINVALUE";
    static final String        T_MORE                        = "MORE";
    static final String        T_MUMPS                       = "MUMPS";
    public static final String T_NAME                        = "NAME";
    public static final String T_NAMES                       = "NAMES";
    static final String        T_NESTED                      = "NESTED";
    static final String        T_NESTING                     = "NESTING";
    static final String        T_NEXT                        = "NEXT";
    static final String        T_NFC                         = "NFC";
    static final String        T_NFD                         = "NFD";
    static final String        T_NFKC                        = "NFKC";
    static final String        T_NFKD                        = "NFKD";
    static final String        T_NORMALIZED                  = "NORMALIZED";
    static final String        T_NULLABLE                    = "NULLABLE";
    public static final String T_NULLS                       = "NULLS";
    static final String        T_NUMBER                      = "NUMBER";
    public static final String T_OBJECT                      = "OBJECT";
    static final String        T_OCTETS                      = "OCTETS";
    static final String        T_OPTION                      = "OPTION";
    static final String        T_OPTIONS                     = "OPTIONS";
    static final String        T_ORDERING                    = "ORDERING";
    static final String        T_ORDINALITY                  = "ORDINALITY";
    static final String        T_OTHERS                      = "OTHERS";
    static final String        T_OUTPUT                      = "OUTPUT";
    public static final String T_OVERRIDING                  = "OVERRIDING";
    public static final String T_OVERFLOW                    = "OVERFLOW";
    public static final String T_P_FACTOR                    = "P";
    public static final String T_PAD                         = "PAD";
    static final String        T_PARAMETER_MODE              = "PARAMETER_MODE";
    static final String        T_PARAMETER_NAME              = "PARAMETER_NAME";
    static final String        T_PARAMETER_ORDINAL_POSITION  = "PARAMETER_ORDINAL_POSITION";
    static final String        T_PARAMETER_SPECIFIC_CATALOG  = "PARAMETER_SPECIFIC_CATALOG";
    static final String        T_PARAMETER_SPEC_NAME         = "PARAMETER_SPECIFIC_NAME";
    static final String        T_PARAMETER_SPEC_SCHEMA       = "PARAMETER_SPECIFIC_SCHEMA";
    static final String        T_PARTIAL                     = "PARTIAL";
    static final String        T_PASCAL                      = "PASCAL";
    static final String        T_PASSING                     = "PASSSING";
    public static final String T_PATH                        = "PATH";
    static final String        T_PLACING                     = "PLACING";
    static final String        T_PLI                         = "PLI";
    static final String        T_PRECEDING                   = "PRECEDING";
    static final String        T_PRESERVE                    = "PRESERVE";
    static final String        T_PRIOR                       = "PRIOR";
    static final String        T_PRIVILEGES                  = "PRIVILEGES";
    public static final String T_PUBLIC                      = "PUBLIC";
    public static final String T_READ                        = "READ";
    static final String        T_RELATIVE                    = "RELATIVE";
    static final String        T_REPEATABLE                  = "REPEATABLE";
    static final String        T_RESPECT                     = "RESPECT";
    static final String        T_RESTART                     = "RESTART";
    static final String        T_RESET                       = "RESET";
    public static final String T_RESTRICT                    = "RESTRICT";
    static final String        T_RETURNED_CARDINALITY        = "RETURNED_CARDINALITY";
    static final String        T_RETURNED_LENGTH             = "RETURNED_LENGTH";
    static final String        T_RETURNED_OCTET_LENGTH       = "RETURNED_OCTET_LENGTH";
    static final String        T_RETURNED_SQLSTATE           = "RETURNED_SQLSTATE";
    static final String        T_RETURNING                   = "RETURNING";
    public static final String T_ROLE                        = "ROLE";
    public static final String T_ROUTINE                     = "ROUTINE";
    static final String        T_ROUTINE_CATALOG             = "ROUTINE_CATALOG";
    static final String        T_ROUTINE_NAME                = "ROUTINE_NAME";
    static final String        T_ROUTINE_SCHEMA              = "ROUTINE_SCHEMA";
    static final String        T_ROW_COUNT                   = "ROW_COUNT";
    static final String        T_SCALAR                      = "SCALAR";
    public static final String T_SCALE                       = "SCALE";
    public static final String T_SCHEMA                      = "SCHEMA";
    static final String        T_SCHEMA_NAME                 = "SCHEMA_NAME";
    static final String        T_SCOPE_CATALOG               = "SCOPE_CATALOG";
    static final String        T_SCOPE_NAME                  = "SCOPE_NAME";
    static final String        T_SCOPE_SCHEMA                = "SCOPE_SCHEMA";
    static final String        T_SECTION                     = "SECTION";
    static final String        T_SECURITY                    = "SECURITY";
    static final String        T_SELF                        = "SELF";
    public static final String T_SEQUENCE                    = "SEQUENCE";
    static final String        T_SERIAL                      = "SERIAL";
    public static final String T_SERIALIZABLE                = "SERIALIZABLE";
    public static final String T_SERVER                      = "SERVER";
    static final String        T_SERVER_NAME                 = "SERVER_NAME";
    public static final String T_SESSION                     = "SESSION";
    static final String        T_SETS                        = "SETS";
    static final String        T_SIMPLE                      = "SIMPLE";
    public static final String T_SIZE                        = "SIZE";
    static final String        T_SOURCE                      = "SOURCE";
    public static final String T_SPACE                       = "SPACE";
    static final String        T_SPECIFIC_NAME               = "SPECIFIC_NAME";
    static final String        T_SQLDATA                     = "SQLDATA";       // SQL/JRT
    static final String        T_STATE                       = "STATE";
    static final String        T_STATEMENT                   = "STATEMENT";
    static final String        T_STRUCTURE                   = "STRUCTURE";
    static final String        T_STYLE                       = "STYLE";
    static final String        T_SUBCLASS_ORIGIN             = "SUBCLASS_ORIGIN";
    public static final String T_T_FACTOR                    = "T";
    static final String        T_TABLE_NAME                  = "TABLE_NAME";
    static final String        T_TEMPORARY                   = "TEMPORARY";
    static final String        T_TIES                        = "TIES";
    static final String        T_TOP_LEVEL_COUNT             = "TOP_LEVEL_COUNT";
    public static final String T_TRANSACTION                 = "TRANSACTION";
    static final String        T_TRANSACTS_COMMITTED         = "TRANSACTIONS_COMMITTED";
    static final String        T_TRANSACTS_ROLLED_BACK       = "TRANSACTIONS_ROLLED_BACK";
    static final String        T_TRANSACTION_ACTIVE          = "TRANSACTION_ACTIVE";
    static final String        T_TRANSFORM                   = "TRANSFORM";
    static final String        T_TRANSFORMS                  = "TRANSFORMS";
    static final String        T_TRIGGER_CATALOG             = "TRIGGER_CATALOG";
    static final String        T_TRIGGER_NAME                = "TRIGGER_NAME";
    static final String        T_TRIGGER_SCHEMA              = "TRIGGER_SCHEMA";
    public static final String T_TYPE                        = "TYPE";
    static final String        T_UNBOUNDED                   = "UNBOUNDED";
    static final String        T_UNCONDITIONAL               = "UNCONDITIONAL";
    static final String        T_UNCOMMITTED                 = "UNCOMMITTED";
    static final String        T_UNDER                       = "UNDER";
    static final String        T_UNNAMED                     = "UNNAMED";
    public static final String T_USAGE                       = "USAGE";
    static final String        T_USER_DEFINED_TYPE_CATALOG   = "USER_DEFINED_TYPE_CATALOG";
    static final String        T_USER_DEFINED_TYPE_CODE      = "USER_DEFINED_TYPE_CODE";
    static final String        T_USER_DEFINED_TYPE_NAME      = "USER_DEFINED_TYPE_NAME";
    static final String        T_USER_DEFINED_TYPE_SCHEMA    = "USER_DEFINED_TYPE_SCHEMA";
    static final String        T_VIEW                        = "VIEW";
    static final String        T_WORK                        = "WORK";
    public static final String T_WRAPPER                     = "WRAPPER";
    public static final String T_WRITE                       = "WRITE";
    public static final String T_ZONE                        = "ZONE";

    // other tokens
    static final String        T_ALIAS                      = "ALIAS";
    static final String        T_AGGREGATE                  = "AGGREGATE";
    public static final String T_AUTHENTICATION             = "AUTHENTICATION";
    static final String        T_AUTO_INCREMENT             = "AUTO_INCREMENT";
    static final String        T_AUTOCOMMIT                 = "AUTOCOMMIT";
    public static final String T_BACKUP                     = "BACKUP";
    static final String        T_BIGSERIAL                  = "BIGSERIAL";
    static final String        T_BINARY_DOUBLE              = "BINARY_DOUBLE";
    static final String        T_BINARY_FLOAT               = "BINARY_FLOAT";
    static final String        T_BODY                       = "BODY";
    static final String        T_BYTE                       = "BYTE";
    public static final String T_CACHE                      = "CACHE";
    public static final String T_CACHED                     = "CACHED";
    static final String        T_CASEWHEN                   = "CASEWHEN";
    static final String        T_CHECKPOINT                 = "CHECKPOINT";
    static final String        T_CITEXT                     = "CITEXT";
    static final String        T_CLASS                      = "CLASS";
    static final String        T_CLUSTERED                  = "CLUSTERED";
    static final String        T_COMMENT                    = "COMMENT";
    public static final String T_COMPACT                    = "COMPACT";
    public static final String T_COMPRESSED                 = "COMPRESSED";
    public static final String T_CONFLICT                   = "CONFLICT";
    public static final String T_CONTROL                    = "CONTROL";
    static final String        T_CURDATE                    = "CURDATE";
    static final String        T_CURRVAL                    = "CURRVAL";
    static final String        T_CURTIME                    = "CURTIME";
    static final String        T_CURRENT_TIMEZONE           = "CURRENT_TIMEZONE";
    public static final String T_DATABASE                   = "DATABASE";
    public static final String T_DATETIME                   = "DATETIME";
    public static final String T_DB2                        = "DB2";
    public static final String T_DEADLOCK                   = "DEADLOCK";
    public static final String T_DEFRAG                     = "DEFRAG";
    public static final String T_DELAY                      = "DELAY";
    public static final String T_DIGEST                     = "DIGEST";
    static final String        T_DUAL                       = "DUAL";
    static final String        T_DUPLICATE                  = "DUPLICATE";
    public static final String T_EVENT                      = "EVENT";
    static final String        T_EXCLUSIVE                  = "EXCLUSIVE";
    static final String        T_EXPLAIN                    = "EXPLAIN";
    static final String        T_EXPORT                     = "EXPORT";
    static final String        T_FEATURE                    = "FEATURE";
    static final String        T_FILE                       = "FILE";
    public static final String T_FILES                      = "FILES";
    static final String        T_FOLD                       = "FOLD";
    static final String        T_GROUP_CONCAT               = "GROUP_CONCAT";
    static final String        T_HEADER                     = "HEADER";
    public static final String T_IDENTIFIER                 = "IDENTIFIER";
    static final String        T_IFNULL                     = "IFNULL";
    public static final String T_IGNORECASE                 = "IGNORECASE";
    public static final String T_INDEX                      = "INDEX";
    public static final String T_INDEXER                    = "INDEXER";
    public static final String T_INFINITY                   = "INFINITY";
    public static final String T_INTEGRITY                  = "INTEGRITY";
    public static final String T_INTERRUPT                  = "INTERRUPT";
    static final String        T_IS_AUTOCOMMIT              = "IS_AUTOCOMMIT";
    static final String        T_IS_READONLY_DATABASE       = "IS_READONLY_DATABASE";
    static final String        T_IS_READONLY_DATABASE_FILES = "IS_READONLY_DATABASE_FILES";
    static final String        T_IS_READONLY_SESSION        = "IS_READONLY_SESSION";
    static final String        T_ISNULL                     = "ISNULL";
    static final String        T_LASTVAL                    = "LASTVAL";
    static final String        T_LIMIT                      = "LIMIT";
    public static final String T_LOB                        = "LOB";
    public static final String T_LOCK                       = "LOCK";
    public static final String T_LOCKS                      = "LOCKS";
    public static final String T_LONG                       = "LONG";
    public static final String T_LONGBLOB                   = "LONGBLOB";
    public static final String T_LONGTEXT                   = "LONGTEXT";
    public static final String T_LONGVAR                    = "LONGVAR";
    public static final String T_LONGVARBINARY              = "LONGVARBINARY";
    public static final String T_LONGVARCHAR                = "LONGVARCHAR";
    static final String        T_MAXROWS                    = "MAXROWS";
    static final String        T_MEDIAN                     = "MEDIAN";
    static final String        T_MEDIUMBLOB                 = "MEDIUMBLOB";
    static final String        T_MEDIUMTEXT                 = "MEDIUMTEXT";
    public static final String T_MEMORY                     = "MEMORY";
    public static final String T_MILLIS                     = "MILLIS";
    static final String        T_MINUS_EXCEPT               = "MINUS";
    static final String        T_MODIFY                     = "MODIFY";
    public static final String T_MSS                        = "MSS";
    public static final String T_MVCC                       = "MVCC";
    public static final String T_MVLOCKS                    = "MVLOCKS";
    public static final String T_MYS                        = "MYS";
    public static final String T_NAN                        = "NAN";
    static final String        T_NEXTVAL                    = "NEXTVAL";
    public static final String T_NIO                        = "NIO";
    static final String        T_NOWAIT                     = "NOWAIT";
    public static final String T_NVARCHAR                   = "NVARCHAR";
    public static final String T_NVARCHAR2                  = "NVARCHAR2";
    static final String        T_NVL                        = "NVL";
    static final String        T_NVL2                       = "NVL2";
    static final String        T_OCTETLENGTH                = "OCTETLENGTH";
    static final String        T_OFF                        = "OFF";
    public static final String T_OTHER                      = "OTHER";
    public static final String T_ORA                        = "ORA";
    public static final String T_PASSWORD                   = "PASSWORD";
    public static final String T_PERFORM                    = "PERFORM";
    static final String        T_PLAN                       = "PLAN";
    public static final String T_PGS                        = "PGS";
    static final String        T_PREVVAL                    = "PREVVAL";
    static final String        T_PROPERTY                   = "PROPERTY";
    static final String        T_QUEUE                      = "QUEUE";
    static final String        T_RAW                        = "RAW";
    static final String        T_READONLY                   = "READONLY";
    static final String        T_REFERENTIAL                = "REFERENTIAL";
    public static final String T_REGULAR                    = "REGULAR";
    static final String        T_RENAME                     = "RENAME";
    static final String        T_ROOTS                      = "ROOTS";
    static final String        T_ROWNUM                     = "ROWNUM";
    static final String        T_SCRIPT                     = "SCRIPT";
    static final String        T_SEPARATOR                  = "SEPARATOR";
    static final String        T_BLOCKING                   = "BLOCKING";
    static final String        T_SHARE                      = "SHARE";
    static final String        T_SHUTDOWN                   = "SHUTDOWN";
    static final String        T_SQL_TSI_DAY                = "SQL_TSI_DAY";
    static final String        T_SQL_TSI_FRAC_SECOND        = "SQL_TSI_FRAC_SECOND";
    static final String        T_SQL_TSI_MILLI_SECOND       = "SQL_TSI_MILLI_SECOND";
    static final String        T_SQL_TSI_MICRO_SECOND       = "SQL_TSI_MICRO_SECOND";
    static final String        T_SQL_TSI_HOUR               = "SQL_TSI_HOUR";
    static final String        T_SQL_TSI_MINUTE             = "SQL_TSI_MINUTE";
    static final String        T_SQL_TSI_MONTH              = "SQL_TSI_MONTH";
    static final String        T_SQL_TSI_QUARTER            = "SQL_TSI_QUARTER";
    static final String        T_SQL_TSI_SECOND             = "SQL_TSI_SECOND";
    static final String        T_SQL_TSI_WEEK               = "SQL_TSI_WEEK";
    static final String        T_SQL_TSI_YEAR               = "SQL_TSI_YEAR";
    static final String        T_SQL_BIGINT                 = "SQL_BIGINT";
    static final String        T_SQL_BINARY                 = "SQL_BINARY";
    static final String        T_SQL_BIT                    = "SQL_BIT";
    static final String        T_SQL_BLOB                   = "SQL_BLOB";
    static final String        T_SQL_BOOLEAN                = "SQL_BOOLEAN";
    static final String        T_SQL_CHAR                   = "SQL_CHAR";
    static final String        T_SQL_CLOB                   = "SQL_CLOB";
    static final String        T_SQL_DATE                   = "SQL_DATE";
    static final String        T_SQL_DECIMAL                = "SQL_DECIMAL";
    static final String        T_SQL_DATALINK               = "SQL_DATALINK";
    static final String        T_SQL_DOUBLE                 = "SQL_DOUBLE";
    static final String        T_SQL_FLOAT                  = "SQL_FLOAT";
    static final String        T_SQL_INTEGER                = "SQL_INTEGER";
    static final String        T_SQL_LONGVARBINARY          = "SQL_LONGVARBINARY";
    static final String        T_SQL_LONGNVARCHAR           = "SQL_LONGNVARCHAR";
    static final String        T_SQL_LONGVARCHAR            = "SQL_LONGVARCHAR";
    static final String        T_SQL_NCHAR                  = "SQL_NCHAR";
    static final String        T_SQL_NCLOB                  = "SQL_NCLOB";
    static final String        T_SQL_NUMERIC                = "SQL_NUMERIC";
    static final String        T_SQL_NVARCHAR               = "SQL_NVARCHAR";
    static final String        T_SQL_REAL                   = "SQL_REAL";
    static final String        T_SQL_ROWID                  = "SQL_ROWID";
    static final String        T_SQL_SQLXML                 = "SQL_SQLXML";
    static final String        T_SQL_SMALLINT               = "SQL_SMALLINT";
    static final String        T_SQL_TIME                   = "SQL_TIME";
    static final String        T_SQL_TIMESTAMP              = "SQL_TIMESTAMP";
    static final String        T_SQL_TINYINT                = "SQL_TINYINT";
    static final String        T_SQL_VARBINARY              = "SQL_VARBINARY";
    static final String        T_SQL_VARCHAR                = "SQL_VARCHAR";
    public static final String T_STOP                       = "STOP";
    static final String        T_STRING_AGG                 = "STRING_AGG";
    public static final String T_SYNONYM                    = "SYNONYM";
    public static final String T_SYNTAX                     = "SYNTAX";
    public static final String T_TDC                        = "TDC";
    public static final String T_TEMP                       = "TEMP";
    public static final String T_TEXT                       = "TEXT";
    static final String        T_TIMESTAMP_WITH_ZONE        = "TIMESTAMP_WITH_ZONE";
    static final String        T_TIMESTAMPADD               = "TIMESTAMPADD";
    static final String        T_TIMESTAMPDIFF              = "TIMESTAMPDIFF";
    public static final String T_TINYBLOB                   = "TINYBLOB";
    public static final String T_TINYINT                    = "TINYINT";
    public static final String T_TINYTEXT                   = "TINYTEXT";
    static final String        T_TOP                        = "TOP";
    public static final String T_TTI                        = "TTI";
    public static final String T_TYPES                      = "TYPES";
    public static final String T_VARCHAR_IGNORECASE         = "VARCHAR_IGNORECASE";
    public static final String T_VARCHAR2                   = "VARCHAR2";
    public static final String T_UNLOAD                     = "UNLOAD";
    public static final String T_UTF16                      = "UTF16";
    static final String        T_WRITE_DELAY                = "WRITE_DELAY";
    public static final String T_YES                        = "YES";

    //
    public static final String T_DAY_NAME         = "DAY_NAME";
    public static final String T_MONTH_NAME       = "MONTH_NAME";
    public static final String T_QUARTER          = "QUARTER";
    public static final String T_DAY_OF_WEEK      = "DAY_OF_WEEK";
    public static final String T_DAY_OF_MONTH     = "DAY_OF_MONTH";
    public static final String T_DAY_OF_YEAR      = "DAY_OF_YEAR";
    public static final String T_WEEK_OF_YEAR     = "WEEK_OF_YEAR";
    public static final String T_ISO_WEEK_OF_YEAR = "ISO_WEEK_OF_YEAR";
    static final String        T_DAYNAME          = "DAYNAME";
    static final String        T_MONTHNAME        = "MONTHNAME";
    static final String        T_DAYOFMONTH       = "DAYOFMONTH";
    static final String        T_DAYOFWEEK        = "DAYOFWEEK";
    static final String        T_DAYOFYEAR        = "DAYOFYEAR";
    static final String        T_WEEK             = "WEEK";
    static final String        T_DAYS             = "DAYS";
    static final String        T_MICROSECOND      = "MICROSECOND";
    static final String        T_MILLISECOND      = "MILLISECOND";
    static final String        T_NANOSECOND       = "NANOSECOND";

    //
    static final String        T_ACTION_ID              = "ACTION_ID";
    static final String        T_ADD_MONTHS             = "ADD_MONTHS";
    static final String        T_ARRAY_SORT             = "ARRAY_SORT";
    static final String        T_ASCII                  = "ASCII";
    static final String        T_ASCIISTR               = "ASCIISTR";
    static final String        T_ATAN2                  = "ATAN2";
    static final String        T_BIN_TO_NUM             = "BIN_TO_NUM";
    static final String        T_BITAND                 = "BITAND";
    static final String        T_BITANDNOT              = "BITANDNOT";
    static final String        T_BITNOT                 = "BITNOT";
    static final String        T_BITOR                  = "BITOR";
    static final String        T_BITXOR                 = "BITXOR";
    public static final String T_CONCAT_WORD            = "CONCAT";
    static final String        T_CONCAT_WS              = "CONCAT_WS";
    static final String        T_CHR                    = "CHR";
    static final String        T_COT                    = "COT";
    static final String        T_CRYPT_KEY              = "CRYPT_KEY";
    static final String        T_DATABASE_NAME          = "DATABASE_NAME";
    static final String        T_DATE_ADD               = "DATE_ADD";
    static final String        T_DATE_SUB               = "DATE_SUB";
    static final String        T_DATEADD                = "DATEADD";
    static final String        T_DATEDIFF               = "DATEDIFF";
    static final String        T_DATENAME               = "DATENAME";
    static final String        T_DATEPART               = "DATEPART";
    static final String        T_DATETIME2              = "DATETIME2";
    public static final String T_DATETIMEOFFSET         = "DATETIMEOFFSET";
    static final String        T_DBTIMEZONE             = "DBTIMEZONE";
    static final String        T_DECODE                 = "DECODE";
    static final String        T_DEGREES                = "DEGREES";
    static final String        T_DIFFERENCE             = "DIFFERENCE";
    static final String        T_DMOD                   = "DMOD";
    static final String        T_EOMONTH                = "EOMONTH";
    static final String        T_ENUM                   = "ENUM";
    static final String        T_FROM_BASE64            = "FROM_BASE64";
    static final String        T_FROM_TZ                = "FROM_TZ";
    public static final String T_GC                     = "GC";
    static final String        T_GREATEST               = "GREATEST";
    static final String        T_HEX                    = "HEX";
    static final String        T_HEXTORAW               = "HEXTORAW";
    static final String        T_IMAGE                  = "IMAGE";
    static final String        T_INSTR                  = "INSTR";
    static final String        T_LAST_DAY               = "LAST_DAY";
    static final String        T_LCASE                  = "LCASE";
    public static final String T_LITERAL                = "LITERAL";
    static final String        T_LIVE                   = "LIVE";
    static final String        T_LOAD                   = "LOAD";
    static final String        T_LOAD_FILE              = "LOAD_FILE";
    static final String        T_LOCATE                 = "LOCATE";
    static final String        T_MONEY                  = "MONEY";
    static final String        T_MONTHS_BETWEEN         = "MONTHS_BETWEEN";
    static final String        T_NANVL                  = "NANVL";
    static final String        T_NEWID                  = "NEWID";
    static final String        T_NEW_TIME               = "NEW_TIME";
    static final String        T_NEXT_DAY               = "NEXT_DAY";
    static final String        T_NOW                    = "NOW";
    static final String        T_NTEXT                  = "NTEXT";
    static final String        T_NUMTODSINTERVAL        = "NUMTODSINTERVAL";
    static final String        T_NUMTOYMINTERVAL        = "NUMTOYMINTERVAL";
    static final String        T_PI                     = "PI";
    static final String        T_POSITION_ARRAY         = "POSITION_ARRAY";
    static final String        T_RADIANS                = "RADIANS";
    static final String        T_RAND                   = "RAND";
    static final String        T_RAWTOHEX               = "RAWTOHEX";
    static final String        T_REGEXP_COUNT           = "REGEXP_COUNT";
    static final String        T_REGEXP_INSTR           = "REGEXP_INSTR";
    static final String        T_REGEXP_LIKE            = "REGEXP_LIKE";
    static final String        T_REGEXP_MATCHES         = "REGEXP_MATCHES";
    static final String        T_REGEXP_REPLACE         = "REGEXP_REPLACE";
    static final String        T_REGEXP_SUBSTR          = "REGEXP_SUBSTR";
    static final String        T_REGEXP_SUBSTRING       = "REGEXP_SUBSTRING";
    static final String        T_REGEXP_SUBSTRING_ARRAY = "REGEXP_SUBSTRING_ARRAY";
    static final String        T_REPLACE                = "REPLACE";
    static final String        T_REVERSE                = "REVERSE";
    static final String        T_ROUND                  = "ROUND";
    static final String        T_ROUNDMAGIC             = "ROUNDMAGIC";
    public static final String T_SECONDS_MIDNIGHT       = "SECONDS_SINCE_MIDNIGHT";
    static final String        T_SESSIONTIMEZONE        = "SESSIONTIMEZONE";
    static final String        T_SIGN                   = "SIGN";
    static final String        T_SORT_ARRAY             = "SORT_ARRAY";
    static final String        T_SOUNDEX                = "SOUNDEX";
    static final String        T_SUBSTR                 = "SUBSTR";
    public static final String T_SYS                    = "SYS";
    static final String        T_SYS_EXTRACT_UTC        = "SYS_EXTRACT_UTC";
    static final String        T_SYS_GUID               = "SYS_GUID";
    static final String        T_SYSDATE                = "SYSDATE";
    static final String        T_SYSTIMESTAMP           = "SYSTIMESTAMP";
    static final String        T_TO_BASE64              = "TO_BASE64";
    static final String        T_TO_CHAR                = "TO_CHAR";
    static final String        T_TO_DATE                = "TO_DATE";
    static final String        T_TO_DSINTERVAL          = "TO_DSINTERVAL";
    static final String        T_TO_YMINTERVAL          = "TO_YMINTERVAL";
    static final String        T_TO_NUMBER              = "TO_NUMBER";
    static final String        T_TO_TIMESTAMP           = "TO_TIMESTAMP";
    static final String        T_TO_TIMESTAMP_TZ        = "TO_TIMESTAMP_TZ";
    static final String        T_TZ_OFFSET              = "TZ_OFFSET";
    static final String        T_TRANSACTION_ID         = "TRANSACTION_ID";
    static final String        T_TRANSACTION_SIZE       = "TRANSACTION_SIZE";
    static final String        T_TRANSACTION_UTC        = "TRANSACTION_UTC";
    static final String        T_TRUNC                  = "TRUNC";
    static final String        T_TODAY                  = "TODAY";
    static final String        T_UCASE                  = "UCASE";
    static final String        T_UNHEX                  = "UNHEX";
    static final String        T_UNISTR                 = "UNISTR";
    static final String        T_UNIQUEIDENTIFIER       = "UNIQUEIDENTIFIER";
    static final String        T_USE                    = "USE";
    static final String        T_UNIX_MILLIS            = "UNIX_MILLIS";
    static final String        T_UNIX_TIMESTAMP         = "UNIX_TIMESTAMP";
    public static final String T_UUID                   = "UUID";

    //
    static final String T_ISOLATION_LEVEL          = "ISOLATION_LEVEL";
    static final String T_SESSION_ISOLATION_LEVEL  = "SESSION_ISOLATION_LEVEL";
    static final String T_DATABASE_ISOLATION_LEVEL = "DATABASE_ISOLATION_LEVEL";
    static final String T_TRANSACTION_CONTROL      = "TRANSACTION_CONTROL";
    static final String T_TIMEZONE                 = "TIMEZONE";
    static final String T_SESSION_TIMEZONE         = "SESSION_TIMEZONE";
    static final String T_DATABASE_TIMEZONE        = "DATABASE_TIMEZONE";
    static final String T_DATABASE_VERSION         = "DATABASE_VERSION";
    static final String T_SESSION_ID               = "SESSION_ID";
    static final String T_LOB_ID                   = "LOB_ID";
    static final String T_SEQUENCE_ARRAY           = "SEQUENCE_ARRAY";

    //
    static final String T_GROUP_ID    = "GROUP_ID";
    static final String T_GROUPING_ID = "GROUPING_ID";
    static final String T_STDDEV      = "STDDEV";
    static final String T_VARIANCE    = "VARIANCE";

    //
    //SQL 2023 Standard reserved keywords - full set
    public static final int ABS                              = 1;
    public static final int ABSENT                           = 2;
    public static final int ACOS                             = 3;
    public static final int ALL                              = 4;
    public static final int ALLOCATE                         = 5;
    public static final int ALTER                            = 6;
    public static final int AND                              = 7;
    public static final int ANY                              = 8;
    public static final int ANY_VALUE                        = 9;
    public static final int ARE                              = 10;
    public static final int ARRAY                            = 11;
    public static final int ARRAY_AGG                        = 12;
    public static final int ARRAY_MAX_CARDINALITY            = 13;
    public static final int AS                               = 14;
    public static final int ASENSITIVE                       = 15;
    public static final int ASIN                             = 16;
    public static final int ASYMMETRIC                       = 17;
    public static final int AT                               = 18;
    public static final int ATAN                             = 19;
    public static final int ATOMIC                           = 20;
    public static final int AUTHORIZATION                    = 21;
    public static final int AVG                              = 22;
    public static final int BEGIN                            = 23;
    public static final int BEGIN_FRAME                      = 24;
    public static final int BEGIN_PARTITION                  = 25;
    public static final int BETWEEN                          = 26;
    public static final int BIGINT                           = 27;
    public static final int BINARY                           = 28;
    public static final int BLOB                             = 29;
    public static final int BOOLEAN                          = 30;
    public static final int BOTH                             = 31;
    public static final int BTRIM                            = 32;
    public static final int BY                               = 33;
    public static final int CALL                             = 34;
    public static final int CALLED                           = 35;
    public static final int CARDINALITY                      = 36;
    public static final int CASCADED                         = 37;
    public static final int CASE                             = 38;
    public static final int CAST                             = 39;
    public static final int CEIL                             = 40;
    public static final int CEILING                          = 41;
    public static final int CHAR                             = 42;
    public static final int CHARACTER                        = 44;
    public static final int CHARACTER_LENGTH                 = 45;
    public static final int CHAR_LENGTH                      = 43;
    public static final int CHECK                            = 46;
    public static final int CLASSIFIER                       = 47;
    public static final int CLOB                             = 48;
    public static final int CLOSE                            = 49;
    public static final int COALESCE                         = 50;
    public static final int COLLATE                          = 51;
    public static final int COLLECT                          = 52;
    public static final int COLUMN                           = 53;
    public static final int COMMIT                           = 54;
    public static final int COMPARABLE                       = 55;
    public static final int CONDITION                        = 57;
    public static final int CONNECT                          = 58;
    public static final int CONSTRAINT                       = 59;
    public static final int CONTAINS                         = 60;
    public static final int CONVERT                          = 61;
    public static final int COPY                             = 56;
    public static final int CORR                             = 62;
    public static final int CORRESPONDING                    = 63;
    public static final int COS                              = 64;
    public static final int COSH                             = 65;
    public static final int COUNT                            = 66;
    public static final int COVAR_POP                        = 67;
    public static final int COVAR_SAMP                       = 68;
    public static final int CREATE                           = 69;
    public static final int CROSS                            = 70;
    public static final int CUBE                             = 71;
    public static final int CUME_DIST                        = 72;
    public static final int CURRENT                          = 73;
    public static final int CURRENT_CATALOG                  = 74;
    public static final int CURRENT_DATE                     = 75;
    public static final int CURRENT_DEFAULT_TRANSFORM_GROUP  = 76;
    public static final int CURRENT_PATH                     = 77;
    public static final int CURRENT_ROLE                     = 78;
    public static final int CURRENT_ROW                      = 79;
    public static final int CURRENT_SCHEMA                   = 80;
    public static final int CURRENT_TIME                     = 81;
    public static final int CURRENT_TIMESTAMP                = 82;
    public static final int CURRENT_TRANSFORM_GROUP_FOR_TYPE = 83;
    public static final int CURRENT_USER                     = 84;
    public static final int CURSOR                           = 85;
    public static final int CYCLE                            = 86;
    public static final int DATE                             = 87;
    public static final int DAY                              = 88;
    public static final int DEALLOCATE                       = 89;
    public static final int DEC                              = 90;
    public static final int DECFLOAT                         = 91;
    public static final int DECIMAL                          = 92;
    public static final int DECLARE                          = 93;
    public static final int DEFAULT                          = 94;
    public static final int DEFINE                           = 95;
    public static final int DELETE                           = 96;
    public static final int DENSE_RANK                       = 97;
    public static final int DEREF                            = 98;
    public static final int DESCRIBE                         = 99;
    public static final int DETERMINISTIC                    = 100;
    public static final int DISCONNECT                       = 101;
    public static final int DISTINCT                         = 102;
    public static final int DO                               = 103;
    public static final int DOUBLE                           = 104;
    public static final int DROP                             = 105;
    public static final int DYNAMIC                          = 106;
    public static final int EACH                             = 107;
    public static final int ELEMENT                          = 108;
    public static final int ELSE                             = 109;
    public static final int ELSEIF                           = 110;
    public static final int EMPTY                            = 111;
    public static final int END                              = 112;
    public static final int END_EXEC                         = 113;
    public static final int END_FRAME                        = 114;
    public static final int END_PARTITION                    = 115;
    public static final int EQUALS                           = 116;
    public static final int ESCAPE                           = 117;
    public static final int EVERY                            = 118;
    public static final int EXCEPT                           = 119;
    public static final int EXEC                             = 120;
    public static final int EXECUTE                          = 121;
    public static final int EXISTS                           = 122;
    public static final int EXIT                             = 123;
    public static final int EXP                              = 124;
    public static final int EXTERNAL                         = 125;
    public static final int EXTRACT                          = 126;
    public static final int FALSE                            = 127;
    public static final int FETCH                            = 128;
    public static final int FILTER                           = 129;
    public static final int FIRST_VALUE                      = 130;
    public static final int FLOAT                            = 131;
    public static final int FLOOR                            = 132;
    public static final int FOR                              = 133;
    public static final int FOREIGN                          = 134;
    public static final int FRAME_ROW                        = 135;
    public static final int FREE                             = 136;
    public static final int FROM                             = 137;
    public static final int FULL                             = 138;
    public static final int FUNCTION                         = 139;
    public static final int FUSION                           = 140;
    public static final int GET                              = 141;
    public static final int GLOBAL                           = 142;
    public static final int GRANT                            = 143;
    public static final int GREATEST                         = 144;
    public static final int GROUP                            = 145;
    public static final int GROUPING                         = 146;
    public static final int GROUPS                           = 147;
    public static final int HANDLER                          = 148;
    public static final int HAVING                           = 149;
    public static final int HOLD                             = 150;
    public static final int HOUR                             = 151;
    public static final int IDENTITY                         = 152;
    public static final int IMPORT                           = 153;
    public static final int IN                               = 154;
    public static final int INDICATOR                        = 155;
    public static final int INITIAL                          = 156;
    public static final int INNER                            = 157;
    public static final int INOUT                            = 158;
    public static final int INSENSITIVE                      = 159;
    public static final int INSERT                           = 160;
    public static final int INT                              = 161;
    public static final int INTEGER                          = 162;
    public static final int INTERSECT                        = 163;
    public static final int INTERSECTION                     = 164;
    public static final int INTERVAL                         = 165;
    public static final int INTO                             = 166;
    public static final int IS                               = 167;
    public static final int ITERATE                          = 168;
    public static final int JOIN                             = 169;
    public static final int JSON                             = 170;
    public static final int JSON_ARRAY                       = 171;
    public static final int JSON_ARRAYAGG                    = 172;
    public static final int JSON_EXISTS                      = 173;
    public static final int JSON_OBJECT                      = 174;
    public static final int JSON_OBJECTAGG                   = 175;
    public static final int JSON_QUERY                       = 176;
    public static final int JSON_SCALAR                      = 177;
    public static final int JSON_SERIALIZE                   = 178;
    public static final int JSON_TABLE                       = 179;
    public static final int JSON_TABLE_PRIMITIVE             = 180;
    public static final int JSON_VALUE                       = 181;
    public static final int LAG                              = 182;
    public static final int LANGUAGE                         = 183;
    public static final int LARGE                            = 184;
    public static final int LAST_VALUE                       = 185;
    public static final int LATERAL                          = 186;
    public static final int LEAD                             = 187;
    public static final int LEADING                          = 188;
    public static final int LEAST                            = 189;
    public static final int LEAVE                            = 190;
    public static final int LEFT                             = 191;
    public static final int LIKE                             = 192;
    public static final int LIKE_REGEX                       = 193;
    public static final int LISTAGG                          = 194;
    public static final int LN                               = 195;
    public static final int LOCAL                            = 196;
    public static final int LOCALTIME                        = 197;
    public static final int LOCALTIMESTAMP                   = 198;
    public static final int LOG                              = 199;
    public static final int LOG10                            = 200;
    public static final int LOOP                             = 201;
    public static final int LOWER                            = 202;
    public static final int LPAD                             = 203;
    public static final int LTRIM                            = 204;
    public static final int MATCH                            = 205;
    public static final int MATCHES                          = 206;
    public static final int MATCH_NUMBER                     = 207;
    public static final int MATCH_RECOGNIZE                  = 208;
    public static final int MAX                              = 209;
    public static final int MAX_CARDINALITY                  = 210;
    public static final int MEMBER                           = 211;
    public static final int MERGE                            = 212;
    public static final int METHOD                           = 213;
    public static final int MIN                              = 214;
    public static final int MINUTE                           = 215;
    public static final int MOD                              = 216;
    public static final int MODIFIES                         = 217;
    public static final int MODULE                           = 218;
    public static final int MONTH                            = 219;
    public static final int MULTISET                         = 220;
    public static final int NATIONAL                         = 221;
    public static final int NATURAL                          = 222;
    public static final int NCHAR                            = 223;
    public static final int NCLOB                            = 224;
    public static final int NEW                              = 225;
    public static final int NO                               = 226;
    public static final int NONE                             = 227;
    public static final int NORMALIZE                        = 228;
    public static final int NOT                              = 229;
    public static final int NTH_VALUE                        = 230;
    public static final int NTILE                            = 231;
    public static final int NULL                             = 232;
    public static final int NULLIF                           = 233;
    public static final int NUMERIC                          = 234;
    public static final int OCCURRENCES_REGEX                = 235;
    public static final int OCTET_LENGTH                     = 236;
    public static final int OF                               = 237;
    public static final int OFFSET                           = 238;
    public static final int OLD                              = 239;
    public static final int OMIT                             = 240;
    public static final int ON                               = 241;
    public static final int ONE                              = 242;
    public static final int ONLY                             = 243;
    public static final int OPEN                             = 244;
    public static final int OR                               = 245;
    public static final int ORDER                            = 246;
    public static final int OUT                              = 247;
    public static final int OUTER                            = 248;
    public static final int OVER                             = 249;
    public static final int OVERLAPS                         = 250;
    public static final int OVERLAY                          = 251;
    public static final int PARAMETER                        = 252;
    public static final int PARTITION                        = 253;
    public static final int PATTERN                          = 254;
    public static final int PER                              = 255;
    public static final int PERCENT                          = 256;
    public static final int PERCENTILE_CONT                  = 257;
    public static final int PERCENTILE_DISC                  = 258;
    public static final int PERCENT_RANK                     = 259;
    public static final int PERIOD                           = 260;
    public static final int PORTION                          = 261;
    public static final int POSITION                         = 262;
    public static final int POSITION_REGEX                   = 263;
    public static final int POWER                            = 264;
    public static final int PRECEDES                         = 265;
    public static final int PRECISION                        = 266;
    public static final int PREPARE                          = 267;
    public static final int PRIMARY                          = 268;
    public static final int PROCEDURE                        = 269;
    public static final int PTF                              = 270;
    public static final int RANGE                            = 271;
    public static final int RANK                             = 272;
    public static final int READS                            = 273;
    public static final int REAL                             = 274;
    public static final int RECURSIVE                        = 275;
    public static final int REF                              = 276;
    public static final int REFERENCES                       = 277;
    public static final int REFERENCING                      = 278;
    public static final int REGR_AVGX                        = 279;
    public static final int REGR_AVGY                        = 280;
    public static final int REGR_COUNT                       = 281;
    public static final int REGR_INTERCEPT                   = 282;
    public static final int REGR_R2                          = 283;
    public static final int REGR_SLOPE                       = 284;
    public static final int REGR_SXX                         = 285;
    public static final int REGR_SXY                         = 286;
    public static final int REGR_SYY                         = 287;
    public static final int RELEASE                          = 288;
    public static final int REPEAT                           = 289;
    public static final int RESIGNAL                         = 290;
    public static final int RESULT                           = 291;
    public static final int RETURN                           = 292;
    public static final int RETURNS                          = 293;
    public static final int REVOKE                           = 294;
    public static final int RIGHT                            = 295;
    public static final int ROLLBACK                         = 296;
    public static final int ROLLUP                           = 297;
    public static final int ROW                              = 298;
    public static final int ROWS                             = 299;
    public static final int ROW_NUMBER                       = 300;
    public static final int RPAD                             = 301;
    public static final int RTRIM                            = 302;
    public static final int RUNNING                          = 303;
    public static final int SAVEPOINT                        = 304;
    public static final int SCOPE                            = 305;
    public static final int SCROLL                           = 306;
    public static final int SEARCH                           = 307;
    public static final int SECOND                           = 308;
    public static final int SEEK                             = 309;
    public static final int SELECT                           = 310;
    public static final int SENSITIVE                        = 311;
    public static final int SESSION_USER                     = 312;
    public static final int SET                              = 313;
    public static final int SHOW                             = 314;
    public static final int SIGNAL                           = 315;
    public static final int SIMILAR                          = 316;
    public static final int SIN                              = 317;
    public static final int SINH                             = 318;
    public static final int SKIP                             = 319;
    public static final int SMALLINT                         = 320;
    public static final int SOME                             = 321;
    public static final int SPECIFIC                         = 322;
    public static final int SPECIFICTYPE                     = 323;
    public static final int SQL                              = 324;
    public static final int SQLEXCEPTION                     = 325;
    public static final int SQLSTATE                         = 326;
    public static final int SQLWARNING                       = 327;
    public static final int SQRT                             = 328;
    public static final int STACKED                          = 329;
    public static final int START                            = 330;
    public static final int STATIC                           = 331;
    public static final int STDDEV_POP                       = 332;
    public static final int STDDEV_SAMP                      = 333;
    public static final int SUBMULTISET                      = 334;
    public static final int SUBSET                           = 335;
    public static final int SUBSTRING                        = 336;
    public static final int SUBSTRING_REGEX                  = 337;
    public static final int SUCCEEDS                         = 338;
    public static final int SUM                              = 339;
    public static final int SYMMETRIC                        = 340;
    public static final int SYSTEM                           = 341;
    public static final int SYSTEM_TIME                      = 342;
    public static final int SYSTEM_USER                      = 343;
    public static final int TABLE                            = 344;
    public static final int TABLESAMPLE                      = 345;
    public static final int TAN                              = 346;
    public static final int TANH                             = 347;
    public static final int THEN                             = 348;
    public static final int TIME                             = 349;
    public static final int TIMESTAMP                        = 350;
    public static final int TIMEZONE_HOUR                    = 351;
    public static final int TIMEZONE_MINUTE                  = 352;
    public static final int TO                               = 353;
    public static final int TRAILING                         = 354;
    public static final int TRANSLATE                        = 355;
    public static final int TRANSLATE_REGEX                  = 356;
    public static final int TRANSLATION                      = 357;
    public static final int TREAT                            = 358;
    public static final int TRIGGER                          = 359;
    public static final int TRIM                             = 360;
    public static final int TRIM_ARRAY                       = 361;
    public static final int TRUE                             = 362;
    public static final int TRUNCATE                         = 363;
    public static final int UESCAPE                          = 364;
    public static final int UNDO                             = 365;
    public static final int UNION                            = 366;
    public static final int UNIQUE                           = 367;
    public static final int UNKNOWN                          = 368;
    public static final int UNNEST                           = 369;
    public static final int UNTIL                            = 370;
    public static final int UPDATE                           = 371;
    public static final int UPPER                            = 372;
    public static final int USER                             = 373;
    public static final int USING                            = 374;
    public static final int VALUE                            = 375;
    public static final int VALUES                           = 376;
    public static final int VALUE_OF                         = 377;
    public static final int VARBINARY                        = 378;
    public static final int VARCHAR                          = 379;
    public static final int VARYING                          = 380;
    public static final int VAR_POP                          = 381;
    public static final int VAR_SAMP                         = 382;
    public static final int VERSIONING                       = 383;
    public static final int WHEN                             = 384;
    public static final int WHENEVER                         = 385;
    public static final int WHERE                            = 386;
    public static final int WHILE                            = 387;
    public static final int WIDTH_BUCKET                     = 388;
    public static final int WINDOW                           = 389;
    public static final int WITH                             = 390;
    public static final int WITHIN                           = 391;
    public static final int WITHOUT                          = 392;
    public static final int YEAR                             = 393;

    //
    //SQL 2023 Standard non-reserved keywords - full set
    public static final int A                           = 400;
    public static final int ABSOLUTE                    = 401;
    public static final int ACTION                      = 402;
    public static final int ADA                         = 403;
    public static final int ADD                         = 404;
    public static final int ADMIN                       = 405;
    public static final int AFTER                       = 406;
    public static final int ALWAYS                      = 407;
    public static final int ASC                         = 408;
    public static final int ASSERTION                   = 409;
    public static final int ASSIGNMENT                  = 410;
    public static final int ATTRIBUTE                   = 411;
    public static final int ATTRIBUTES                  = 412;
    public static final int BEFORE                      = 413;
    public static final int BERNOULLI                   = 414;
    public static final int BREADTH                     = 415;
    public static final int C                           = 416;
    public static final int CASCADE                     = 417;
    public static final int CATALOG                     = 418;
    public static final int CATALOG_NAME                = 419;
    public static final int CHAIN                       = 420;
    public static final int CHAINING                    = 421;
    public static final int CHARACTER_SET_CATALOG       = 422;
    public static final int CHARACTER_SET_NAME          = 423;
    public static final int CHARACTER_SET_SCHEMA        = 424;
    public static final int CHARACTERISTICS             = 425;
    public static final int CHARACTERS                  = 426;
    public static final int CLASS_ORIGIN                = 427;
    public static final int COBOL                       = 428;
    public static final int COLLATION                   = 429;
    public static final int COLLATION_CATALOG           = 430;
    public static final int COLLATION_NAME              = 431;
    public static final int COLLATION_SCHEMA            = 432;
    public static final int COLUMNS                     = 433;
    public static final int COLUMN_NAME                 = 434;
    public static final int COMMAND_FUNCTION            = 435;
    public static final int COMMAND_FUNCTION_CODE       = 436;
    public static final int COMMITTED                   = 437;
    public static final int CONDITION_IDENTIFIER        = 438;
    public static final int CONDITION_NUMBER            = 439;
    public static final int CONDITIONAL                 = 440;
    public static final int CONNECTION                  = 441;
    public static final int CONNECTION_NAME             = 442;
    public static final int CONSTRAINT_CATALOG          = 443;
    public static final int CONSTRAINT_NAME             = 444;
    public static final int CONSTRAINT_SCHEMA           = 445;
    public static final int CONSTRAINTS                 = 446;
    public static final int CONSTRUCTOR                 = 447;
    public static final int CONTINUE                    = 448;
    public static final int COPARTITION                 = 449;
    public static final int CURSOR_NAME                 = 450;
    public static final int DATA                        = 451;
    public static final int DATETIME_INTERVAL_CODE      = 452;
    public static final int DATETIME_INTERVAL_PRECISION = 453;
    public static final int DEFAULTS                    = 454;
    public static final int DEFERRABLE                  = 455;
    public static final int DEFERRED                    = 456;
    public static final int DEFINED                     = 457;
    public static final int DEFINER                     = 458;
    public static final int DEGREE                      = 459;
    public static final int DEPTH                       = 460;
    public static final int DERIVED                     = 461;
    public static final int DESC                        = 462;
    public static final int DESCRIPTOR                  = 463;
    public static final int DIAGNOSTICS                 = 464;
    public static final int DISPATCH                    = 465;
    public static final int DOMAIN                      = 466;
    public static final int DYNAMIC_FUNCTION            = 467;
    public static final int DYNAMIC_FUNCTION_CODE       = 468;
    public static final int ENCODING                    = 469;
    public static final int ENFORCED                    = 470;
    public static final int EQUALS_OP                   = 471;
    public static final int ERROR                       = 472;
    public static final int EXCEPTION                   = 473;
    public static final int EXCLUDE                     = 474;
    public static final int EXCLUDING                   = 475;
    public static final int EXPRESSION                  = 476;
    public static final int FINAL                       = 477;
    public static final int FINISH                      = 478;
    public static final int FIRST                       = 479;
    public static final int FLAG                        = 480;
    public static final int FOLLOWING                   = 481;
    public static final int FORMAT                      = 482;
    public static final int FORTRAN                     = 483;
    public static final int FOUND                       = 484;
    public static final int FULFILL                     = 485;
    public static final int G                           = 486;
    public static final int GENERAL                     = 487;
    public static final int GENERATED                   = 488;
    public static final int GO                          = 489;
    public static final int GOTO                        = 490;
    public static final int GRANTED                     = 491;
    public static final int HIERARCHY                   = 492;
    public static final int IF                          = 493;
    public static final int IGNORE                      = 494;
    public static final int IMMEDIATE                   = 495;
    public static final int IMMEDIATELY                 = 496;
    public static final int IMPLEMENTATION              = 497;
    public static final int INCLUDING                   = 498;
    public static final int INCREMENT                   = 499;
    public static final int INITIALLY                   = 500;
    public static final int INPUT                       = 501;
    public static final int INSTANCE                    = 502;
    public static final int INSTANTIABLE                = 503;
    public static final int INSTEAD                     = 504;
    public static final int INVOKER                     = 505;
    public static final int ISOLATION                   = 506;
    public static final int JAVA                        = 507;
    public static final int K                           = 508;
    public static final int KEEP                        = 509;
    public static final int KEY                         = 510;
    public static final int KEY_MEMBER                  = 511;
    public static final int KEY_TYPE                    = 512;
    public static final int KEYS                        = 513;
    public static final int LAST                        = 514;
    public static final int LENGTH                      = 515;
    public static final int LEVEL                       = 516;
    public static final int LIBRARY                     = 517;
    public static final int LOCATOR                     = 518;
    public static final int M                           = 519;
    public static final int MAP                         = 520;
    public static final int MATCHED                     = 521;
    public static final int MAXVALUE                    = 522;
    public static final int MEASURES                    = 523;
    public static final int MESSAGE_LENGTH              = 524;
    public static final int MESSAGE_OCTET_LENGTH        = 525;
    public static final int MESSAGE_TEXT                = 526;
    public static final int MINVALUE                    = 527;
    public static final int MORE                        = 528;
    public static final int MUMPS                       = 529;
    public static final int NAME                        = 530;
    public static final int NAMES                       = 531;
    public static final int NESTED                      = 532;
    public static final int NESTING                     = 533;
    public static final int NEXT                        = 534;
    public static final int NFC                         = 535;
    public static final int NFD                         = 536;
    public static final int NFKC                        = 537;
    public static final int NFKD                        = 538;
    public static final int NORMALIZED                  = 539;
    public static final int NULL_ORDERING               = 540;
    public static final int NULLABLE                    = 541;
    public static final int NULLS                       = 542;
    public static final int NUMBER                      = 543;
    public static final int OBJECT                      = 544;
    public static final int OCCURRENCE                  = 545;
    public static final int OCTETS                      = 546;
    public static final int OPTION                      = 547;
    public static final int OPTIONS                     = 548;
    public static final int ORDERING                    = 549;
    public static final int ORDINALITY                  = 550;
    public static final int OTHERS                      = 551;
    public static final int OUTPUT                      = 552;
    public static final int OVERFLOW                    = 553;
    public static final int OVERRIDING                  = 554;
    public static final int P                           = 555;
    public static final int PAD                         = 556;
    public static final int PARAMETER_MODE              = 557;
    public static final int PARAMETER_NAME              = 558;
    public static final int PARAMETER_ORDINAL_POSITION  = 559;
    public static final int PARAMETER_SPECIFIC_CATALOG  = 560;
    public static final int PARAMETER_SPECIFIC_NAME     = 561;
    public static final int PARAMETER_SPECIFIC_SCHEMA   = 562;
    public static final int PARTIAL                     = 563;
    public static final int PASCAL                      = 564;
    public static final int PASS                        = 565;
    public static final int PASSING                     = 566;
    public static final int PAST                        = 567;
    public static final int PATH                        = 568;
    public static final int PERMUTE                     = 569;
    public static final int PIPE                        = 570;
    public static final int PLACING                     = 571;
    public static final int PLAN                        = 572;
    public static final int PLI                         = 573;
    public static final int PRECEDING                   = 574;
    public static final int PRESERVE                    = 575;
    public static final int PREV                        = 576;
    public static final int PRIOR                       = 577;
    public static final int PRIVATE                     = 578;
    public static final int PRIVILEGES                  = 579;
    public static final int PRUNE                       = 580;
    public static final int PUBLIC                      = 581;
    public static final int QUOTES                      = 582;
    public static final int READ                        = 583;
    public static final int RELATIVE                    = 584;
    public static final int REPEATABLE                  = 585;
    public static final int RESPECT                     = 586;
    public static final int RESTART                     = 587;
    public static final int RESTRICT                    = 588;
    public static final int RETURNED_CARDINALITY        = 589;
    public static final int RETURNED_LENGTH             = 590;
    public static final int RETURNED_OCTET_LENGTH       = 591;
    public static final int RETURNED_SQLSTATE           = 592;
    public static final int RETURNING                   = 593;
    public static final int ROLE                        = 594;
    public static final int ROUTINE                     = 595;
    public static final int ROUTINE_CATALOG             = 596;
    public static final int ROUTINE_NAME                = 597;
    public static final int ROUTINE_SCHEMA              = 598;
    public static final int ROW_COUNT                   = 599;
    public static final int SCALAR                      = 500;
    public static final int SCALE                       = 501;
    public static final int SCHEMA                      = 502;
    public static final int SCHEMA_NAME                 = 503;
    public static final int SCOPE_CATALOG               = 504;
    public static final int SCOPE_NAME                  = 505;
    public static final int SCOPE_SCHEMA                = 506;
    public static final int SECTION                     = 507;
    public static final int SECURITY                    = 508;
    public static final int SELF                        = 509;
    public static final int SEMANTICS                   = 510;
    public static final int SEQUENCE                    = 511;
    public static final int SERIALIZABLE                = 512;
    public static final int SERVER_NAME                 = 513;
    public static final int SESSION                     = 514;
    public static final int SERVER                      = 515;
    public static final int SETS                        = 516;
    public static final int SIMPLE                      = 517;
    public static final int SIZE                        = 518;
    public static final int SOURCE                      = 519;
    public static final int SORT_DIRECTION              = 520;
    public static final int SPACE                       = 521;
    public static final int SPECIFIC_NAME               = 522;
    public static final int STATE                       = 523;
    public static final int STATEMENT                   = 524;
    public static final int STRING                      = 525;
    public static final int STRUCTURE                   = 526;
    public static final int STYLE                       = 527;
    public static final int SUBCLASS_ORIGIN             = 528;
    public static final int T                           = 529;
    public static final int TABLE_NAME                  = 530;
    public static final int TEMPORARY                   = 531;
    public static final int THROUGH                     = 532;
    public static final int TIES                        = 533;
    public static final int TOP_LEVEL_COUNT             = 534;
    public static final int TRANSACTION                 = 535;
    public static final int TRANSACTION_ACTIVE          = 536;
    public static final int TRANSACTIONS_COMMITTED      = 537;
    public static final int TRANSACTIONS_ROLLED_BACK    = 538;
    public static final int TRANSFORM                   = 539;
    public static final int TRANSFORMS                  = 540;
    public static final int TRIGGER_CATALOG             = 541;
    public static final int TRIGGER_NAME                = 542;
    public static final int TRIGGER_SCHEMA              = 543;
    public static final int TYPE                        = 544;
    public static final int UNBOUNDED                   = 545;
    public static final int UNCOMMITTED                 = 546;
    public static final int UNCONDITIONAL               = 547;
    public static final int UNDER                       = 548;
    public static final int UNMATCHED                   = 549;
    public static final int UNNAMED                     = 550;
    public static final int USAGE                       = 551;
    public static final int USER_DEFINED_TYPE_CATALOG   = 552;
    public static final int USER_DEFINED_TYPE_CODE      = 553;
    public static final int USER_DEFINED_TYPE_NAME      = 554;
    public static final int USER_DEFINED_TYPE_SCHEMA    = 555;
    public static final int UTF16                       = 556;
    public static final int UTF32                       = 557;
    public static final int UTF8                        = 558;
    public static final int VIEW                        = 559;
    public static final int WORK                        = 560;
    public static final int WRITE                       = 561;
    public static final int WRAPPER                     = 562;
    public static final int ZONE                        = 563;

    // other token values used as switch cases
    public static final int ACTION_ID                  = 600;
    public static final int ADD_MONTHS                 = 601;
    public static final int AGGREGATE                  = 602;
    public static final int ALIAS                      = 603;
    public static final int ARRAY_SORT                 = 604;
    public static final int ASCII                      = 605;
    public static final int ASCIISTR                   = 606;
    public static final int ATAN2                      = 607;
    public static final int AUTHENTICATION             = 608;
    public static final int AUTOCOMMIT                 = 609;
    public static final int BACKUP                     = 610;
    public static final int BINARY_DOUBLE              = 611;
    public static final int BINARY_FLOAT               = 612;
    public static final int BIN_TO_NUM                 = 613;
    public static final int BIT                        = 614;
    public static final int BITAND                     = 615;
    public static final int BITANDNOT                  = 616;
    public static final int BITLENGTH                  = 617;
    public static final int BITNOT                     = 618;
    public static final int BITOR                      = 619;
    public static final int BITXOR                     = 620;
    public static final int BIT_LENGTH                 = 621;
    public static final int BLOCKING                   = 622;
    public static final int BODY                       = 623;
    public static final int BYTE                       = 624;
    public static final int CACHE                      = 625;
    public static final int CACHED                     = 626;
    public static final int CASEWHEN                   = 627;
    public static final int CHECKPOINT                 = 628;
    public static final int CHR                        = 629;
    public static final int CITEXT                     = 630;
    public static final int CLASS                      = 631;
    public static final int CLUSTERED                  = 632;
    public static final int COMMENT                    = 633;
    public static final int COMPACT                    = 634;
    public static final int COMPRESSED                 = 635;
    public static final int CONCAT_WORD                = 636;
    public static final int CONCAT_WS                  = 637;
    public static final int CONFLICT                   = 638;
    public static final int CONTROL                    = 639;
    public static final int COT                        = 640;
    public static final int CRYPT_KEY                  = 641;
    public static final int CURDATE                    = 642;
    public static final int CURRENT_TIMEZONE           = 643;
    public static final int CURRVAL                    = 644;
    public static final int CURTIME                    = 645;
    public static final int DATABASE                   = 646;
    public static final int DATABASE_ISOLATION_LEVEL   = 647;
    public static final int DATABASE_NAME              = 648;
    public static final int DATABASE_TIMEZONE          = 649;
    public static final int DATABASE_VERSION           = 650;
    public static final int DATEADD                    = 651;
    public static final int DATEDIFF                   = 652;
    public static final int DATENAME                   = 653;
    public static final int DATEPART                   = 654;
    public static final int DATETIMEOFFSET             = 655;
    public static final int DATE_ADD                   = 656;
    public static final int DATE_SUB                   = 657;
    public static final int DAYNAME                    = 658;
    public static final int DAYOFMONTH                 = 659;
    public static final int DAYOFWEEK                  = 660;
    public static final int DAYOFYEAR                  = 661;
    public static final int DAYS                       = 662;
    public static final int DAY_NAME                   = 663;
    public static final int DAY_OF_MONTH               = 664;
    public static final int DAY_OF_WEEK                = 665;
    public static final int DAY_OF_YEAR                = 666;
    public static final int DBTIMEZONE                 = 667;
    public static final int DEADLOCK                   = 668;
    public static final int DECODE                     = 669;
    public static final int DEFRAG                     = 670;
    public static final int DEGREES                    = 671;
    public static final int DELAY                      = 672;
    public static final int DIFFERENCE                 = 673;
    public static final int DIGEST                     = 674;
    public static final int DMOD                       = 675;
    public static final int DUPLICATE                  = 676;
    public static final int ENUM                       = 677;
    public static final int EOMONTH                    = 678;
    public static final int EVENT                      = 679;
    public static final int EXPLAIN                    = 680;
    public static final int EXPORT                     = 681;
    public static final int FEATURE                    = 682;
    public static final int FILE                       = 683;
    public static final int FILES                      = 684;
    public static final int FROM_BASE64                = 685;
    public static final int FROM_TZ                    = 686;
    public static final int GC                         = 687;
    public static final int GROUPING_ID                = 688;
    public static final int GROUP_CONCAT               = 689;
    public static final int GROUP_ID                   = 690;
    public static final int HEADER                     = 691;
    public static final int HEX                        = 692;
    public static final int HEXTORAW                   = 693;
    public static final int IDENTIFIER                 = 694;
    public static final int IFNULL                     = 695;
    public static final int IGNORECASE                 = 696;
    public static final int INDEX                      = 697;
    public static final int INDEXER                    = 698;
    public static final int INFINITY                   = 699;
    public static final int INSTR                      = 700;
    public static final int INTEGRITY                  = 701;
    public static final int INTERRUPT                  = 702;
    public static final int ISNULL                     = 703;
    public static final int ISOLATION_LEVEL            = 704;
    public static final int ISO_WEEK_OF_YEAR           = 705;
    public static final int IS_AUTOCOMMIT              = 706;
    public static final int IS_READONLY_DATABASE       = 707;
    public static final int IS_READONLY_DATABASE_FILES = 708;
    public static final int IS_READONLY_SESSION        = 709;
    public static final int LASTVAL                    = 710;
    public static final int LAST_DAY                   = 711;
    public static final int LCASE                      = 712;
    public static final int LIMIT                      = 713;
    public static final int LITERAL                    = 714;
    public static final int LIVE                       = 715;
    public static final int LOAD                       = 716;
    public static final int LOAD_FILE                  = 717;
    public static final int LOB                        = 718;
    public static final int LOB_ID                     = 719;
    public static final int LOCATE                     = 720;
    public static final int LOCK                       = 721;
    public static final int LOCKS                      = 722;
    public static final int LONG                       = 723;
    public static final int LONGBLOB                   = 724;
    public static final int LONGTEXT                   = 725;
    public static final int LONGVAR                    = 726;
    public static final int MAXROWS                    = 727;
    public static final int MEDIAN                     = 728;
    public static final int MEDIUMBLOB                 = 729;
    public static final int MEDIUMTEXT                 = 730;
    public static final int MEMORY                     = 731;
    public static final int MICROSECOND                = 732;
    public static final int MILLIS                     = 733;
    public static final int MILLISECOND                = 734;
    public static final int MINUS_EXCEPT               = 735;
    public static final int MODIFY                     = 736;
    public static final int MONTHNAME                  = 737;
    public static final int MONTHS_BETWEEN             = 738;
    public static final int MONTH_NAME                 = 739;
    public static final int MVCC                       = 740;
    public static final int MVLOCKS                    = 741;
    public static final int NAN                        = 742;
    public static final int NANOSECOND                 = 743;
    public static final int NANVL                      = 744;
    public static final int NEWID                      = 745;
    public static final int NEW_TIME                   = 746;
    public static final int NEXTVAL                    = 747;
    public static final int NEXT_DAY                   = 748;
    public static final int NIO                        = 749;
    public static final int NOW                        = 750;
    public static final int NOWAIT                     = 751;
    public static final int NUMTODSINTERVAL            = 752;
    public static final int NUMTOYMINTERVAL            = 753;
    public static final int NVARCHAR2                  = 754;
    public static final int NVL2                       = 755;
    public static final int OCTETLENGTH                = 756;
    public static final int OFF                        = 757;
    public static final int PASSWORD                   = 758;
    public static final int PERFORM                    = 759;
    public static final int PI                         = 760;
    public static final int POSITION_ARRAY             = 761;
    public static final int PREVVAL                    = 762;
    public static final int PROPERTY                   = 763;
    public static final int QUARTER                    = 764;
    public static final int RADIANS                    = 765;
    public static final int RAND                       = 766;
    public static final int RAW                        = 767;
    public static final int RAWTOHEX                   = 768;
    public static final int READONLY                   = 769;
    public static final int REFERENTIAL                = 770;
    public static final int REGEXP_COUNT               = 771;
    public static final int REGEXP_INSTR               = 772;
    public static final int REGEXP_LIKE                = 773;
    public static final int REGEXP_MATCHES             = 774;
    public static final int REGEXP_REPLACE             = 775;
    public static final int REGEXP_SUBSTR              = 776;
    public static final int REGEXP_SUBSTRING           = 777;
    public static final int REGEXP_SUBSTRING_ARRAY     = 778;
    public static final int REGULAR                    = 779;
    public static final int RENAME                     = 780;
    public static final int REPLACE                    = 781;
    public static final int RESET                      = 782;
    public static final int REVERSE                    = 783;
    public static final int ROOTS                      = 784;
    public static final int ROUND                      = 785;
    public static final int ROUNDMAGIC                 = 786;
    public static final int ROWNUM                     = 787;
    public static final int SCRIPT                     = 788;
    public static final int SECONDS_MIDNIGHT           = 789;
    public static final int SEPARATOR                  = 790;
    public static final int SEQUENCE_ARRAY             = 791;
    public static final int SESSIONTIMEZONE            = 792;
    public static final int SESSION_ID                 = 793;
    public static final int SESSION_ISOLATION_LEVEL    = 794;
    public static final int SESSION_TIMEZONE           = 795;
    public static final int SHUTDOWN                   = 796;
    public static final int SIGN                       = 797;
    public static final int SORT_ARRAY                 = 798;
    public static final int SOUNDEX                    = 799;
    public static final int SPACE_WORD                 = 800;
    public static final int STDDEV                     = 801;
    public static final int STOP                       = 802;
    public static final int STRING_AGG                 = 803;
    public static final int SUBSTR                     = 804;
    public static final int SYNONYM                    = 805;
    public static final int SYNTAX                     = 806;
    public static final int SYS                        = 807;
    public static final int SYSDATE                    = 808;
    public static final int SYSTIMESTAMP               = 809;
    public static final int SYS_EXTRACT_UTC            = 810;
    public static final int SYS_GUID                   = 811;
    public static final int TDC                        = 812;
    public static final int TEMP                       = 813;
    public static final int TEXT                       = 814;
    public static final int TIMESTAMPADD               = 815;
    public static final int TIMESTAMPDIFF              = 816;
    public static final int TIMESTAMP_WITH_ZONE        = 817;
    public static final int TIMEZONE                   = 818;
    public static final int TINYBLOB                   = 819;
    public static final int TINYTEXT                   = 820;
    public static final int TODAY                      = 821;
    public static final int TOP                        = 822;
    public static final int TO_BASE64                  = 823;
    public static final int TO_CHAR                    = 824;
    public static final int TO_DATE                    = 825;
    public static final int TO_DSINTERVAL              = 826;
    public static final int TO_NUMBER                  = 827;
    public static final int TO_TIMESTAMP               = 828;
    public static final int TO_TIMESTAMP_TZ            = 829;
    public static final int TO_YMINTERVAL              = 830;
    public static final int TRANSACTION_CONTROL        = 831;
    public static final int TRANSACTION_ID             = 832;
    public static final int TRANSACTION_SIZE           = 833;
    public static final int TRANSACTION_UTC            = 834;
    public static final int TRUNC                      = 835;
    public static final int TTI                        = 836;
    public static final int TYPES                      = 837;
    public static final int TZ_OFFSET                  = 838;
    public static final int UCASE                      = 839;
    public static final int UNHEX                      = 840;
    public static final int UNISTR                     = 841;
    public static final int UNIX_MILLIS                = 842;
    public static final int UNIX_TIMESTAMP             = 843;
    public static final int UNLOAD                     = 844;
    public static final int USE                        = 845;
    public static final int UUID                       = 846;
    public static final int VARCHAR2                   = 847;
    public static final int VARIANCE                   = 848;
    public static final int WEEK                       = 849;
    public static final int WEEK_OF_YEAR               = 850;
    public static final int WRITE_DELAY                = 851;

    //
    public static final int SQL_BIGINT         = 860;
    public static final int SQL_BINARY         = 861;
    public static final int SQL_BIT            = 862;
    public static final int SQL_BLOB           = 863;
    public static final int SQL_BOOLEAN        = 864;
    public static final int SQL_CHAR           = 865;
    public static final int SQL_CLOB           = 866;
    public static final int SQL_DATE           = 867;
    public static final int SQL_DECIMAL        = 868;
    public static final int SQL_DATALINK       = 869;
    public static final int SQL_DOUBLE         = 870;
    public static final int SQL_FLOAT          = 871;
    public static final int SQL_INTEGER        = 872;
    public static final int SQL_LONGVARBINARY  = 873;
    public static final int SQL_LONGNVARCHAR   = 874;
    public static final int SQL_LONGVARCHAR    = 875;
    public static final int SQL_NCHAR          = 876;
    public static final int SQL_NCLOB          = 877;
    public static final int SQL_NUMERIC        = 878;
    public static final int SQL_NVARCHAR       = 879;
    public static final int SQL_REAL           = 880;
    public static final int SQL_ROWID          = 881;
    public static final int SQL_SQLXML         = 882;
    public static final int SQL_SMALLINT       = 883;
    public static final int SQL_TIME           = 884;
    public static final int SQL_TIMESTAMP      = 885;
    public static final int SQL_TINYINT        = 886;
    public static final int SQL_VARBINARY      = 887;
    public static final int SQL_VARCHAR        = 888;

    //
    static final int SQL_TSI_FRAC_SECOND   = 890;
    static final int SQL_TSI_MILLI_SECOND  = 891;
    static final int SQL_TSI_MICRO_SECOND  = 892;
    static final int SQL_TSI_SECOND        = 893;
    static final int SQL_TSI_MINUTE        = 894;
    static final int SQL_TSI_HOUR          = 895;
    static final int SQL_TSI_DAY           = 896;
    static final int SQL_TSI_WEEK          = 897;
    static final int SQL_TSI_MONTH         = 898;
    static final int SQL_TSI_QUARTER       = 899;
    static final int SQL_TSI_YEAR          = 900;

    //
    static final int        ASTERISK          = 910;
    static final int        CLOSEBRACKET      = 911;
    public static final int COLON             = 912;
    public static final int COMMA             = 913;
    static final int        CONCAT_OP         = 914;
    static final int        DIVIDE_OP         = 915;
    static final int        DOUBLE_COLON_OP   = 916;
    static final int        DOUBLE_PERIOD_OP  = 917;
    static final int        GREATER_OP        = 918;
    static final int        GREATER_EQUALS    = 919;
    public static final int LEFTBRACE         = 920;
    public static final int LEFTBRACKET       = 921;
    static final int        LESS_OP           = 922;
    static final int        LESS_EQUALS       = 923;
    public static final int MINUS_OP          = 924;
    static final int        NOT_EQUALS        = 925;
    static final int        OPENBRACKET       = 926;
    static final int        PLUS_OP           = 927;
    static final int        QUESTION          = 928;
    static final int        RIGHT_ARROW_OP    = 929;
    public static final int RIGHTBRACE        = 930;
    public static final int RIGHTBRACKET      = 931;
    static final int        SEMICOLON         = 932;

    //
    static final int X_KEYSET       = 971;
    static final int X_OPTION       = 972;
    static final int X_REPEAT       = 973;
    static final int X_POS_INTEGER  = 974;
    static final int X_TOKEN        = 975;

    //
    public static final int X_VALUE                    = 1011;
    public static final int X_IDENTIFIER               = 1012;
    public static final int X_DELIMITED_IDENTIFIER     = 1013;
    public static final int X_ENDPARSE                 = 1014;
    public static final int X_STARTPARSE               = 1015;
    public static final int X_REMARK                   = 1016;
    public static final int X_NULL                     = 1017;
    public static final int X_LOB_SIZE                 = 1018;
    public static final int X_MALFORMED_STRING         = 1019;
    public static final int X_MALFORMED_NUMERIC        = 1020;
    public static final int X_MALFORMED_BIT_STRING     = 1021;
    public static final int X_MALFORMED_BINARY_STRING  = 1022;
    public static final int X_MALFORMED_UNICODE_STRING = 1023;
    public static final int X_MALFORMED_COMMENT        = 1024;
    public static final int X_MALFORMED_IDENTIFIER     = 1025;
    public static final int X_MALFORMED_UNICODE_ESCAPE = 1026;
    public static final int X_UNKNOWN_TOKEN            = -1;

    //
    private static final IntValueHashMap<String> reservedKeys = new IntValueHashMap<>(351);

    static {
        reservedKeys.put(T_ABS, ABS);
        reservedKeys.put(T_ABSENT, ABSENT);
        reservedKeys.put(T_ACOS, ACOS);
        reservedKeys.put(T_ALL, ALL);
        reservedKeys.put(T_ALLOCATE, ALLOCATE);
        reservedKeys.put(T_ALTER, ALTER);
        reservedKeys.put(T_AND, AND);
        reservedKeys.put(T_ANY, ANY);
        reservedKeys.put(T_ANY_VALUE, ANY_VALUE);
        reservedKeys.put(T_ARE, ARE);
        reservedKeys.put(T_ARRAY, ARRAY);
        reservedKeys.put(T_ARRAY_AGG, ARRAY_AGG);
        reservedKeys.put(T_ARRAY_MAX_CARDINALITY, ARRAY_MAX_CARDINALITY);
        reservedKeys.put(T_AS, AS);
        reservedKeys.put(T_ASENSITIVE, ASENSITIVE);
        reservedKeys.put(T_ASIN, ASIN);
        reservedKeys.put(T_ASYMMETRIC, ASYMMETRIC);
        reservedKeys.put(T_AT, AT);
        reservedKeys.put(T_ATAN, ATAN);
        reservedKeys.put(T_ATOMIC, ATOMIC);
        reservedKeys.put(T_AUTHORIZATION, AUTHORIZATION);
        reservedKeys.put(T_AVG, AVG);
        reservedKeys.put(T_BEGIN, BEGIN);
        reservedKeys.put(T_BEGIN_FRAME, BEGIN_FRAME);
        reservedKeys.put(T_BEGIN_PARTITION, BEGIN_PARTITION);
        reservedKeys.put(T_BETWEEN, BETWEEN);
        reservedKeys.put(T_BIGINT, BIGINT);
        reservedKeys.put(T_BINARY, BINARY);
        reservedKeys.put(T_BIT_LENGTH, BIT_LENGTH);
        reservedKeys.put(T_BLOB, BLOB);
        reservedKeys.put(T_BOOLEAN, BOOLEAN);
        reservedKeys.put(T_BOTH, BOTH);
        reservedKeys.put(T_BY, BY);
        reservedKeys.put(T_CALL, CALL);
        reservedKeys.put(T_CALLED, CALLED);
        reservedKeys.put(T_CARDINALITY, CARDINALITY);
        reservedKeys.put(T_CASCADED, CASCADED);
        reservedKeys.put(T_CASE, CASE);
        reservedKeys.put(T_CAST, CAST);
        reservedKeys.put(T_CEIL, CEIL);
        reservedKeys.put(T_CEILING, CEILING);
        reservedKeys.put(T_CHAR, CHAR);
        reservedKeys.put(T_CHARACTER, CHARACTER);
        reservedKeys.put(T_CHARACTER_LENGTH, CHARACTER_LENGTH);
        reservedKeys.put(T_CHAR_LENGTH, CHAR_LENGTH);
        reservedKeys.put(T_CHECK, CHECK);
        reservedKeys.put(T_CLOB, CLOB);
        reservedKeys.put(T_CLOSE, CLOSE);
        reservedKeys.put(T_COALESCE, COALESCE);
        reservedKeys.put(T_COLLATE, COLLATE);
        reservedKeys.put(T_COLLECT, COLLECT);
        reservedKeys.put(T_COLUMN, COLUMN);
        reservedKeys.put(T_COMMIT, COMMIT);
        reservedKeys.put(T_COMPARABLE, COMPARABLE);
        reservedKeys.put(T_CONDITION, CONDITION);
        reservedKeys.put(T_CONNECT, CONNECT);
        reservedKeys.put(T_CONSTRAINT, CONSTRAINT);
        reservedKeys.put(T_CONTAINS, CONTAINS);
        reservedKeys.put(T_CONVERT, CONVERT);
        reservedKeys.put(T_CORR, CORR);
        reservedKeys.put(T_CORRESPONDING, CORRESPONDING);
        reservedKeys.put(T_COS, COS);
        reservedKeys.put(T_COSH, COSH);
        reservedKeys.put(T_COUNT, COUNT);
        reservedKeys.put(T_COVAR_POP, COVAR_POP);
        reservedKeys.put(T_COVAR_SAMP, COVAR_SAMP);
        reservedKeys.put(T_CREATE, CREATE);
        reservedKeys.put(T_CROSS, CROSS);
        reservedKeys.put(T_CUBE, CUBE);
        reservedKeys.put(T_CUME_DIST, CUME_DIST);
        reservedKeys.put(T_CURRENT, CURRENT);
        reservedKeys.put(T_CURRENT_CATALOG, CURRENT_CATALOG);
        reservedKeys.put(T_CURRENT_DATE, CURRENT_DATE);
        reservedKeys.put(T_CURRENT_DEFAULT_TRANSFORM_GROUP, CURRENT_DEFAULT_TRANSFORM_GROUP);
        reservedKeys.put(T_CURRENT_PATH, CURRENT_PATH);
        reservedKeys.put(T_CURRENT_ROLE, CURRENT_ROLE);
        reservedKeys.put(T_CURRENT_ROW, CURRENT_ROW);
        reservedKeys.put(T_CURRENT_SCHEMA, CURRENT_SCHEMA);
        reservedKeys.put(T_CURRENT_TIME, CURRENT_TIME);
        reservedKeys.put(T_CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
        reservedKeys.put(T_CURRENT_TRANSFORM_GROUP_FOR_TYPE, CURRENT_TRANSFORM_GROUP_FOR_TYPE);
        reservedKeys.put(T_CURRENT_USER, CURRENT_USER);
        reservedKeys.put(T_CURSOR, CURSOR);
        reservedKeys.put(T_CYCLE, CYCLE);
        reservedKeys.put(T_DATE, DATE);
        reservedKeys.put(T_DAY, DAY);
        reservedKeys.put(T_DEALLOCATE, DEALLOCATE);
        reservedKeys.put(T_DEC, DEC);
        reservedKeys.put(T_DECIMAL, DECIMAL);
        reservedKeys.put(T_DECLARE, DECLARE);
        reservedKeys.put(T_DEFAULT, DEFAULT);
        reservedKeys.put(T_DELETE, DELETE);
        reservedKeys.put(T_DENSE_RANK, DENSE_RANK);
        reservedKeys.put(T_DEREF, DEREF);
        reservedKeys.put(T_DESCRIBE, DESCRIBE);
        reservedKeys.put(T_DETERMINISTIC, DETERMINISTIC);
        reservedKeys.put(T_DISCONNECT, DISCONNECT);
        reservedKeys.put(T_DISTINCT, DISTINCT);
        reservedKeys.put(T_DO, DO);
        reservedKeys.put(T_DOUBLE, DOUBLE);
        reservedKeys.put(T_DROP, DROP);
        reservedKeys.put(T_DYNAMIC, DYNAMIC);
        reservedKeys.put(T_EACH, EACH);
        reservedKeys.put(T_ELEMENT, ELEMENT);
        reservedKeys.put(T_ELSE, ELSE);
        reservedKeys.put(T_ELSEIF, ELSEIF);
        reservedKeys.put(T_EMPTY, EMPTY);
        reservedKeys.put(T_END, END);
        reservedKeys.put(T_END_EXEC, END_EXEC);
        reservedKeys.put(T_END_FRAME, END_FRAME);
        reservedKeys.put(T_END_PARTITION, END_PARTITION);
        reservedKeys.put(T_EQUALS, EQUALS);
        reservedKeys.put(T_ESCAPE, ESCAPE);
        reservedKeys.put(T_EVERY, EVERY);
        reservedKeys.put(T_EXCEPT, EXCEPT);
        reservedKeys.put(T_EXEC, EXEC);
        reservedKeys.put(T_EXECUTE, EXECUTE);
        reservedKeys.put(T_EXISTS, EXISTS);
        reservedKeys.put(T_EXIT, EXIT);
        reservedKeys.put(T_EXP, EXP);
        reservedKeys.put(T_EXTERNAL, EXTERNAL);
        reservedKeys.put(T_EXTRACT, EXTRACT);
        reservedKeys.put(T_FALSE, FALSE);
        reservedKeys.put(T_FETCH, FETCH);
        reservedKeys.put(T_FILTER, FILTER);
        reservedKeys.put(T_FIRST_VALUE, FIRST_VALUE);
        reservedKeys.put(T_FLOAT, FLOAT);
        reservedKeys.put(T_FLOOR, FLOOR);
        reservedKeys.put(T_FOR, FOR);
        reservedKeys.put(T_FOREIGN, FOREIGN);
        reservedKeys.put(T_FRAME_ROW, FRAME_ROW);
        reservedKeys.put(T_FREE, FREE);
        reservedKeys.put(T_FROM, FROM);
        reservedKeys.put(T_FULL, FULL);
        reservedKeys.put(T_FUNCTION, FUNCTION);
        reservedKeys.put(T_FUSION, FUSION);
        reservedKeys.put(T_GET, GET);
        reservedKeys.put(T_GLOBAL, GLOBAL);
        reservedKeys.put(T_GRANT, GRANT);
        reservedKeys.put(T_GROUP, GROUP);
        reservedKeys.put(T_GROUPING, GROUPING);
        reservedKeys.put(T_GROUPS, GROUPS);
        reservedKeys.put(T_HANDLER, HANDLER);
        reservedKeys.put(T_HAVING, HAVING);
        reservedKeys.put(T_HOLD, HOLD);
        reservedKeys.put(T_HOUR, HOUR);
        reservedKeys.put(T_IDENTITY, IDENTITY);
        reservedKeys.put(T_IF, IF);
        reservedKeys.put(T_IMPORT, IMPORT);
        reservedKeys.put(T_IN, IN);
        reservedKeys.put(T_INDICATOR, INDICATOR);
        reservedKeys.put(T_INITIAL, INITIAL);
        reservedKeys.put(T_INNER, INNER);
        reservedKeys.put(T_INOUT, INOUT);
        reservedKeys.put(T_INSENSITIVE, INSENSITIVE);
        reservedKeys.put(T_INSERT, INSERT);
        reservedKeys.put(T_INT, INT);
        reservedKeys.put(T_INTEGER, INTEGER);
        reservedKeys.put(T_INTERSECT, INTERSECT);
        reservedKeys.put(T_INTERSECTION, INTERSECTION);
        reservedKeys.put(T_INTERVAL, INTERVAL);
        reservedKeys.put(T_INTO, INTO);
        reservedKeys.put(T_IS, IS);
        reservedKeys.put(T_ITERATE, ITERATE);
        reservedKeys.put(T_JOIN, JOIN);
        reservedKeys.put(T_JSON, JSON);
        reservedKeys.put(T_JSON_ARRAY, JSON_ARRAY);
        reservedKeys.put(T_JSON_ARRAYAGG, JSON_ARRAYAGG);
        reservedKeys.put(T_JSON_EXISTS, JSON_EXISTS);
        reservedKeys.put(T_JSON_OBJECT, JSON_OBJECT);
        reservedKeys.put(T_JSON_OBJECTAGG, JSON_OBJECTAGG);
        reservedKeys.put(T_JSON_QUERY, JSON_QUERY);
        reservedKeys.put(T_JSON_TABLE, JSON_TABLE);
        reservedKeys.put(T_JSON_VALUE, JSON_VALUE);
        reservedKeys.put(T_LAG, LAG);
        reservedKeys.put(T_LANGUAGE, LANGUAGE);
        reservedKeys.put(T_LARGE, LARGE);
        reservedKeys.put(T_LAST_VALUE, LAST_VALUE);
        reservedKeys.put(T_LATERAL, LATERAL);
        reservedKeys.put(T_LEAD, LEAD);
        reservedKeys.put(T_LEADING, LEADING);
        reservedKeys.put(T_LEAST, LEAST);
        reservedKeys.put(T_LEAVE, LEAVE);
        reservedKeys.put(T_LEFT, LEFT);
        reservedKeys.put(T_LIKE, LIKE);
        reservedKeys.put(T_LIKE_REGX, LIKE_REGEX);
        reservedKeys.put(T_LISTAGG, LISTAGG);
        reservedKeys.put(T_LN, LN);
        reservedKeys.put(T_LOCAL, LOCAL);
        reservedKeys.put(T_LOCALTIME, LOCALTIME);
        reservedKeys.put(T_LOCALTIMESTAMP, LOCALTIMESTAMP);
        reservedKeys.put(T_LOG, LOG);
        reservedKeys.put(T_LOG10, LOG10);
        reservedKeys.put(T_LOOP, LOOP);
        reservedKeys.put(T_LOWER, LOWER);
        reservedKeys.put(T_LPAD, LPAD);
        reservedKeys.put(T_LTRIM, LTRIM);
        reservedKeys.put(T_MATCH, MATCH);
        reservedKeys.put(T_MAX, MAX);
        reservedKeys.put(T_MAX_CARDINALITY, MAX_CARDINALITY);
        reservedKeys.put(T_MEMBER, MEMBER);
        reservedKeys.put(T_MERGE, MERGE);
        reservedKeys.put(T_METHOD, METHOD);
        reservedKeys.put(T_MIN, MIN);
        reservedKeys.put(T_MINUTE, MINUTE);
        reservedKeys.put(T_MOD, MOD);
        reservedKeys.put(T_MODIFIES, MODIFIES);
        reservedKeys.put(T_MODULE, MODULE);
        reservedKeys.put(T_MONTH, MONTH);
        reservedKeys.put(T_MULTISET, MULTISET);
        reservedKeys.put(T_NATIONAL, NATIONAL);
        reservedKeys.put(T_NATURAL, NATURAL);
        reservedKeys.put(T_NCHAR, NCHAR);
        reservedKeys.put(T_NCLOB, NCLOB);
        reservedKeys.put(T_NEW, NEW);
        reservedKeys.put(T_NO, NO);
        reservedKeys.put(T_NONE, NONE);
        reservedKeys.put(T_NORMALIZE, NORMALIZE);
        reservedKeys.put(T_NOT, NOT);
        reservedKeys.put(T_NTH_VALUE, NTH_VALUE);
        reservedKeys.put(T_NTILE, NTILE);
        reservedKeys.put(T_NULL, NULL);
        reservedKeys.put(T_NULLIF, NULLIF);
        reservedKeys.put(T_NUMERIC, NUMERIC);
        reservedKeys.put(T_OCCURRENCES_REGEX, OCCURRENCES_REGEX);
        reservedKeys.put(T_OCTET_LENGTH, OCTET_LENGTH);
        reservedKeys.put(T_OF, OF);
        reservedKeys.put(T_OFFSET, OFFSET);
        reservedKeys.put(T_OLD, OLD);
        reservedKeys.put(T_OMIT, OMIT);
        reservedKeys.put(T_ON, ON);
        reservedKeys.put(T_ONLY, ONLY);
        reservedKeys.put(T_OPEN, OPEN);
        reservedKeys.put(T_OR, OR);
        reservedKeys.put(T_ORDER, ORDER);
        reservedKeys.put(T_OUT, OUT);
        reservedKeys.put(T_OUTER, OUTER);
        reservedKeys.put(T_OVER, OVER);
        reservedKeys.put(T_OVERLAPS, OVERLAPS);
        reservedKeys.put(T_OVERLAY, OVERLAY);
        reservedKeys.put(T_PARAMETER, PARAMETER);
        reservedKeys.put(T_PARTITION, PARTITION);
        reservedKeys.put(T_PERCENTILE_CONT, PERCENTILE_CONT);
        reservedKeys.put(T_PERCENTILE_DISC, PERCENTILE_DISC);
        reservedKeys.put(T_PERCENT, PERCENT);
        reservedKeys.put(T_PERCENT_RANK, PERCENT_RANK);
        reservedKeys.put(T_PERIOD, PERIOD);
        reservedKeys.put(T_PORTION, PORTION);
        reservedKeys.put(T_POSITION, POSITION);
        reservedKeys.put(T_POSITION_REGEX, POSITION_REGEX);
        reservedKeys.put(T_POWER, POWER);
        reservedKeys.put(T_PRECEDES, PRECEDES);
        reservedKeys.put(T_PRECISION, PRECISION);
        reservedKeys.put(T_PREPARE, PREPARE);
        reservedKeys.put(T_PRIMARY, PRIMARY);
        reservedKeys.put(T_PROCEDURE, PROCEDURE);
        reservedKeys.put(T_RANGE, RANGE);
        reservedKeys.put(T_RANK, RANK);
        reservedKeys.put(T_READS, READS);
        reservedKeys.put(T_REAL, REAL);
        reservedKeys.put(T_RECURSIVE, RECURSIVE);
        reservedKeys.put(T_REF, REF);
        reservedKeys.put(T_REFERENCES, REFERENCES);
        reservedKeys.put(T_REFERENCING, REFERENCING);
        reservedKeys.put(T_REGR_AVGX, REGR_AVGX);
        reservedKeys.put(T_REGR_AVGY, REGR_AVGY);
        reservedKeys.put(T_REGR_COUNT, REGR_COUNT);
        reservedKeys.put(T_REGR_INTERCEPT, REGR_INTERCEPT);
        reservedKeys.put(T_REGR_R2, REGR_R2);
        reservedKeys.put(T_REGR_SLOPE, REGR_SLOPE);
        reservedKeys.put(T_REGR_SXX, REGR_SXX);
        reservedKeys.put(T_REGR_SXY, REGR_SXY);
        reservedKeys.put(T_REGR_SYY, REGR_SYY);
        reservedKeys.put(T_RELEASE, RELEASE);
        reservedKeys.put(T_REPEAT, REPEAT);
        reservedKeys.put(T_RESIGNAL, RESIGNAL);
        reservedKeys.put(T_RESULT, RESULT);
        reservedKeys.put(T_RETURN, RETURN);
        reservedKeys.put(T_RETURNS, RETURNS);
        reservedKeys.put(T_REVOKE, REVOKE);
        reservedKeys.put(T_RIGHT, RIGHT);
        reservedKeys.put(T_ROLLBACK, ROLLBACK);
        reservedKeys.put(T_ROLLUP, ROLLUP);
        reservedKeys.put(T_ROW, ROW);
        reservedKeys.put(T_ROWS, ROWS);
        reservedKeys.put(T_ROW_NUMBER, ROW_NUMBER);
        reservedKeys.put(T_RPAD, RPAD);
        reservedKeys.put(T_RTRIM, RTRIM);
        reservedKeys.put(T_SAVEPOINT, SAVEPOINT);
        reservedKeys.put(T_SCOPE, SCOPE);
        reservedKeys.put(T_SCROLL, SCROLL);
        reservedKeys.put(T_SEARCH, SEARCH);
        reservedKeys.put(T_SECOND, SECOND);
        reservedKeys.put(T_SELECT, SELECT);
        reservedKeys.put(T_SENSITIVE, SENSITIVE);
        reservedKeys.put(T_SESSION_USER, SESSION_USER);
        reservedKeys.put(T_SET, SET);
        reservedKeys.put(T_SIGNAL, SIGNAL);
        reservedKeys.put(T_SIMILAR, SIMILAR);
        reservedKeys.put(T_SIN, SIN);
        reservedKeys.put(T_SINH, SINH);
        reservedKeys.put(T_SMALLINT, SMALLINT);
        reservedKeys.put(T_SOME, SOME);
        reservedKeys.put(T_SPECIFIC, SPECIFIC);
        reservedKeys.put(T_SPECIFICTYPE, SPECIFICTYPE);
        reservedKeys.put(T_SQL, SQL);
        reservedKeys.put(T_SQLEXCEPTION, SQLEXCEPTION);
        reservedKeys.put(T_SQLSTATE, SQLSTATE);
        reservedKeys.put(T_SQLWARNING, SQLWARNING);
        reservedKeys.put(T_SQRT, SQRT);
        reservedKeys.put(T_STACKED, STACKED);
        reservedKeys.put(T_START, START);
        reservedKeys.put(T_STATIC, STATIC);
        reservedKeys.put(T_STDDEV_POP, STDDEV_POP);
        reservedKeys.put(T_STDDEV_SAMP, STDDEV_SAMP);
        reservedKeys.put(T_SUBMULTISET, SUBMULTISET);
        reservedKeys.put(T_SUBSTRING, SUBSTRING);
        reservedKeys.put(T_SUBSTRING_REGEX, SUBSTRING_REGEX);
        reservedKeys.put(T_SUCCEEDS, SUCCEEDS);
        reservedKeys.put(T_SUM, SUM);
        reservedKeys.put(T_SYMMETRIC, SYMMETRIC);
        reservedKeys.put(T_SYSTEM, SYSTEM);
        reservedKeys.put(T_SYSTEM_TIME, SYSTEM_TIME);
        reservedKeys.put(T_SYSTEM_USER, SYSTEM_USER);
        reservedKeys.put(T_TABLE, TABLE);
        reservedKeys.put(T_TABLESAMPLE, TABLESAMPLE);
        reservedKeys.put(T_TAN, TAN);
        reservedKeys.put(T_TANH, TANH);
        reservedKeys.put(T_THEN, THEN);
        reservedKeys.put(T_TIME, TIME);
        reservedKeys.put(T_TIMESTAMP, TIMESTAMP);
        reservedKeys.put(T_TIMEZONE_HOUR, TIMEZONE_HOUR);
        reservedKeys.put(T_TIMEZONE_MINUTE, TIMEZONE_MINUTE);
        reservedKeys.put(T_TO, TO);
        reservedKeys.put(T_TRAILING, TRAILING);
        reservedKeys.put(T_TRANSLATE, TRANSLATE);
        reservedKeys.put(T_TRANSLATE_REGEX, TRANSLATE_REGEX);
        reservedKeys.put(T_TRANSLATION, TRANSLATION);
        reservedKeys.put(T_TREAT, TREAT);
        reservedKeys.put(T_TRIGGER, TRIGGER);
        reservedKeys.put(T_TRIM, TRIM);
        reservedKeys.put(T_TRIM_ARRAY, TRIM_ARRAY);
        reservedKeys.put(T_TRUE, TRUE);
        reservedKeys.put(T_TRUNCATE, TRUNCATE);
        reservedKeys.put(T_UESCAPE, UESCAPE);
        reservedKeys.put(T_UNDO, UNDO);
        reservedKeys.put(T_UNION, UNION);
        reservedKeys.put(T_UNIQUE, UNIQUE);
        reservedKeys.put(T_UNKNOWN, UNKNOWN);
        reservedKeys.put(T_UNNEST, UNNEST);
        reservedKeys.put(T_UNTIL, UNTIL);
        reservedKeys.put(T_UPDATE, UPDATE);
        reservedKeys.put(T_UPPER, UPPER);
        reservedKeys.put(T_USER, USER);
        reservedKeys.put(T_USING, USING);
        reservedKeys.put(T_VALUE, VALUE);
        reservedKeys.put(T_VALUES, VALUES);
        reservedKeys.put(T_VALUE_OF, VALUE_OF);
        reservedKeys.put(T_VARBINARY, VARBINARY);
        reservedKeys.put(T_VARCHAR, VARCHAR);
        reservedKeys.put(T_VARYING, VARYING);
        reservedKeys.put(T_VAR_POP, VAR_POP);
        reservedKeys.put(T_VAR_SAMP, VAR_SAMP);
        reservedKeys.put(T_VERSIONING, VERSIONING);
        reservedKeys.put(T_WHEN, WHEN);
        reservedKeys.put(T_WHENEVER, WHENEVER);
        reservedKeys.put(T_WHERE, WHERE);
        reservedKeys.put(T_WHILE, WHILE);
        reservedKeys.put(T_WIDTH_BUCKET, WIDTH_BUCKET);
        reservedKeys.put(T_WINDOW, WINDOW);
        reservedKeys.put(T_WITH, WITH);
        reservedKeys.put(T_WITHIN, WITHIN);
        reservedKeys.put(T_WITHOUT, WITHOUT);
        reservedKeys.put(T_YEAR, YEAR);
    }

    private static final IntValueHashMap<String> commandSet = new IntValueHashMap<>(449);

    static {
        commandSet.put(T_ACTION, ACTION);
        commandSet.put(T_ACTION_ID, ACTION_ID);
        commandSet.put(T_ADD, ADD);
        commandSet.put(T_ADD_MONTHS, ADD_MONTHS);
        commandSet.put(T_ADMIN, ADMIN);
        commandSet.put(T_AFTER, AFTER);
        commandSet.put(T_AGGREGATE, AGGREGATE);
        commandSet.put(T_ALIAS, ALIAS);
        commandSet.put(T_ALWAYS, ALWAYS);
        commandSet.put(T_ARRAY_SORT, ARRAY_SORT);
        commandSet.put(T_ASC, ASC);
        commandSet.put(T_ASCII, ASCII);
        commandSet.put(T_ASCIISTR, ASCIISTR);
        commandSet.put(T_ATAN2, ATAN2);
        commandSet.put(T_AUTHENTICATION, AUTHENTICATION);
        commandSet.put(T_AUTOCOMMIT, AUTOCOMMIT);
        commandSet.put(T_BACKUP, BACKUP);
        commandSet.put(T_BEFORE, BEFORE);
        commandSet.put(T_BINARY_DOUBLE, BINARY_DOUBLE);
        commandSet.put(T_BINARY_FLOAT, BINARY_FLOAT);
        commandSet.put(T_BIN_TO_NUM, BIN_TO_NUM);
        commandSet.put(T_BIT, BIT);
        commandSet.put(T_BITAND, BITAND);
        commandSet.put(T_BITANDNOT, BITANDNOT);
        commandSet.put(T_BITLENGTH, BITLENGTH);
        commandSet.put(T_BITNOT, BITNOT);
        commandSet.put(T_BITOR, BITOR);
        commandSet.put(T_BITXOR, BITXOR);
        commandSet.put(T_BLOCKING, BLOCKING);
        commandSet.put(T_BODY, BODY);
        commandSet.put(T_BREADTH, BREADTH);
        commandSet.put(T_BYTE, BYTE);
        commandSet.put(T_CACHE, CACHE);
        commandSet.put(T_CACHED, CACHED);
        commandSet.put(T_CASCADE, CASCADE);
        commandSet.put(T_CASEWHEN, CASEWHEN);
        commandSet.put(T_CATALOG, CATALOG);
        commandSet.put(T_CHARACTERISTICS, CHARACTERISTICS);
        commandSet.put(T_CHARACTERS, CHARACTERS);
        commandSet.put(T_CHECKPOINT, CHECKPOINT);
        commandSet.put(T_CHR, CHR);
        commandSet.put(T_CITEXT, CITEXT);
        commandSet.put(T_CLASS, CLASS);
        commandSet.put(T_CLUSTERED, CLUSTERED);
        commandSet.put(T_COLLATION, COLLATION);
        commandSet.put(T_COMMENT, COMMENT);
        commandSet.put(T_COMMITTED, COMMITTED);
        commandSet.put(T_COMPACT, COMPACT);
        commandSet.put(T_COMPRESSED, COMPRESSED);
        commandSet.put(T_CONCAT_WORD, CONCAT_WORD);
        commandSet.put(T_CONCAT_WS, CONCAT_WS);
        commandSet.put(T_CONDITION_IDENTIFIER, CONDITION_IDENTIFIER);
        commandSet.put(T_CONFLICT, CONFLICT);
        commandSet.put(T_CONSTRAINTS, CONSTRAINTS);
        commandSet.put(T_CONTINUE, CONTINUE);
        commandSet.put(T_CONTROL, CONTROL);
        commandSet.put(T_COT, COT);
        commandSet.put(T_CRYPT_KEY, CRYPT_KEY);
        commandSet.put(T_CURDATE, CURDATE);
        commandSet.put(T_CURRENT_TIMEZONE, CURRENT_TIMEZONE);
        commandSet.put(T_CURRVAL, CURRVAL);
        commandSet.put(T_CURTIME, CURTIME);
        commandSet.put(T_DATA, DATA);
        commandSet.put(T_DATABASE, DATABASE);
        commandSet.put(T_DATABASE_ISOLATION_LEVEL, DATABASE_ISOLATION_LEVEL);
        commandSet.put(T_DATABASE_NAME, DATABASE_NAME);
        commandSet.put(T_DATABASE_TIMEZONE, DATABASE_TIMEZONE);
        commandSet.put(T_DATABASE_VERSION, DATABASE_VERSION);
        commandSet.put(T_DATEADD, DATEADD);
        commandSet.put(T_DATEDIFF, DATEDIFF);
        commandSet.put(T_DATENAME, DATENAME);
        commandSet.put(T_DATEPART, DATEPART);
        commandSet.put(T_DATETIMEOFFSET, DATETIMEOFFSET);
        commandSet.put(T_DATE_ADD, DATE_ADD);
        commandSet.put(T_DATE_SUB, DATE_SUB);
        commandSet.put(T_DAYNAME, DAYNAME);
        commandSet.put(T_DAYOFMONTH, DAYOFMONTH);
        commandSet.put(T_DAYOFWEEK, DAYOFWEEK);
        commandSet.put(T_DAYOFYEAR, DAYOFYEAR);
        commandSet.put(T_DAYS, DAYS);
        commandSet.put(T_DAY_NAME, DAY_NAME);
        commandSet.put(T_DAY_OF_MONTH, DAY_OF_MONTH);
        commandSet.put(T_DAY_OF_WEEK, DAY_OF_WEEK);
        commandSet.put(T_DAY_OF_YEAR, DAY_OF_YEAR);
        commandSet.put(T_DBTIMEZONE, DBTIMEZONE);
        commandSet.put(T_DEADLOCK, DEADLOCK);
        commandSet.put(T_DECODE, DECODE);
        commandSet.put(T_DEFAULTS, DEFAULTS);
        commandSet.put(T_DEFERRABLE, DEFERRABLE);
        commandSet.put(T_DEFINER, DEFINER);
        commandSet.put(T_DEFRAG, DEFRAG);
        commandSet.put(T_DEGREES, DEGREES);
        commandSet.put(T_DELAY, DELAY);
        commandSet.put(T_DEPTH, DEPTH);
        commandSet.put(T_DESC, DESC);
        commandSet.put(T_DIAGNOSTICS, DIAGNOSTICS);
        commandSet.put(T_DIFFERENCE, DIFFERENCE);
        commandSet.put(T_DIGEST, DIGEST);
        commandSet.put(T_DMOD, DMOD);
        commandSet.put(T_DOMAIN, DOMAIN);
        commandSet.put(T_DUPLICATE, DUPLICATE);
        commandSet.put(T_ENUM, ENUM);
        commandSet.put(T_EOMONTH, EOMONTH);
        commandSet.put(T_ERROR, ERROR);
        commandSet.put(T_EVENT, EVENT);
        commandSet.put(T_EXCEPTION, EXCEPTION);
        commandSet.put(T_EXCLUDE, EXCLUDE);
        commandSet.put(T_EXCLUDING, EXCLUDING);
        commandSet.put(T_EXPLAIN, EXPLAIN);
        commandSet.put(T_EXPORT, EXPORT);
        commandSet.put(T_EXPRESSION, EXPRESSION);
        commandSet.put(T_FEATURE, FEATURE);
        commandSet.put(T_FILE, FILE);
        commandSet.put(T_FILES, FILES);
        commandSet.put(T_FINAL, FINAL);
        commandSet.put(T_FIRST, FIRST);
        commandSet.put(T_FOLLOWING, FOLLOWING);
        commandSet.put(T_FORMAT, FORMAT);
        commandSet.put(T_FOUND, FOUND);
        commandSet.put(T_FROM_BASE64, FROM_BASE64);
        commandSet.put(T_FROM_TZ, FROM_TZ);
        commandSet.put(T_GC, GC);
        commandSet.put(T_GENERATED, GENERATED);
        commandSet.put(T_GRANTED, GRANTED);
        commandSet.put(T_GREATEST, GREATEST);
        commandSet.put(T_GROUPING_ID, GROUPING_ID);
        commandSet.put(T_GROUP_CONCAT, GROUP_CONCAT);
        commandSet.put(T_GROUP_ID, GROUP_ID);
        commandSet.put(T_G_FACTOR, G);
        commandSet.put(T_HEADER, HEADER);
        commandSet.put(T_HEX, HEX);
        commandSet.put(T_HEXTORAW, HEXTORAW);
        commandSet.put(T_IDENTIFIER, IDENTIFIER);
        commandSet.put(T_IFNULL, IFNULL);
        commandSet.put(T_IGNORE, IGNORE);
        commandSet.put(T_IGNORECASE, IGNORECASE);
        commandSet.put(T_IMMEDIATELY, IMMEDIATELY);
        commandSet.put(T_INCLUDING, INCLUDING);
        commandSet.put(T_INCREMENT, INCREMENT);
        commandSet.put(T_INDEX, INDEX);
        commandSet.put(T_INDEXER, INDEXER);
        commandSet.put(T_INFINITY, INFINITY);
        commandSet.put(T_INPUT, INPUT);
        commandSet.put(T_INSTEAD, INSTEAD);
        commandSet.put(T_INSTR, INSTR);
        commandSet.put(T_INTEGRITY, INTEGRITY);
        commandSet.put(T_INTERRUPT, INTERRUPT);
        commandSet.put(T_ISNULL, ISNULL);
        commandSet.put(T_ISOLATION, ISOLATION);
        commandSet.put(T_ISOLATION_LEVEL, ISOLATION_LEVEL);
        commandSet.put(T_ISO_WEEK_OF_YEAR, ISO_WEEK_OF_YEAR);
        commandSet.put(T_IS_AUTOCOMMIT, IS_AUTOCOMMIT);
        commandSet.put(T_IS_READONLY_DATABASE, IS_READONLY_DATABASE);
        commandSet.put(T_IS_READONLY_DATABASE_FILES, IS_READONLY_DATABASE_FILES);
        commandSet.put(T_IS_READONLY_SESSION, IS_READONLY_SESSION);
        commandSet.put(T_JAVA, JAVA);
        commandSet.put(T_KEEP, KEEP);
        commandSet.put(T_KEY, KEY);
        commandSet.put(T_KEYS, KEYS);
        commandSet.put(T_K_FACTOR, K);
        commandSet.put(T_LAST, LAST);
        commandSet.put(T_LASTVAL, LASTVAL);
        commandSet.put(T_LAST_DAY, LAST_DAY);
        commandSet.put(T_LCASE, LCASE);
        commandSet.put(T_LENGTH, LENGTH);
        commandSet.put(T_LEVEL, LEVEL);
        commandSet.put(T_LIBRARY, LIBRARY);
        commandSet.put(T_LIMIT, LIMIT);
        commandSet.put(T_LITERAL, LITERAL);
        commandSet.put(T_LIVE, LIVE);
        commandSet.put(T_LOAD, LOAD);
        commandSet.put(T_LOAD_FILE, LOAD_FILE);
        commandSet.put(T_LOB, LOB);
        commandSet.put(T_LOB_ID, LOB_ID);
        commandSet.put(T_LOCATE, LOCATE);
        commandSet.put(T_LOCK, LOCK);
        commandSet.put(T_LOCKS, LOCKS);
        commandSet.put(T_LONG, LONG);
        commandSet.put(T_LONGBLOB, LONGBLOB);
        commandSet.put(T_LONGTEXT, LONGTEXT);
        commandSet.put(T_LONGVAR, LONGVAR);
        commandSet.put(T_MATCHED, MATCHED);
        commandSet.put(T_MAXROWS, MAXROWS);
        commandSet.put(T_MAXVALUE, MAXVALUE);
        commandSet.put(T_MEDIAN, MEDIAN);
        commandSet.put(T_MEDIUMBLOB, MEDIUMBLOB);
        commandSet.put(T_MEDIUMTEXT, MEDIUMTEXT);
        commandSet.put(T_MEMORY, MEMORY);
        commandSet.put(T_MESSAGE_TEXT, MESSAGE_TEXT);
        commandSet.put(T_MICROSECOND, MICROSECOND);
        commandSet.put(T_MILLIS, MILLIS);
        commandSet.put(T_MILLISECOND, MILLISECOND);
        commandSet.put(T_MINUS_EXCEPT, MINUS_EXCEPT);
        commandSet.put(T_MINVALUE, MINVALUE);
        commandSet.put(T_MODIFY, MODIFY);
        commandSet.put(T_MONTHNAME, MONTHNAME);
        commandSet.put(T_MONTHS_BETWEEN, MONTHS_BETWEEN);
        commandSet.put(T_MONTH_NAME, MONTH_NAME);
        commandSet.put(T_MORE, MORE);
        commandSet.put(T_MVCC, MVCC);
        commandSet.put(T_MVLOCKS, MVLOCKS);
        commandSet.put(T_M_FACTOR, M);
        commandSet.put(T_NAME, NAME);
        commandSet.put(T_NAMES, NAMES);
        commandSet.put(T_NAN, NAN);
        commandSet.put(T_NANOSECOND, NANOSECOND);
        commandSet.put(T_NANVL, NANVL);
        commandSet.put(T_NEWID, NEWID);
        commandSet.put(T_NEW_TIME, NEW_TIME);
        commandSet.put(T_NEXT, NEXT);
        commandSet.put(T_NEXTVAL, NEXTVAL);
        commandSet.put(T_NEXT_DAY, NEXT_DAY);
        commandSet.put(T_NIO, NIO);
        commandSet.put(T_NOW, NOW);
        commandSet.put(T_NOWAIT, NOWAIT);
        commandSet.put(T_NULLS, NULLS);
        commandSet.put(T_NUMBER, NUMBER);
        commandSet.put(T_NUMTODSINTERVAL, NUMTODSINTERVAL);
        commandSet.put(T_NUMTOYMINTERVAL, NUMTOYMINTERVAL);
        commandSet.put(T_NVARCHAR2, NVARCHAR2);
        commandSet.put(T_NVL, IFNULL);
        commandSet.put(T_NVL2, NVL2);
        commandSet.put(T_OBJECT, OBJECT);
        commandSet.put(T_OCTETLENGTH, OCTETLENGTH);
        commandSet.put(T_OCTETS, OCTETS);
        commandSet.put(T_OFF, OFF);
        commandSet.put(T_OPTION, OPTION);
        commandSet.put(T_ORDINALITY, ORDINALITY);
        commandSet.put(T_OTHERS, OTHERS);
        commandSet.put(T_OVERFLOW, OVERFLOW);
        commandSet.put(T_OVERRIDING, OVERRIDING);
        commandSet.put(T_PAD, PAD);
        commandSet.put(T_PARTIAL, PARTIAL);
        commandSet.put(T_PASSWORD, PASSWORD);
        commandSet.put(T_PERFORM, PERFORM);
        commandSet.put(T_PI, PI);
        commandSet.put(T_PLACING, PLACING);
        commandSet.put(T_PLAN, PLAN);
        commandSet.put(T_POSITION_ARRAY, POSITION_ARRAY);
        commandSet.put(T_PRECEDING, PRECEDING);
        commandSet.put(T_PRESERVE, PRESERVE);
        commandSet.put(T_PREVVAL, PREVVAL);
        commandSet.put(T_PRIVILEGES, PRIVILEGES);
        commandSet.put(T_PROPERTY, PROPERTY);
        commandSet.put(T_P_FACTOR, P);
        commandSet.put(T_QUARTER, QUARTER);
        commandSet.put(T_RADIANS, RADIANS);
        commandSet.put(T_RAND, RAND);
        commandSet.put(T_RAW, RAW);
        commandSet.put(T_RAWTOHEX, RAWTOHEX);
        commandSet.put(T_READ, READ);
        commandSet.put(T_READONLY, READONLY);
        commandSet.put(T_REFERENTIAL, REFERENTIAL);
        commandSet.put(T_REGEXP_COUNT, REGEXP_COUNT);
        commandSet.put(T_REGEXP_INSTR, REGEXP_INSTR);
        commandSet.put(T_REGEXP_LIKE, REGEXP_LIKE);
        commandSet.put(T_REGEXP_MATCHES, REGEXP_MATCHES);
        commandSet.put(T_REGEXP_REPLACE, REGEXP_REPLACE);
        commandSet.put(T_REGEXP_SUBSTR, REGEXP_SUBSTR);
        commandSet.put(T_REGEXP_SUBSTRING, REGEXP_SUBSTRING);
        commandSet.put(T_REGEXP_SUBSTRING_ARRAY, REGEXP_SUBSTRING_ARRAY);
        commandSet.put(T_REGULAR, REGULAR);
        commandSet.put(T_RENAME, RENAME);
        commandSet.put(T_REPEATABLE, REPEATABLE);
        commandSet.put(T_REPLACE, REPLACE);
        commandSet.put(T_RESET, RESET);
        commandSet.put(T_RESPECT, RESPECT);
        commandSet.put(T_RESTART, RESTART);
        commandSet.put(T_RESTRICT, RESTRICT);
        commandSet.put(T_RETURNING, RETURNING);
        commandSet.put(T_REVERSE, REVERSE);
        commandSet.put(T_ROLE, ROLE);
        commandSet.put(T_ROOTS, ROOTS);
        commandSet.put(T_ROUND, ROUND);
        commandSet.put(T_ROUNDMAGIC, ROUNDMAGIC);
        commandSet.put(T_ROUTINE, ROUTINE);
        commandSet.put(T_ROWNUM, ROWNUM);
        commandSet.put(T_ROW_COUNT, ROW_COUNT);
        commandSet.put(T_SCALE, SCALE);
        commandSet.put(T_SCHEMA, SCHEMA);
        commandSet.put(T_SCRIPT, SCRIPT);
        commandSet.put(T_SECONDS_MIDNIGHT, SECONDS_MIDNIGHT);
        commandSet.put(T_SEPARATOR, SEPARATOR);
        commandSet.put(T_SEQUENCE, SEQUENCE);
        commandSet.put(T_SEQUENCE_ARRAY, SEQUENCE_ARRAY);
        commandSet.put(T_SERIALIZABLE, SERIALIZABLE);
        commandSet.put(T_SERVER, SERVER);
        commandSet.put(T_SESSION, SESSION);
        commandSet.put(T_SESSIONTIMEZONE, SESSIONTIMEZONE);
        commandSet.put(T_SESSION_ID, SESSION_ID);
        commandSet.put(T_SESSION_ISOLATION_LEVEL, SESSION_ISOLATION_LEVEL);
        commandSet.put(T_SESSION_TIMEZONE, SESSION_TIMEZONE);
        commandSet.put(T_SETS, SETS);
        commandSet.put(T_SHUTDOWN, SHUTDOWN);
        commandSet.put(T_SIGN, SIGN);
        commandSet.put(T_SIMPLE, SIMPLE);
        commandSet.put(T_SIZE, SIZE);
        commandSet.put(T_SORT_ARRAY, SORT_ARRAY);
        commandSet.put(T_SOUNDEX, SOUNDEX);
        commandSet.put(T_SOURCE, SOURCE);
        commandSet.put(T_SPACE, SPACE);
        commandSet.put(T_STATEMENT, STATEMENT);
        commandSet.put(T_STDDEV, STDDEV);
        commandSet.put(T_STOP, STOP);
        commandSet.put(T_STRING_AGG, STRING_AGG);
        commandSet.put(T_STRUCTURE, STRUCTURE);
        commandSet.put(T_STYLE, STYLE);
        commandSet.put(T_SUBSTR, SUBSTR);
        commandSet.put(T_SYNONYM, SYNONYM);
        commandSet.put(T_SYNTAX, SYNTAX);
        commandSet.put(T_SYS, SYS);
        commandSet.put(T_SYSDATE, SYSDATE);
        commandSet.put(T_SYSTIMESTAMP, SYSTIMESTAMP);
        commandSet.put(T_SYS_EXTRACT_UTC, SYS_EXTRACT_UTC);
        commandSet.put(T_SYS_GUID, SYS_GUID);
        commandSet.put(T_TDC, TDC);
        commandSet.put(T_TEMP, TEMP);
        commandSet.put(T_TEMPORARY, TEMPORARY);
        commandSet.put(T_TEXT, TEXT);
        commandSet.put(T_TIES, TIES);
        commandSet.put(T_TIMESTAMPADD, TIMESTAMPADD);
        commandSet.put(T_TIMESTAMPDIFF, TIMESTAMPDIFF);
        commandSet.put(T_TIMESTAMP_WITH_ZONE, TIMESTAMP_WITH_ZONE);
        commandSet.put(T_TIMEZONE, TIMEZONE);
        commandSet.put(T_TINYBLOB, TINYBLOB);
        commandSet.put(T_TINYTEXT, TINYTEXT);
        commandSet.put(T_TODAY, TODAY);
        commandSet.put(T_TOP, TOP);
        commandSet.put(T_TO_BASE64, TO_BASE64);
        commandSet.put(T_TO_CHAR, TO_CHAR);
        commandSet.put(T_TO_DATE, TO_DATE);
        commandSet.put(T_TO_DSINTERVAL, TO_DSINTERVAL);
        commandSet.put(T_TO_NUMBER, TO_NUMBER);
        commandSet.put(T_TO_TIMESTAMP, TO_TIMESTAMP);
        commandSet.put(T_TO_TIMESTAMP_TZ, TO_TIMESTAMP_TZ);
        commandSet.put(T_TO_YMINTERVAL, TO_YMINTERVAL);
        commandSet.put(T_TRANSACTION, TRANSACTION);
        commandSet.put(T_TRANSACTION_ACTIVE, TRANSACTION_ACTIVE);
        commandSet.put(T_TRANSACTION_CONTROL, TRANSACTION_CONTROL);
        commandSet.put(T_TRANSACTION_ID, TRANSACTION_ID);
        commandSet.put(T_TRANSACTION_SIZE, TRANSACTION_SIZE);
        commandSet.put(T_TRANSACTION_UTC, TRANSACTION_UTC);
        commandSet.put(T_TRANSACTS_COMMITTED, TRANSACTIONS_COMMITTED);
        commandSet.put(T_TRANSACTS_ROLLED_BACK, TRANSACTIONS_ROLLED_BACK);
        commandSet.put(T_TRUNC, TRUNC);
        commandSet.put(T_TTI, TTI);
        commandSet.put(T_TYPE, TYPE);
        commandSet.put(T_TYPES, TYPES);
        commandSet.put(T_TZ_OFFSET, TZ_OFFSET);
        commandSet.put(T_T_FACTOR, T);
        commandSet.put(T_UCASE, UCASE);
        commandSet.put(T_UNBOUNDED, UNBOUNDED);
        commandSet.put(T_UNCOMMITTED, UNCOMMITTED);
        commandSet.put(T_UNHEX, UNHEX);
        commandSet.put(T_UNISTR, UNISTR);
        commandSet.put(T_UNIX_MILLIS, UNIX_MILLIS);
        commandSet.put(T_UNIX_TIMESTAMP, UNIX_TIMESTAMP);
        commandSet.put(T_UNLOAD, UNLOAD);
        commandSet.put(T_USAGE, USAGE);
        commandSet.put(T_USE, USE);
        commandSet.put(T_UUID, UUID);
        commandSet.put(T_VARCHAR2, VARCHAR2);
        commandSet.put(T_VARIANCE, VARIANCE);
        commandSet.put(T_VIEW, VIEW);
        commandSet.put(T_WEEK, WEEK);
        commandSet.put(T_WEEK_OF_YEAR, WEEK_OF_YEAR);
        commandSet.put(T_WORK, WORK);
        commandSet.put(T_WRAPPER, WRAPPER);
        commandSet.put(T_WRITE, WRITE);
        commandSet.put(T_WRITE_DELAY, WRITE_DELAY);
        commandSet.put(T_ZONE, ZONE);

        //
        commandSet.put(T_SQL_BIGINT, SQL_BIGINT);
        commandSet.put(T_SQL_BINARY, SQL_BINARY);
        commandSet.put(T_SQL_BIT, SQL_BIT);
        commandSet.put(T_SQL_BLOB, SQL_BLOB);
        commandSet.put(T_SQL_BOOLEAN, SQL_BOOLEAN);
        commandSet.put(T_SQL_CHAR, SQL_CHAR);
        commandSet.put(T_SQL_CLOB, SQL_CLOB);
        commandSet.put(T_SQL_DATALINK, SQL_DATALINK);
        commandSet.put(T_SQL_DATE, SQL_DATE);
        commandSet.put(T_SQL_DECIMAL, SQL_DECIMAL);
        commandSet.put(T_SQL_DOUBLE, SQL_DOUBLE);
        commandSet.put(T_SQL_FLOAT, SQL_FLOAT);
        commandSet.put(T_SQL_INTEGER, SQL_INTEGER);
        commandSet.put(T_SQL_LONGNVARCHAR, SQL_LONGNVARCHAR);
        commandSet.put(T_SQL_LONGVARBINARY, SQL_LONGVARBINARY);
        commandSet.put(T_SQL_LONGVARCHAR, SQL_LONGVARCHAR);
        commandSet.put(T_SQL_NCHAR, SQL_NCHAR);
        commandSet.put(T_SQL_NCLOB, SQL_NCLOB);
        commandSet.put(T_SQL_NUMERIC, SQL_NUMERIC);
        commandSet.put(T_SQL_NVARCHAR, SQL_NVARCHAR);
        commandSet.put(T_SQL_REAL, SQL_REAL);
        commandSet.put(T_SQL_ROWID, SQL_ROWID);
        commandSet.put(T_SQL_SMALLINT, SQL_SMALLINT);
        commandSet.put(T_SQL_SQLXML, SQL_SQLXML);
        commandSet.put(T_SQL_TIME, SQL_TIME);
        commandSet.put(T_SQL_TIMESTAMP, SQL_TIMESTAMP);
        commandSet.put(T_SQL_TINYINT, SQL_TINYINT);
        commandSet.put(T_SQL_VARBINARY, SQL_VARBINARY);
        commandSet.put(T_SQL_VARCHAR, SQL_VARCHAR);
        commandSet.put(T_SQL_TSI_DAY, SQL_TSI_DAY);
        commandSet.put(T_SQL_TSI_FRAC_SECOND, SQL_TSI_FRAC_SECOND);
        commandSet.put(T_SQL_TSI_MILLI_SECOND, SQL_TSI_MILLI_SECOND);
        commandSet.put(T_SQL_TSI_HOUR, SQL_TSI_HOUR);
        commandSet.put(T_SQL_TSI_MINUTE, SQL_TSI_MINUTE);
        commandSet.put(T_SQL_TSI_MONTH, SQL_TSI_MONTH);
        commandSet.put(T_SQL_TSI_QUARTER, SQL_TSI_QUARTER);
        commandSet.put(T_SQL_TSI_SECOND, SQL_TSI_SECOND);
        commandSet.put(T_SQL_TSI_WEEK, SQL_TSI_WEEK);
        commandSet.put(T_SQL_TSI_YEAR, SQL_TSI_YEAR);
        //
        commandSet.put(T_ASTERISK, ASTERISK);
        commandSet.put(T_CLOSEBRACKET, CLOSEBRACKET);
        commandSet.put(T_COLON, COLON);
        commandSet.put(T_COMMA, COMMA);
        commandSet.put(T_CONCAT_OP, CONCAT_OP);
        commandSet.put(T_DIVIDE_OP, DIVIDE_OP);
        commandSet.put(T_EQUALS_OP, EQUALS_OP);
        commandSet.put(T_GREATER_OP, GREATER_OP);
        commandSet.put(T_GREATER_EQUALS, GREATER_EQUALS);
        commandSet.put(T_LEFTBRACKET, LEFTBRACKET);
        commandSet.put(T_LESS_OP, LESS_OP);
        commandSet.put(T_LESS_EQUALS, LESS_EQUALS);
        commandSet.put(T_MINUS_OP, MINUS_OP);
        commandSet.put(T_NOT_EQUALS, NOT_EQUALS);
        commandSet.put(T_NOT_EQUALS_ALT, NOT_EQUALS);
        commandSet.put(T_OPENBRACKET, OPENBRACKET);
        commandSet.put(T_PLUS_OP, PLUS_OP);
        commandSet.put(T_QUESTION, QUESTION);
        commandSet.put(T_RIGHTBRACKET, RIGHTBRACKET);
        commandSet.put(T_SEMICOLON, SEMICOLON);
    }

    static int get(String token) {

        int type = reservedKeys.get(token, -1);

        if (type == -1) {
            return commandSet.get(token, -1);
        }

        return type;
    }

    public static boolean isCoreKeyword(int token) {
        return coreReservedWords.contains(token);
    }

    public static boolean isKeyword(String token) {
        return reservedKeys.containsKey(token);
    }

    public static int getKeywordID(String token, int defaultValue) {
        return reservedKeys.get(token, defaultValue);
    }

    public static int getNonKeywordID(String token, int defaultValue) {
        return commandSet.get(token, defaultValue);
    }

    public static String getKeyword(int token) {

        String key = (String) reservedKeys.getKey(token);

        if (key != null) {
            return key;
        }

        key = (String) commandSet.getKey(token);

        return key;
    }

    //J+

    private static final OrderedIntHashSet coreReservedWords;

    static {

        // minimal set of identifier not allowed as table / column / alias names
        // these are in effect interpreted as reserved words used by HSQLDB
        coreReservedWords = new OrderedIntHashSet(128);

        short[] keyword = {
            ALL, AND, ANY, ARRAY, AS, AT, BETWEEN, BOTH, BY, CALL, CASE, CAST,
            COALESCE, CONVERT, CORRESPONDING, CREATE, CROSS, CUBE, DEFAULT,
            DISTINCT, DO, DROP, ELSE, EVERY, EXCEPT, EXISTS, FETCH, FOR, FROM,
            FULL, GRANT, GROUP, GROUPING, HAVING, IN, INNER, INTERSECT, INTO,
            IS, JOIN, LEADING, LEFT, LIKE, NATURAL, NOT, NULLIF, ON, OR, ORDER,
            OUTER, PRIMARY, REFERENCES, RIGHT, ROLLUP, SELECT, SET, SOME, SUM,
            TABLE, THEN, TO, TRAILING, TRIGGER, UNION, UNIQUE, USING, VALUES,
            WHEN, WHERE, WITH
        };

        for (int i = 0; i < keyword.length; i++) {
            coreReservedWords.add(keyword[i]);
        }
    }

    public static final short[] SQL_INTERVAL_FIELD_CODES  = new short[] {
        YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
    };
    public static final String[] SQL_INTERVAL_FIELD_NAMES = new String[] {
        T_YEAR, T_MONTH, T_DAY, T_HOUR, T_MINUTE, T_SECOND
    };
    private static final IntKeyHashMap<String> sqlTSILookup =
        new IntKeyHashMap<>(
            11);

    static {
        sqlTSILookup.put(SQL_TSI_DAY, T_SQL_TSI_DAY);
        sqlTSILookup.put(SQL_TSI_FRAC_SECOND, T_SQL_TSI_FRAC_SECOND);
        sqlTSILookup.put(SQL_TSI_MICRO_SECOND, T_SQL_TSI_MICRO_SECOND);
        sqlTSILookup.put(SQL_TSI_MILLI_SECOND, T_SQL_TSI_MILLI_SECOND);
        sqlTSILookup.put(SQL_TSI_HOUR, T_SQL_TSI_HOUR);
        sqlTSILookup.put(SQL_TSI_MINUTE, T_SQL_TSI_MINUTE);
        sqlTSILookup.put(SQL_TSI_MONTH, T_SQL_TSI_MONTH);
        sqlTSILookup.put(SQL_TSI_QUARTER, T_SQL_TSI_QUARTER);
        sqlTSILookup.put(SQL_TSI_SECOND, T_SQL_TSI_SECOND);
        sqlTSILookup.put(SQL_TSI_WEEK, T_SQL_TSI_WEEK);
        sqlTSILookup.put(SQL_TSI_YEAR, T_SQL_TSI_YEAR);
    }

    public static String getSQLTSIString(int token) {
        return sqlTSILookup.get(token);
    }
}
