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 web_cte_parser;
14
15// Re-export commonly used types for convenience
16pub use ast::{
17    Condition, JoinClause, JoinCondition, JoinOperator, JoinType, LogicalOp, OrderByColumn,
18    SelectItem, SelectStatement, SortDirection, SqlExpression, TableFunction, TableSource,
19    WhenBranch, WhereClause, WindowSpec, CTE,
20};
21
22pub use lexer::{Lexer, LexerMode, Token};
23
24// Re-export legacy types for backward compatibility
25pub use legacy::{ParseContext, ParseState, Schema, SqlParser, SqlToken, TableInfo};
26
27// Test modules
28#[cfg(test)]
29mod tests;
30
31#[cfg(test)]
32mod comment_preservation_tests;
33
34// Parser configuration
35#[derive(Default)]
36pub struct ParserConfig {
37    pub case_insensitive: bool,
38}