/* * 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); } } }