Skip to main content

fsqlite_parser/
lib.rs

1// bd-2tu6: §10.1–10.2 SQL Lexer and Parser
2//
3// Hand-written recursive descent SQL parser with Pratt precedence-climbing
4// for expressions. Produces an AST from `fsqlite-ast`.
5
6pub mod expr;
7pub mod lexer;
8pub mod parser;
9pub mod semantic;
10pub mod token;
11
12pub use lexer::{
13    Lexer, TokenizeDurationSecondsHistogram, TokenizeMetricsSnapshot, reset_tokenize_metrics,
14    set_tokenize_metrics_enabled, tokenize_metrics_enabled, tokenize_metrics_snapshot,
15};
16pub use parser::{
17    ParseError, ParseMetricsSnapshot, Parser, StatementParseScratch,
18    parse_first_statement_with_tail, parse_metrics_enabled, parse_metrics_snapshot,
19    parse_single_statement_with_scratch, parse_statements_with_scratch, reset_parse_metrics,
20    set_parse_metrics_enabled,
21};
22pub use semantic::{
23    ColumnDef as SemanticColumnDef, FunctionArity, ResolveResult, Resolver, Schema, Scope,
24    SemanticError, SemanticErrorKind, SemanticMetricsSnapshot, TableDef as SemanticTableDef,
25    reset_semantic_metrics, semantic_metrics_snapshot,
26};
27
28pub use token::{Token, TokenKind};