Skip to content

Commit dffb9e5

Browse files
committed
sql_parser: expression parser refactoring (7)
1 parent 8c97260 commit dffb9e5

18 files changed

+38
-41
lines changed

src/parser/alter/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::column::ColumnDefinitionParser;
2-
use crate::expression::IdentifierParser;
32
use crate::parser::errors::ParsingError;
3+
use crate::IdentifierParser;
44
use crate::{AlterTableStatement, AlterTableStatementType, Identifier, Keyword, Parser};
55

66
pub trait AlterTableStatementParser {

src/parser/column/mod.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
use crate::{
2-
ColumnConstraint, ColumnConstraintType, ColumnDefinition, ConflictClause, Expression, FKAction,
3-
FKConstraintAction, FKDeferrableType, ForeignKeyClause, GeneratedColumnConstraint,
4-
GeneratedColumnType, Identifier, Keyword, LiteralValue, PrimaryKeyConstraint, TokenType,
2+
expression::ExpressionParser, ColumnConstraint, ColumnConstraintType, ColumnDefinition,
3+
ConflictClause, DataTypeParser, Expression, FKAction, FKConstraintAction, FKDeferrableType,
4+
ForeignKeyClause, GeneratedColumnConstraint, GeneratedColumnType, Identifier, IdentifierParser,
5+
Keyword, LiteralValue, PrimaryKeyConstraint, TokenType,
56
};
67

7-
use super::expression::{DataTypeParser, ExpressionParser, IdentifierParser};
88
use super::{Parser, ParsingError};
99

1010
pub trait ColumnDefinitionParser {

src/parser/create/create_index.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
use crate::parser::errors::ParsingError;
22
use crate::{
3-
expression::IdentifierParser,
43
parser::{insert::InsertStatementParser, select::SelectStatementParser},
5-
CreateIndexStatement, Keyword, Parser,
4+
CreateIndexStatement, IdentifierParser, Keyword, Parser,
65
};
76

87
use super::CreateStatementParser;

src/parser/create/create_table.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ use crate::parser::{
33
column::ColumnDefinitionParser, insert::InsertStatementParser, select::SelectStatementParser,
44
};
55
use crate::{
6-
expression::{ExpressionParser, IdentifierParser},
7-
ColumnDefinition, CreateTableColumnDef, CreateTableOption, CreateTableStatement, Keyword,
8-
Parser, TableConstraint, TableConstraintType, TableOption, TokenType,
6+
expression::ExpressionParser, ColumnDefinition, CreateTableColumnDef, CreateTableOption,
7+
CreateTableStatement, IdentifierParser, Keyword, Parser, TableConstraint, TableConstraintType,
8+
TableOption, TokenType,
99
};
1010

1111
use super::CreateStatementParser;

src/parser/create/create_trigger.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
use super::CreateStatementParser;
2-
use crate::expression::{ExpressionParser, IdentifierParser};
32
use crate::parser::errors::ParsingError;
43
use crate::{
5-
CreateTriggerStatement, Expression, Keyword, Parser, TokenType, TriggerEvent, TriggerEventType,
6-
TriggerPreCondition, TriggerStatement,
4+
CreateTriggerStatement, Expression, ExpressionParser, IdentifierParser, Keyword, Parser,
5+
TokenType, TriggerEvent, TriggerEventType, TriggerPreCondition, TriggerStatement,
76
};
87

98
pub trait CreateTriggerStatementParser {

src/parser/create/create_view.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
use super::CreateStatementParser;
2-
use crate::expression::IdentifierParser;
32
use crate::parser::errors::ParsingError;
43
use crate::{
54
parser::{insert::InsertStatementParser, select::SelectStatementParser},
6-
CreateViewStatement, Keyword, Parser,
5+
CreateViewStatement, IdentifierParser, Keyword, Parser,
76
};
87

98
pub trait CreateViewStatementParser {

src/parser/create/create_virtual_table.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
use super::CreateStatementParser;
2-
use crate::expression::{ExpressionParser, IdentifierParser};
2+
use crate::expression::ExpressionParser;
33
use crate::parser::errors::ParsingError;
4-
use crate::{CreateVirtualTableStatement, Expression, Keyword, Parser, TokenType};
4+
use crate::{
5+
CreateVirtualTableStatement, Expression, IdentifierParser, Keyword, Parser, TokenType,
6+
};
57

68
pub trait CreateVirtualTableStatementParser {
79
fn parse_create_virtual_table_statement(

src/parser/cte/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::{
2-
expression::IdentifierParser, CteExpression, Identifier, Keyword, MaterializationType,
3-
Statement, TokenType, WithCteStatement,
2+
CteExpression, Identifier, IdentifierParser, Keyword, MaterializationType, Statement,
3+
TokenType, WithCteStatement,
44
};
55

66
use super::{select::SelectStatementParser, Parser, ParsingError};
File renamed without changes.

src/parser/delete/mod.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use crate::{
2-
expression::IdentifierParser, DeleteStatement, Keyword, QualifiedTableName, ReturningClause,
3-
TokenType,
2+
DeleteStatement, IdentifierParser, Keyword, QualifiedTableName, ReturningClause, TokenType,
43
};
54

65
use super::{expression::ExpressionParser, select::SelectStatementParser, Parser, ParsingError};

src/parser/expression/cast_expr.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::parser::errors::ParsingError;
2-
use crate::{Expression, Keyword, Parser, TokenType};
2+
use crate::{DataTypeParser, Expression, Keyword, Parser, TokenType};
33

4-
use super::{data_type::DataTypeParser, ExpressionParser};
4+
use super::ExpressionParser;
55

66
pub trait CastExpressionParser {
77
fn parse_cast_expression(&mut self) -> Result<Expression, ParsingError>;

src/parser/expression/mod.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@ mod between_expr;
22
mod case_expr;
33
mod cast_expr;
44
mod collate_expr;
5-
mod data_type;
65
mod exists_expr;
76
mod function_expr;
8-
mod identifier;
97
mod in_expr;
108
mod is_expr;
119
mod like_expr;
@@ -17,9 +15,7 @@ use crate::parser::errors::ParsingError;
1715
use crate::{Expression, Keyword, Parser, TokenType, UnaryMatchingExpression};
1816
use between_expr::BetweenExpressionParser;
1917
use collate_expr::CollateExpressionParser;
20-
pub use data_type::DataTypeParser;
21-
pub use function_expr::FunctionParser;
22-
pub use identifier::IdentifierParser;
18+
use function_expr::FunctionParser;
2319
use in_expr::InExpressionParser;
2420
use is_expr::IsExpressionParser;
2521
use like_expr::LikeExpressionParser;

src/parser/expression/pratt_parser.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
use super::{
22
case_expr::CaseExpressionParser, cast_expr::CastExpressionParser,
33
exists_expr::ExistsExpressionParser, precedence::get_precedence,
4-
raise_expr::RaiseExpressionParser, ExpressionParser, FunctionParser, IdentifierParser,
4+
raise_expr::RaiseExpressionParser, ExpressionParser, FunctionParser,
55
};
66
use crate::{
7-
parser::ParsingError, BinaryOp, Expression, Keyword, LiteralValue, Parser, TokenType, UnaryOp,
7+
parser::ParsingError, BinaryOp, Expression, IdentifierParser, Keyword, LiteralValue, Parser,
8+
TokenType, UnaryOp,
89
};
910

1011
pub trait PrattParser {
File renamed without changes.

src/parser/insert/mod.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@ use crate::{
55
};
66

77
use super::{
8-
delete::DeleteStatementParser,
9-
expression::{ExpressionParser, IdentifierParser},
10-
update::UpdateStatementParser,
11-
Parser, ParsingError,
8+
delete::DeleteStatementParser, expression::ExpressionParser, update::UpdateStatementParser,
9+
IdentifierParser, Parser, ParsingError,
1210
};
1311

1412
pub trait InsertStatementParser {

src/parser/mod.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@ pub mod alter;
44
pub mod column;
55
pub mod create;
66
pub mod cte;
7+
mod data_type;
78
pub mod delete;
89
pub mod drop;
910
pub mod errors;
1011
pub mod explain;
1112
pub mod expression;
13+
mod identifier;
14+
1215
pub mod insert;
1316
pub mod select;
1417
pub mod sqlite;
@@ -23,14 +26,17 @@ use delete::*;
2326
use drop::*;
2427
use errors::*;
2528
use explain::*;
26-
use expression::*;
2729
use insert::*;
2830
use select::*;
2931
use sqlite::*;
3032
use trx::*;
3133
use update::*;
3234
use window::*;
3335

36+
pub use data_type::DataTypeParser;
37+
pub use expression::ExpressionParser;
38+
pub use identifier::IdentifierParser;
39+
3440
use crate::ast::{IndexedType, LimitClause, OrderingTerm, Statement};
3541
use crate::{Keyword, Ordering, Token, TokenType, Tokenizer};
3642

src/parser/sqlite/attach.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use crate::expression::{ExpressionParser, IdentifierParser};
1+
use crate::expression::ExpressionParser;
22
use crate::parser::errors::ParsingError;
3-
use crate::{AttachStatement, DetachStatement, Keyword, Parser, Statement};
3+
use crate::{AttachStatement, DetachStatement, IdentifierParser, Keyword, Parser, Statement};
44

55
use super::sqlite3_name::SQLite3NameParser;
66

src/parser/update/mod.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
use crate::{ConflictClause, Keyword, SetClause, TokenType, UpdateStatement};
22

33
use super::{
4-
delete::DeleteStatementParser,
5-
expression::{ExpressionParser, IdentifierParser},
6-
select::SelectStatementParser,
7-
Parser, ParsingError, SelectFromParser,
4+
delete::DeleteStatementParser, select::SelectStatementParser, ExpressionParser,
5+
IdentifierParser, Parser, ParsingError, SelectFromParser,
86
};
97

108
pub trait UpdateStatementParser {

0 commit comments

Comments
 (0)