Skip to main content

fsqlite_parser/
lib.rs

1// bd-2tu6: §10.1–10.2 SQL Lexer and Parser
2//
3// Hand-written SQL statement parser with an explicit heap-backed Pratt/SELECT
4// state machine. 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_force_interner_scan_bench, set_tokenize_metrics_enabled, tokenize_metrics_enabled,
15    tokenize_metrics_snapshot,
16};
17pub use parser::{
18    ParseError, ParseErrorKind, ParseMetricsSnapshot, Parser, StatementParseScratch,
19    parse_first_statement_with_tail, parse_metrics_enabled, parse_metrics_snapshot,
20    parse_single_statement_with_scratch, parse_statements_with_scratch, reset_parse_metrics,
21    set_parse_metrics_enabled,
22};
23pub use semantic::{
24    ColumnDef as SemanticColumnDef, FunctionArity, ResolveResult, Resolver, Schema, Scope,
25    SemanticError, SemanticErrorKind, SemanticMetricsSnapshot, TableDef as SemanticTableDef,
26    reset_semantic_metrics, semantic_metrics_snapshot,
27};
28
29pub use token::{Token, TokenKind};