Expand description
SQL Parser
This module provides a complete SQL parser for Stoolap, including:
Lexer- Tokenizer for SQL inputParser- Parser that builds AST from tokensast- Abstract Syntax Tree typestoken- Token typeserror- Parser error types
§Example
use stoolap::parser::{parse_sql, Statement};
let sql = "SELECT * FROM users WHERE id = 1";
let statements = parse_sql(sql).unwrap();
assert_eq!(statements.len(), 1);Re-exports§
pub use ast::AliasedExpression;pub use ast::AllAnyExpression;pub use ast::AllAnyType;pub use ast::AlterTableOperation;pub use ast::AlterTableStatement;pub use ast::AsOfClause;pub use ast::BeginStatement;pub use ast::BetweenExpression;pub use ast::BooleanLiteral;pub use ast::CaseExpression;pub use ast::CastExpression;pub use ast::ColumnConstraint;pub use ast::ColumnDefinition;pub use ast::CommitStatement;pub use ast::CommonTableExpression;pub use ast::CreateIndexStatement;pub use ast::CreateTableStatement;pub use ast::CreateViewStatement;pub use ast::CteReference;pub use ast::DeleteStatement;pub use ast::DistinctExpression;pub use ast::DropIndexStatement;pub use ast::DropTableStatement;pub use ast::DropViewStatement;pub use ast::ExistsExpression;pub use ast::ExplainStatement;pub use ast::Expression;pub use ast::ExpressionList;pub use ast::ExpressionStatement;pub use ast::FloatLiteral;pub use ast::FunctionCall;pub use ast::Identifier;pub use ast::InExpression;pub use ast::InfixExpression;pub use ast::InsertStatement;pub use ast::IntegerLiteral;pub use ast::IntervalLiteral;pub use ast::JoinTableSource;pub use ast::ListExpression;pub use ast::NullLiteral;pub use ast::OrderByExpression;pub use ast::Parameter;pub use ast::PragmaStatement;pub use ast::PrefixExpression;pub use ast::Program;pub use ast::QualifiedIdentifier;pub use ast::RollbackStatement;pub use ast::SavepointStatement;pub use ast::ScalarSubquery;pub use ast::SelectStatement;pub use ast::SetOperation;pub use ast::SetOperationType;pub use ast::SetStatement;pub use ast::ShowCreateTableStatement;pub use ast::ShowIndexesStatement;pub use ast::ShowTablesStatement;pub use ast::SimpleTableSource;pub use ast::StarExpression;pub use ast::Statement;pub use ast::StringLiteral;pub use ast::SubqueryTableSource;pub use ast::UpdateStatement;pub use ast::WhenClause;pub use ast::WindowExpression;pub use ast::WindowFrame;pub use ast::WindowFrameBound;pub use ast::WindowFrameUnit;pub use ast::WithClause;pub use error::ParseError;pub use error::ParseErrors;pub use lexer::Lexer;pub use parser::Parser;pub use precedence::Precedence;pub use token::is_keyword;pub use token::is_operator;pub use token::is_punctuator;pub use token::Position;pub use token::Token;pub use token::TokenType;pub use token::KEYWORDS;pub use token::OPERATORS;pub use token::PUNCTUATORS;
Modules§
- ast
- Abstract Syntax Tree (AST) types for SQL parser
- error
- Parser error types
- lexer
- SQL Lexer (Tokenizer)
- parser
- SQL Parser - Main Parser struct and core parsing logic
- precedence
- Operator precedence levels for the Pratt parser
- token
- Token types for SQL lexer
Functions§
- parse_
sql - Parse SQL and return statements