use std::fmt::Display; /// Token classes // Generated by lemon (parse.h). // Renamed manually. // To be keep in sync. #[non_exhaustive] #[allow(non_camel_case_types, missing_docs)] #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd)] #[repr(u16)] pub enum TokenType { TK_EOF = 0, TK_SEMI = 1, TK_EXPLAIN = 2, TK_QUERY = 3, TK_PLAN = 4, TK_BEGIN = 5, TK_TRANSACTION = 6, TK_DEFERRED = 7, TK_IMMEDIATE = 8, TK_EXCLUSIVE = 9, TK_COMMIT = 10, TK_END = 11, TK_ROLLBACK = 12, TK_SAVEPOINT = 13, TK_RELEASE = 14, TK_TO = 15, TK_TABLE = 16, TK_CREATE = 17, TK_IF = 18, TK_NOT = 19, TK_EXISTS = 20, TK_TEMP = 21, TK_LP = 22, TK_RP = 23, TK_AS = 24, TK_COMMA = 25, TK_WITHOUT = 26, TK_ABORT = 27, TK_ACTION = 28, TK_AFTER = 29, TK_ANALYZE = 30, TK_ASC = 31, TK_ATTACH = 32, TK_BEFORE = 33, TK_BY = 34, TK_CASCADE = 35, TK_CAST = 36, TK_CONFLICT = 37, TK_DATABASE = 38, TK_DESC = 39, TK_DETACH = 40, TK_EACH = 41, TK_FAIL = 42, TK_OR = 43, TK_AND = 44, TK_IS = 45, TK_ISNOT = 46, TK_MATCH = 47, TK_LIKE_KW = 48, TK_BETWEEN = 49, TK_IN = 50, TK_ISNULL = 51, TK_NOTNULL = 52, TK_NE = 53, TK_EQ = 54, TK_GT = 55, TK_LE = 56, TK_LT = 57, TK_GE = 58, TK_ESCAPE = 59, TK_ID = 60, TK_COLUMNKW = 61, TK_DO = 62, TK_FOR = 63, TK_IGNORE = 64, TK_INITIALLY = 65, TK_INSTEAD = 66, TK_NO = 67, TK_KEY = 68, TK_OF = 69, TK_OFFSET = 70, TK_PRAGMA = 71, TK_RAISE = 72, TK_RECURSIVE = 73, TK_REPLACE = 74, TK_RESTRICT = 75, TK_ROW = 76, TK_ROWS = 77, TK_TRIGGER = 78, TK_VACUUM = 79, TK_VIEW = 80, TK_VIRTUAL = 81, TK_WITH = 82, TK_NULLS = 83, TK_FIRST = 84, TK_LAST = 85, TK_CURRENT = 86, TK_FOLLOWING = 87, TK_PARTITION = 88, TK_PRECEDING = 89, TK_RANGE = 90, TK_UNBOUNDED = 91, TK_EXCLUDE = 92, TK_GROUPS = 93, TK_OTHERS = 94, TK_TIES = 95, TK_GENERATED = 96, TK_ALWAYS = 97, TK_MATERIALIZED = 98, TK_REINDEX = 99, TK_RENAME = 100, TK_CTIME_KW = 101, TK_ANY = 102, TK_BITAND = 103, TK_BITOR = 104, TK_LSHIFT = 105, TK_RSHIFT = 106, TK_PLUS = 107, TK_MINUS = 108, TK_STAR = 109, TK_SLASH = 110, TK_REM = 111, TK_CONCAT = 112, TK_PTR = 113, TK_COLLATE = 114, TK_BITNOT = 115, TK_ON = 116, TK_INDEXED = 117, TK_STRING = 118, TK_JOIN_KW = 119, TK_CONSTRAINT = 120, TK_DEFAULT = 121, TK_NULL = 122, TK_PRIMARY = 123, TK_UNIQUE = 124, TK_CHECK = 125, TK_REFERENCES = 126, TK_AUTOINCR = 127, TK_INSERT = 128, TK_DELETE = 129, TK_UPDATE = 130, TK_SET = 131, TK_DEFERRABLE = 132, TK_FOREIGN = 133, TK_DROP = 134, TK_UNION = 135, TK_ALL = 136, TK_EXCEPT = 137, TK_INTERSECT = 138, TK_SELECT = 139, TK_VALUES = 140, TK_DISTINCT = 141, TK_DOT = 142, TK_FROM = 143, TK_JOIN = 144, TK_USING = 145, TK_ORDER = 146, TK_GROUP = 147, TK_HAVING = 148, TK_LIMIT = 149, TK_WHERE = 150, TK_RETURNING = 151, TK_INTO = 152, TK_NOTHING = 153, TK_BLOB = 154, TK_FLOAT = 155, TK_INTEGER = 156, TK_VARIABLE = 157, TK_CASE = 158, TK_WHEN = 159, TK_THEN = 160, TK_ELSE = 161, TK_INDEX = 162, TK_ALTER = 163, TK_ADD = 164, TK_WINDOW = 165, TK_OVER = 166, TK_FILTER = 167, TK_ILLEGAL = 185, } impl Display for TokenType { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { use TokenType::*; let s = match self { TK_ABORT => Some("ABORT"), TK_ACTION => Some("ACTION"), TK_ADD => Some("ADD"), TK_AFTER => Some("AFTER"), TK_ALL => Some("ALL"), TK_ALTER => Some("ALTER"), TK_ANALYZE => Some("ANALYZE"), TK_ALWAYS => Some("ALWAYS"), TK_AND => Some("AND"), TK_AS => Some("AS"), TK_ASC => Some("ASC"), TK_ATTACH => Some("ATTACH"), TK_AUTOINCR => Some("AUTOINCREMENT"), TK_BEFORE => Some("BEFORE"), TK_BEGIN => Some("BEGIN"), TK_BETWEEN => Some("BETWEEN"), TK_BY => Some("BY"), TK_CASCADE => Some("CASCADE"), TK_CASE => Some("CASE"), TK_CAST => Some("CAST"), TK_CHECK => Some("CHECK"), TK_COLLATE => Some("COLLATE"), TK_COLUMNKW => Some("COLUMN"), TK_COMMIT => Some("COMMIT"), TK_CONFLICT => Some("CONFLICT"), TK_CONSTRAINT => Some("CONSTRAINT"), TK_CREATE => Some("CREATE"), TK_CURRENT => Some("CURRENT"), TK_DATABASE => Some("DATABASE"), TK_DEFAULT => Some("DEFAULT"), TK_DEFERRABLE => Some("DEFERRABLE"), TK_DEFERRED => Some("DEFERRED"), TK_DELETE => Some("DELETE"), TK_DESC => Some("DESC"), TK_DETACH => Some("DETACH"), TK_DISTINCT => Some("DISTINCT"), TK_DO => Some("DO"), TK_DROP => Some("DROP"), TK_EACH => Some("EACH"), TK_ELSE => Some("ELSE"), TK_END => Some("END"), TK_ESCAPE => Some("ESCAPE"), TK_EXCEPT => Some("EXCEPT"), TK_EXCLUDE => Some("EXCLUDE"), TK_EXCLUSIVE => Some("EXCLUSIVE"), TK_EXISTS => Some("EXISTS"), TK_EXPLAIN => Some("EXPLAIN"), TK_FAIL => Some("FAIL"), TK_FILTER => Some("FILTER"), TK_FIRST => Some("FIRST"), TK_FOLLOWING => Some("FOLLOWING"), TK_FOR => Some("FOR"), TK_FOREIGN => Some("FOREIGN"), TK_FROM => Some("FROM"), TK_GENERATED => Some("GENERATED"), TK_GROUP => Some("GROUP"), TK_GROUPS => Some("GROUPS"), TK_HAVING => Some("HAVING"), TK_IF => Some("IF"), TK_IGNORE => Some("IGNORE"), TK_IMMEDIATE => Some("IMMEDIATE"), TK_IN => Some("IN"), TK_INDEX => Some("INDEX"), TK_INDEXED => Some("INDEXED"), TK_INITIALLY => Some("INITIALLY"), TK_INSERT => Some("INSERT"), TK_INSTEAD => Some("INSTEAD"), TK_INTERSECT => Some("INTERSECT"), TK_INTO => Some("INTO"), TK_IS => Some("IS"), TK_ISNULL => Some("ISNULL"), TK_JOIN => Some("JOIN"), TK_KEY => Some("KEY"), TK_LAST => Some("LAST"), TK_LIMIT => Some("LIMIT"), TK_MATCH => Some("MATCH"), TK_MATERIALIZED => Some("MATERIALIZED"), TK_NO => Some("NO"), TK_NOT => Some("NOT"), TK_NOTHING => Some("NOTHING"), TK_NOTNULL => Some("NOTNULL"), TK_NULL => Some("NULL"), TK_NULLS => Some("NULLS"), TK_OF => Some("OF"), TK_OFFSET => Some("OFFSET"), TK_ON => Some("ON"), TK_OR => Some("OR"), TK_ORDER => Some("ORDER"), TK_OTHERS => Some("OTHERS"), TK_OVER => Some("OVER"), TK_PARTITION => Some("PARTITION"), TK_PLAN => Some("PLAN"), TK_PRAGMA => Some("PRAGMA"), TK_PRECEDING => Some("PRECEDING"), TK_PRIMARY => Some("PRIMARY"), TK_QUERY => Some("QUERY"), TK_RAISE => Some("RAISE"), TK_RANGE => Some("RANGE"), TK_RECURSIVE => Some("RECURSIVE"), TK_REFERENCES => Some("REFERENCES"), TK_REINDEX => Some("REINDEX"), TK_RELEASE => Some("RELEASE"), TK_RENAME => Some("RENAME"), TK_REPLACE => Some("REPLACE"), TK_RETURNING => Some("RETURNING"), TK_RESTRICT => Some("RESTRICT"), TK_ROLLBACK => Some("ROLLBACK"), TK_ROW => Some("ROW"), TK_ROWS => Some("ROWS"), TK_SAVEPOINT => Some("SAVEPOINT"), TK_SELECT => Some("SELECT"), TK_SET => Some("SET"), TK_TABLE => Some("TABLE"), TK_TEMP => Some("TEMP"), // or TEMPORARY TK_TIES => Some("TIES"), TK_THEN => Some("THEN"), TK_TO => Some("TO"), TK_TRANSACTION => Some("TRANSACTION"), TK_TRIGGER => Some("TRIGGER"), TK_UNBOUNDED => Some("UNBOUNDED"), TK_UNION => Some("UNION"), TK_UNIQUE => Some("UNIQUE"), TK_UPDATE => Some("UPDATE"), TK_USING => Some("USING"), TK_VACUUM => Some("VACUUM"), TK_VALUES => Some("VALUES"), TK_VIEW => Some("VIEW"), TK_VIRTUAL => Some("VIRTUAL"), TK_WHEN => Some("WHEN"), TK_WHERE => Some("WHERE"), TK_WINDOW => Some("WINDOW"), TK_WITH => Some("WITH"), TK_WITHOUT => Some("WITHOUT"), TK_BITAND => Some("&"), TK_BITNOT => Some("~"), TK_BITOR => Some("|"), TK_COMMA => Some(","), TK_CONCAT => Some("||"), TK_DOT => Some("."), TK_EQ => Some("="), // or == TK_GT => Some(">"), TK_GE => Some(">="), TK_LP => Some("("), TK_LSHIFT => Some("<<"), TK_LE => Some("<="), TK_LT => Some("<"), TK_MINUS => Some("-"), TK_NE => Some("!="), // or <> TK_PLUS => Some("+"), TK_REM => Some("%"), TK_RP => Some(")"), TK_RSHIFT => Some(">>"), TK_SEMI => Some(";"), TK_SLASH => Some("/"), TK_STAR => Some("*"), _ => None, } .unwrap_or("unknown"); write!(f, "{s}") } }