pub mod ast;
pub mod lexer;
pub mod parser;
pub mod evaluator;
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());
}
}