/*
* Copyright 1999-2012 Alibaba Group.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.cobar.parser.recognizer.mysql;
/**
* @author <a href="mailto:shuo.qius@alibaba-inc.com">QIU Shuo</a>
*/
public enum MySQLToken {
EOF,
PLACE_HOLDER,
IDENTIFIER,
SYS_VAR,
USR_VAR,
/** number composed purely of digit */
LITERAL_NUM_PURE_DIGIT,
/** number composed of digit mixed with <code>.</code> or <code>e</code> */
LITERAL_NUM_MIX_DIGIT,
LITERAL_HEX,
LITERAL_BIT,
LITERAL_CHARS,
LITERAL_NCHARS,
LITERAL_NULL,
LITERAL_BOOL_TRUE,
LITERAL_BOOL_FALSE,
/** ? */
QUESTION_MARK,
/** ( */
PUNC_LEFT_PAREN,
/** ) */
PUNC_RIGHT_PAREN,
/** { */
PUNC_LEFT_BRACE,
/** } */
PUNC_RIGHT_BRACE,
/** [ */
PUNC_LEFT_BRACKET,
/** ] */
PUNC_RIGHT_BRACKET,
/** ; */
PUNC_SEMICOLON,
/** , */
PUNC_COMMA,
/** , */
PUNC_DOT,
/** : */
PUNC_COLON,
/** <code>*</code><code>/</code> */
PUNC_C_STYLE_COMMENT_END,
// /** @ */
// OP_AT,
/** = */
OP_EQUALS,
/** > */
OP_GREATER_THAN,
/** < */
OP_LESS_THAN,
/** ! */
OP_EXCLAMATION,
/** ~ */
OP_TILDE,
/** + */
OP_PLUS,
/** - */
OP_MINUS,
/** * */
OP_ASTERISK,
/** / */
OP_SLASH,
/** & */
OP_AMPERSAND,
/** | */
OP_VERTICAL_BAR,
/** ^ */
OP_CARET,
/** % */
OP_PERCENT,
/** := */
OP_ASSIGN,
/** <= */
OP_LESS_OR_EQUALS,
/** <> */
OP_LESS_OR_GREATER,
/** >= */
OP_GREATER_OR_EQUALS,
/** != */
OP_NOT_EQUALS,
/** && */
OP_LOGICAL_AND,
/** || */
OP_LOGICAL_OR,
/** << */
OP_LEFT_SHIFT,
/** >> */
OP_RIGHT_SHIFT,
/** <=> */
OP_NULL_SAFE_EQUALS,
KW_ACCESSIBLE,
KW_ADD,
KW_ALL,
KW_ALTER,
KW_ANALYZE,
KW_AND,
KW_AS,
KW_ASC,
KW_ASENSITIVE,
KW_BEFORE,
KW_BETWEEN,
KW_BIGINT,
KW_BINARY,
KW_BLOB,
KW_BOTH,
KW_BY,
KW_CALL,
KW_CASCADE,
KW_CASE,
KW_CHANGE,
KW_CHAR,
KW_CHARACTER,
KW_CHECK,
KW_COLLATE,
KW_COLUMN,
KW_CONDITION,
KW_CONSTRAINT,
KW_CONTINUE,
KW_CONVERT,
KW_CREATE,
KW_CROSS,
KW_CURRENT_DATE,
KW_CURRENT_TIME,
KW_CURRENT_TIMESTAMP,
KW_CURRENT_USER,
KW_CURSOR,
KW_DATABASE,
KW_DATABASES,
KW_DAY_HOUR,
KW_DAY_MICROSECOND,
KW_DAY_MINUTE,
KW_DAY_SECOND,
KW_DEC,
KW_DECIMAL,
KW_DECLARE,
KW_DEFAULT,
KW_DELAYED,
KW_DELETE,
KW_DESC,
KW_DESCRIBE,
KW_DETERMINISTIC,
KW_DISTINCT,
KW_DISTINCTROW,
KW_DIV,
KW_DOUBLE,
KW_DROP,
KW_DUAL,
KW_EACH,
KW_ELSE,
KW_ELSEIF,
KW_ENCLOSED,
KW_ESCAPED,
KW_EXISTS,
KW_EXIT,
KW_EXPLAIN,
KW_FETCH,
KW_FLOAT,
KW_FLOAT4,
KW_FLOAT8,
KW_FOR,
KW_FORCE,
KW_FOREIGN,
KW_FROM,
KW_FULLTEXT,
KW_GENERAL,
KW_GRANT,
KW_GROUP,
KW_HAVING,
KW_HIGH_PRIORITY,
KW_HOUR_MICROSECOND,
KW_HOUR_MINUTE,
KW_HOUR_SECOND,
KW_IF,
KW_IGNORE,
KW_IGNORE_SERVER_IDS,
KW_IN,
KW_INDEX,
KW_INFILE,
KW_INNER,
KW_INOUT,
KW_INSENSITIVE,
KW_INSERT,
KW_INT,
KW_INT1,
KW_INT2,
KW_INT3,
KW_INT4,
KW_INT8,
KW_INTEGER,
KW_INTERVAL,
KW_INTO,
KW_IS,
KW_ITERATE,
KW_JOIN,
KW_KEY,
KW_KEYS,
KW_KILL,
KW_LEADING,
KW_LEAVE,
KW_LEFT,
KW_LIKE,
KW_LIMIT,
KW_LINEAR,
KW_LINES,
KW_LOAD,
KW_LOCALTIME,
KW_LOCALTIMESTAMP,
KW_LOCK,
KW_LONG,
KW_LONGBLOB,
KW_LONGTEXT,
KW_LOOP,
KW_LOW_PRIORITY,
KW_MASTER_HEARTBEAT_PERIOD,
KW_MASTER_SSL_VERIFY_SERVER_CERT,
KW_MATCH,
KW_MAXVALUE,
KW_MEDIUMBLOB,
KW_MEDIUMINT,
KW_MEDIUMTEXT,
KW_MIDDLEINT,
KW_MINUTE_MICROSECOND,
KW_MINUTE_SECOND,
KW_MOD,
KW_MODIFIES,
KW_NATURAL,
KW_NOT,
KW_NO_WRITE_TO_BINLOG,
KW_NUMERIC,
KW_ON,
KW_OPTIMIZE,
KW_OPTION,
KW_OPTIONALLY,
KW_OR,
KW_ORDER,
KW_OUT,
KW_OUTER,
KW_OUTFILE,
KW_PRECISION,
KW_PRIMARY,
KW_PROCEDURE,
KW_PURGE,
KW_RANGE,
KW_READ,
KW_READS,
KW_READ_WRITE,
KW_REAL,
KW_REFERENCES,
KW_REGEXP,
KW_RELEASE,
KW_RENAME,
KW_REPEAT,
KW_REPLACE,
KW_REQUIRE,
KW_RESIGNAL,
KW_RESTRICT,
KW_RETURN,
KW_REVOKE,
KW_RIGHT,
KW_RLIKE,
KW_SCHEMA,
KW_SCHEMAS,
KW_SECOND_MICROSECOND,
KW_SELECT,
KW_SENSITIVE,
KW_SEPARATOR,
KW_SET,
KW_SHOW,
KW_SIGNAL,
KW_SLOW,
KW_SMALLINT,
KW_SPATIAL,
KW_SPECIFIC,
KW_SQL,
KW_SQLEXCEPTION,
KW_SQLSTATE,
KW_SQLWARNING,
KW_SQL_BIG_RESULT,
KW_SQL_CALC_FOUND_ROWS,
KW_SQL_SMALL_RESULT,
KW_SSL,
KW_STARTING,
KW_STRAIGHT_JOIN,
KW_TABLE,
KW_TERMINATED,
KW_THEN,
KW_TINYBLOB,
KW_TINYINT,
KW_TINYTEXT,
KW_TO,
KW_TRAILING,
KW_TRIGGER,
KW_UNDO,
KW_UNION,
KW_UNIQUE,
KW_UNLOCK,
KW_UNSIGNED,
KW_UPDATE,
KW_USAGE,
KW_USE,
KW_USING,
KW_UTC_DATE,
KW_UTC_TIME,
KW_UTC_TIMESTAMP,
KW_VALUES,
KW_VARBINARY,
KW_VARCHAR,
KW_VARCHARACTER,
KW_VARYING,
KW_WHEN,
KW_WHERE,
KW_WHILE,
KW_WITH,
KW_WRITE,
KW_XOR,
KW_YEAR_MONTH,
KW_ZEROFILL;
public static String keyWordToString(MySQLToken token) {
switch (token) {
case KW_ACCESSIBLE:
return "ACCESSIBLE";
case KW_ADD:
return "ADD";
case KW_ALL:
return "ALL";
case KW_ALTER:
return "ALTER";
case KW_ANALYZE:
return "ANALYZE";
case KW_AND:
return "AND";
case KW_AS:
return "AS";
case KW_ASC:
return "ASC";
case KW_ASENSITIVE:
return "ASENSITIVE";
case KW_BEFORE:
return "BEFORE";
case KW_BETWEEN:
return "BETWEEN";
case KW_BIGINT:
return "BIGINT";
case KW_BINARY:
return "BINARY";
case KW_BLOB:
return "BLOB";
case KW_BOTH:
return "BOTH";
case KW_BY:
return "BY";
case KW_CALL:
return "CALL";
case KW_CASCADE:
return "CASCADE";
case KW_CASE:
return "CASE";
case KW_CHANGE:
return "CHANGE";
case KW_CHAR:
return "CHAR";
case KW_CHARACTER:
return "CHARACTER";
case KW_CHECK:
return "CHECK";
case KW_COLLATE:
return "COLLATE";
case KW_COLUMN:
return "COLUMN";
case KW_CONDITION:
return "CONDITION";
case KW_CONSTRAINT:
return "CONSTRAINT";
case KW_CONTINUE:
return "CONTINUE";
case KW_CONVERT:
return "CONVERT";
case KW_CREATE:
return "CREATE";
case KW_CROSS:
return "CROSS";
case KW_CURRENT_DATE:
return "CURRENT_DATE";
case KW_CURRENT_TIME:
return "CURRENT_TIME";
case KW_CURRENT_TIMESTAMP:
return "CURRENT_TIMESTAMP";
case KW_CURRENT_USER:
return "CURRENT_USER";
case KW_CURSOR:
return "CURSOR";
case KW_DATABASE:
return "DATABASE";
case KW_DATABASES:
return "DATABASES";
case KW_DAY_HOUR:
return "DAY_HOUR";
case KW_DAY_MICROSECOND:
return "DAY_MICROSECOND";
case KW_DAY_MINUTE:
return "DAY_MINUTE";
case KW_DAY_SECOND:
return "DAY_SECOND";
case KW_DEC:
return "DEC";
case KW_DECIMAL:
return "DECIMAL";
case KW_DECLARE:
return "DECLARE";
case KW_DEFAULT:
return "DEFAULT";
case KW_DELAYED:
return "DELAYED";
case KW_DELETE:
return "DELETE";
case KW_DESC:
return "DESC";
case KW_DESCRIBE:
return "DESCRIBE";
case KW_DETERMINISTIC:
return "DETERMINISTIC";
case KW_DISTINCT:
return "DISTINCT";
case KW_DISTINCTROW:
return "DISTINCTROW";
case KW_DIV:
return "DIV";
case KW_DOUBLE:
return "DOUBLE";
case KW_DROP:
return "DROP";
case KW_DUAL:
return "DUAL";
case KW_EACH:
return "EACH";
case KW_ELSE:
return "ELSE";
case KW_ELSEIF:
return "ELSEIF";
case KW_ENCLOSED:
return "ENCLOSED";
case KW_ESCAPED:
return "ESCAPED";
case KW_EXISTS:
return "EXISTS";
case KW_EXIT:
return "EXIT";
case KW_EXPLAIN:
return "EXPLAIN";
case KW_FETCH:
return "FETCH";
case KW_FLOAT:
return "FLOAT";
case KW_FLOAT4:
return "FLOAT4";
case KW_FLOAT8:
return "FLOAT8";
case KW_FOR:
return "FOR";
case KW_FORCE:
return "FORCE";
case KW_FOREIGN:
return "FOREIGN";
case KW_FROM:
return "FROM";
case KW_FULLTEXT:
return "FULLTEXT";
case KW_GENERAL:
return "GENERAL";
case KW_GRANT:
return "GRANT";
case KW_GROUP:
return "GROUP";
case KW_HAVING:
return "HAVING";
case KW_HIGH_PRIORITY:
return "HIGH_PRIORITY";
case KW_HOUR_MICROSECOND:
return "HOUR_MICROSECOND";
case KW_HOUR_MINUTE:
return "HOUR_MINUTE";
case KW_HOUR_SECOND:
return "HOUR_SECOND";
case KW_IF:
return "IF";
case KW_IGNORE:
return "IGNORE";
case KW_IGNORE_SERVER_IDS:
return "IGNORE_SERVER_IDS";
case KW_IN:
return "IN";
case KW_INDEX:
return "INDEX";
case KW_INFILE:
return "INFILE";
case KW_INNER:
return "INNER";
case KW_INOUT:
return "INOUT";
case KW_INSENSITIVE:
return "INSENSITIVE";
case KW_INSERT:
return "INSERT";
case KW_INT:
return "INT";
case KW_INT1:
return "INT1";
case KW_INT2:
return "INT2";
case KW_INT3:
return "INT3";
case KW_INT4:
return "INT4";
case KW_INT8:
return "INT8";
case KW_INTEGER:
return "INTEGER";
case KW_INTERVAL:
return "INTERVAL";
case KW_INTO:
return "INTO";
case KW_IS:
return "IS";
case KW_ITERATE:
return "ITERATE";
case KW_JOIN:
return "JOIN";
case KW_KEY:
return "KEY";
case KW_KEYS:
return "KEYS";
case KW_KILL:
return "KILL";
case KW_LEADING:
return "LEADING";
case KW_LEAVE:
return "LEAVE";
case KW_LEFT:
return "LEFT";
case KW_LIKE:
return "LIKE";
case KW_LIMIT:
return "LIMIT";
case KW_LINEAR:
return "LINEAR";
case KW_LINES:
return "LINES";
case KW_LOAD:
return "LOAD";
case KW_LOCALTIME:
return "LOCALTIME";
case KW_LOCALTIMESTAMP:
return "LOCALTIMESTAMP";
case KW_LOCK:
return "LOCK";
case KW_LONG:
return "LONG";
case KW_LONGBLOB:
return "LONGBLOB";
case KW_LONGTEXT:
return "LONGTEXT";
case KW_LOOP:
return "LOOP";
case KW_LOW_PRIORITY:
return "LOW_PRIORITY";
case KW_MASTER_HEARTBEAT_PERIOD:
return "MASTER_HEARTBEAT_PERIOD";
case KW_MASTER_SSL_VERIFY_SERVER_CERT:
return "MASTER_SSL_VERIFY_SERVER_CERT";
case KW_MATCH:
return "MATCH";
case KW_MAXVALUE:
return "MAXVALUE";
case KW_MEDIUMBLOB:
return "MEDIUMBLOB";
case KW_MEDIUMINT:
return "MEDIUMINT";
case KW_MEDIUMTEXT:
return "MEDIUMTEXT";
case KW_MIDDLEINT:
return "MIDDLEINT";
case KW_MINUTE_MICROSECOND:
return "MINUTE_MICROSECOND";
case KW_MINUTE_SECOND:
return "MINUTE_SECOND";
case KW_MOD:
return "MOD";
case KW_MODIFIES:
return "MODIFIES";
case KW_NATURAL:
return "NATURAL";
case KW_NOT:
return "NOT";
case KW_NO_WRITE_TO_BINLOG:
return "NO_WRITE_TO_BINLOG";
case KW_NUMERIC:
return "NUMERIC";
case KW_ON:
return "ON";
case KW_OPTIMIZE:
return "OPTIMIZE";
case KW_OPTION:
return "OPTION";
case KW_OPTIONALLY:
return "OPTIONALLY";
case KW_OR:
return "OR";
case KW_ORDER:
return "ORDER";
case KW_OUT:
return "OUT";
case KW_OUTER:
return "OUTER";
case KW_OUTFILE:
return "OUTFILE";
case KW_PRECISION:
return "PRECISION";
case KW_PRIMARY:
return "PRIMARY";
case KW_PROCEDURE:
return "PROCEDURE";
case KW_PURGE:
return "PURGE";
case KW_RANGE:
return "RANGE";
case KW_READ:
return "READ";
case KW_READS:
return "READS";
case KW_READ_WRITE:
return "READ_WRITE";
case KW_REAL:
return "REAL";
case KW_REFERENCES:
return "REFERENCES";
case KW_REGEXP:
return "REGEXP";
case KW_RELEASE:
return "RELEASE";
case KW_RENAME:
return "RENAME";
case KW_REPEAT:
return "REPEAT";
case KW_REPLACE:
return "REPLACE";
case KW_REQUIRE:
return "REQUIRE";
case KW_RESIGNAL:
return "RESIGNAL";
case KW_RESTRICT:
return "RESTRICT";
case KW_RETURN:
return "RETURN";
case KW_REVOKE:
return "REVOKE";
case KW_RIGHT:
return "RIGHT";
case KW_RLIKE:
return "RLIKE";
case KW_SCHEMA:
return "SCHEMA";
case KW_SCHEMAS:
return "SCHEMAS";
case KW_SECOND_MICROSECOND:
return "SECOND_MICROSECOND";
case KW_SELECT:
return "SELECT";
case KW_SENSITIVE:
return "SENSITIVE";
case KW_SEPARATOR:
return "SEPARATOR";
case KW_SET:
return "SET";
case KW_SHOW:
return "SHOW";
case KW_SIGNAL:
return "SIGNAL";
case KW_SLOW:
return "SLOW";
case KW_SMALLINT:
return "SMALLINT";
case KW_SPATIAL:
return "SPATIAL";
case KW_SPECIFIC:
return "SPECIFIC";
case KW_SQL:
return "SQL";
case KW_SQLEXCEPTION:
return "SQLEXCEPTION";
case KW_SQLSTATE:
return "SQLSTATE";
case KW_SQLWARNING:
return "SQLWARNING";
case KW_SQL_BIG_RESULT:
return "SQL_BIG_RESULT";
case KW_SQL_CALC_FOUND_ROWS:
return "SQL_CALC_FOUND_ROWS";
case KW_SQL_SMALL_RESULT:
return "SQL_SMALL_RESULT";
case KW_SSL:
return "SSL";
case KW_STARTING:
return "STARTING";
case KW_STRAIGHT_JOIN:
return "STRAIGHT_JOIN";
case KW_TABLE:
return "TABLE";
case KW_TERMINATED:
return "TERMINATED";
case KW_THEN:
return "THEN";
case KW_TINYBLOB:
return "TINYBLOB";
case KW_TINYINT:
return "TINYINT";
case KW_TINYTEXT:
return "TINYTEXT";
case KW_TO:
return "TO";
case KW_TRAILING:
return "TRAILING";
case KW_TRIGGER:
return "TRIGGER";
case KW_UNDO:
return "UNDO";
case KW_UNION:
return "UNION";
case KW_UNIQUE:
return "UNIQUE";
case KW_UNLOCK:
return "UNLOCK";
case KW_UNSIGNED:
return "UNSIGNED";
case KW_UPDATE:
return "UPDATE";
case KW_USAGE:
return "USAGE";
case KW_USE:
return "USE";
case KW_USING:
return "USING";
case KW_UTC_DATE:
return "UTC_DATE";
case KW_UTC_TIME:
return "UTC_TIME";
case KW_UTC_TIMESTAMP:
return "UTC_TIMESTAMP";
case KW_VALUES:
return "VALUES";
case KW_VARBINARY:
return "VARBINARY";
case KW_VARCHAR:
return "VARCHAR";
case KW_VARCHARACTER:
return "VARCHARACTER";
case KW_VARYING:
return "VARYING";
case KW_WHEN:
return "WHEN";
case KW_WHERE:
return "WHERE";
case KW_WHILE:
return "WHILE";
case KW_WITH:
return "WITH";
case KW_WRITE:
return "WRITE";
case KW_XOR:
return "XOR";
case KW_YEAR_MONTH:
return "YEAR_MONTH";
case KW_ZEROFILL:
return "ZEROFILL";
default:
throw new IllegalArgumentException("token is not keyword: " + token);
}
}
}