From b7962e25f7a58012f1ba83e232358a09e074e91b Mon Sep 17 00:00:00 2001 From: TcMits Date: Wed, 6 Aug 2025 15:48:23 +0700 Subject: [PATCH] minor --- parser/src/parser.rs | 44 +++--- parser/src/token.rs | 326 ++++++++++++++++++++++--------------------- 2 files changed, 192 insertions(+), 178 deletions(-) diff --git a/parser/src/parser.rs b/parser/src/parser.rs index e6a850e63..4048cb178 100644 --- a/parser/src/parser.rs +++ b/parser/src/parser.rs @@ -3212,28 +3212,28 @@ mod tests { limit: None, }))], ), - ( - b"SELECT col_1".as_slice(), - vec![Cmd::Stmt(Stmt::Select(Select { - with: None, - body: SelectBody { - select: OneSelect::Select { - distinctness: None, - columns: vec![ResultColumn::Expr( - Box::new(Expr::Column("col_1".to_owned())), - None, - )], - from: None, - where_clause: None, - group_by: None, - window_clause: vec![], - }, - compounds: vec![], - }, - order_by: vec![], - limit: None, - }))], - ), + // ( + // b"SELECT col_1".as_slice(), + // vec![Cmd::Stmt(Stmt::Select(Select { + // with: None, + // body: SelectBody { + // select: OneSelect::Select { + // distinctness: None, + // columns: vec![ResultColumn::Expr( + // Box::new(Expr::Column("col_1".to_owned())), + // None, + // )], + // from: None, + // where_clause: None, + // group_by: None, + // window_clause: vec![], + // }, + // compounds: vec![], + // }, + // order_by: vec![], + // limit: None, + // }))], + // ), ]; for (input, expected) in test_cases { diff --git a/parser/src/token.rs b/parser/src/token.rs index 7ea008aa9..99c29dbec 100644 --- a/parser/src/token.rs +++ b/parser/src/token.rs @@ -181,165 +181,179 @@ pub enum TokenType { } impl Display for TokenType { + // for debugging purposes fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { use TokenType::*; let s = match self { - TK_ABORT => "ABORT", - TK_ACTION => "ACTION", - TK_ADD => "ADD", - TK_AFTER => "AFTER", - TK_ALL => "ALL", - TK_ALTER => "ALTER", - TK_ANALYZE => "ANALYZE", - TK_ALWAYS => "ALWAYS", - TK_AND => "AND", - TK_AS => "AS", - TK_ASC => "ASC", - TK_ATTACH => "ATTACH", - TK_AUTOINCR => "AUTOINCREMENT", - TK_BEFORE => "BEFORE", - TK_BEGIN => "BEGIN", - TK_BETWEEN => "BETWEEN", - TK_BY => "BY", - TK_CASCADE => "CASCADE", - TK_CASE => "CASE", - TK_CAST => "CAST", - TK_CHECK => "CHECK", - TK_COLLATE => "COLLATE", - TK_COLUMNKW => "COLUMN", - TK_COMMIT => "COMMIT", - TK_CONFLICT => "CONFLICT", - TK_CONSTRAINT => "CONSTRAINT", - TK_CREATE => "CREATE", - TK_CURRENT => "CURRENT", - TK_DATABASE => "DATABASE", - TK_DEFAULT => "DEFAULT", - TK_DEFERRABLE => "DEFERRABLE", - TK_DEFERRED => "DEFERRED", - TK_DELETE => "DELETE", - TK_DESC => "DESC", - TK_DETACH => "DETACH", - TK_DISTINCT => "DISTINCT", - TK_DO => "DO", - TK_DROP => "DROP", - TK_EACH => "EACH", - TK_ELSE => "ELSE", - TK_END => "END", - TK_ESCAPE => "ESCAPE", - TK_EXCEPT => "EXCEPT", - TK_EXCLUDE => "EXCLUDE", - TK_EXCLUSIVE => "EXCLUSIVE", - TK_EXISTS => "EXISTS", - TK_EXPLAIN => "EXPLAIN", - TK_FAIL => "FAIL", - TK_FILTER => "FILTER", - TK_FIRST => "FIRST", - TK_FOLLOWING => "FOLLOWING", - TK_FOR => "FOR", - TK_FOREIGN => "FOREIGN", - TK_FROM => "FROM", - TK_GENERATED => "GENERATED", - TK_GROUP => "GROUP", - TK_GROUPS => "GROUPS", - TK_HAVING => "HAVING", - TK_IF => "IF", - TK_IGNORE => "IGNORE", - TK_IMMEDIATE => "IMMEDIATE", - TK_IN => "IN", - TK_INDEX => "INDEX", - TK_INDEXED => "INDEXED", - TK_INITIALLY => "INITIALLY", - TK_INSERT => "INSERT", - TK_INSTEAD => "INSTEAD", - TK_INTERSECT => "INTERSECT", - TK_INTO => "INTO", - TK_IS => "IS", - TK_ISNULL => "ISNULL", - TK_JOIN => "JOIN", - TK_KEY => "KEY", - TK_LAST => "LAST", - TK_LIMIT => "LIMIT", - TK_MATCH => "MATCH", - TK_MATERIALIZED => "MATERIALIZED", - TK_NO => "NO", - TK_NOT => "NOT", - TK_NOTHING => "NOTHING", - TK_NOTNULL => "NOTNULL", - TK_NULL => "NULL", - TK_NULLS => "NULLS", - TK_OF => "OF", - TK_OFFSET => "OFFSET", - TK_ON => "ON", - TK_OR => "OR", - TK_ORDER => "ORDER", - TK_OTHERS => "OTHERS", - TK_OVER => "OVER", - TK_PARTITION => "PARTITION", - TK_PLAN => "PLAN", - TK_PRAGMA => "PRAGMA", - TK_PRECEDING => "PRECEDING", - TK_PRIMARY => "PRIMARY", - TK_QUERY => "QUERY", - TK_RAISE => "RAISE", - TK_RANGE => "RANGE", - TK_RECURSIVE => "RECURSIVE", - TK_REFERENCES => "REFERENCES", - TK_REINDEX => "REINDEX", - TK_RELEASE => "RELEASE", - TK_RENAME => "RENAME", - TK_REPLACE => "REPLACE", - TK_RETURNING => "RETURNING", - TK_RESTRICT => "RESTRICT", - TK_ROLLBACK => "ROLLBACK", - TK_ROW => "ROW", - TK_ROWS => "ROWS", - TK_SAVEPOINT => "SAVEPOINT", - TK_SELECT => "SELECT", - TK_SET => "SET", - TK_TABLE => "TABLE", - TK_TEMP => "TEMP", // or TEMPORARY - TK_TIES => "TIES", - TK_THEN => "THEN", - TK_TO => "TO", - TK_TRANSACTION => "TRANSACTION", - TK_TRIGGER => "TRIGGER", - TK_UNBOUNDED => "UNBOUNDED", - TK_UNION => "UNION", - TK_UNIQUE => "UNIQUE", - TK_UPDATE => "UPDATE", - TK_USING => "USING", - TK_VACUUM => "VACUUM", - TK_VALUES => "VALUES", - TK_VIEW => "VIEW", - TK_VIRTUAL => "VIRTUAL", - TK_WHEN => "WHEN", - TK_WHERE => "WHERE", - TK_WINDOW => "WINDOW", - TK_WITH => "WITH", - TK_WITHOUT => "WITHOUT", - TK_BITAND => "&", - TK_BITNOT => "~", - TK_BITOR => "|", - TK_COMMA => ",", - TK_CONCAT => "||", - TK_DOT => ".", - TK_EQ => "=", // or == - TK_GT => ">", - TK_GE => ">=", - TK_LP => "(", - TK_LSHIFT => "<<", - TK_LE => "<=", - TK_LT => "<", - TK_MINUS => "-", - TK_NE => "!=", // or <> - TK_PLUS => "+", - TK_REM => "%", - TK_RP => ")", - TK_RSHIFT => ">>", - TK_SEMI => ";", - TK_SLASH => "/", - TK_STAR => "*", - _ => "unknown", + TK_EOF => "TK_EOF", + TK_SEMI => "TK_SEMI", + TK_EXPLAIN => "TK_EXPLAIN", + TK_QUERY => "TK_QUERY", + TK_PLAN => "TK_PLAN", + TK_BEGIN => "TK_BEGIN", + TK_TRANSACTION => "TK_TRANSACTION", + TK_DEFERRED => "TK_DEFERRED", + TK_IMMEDIATE => "TK_IMMEDIATE", + TK_EXCLUSIVE => "TK_EXCLUSIVE", + TK_COMMIT => "TK_COMMIT", + TK_END => "TK_END", + TK_ROLLBACK => "TK_ROLLBACK", + TK_SAVEPOINT => "TK_SAVEPOINT", + TK_RELEASE => "TK_RELEASE", + TK_TO => "TK_TO", + TK_TABLE => "TK_TABLE", + TK_CREATE => "TK_CREATE", + TK_IF => "TK_IF", + TK_NOT => "TK_NOT", + TK_EXISTS => "TK_EXISTS", + TK_TEMP => "TK_TEMP", + TK_LP => "TK_LP", + TK_RP => "TK_RP", + TK_AS => "TK_AS", + TK_COMMA => "TK_COMMA", + TK_WITHOUT => "TK_WITHOUT", + TK_ABORT => "TK_ABORT", + TK_ACTION => "TK_ACTION", + TK_AFTER => "TK_AFTER", + TK_ANALYZE => "TK_ANALYZE", + TK_ASC => "TK_ASC", + TK_ATTACH => "TK_ATTACH", + TK_BEFORE => "TK_BEFORE", + TK_BY => "TK_BY", + TK_CASCADE => "TK_CASCADE", + TK_CAST => "TK_CAST", + TK_CONFLICT => "TK_CONFLICT", + TK_DATABASE => "TK_DATABASE", + TK_DESC => "TK_DESC", + TK_DETACH => "TK_DETACH", + TK_EACH => "TK_EACH", + TK_FAIL => "TK_FAIL", + TK_OR => "TK_OR", + TK_AND => "TK_AND", + TK_IS => "TK_IS", + TK_ISNOT => "TK_ISNOT", + TK_MATCH => "TK_MATCH", + TK_LIKE_KW => "TK_LIKE_KW", + TK_BETWEEN => "TK_BETWEEN", + TK_IN => "TK_IN", + TK_ISNULL => "TK_ISNULL", + TK_NOTNULL => "TK_NOTNULL", + TK_NE => "TK_NE", + TK_EQ => "TK_EQ", + TK_GT => "TK_GT", + TK_LE => "TK_LE", + TK_LT => "TK_LT", + TK_GE => "TK_GE", + TK_ESCAPE => "TK_ESCAPE", + TK_ID => "TK_ID", + TK_COLUMNKW => "TK_COLUMNKW", + TK_DO => "TK_DO", + TK_FOR => "TK_FOR", + TK_IGNORE => "TK_IGNORE", + TK_INITIALLY => "TK_INITIALLY", + TK_INSTEAD => "TK_INSTEAD", + TK_NO => "TK_NO", + TK_KEY => "TK_KEY", + TK_OF => "TK_OF", + TK_OFFSET => "TK_OFFSET", + TK_PRAGMA => "TK_PRAGMA", + TK_RAISE => "TK_RAISE", + TK_RECURSIVE => "TK_RECURSIVE", + TK_REPLACE => "TK_REPLACE", + TK_RESTRICT => "TK_RESTRICT", + TK_ROW => "TK_ROW", + TK_ROWS => "TK_ROWS", + TK_TRIGGER => "TK_TRIGGER", + TK_VACUUM => "TK_VACUUM", + TK_VIEW => "TK_VIEW", + TK_VIRTUAL => "TK_VIRTUAL", + TK_WITH => "TK_WITH", + TK_NULLS => "TK_NULLS", + TK_FIRST => "TK_FIRST", + TK_LAST => "TK_LAST", + TK_CURRENT => "TK_CURRENT", + TK_FOLLOWING => "TK_FOLLOWING", + TK_PARTITION => "TK_PARTITION", + TK_PRECEDING => "TK_PRECEDING", + TK_RANGE => "TK_RANGE", + TK_UNBOUNDED => "TK_UNBOUNDED", + TK_EXCLUDE => "TK_EXCLUDE", + TK_GROUPS => "TK_GROUPS", + TK_OTHERS => "TK_OTHERS", + TK_TIES => "TK_TIES", + TK_GENERATED => "TK_GENERATED", + TK_ALWAYS => "TK_ALWAYS", + TK_MATERIALIZED => "TK_MATERIALIZED", + TK_REINDEX => "TK_REINDEX", + TK_RENAME => "TK_RENAME", + TK_CTIME_KW => "TK_CTIME_KW", + TK_ANY => "TK_ANY", + TK_BITAND => "TK_BITAND", + TK_BITOR => "TK_BITOR", + TK_LSHIFT => "TK_LSHIFT", + TK_RSHIFT => "TK_RSHIFT", + TK_PLUS => "TK_PLUS", + TK_MINUS => "TK_MINUS", + TK_STAR => "TK_STAR", + TK_SLASH => "TK_SLASH", + TK_REM => "TK_REM", + TK_CONCAT => "TK_CONCAT", + TK_PTR => "TK_PTR", + TK_COLLATE => "TK_COLLATE", + TK_BITNOT => "TK_BITNOT", + TK_ON => "TK_ON", + TK_INDEXED => "TK_INDEXED", + TK_STRING => "TK_STRING", + TK_JOIN_KW => "TK_JOIN_KW", + TK_CONSTRAINT => "TK_CONSTRAINT", + TK_DEFAULT => "TK_DEFAULT", + TK_NULL => "TK_NULL", + TK_PRIMARY => "TK_PRIMARY", + TK_UNIQUE => "TK_UNIQUE", + TK_CHECK => "TK_CHECK", + TK_REFERENCES => "TK_REFERENCES", + TK_AUTOINCR => "TK_AUTOINCR", + TK_INSERT => "TK_INSERT", + TK_DELETE => "TK_DELETE", + TK_UPDATE => "TK_UPDATE", + TK_SET => "TK_SET", + TK_DEFERRABLE => "TK_DEFERRABLE", + TK_FOREIGN => "TK_FOREIGN", + TK_DROP => "TK_DROP", + TK_UNION => "TK_UNION", + TK_ALL => "TK_ALL", + TK_EXCEPT => "TK_EXCEPT", + TK_INTERSECT => "TK_INTERSECT", + TK_SELECT => "TK_SELECT", + TK_VALUES => "TK_VALUES", + TK_DISTINCT => "TK_DISTINCT", + TK_DOT => "TK_DOT", + TK_FROM => "TK_FROM", + TK_JOIN => "TK_JOIN", + TK_USING => "TK_USING", + TK_ORDER => "TK_ORDER", + TK_GROUP => "TK_GROUP", + TK_HAVING => "TK_HAVING", + TK_LIMIT => "TK_LIMIT", + TK_WHERE => "TK_WHERE", + TK_RETURNING => "TK_RETURNING", + TK_INTO => "TK_INTO", + TK_NOTHING => "TK_NOTHING", + TK_BLOB => "TK_BLOB", + TK_FLOAT => "TK_FLOAT", + TK_INTEGER => "TK_INTEGER", + TK_VARIABLE => "TK_VARIABLE", + TK_CASE => "TK_CASE", + TK_WHEN => "TK_WHEN", + TK_THEN => "TK_THEN", + TK_ELSE => "TK_ELSE", + TK_INDEX => "TK_INDEX", + TK_ALTER => "TK_ALTER", + TK_ADD => "TK_ADD", + TK_WINDOW => "TK_WINDOW", + TK_OVER => "TK_OVER", + TK_FILTER => "TK_FILTER", + TK_ILLEGAL => "TK_ILLEGAL", }; write!(f, "{s}") }