Skip to main content

sql_cli/sql/parser/
mod.rs

1//! Modular SQL Parser
2//!
3//! This module provides a structured approach to SQL parsing,
4//! breaking down the monolithic parser into focused components.
5
6pub mod ast;
7pub mod ast_formatter;
8pub mod expressions;
9pub mod file_cte_parser;
10pub mod formatter;
11pub mod legacy;
12pub mod lexer;
13pub mod walk;
14pub mod web_cte_parser;
15
16// Re-export commonly used types for convenience
17pub use ast::{
18    Condition, JoinClause, JoinCondition, JoinOperator, JoinType, LogicalOp, OrderByColumn,
19    SelectItem, SelectStatement, SortDirection, SqlExpression, TableFunction, TableSource,
20    WhenBranch, WhereClause, WindowSpec, CTE,
21};
22
23pub use lexer::{Lexer, LexerMode, Token};
24
25// Re-export legacy types for backward compatibility
26pub use legacy::{ParseContext, ParseState, Schema, SqlParser, SqlToken, TableInfo};
27
28// Test modules
29#[cfg(test)]
30mod tests;
31
32#[cfg(test)]
33mod comment_preservation_tests;
34
35// Parser configuration
36#[derive(Default)]
37pub struct ParserConfig {
38    pub case_insensitive: bool,
39}