sqlexpr-rust 1.0.0

A SQL expression parser and evaluator in Rust
Documentation
// SQL Expression Parser Library
//
// This library provides a parser for SQL boolean expressions following the
// grammar defined in SqlExprParser-EBNF-Final.ebnf
//
// The parser enforces type safety at the grammar level: all top-level expressions
// must evaluate to boolean values, while arithmetic and value expressions can only
// appear as operands to relational operators.

pub mod ast;
pub mod lexer;
pub mod parser;
pub mod evaluator;

// Re-export main types for convenient access
pub use ast::{
    BooleanExpr, RelationalExpr, ValueExpr, ValueLiteral,
    EqualityOp, ComparisonOp,
};
pub use parser::{parse, ParseError};
pub use evaluator::{evaluate, RuntimeValue, EvalError};

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_basic_parse() {
        let result = parse("x > 5");
        assert!(result.is_ok());
    }

    #[test]
    fn test_complex_expression() {
        let result = parse("(a + b) > 10 AND name LIKE '%test%'");
        assert!(result.is_ok());
    }
}