1pub mod ast;
11pub mod lexer;
12pub mod parser;
13pub mod evaluator;
14
15pub use ast::{
17 BooleanExpr, RelationalExpr, ValueExpr, ValueLiteral,
18 EqualityOp, ComparisonOp,
19};
20pub use parser::{parse, ParseError};
21pub use evaluator::{evaluate, RuntimeValue, EvalError};
22
23#[cfg(test)]
24mod tests {
25 use super::*;
26
27 #[test]
28 fn test_basic_parse() {
29 let result = parse("x > 5");
30 assert!(result.is_ok());
31 }
32
33 #[test]
34 fn test_complex_expression() {
35 let result = parse("(a + b) > 10 AND name LIKE '%test%'");
36 assert!(result.is_ok());
37 }
38}