Skip to main content

Module parser

Module parser 

Source
Expand description

SQL Parser

This module provides a complete SQL parser for Stoolap, including:

  • Lexer - Tokenizer for SQL input
  • Parser - Parser that builds AST from tokens
  • ast - Abstract Syntax Tree types
  • token - Token types
  • error - 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