Previously Expr::BinOp(String, ...) accepted any string as an operator. Invalid operators (e.g. "diagonal") would compile fine and silently return CellValue::Empty at eval time. Now BinOp is an enum with variants Add/Sub/Mul/Div/Pow/Eq/Ne/Lt/Gt/Le/Ge. The parser produces enum variants directly; the evaluator pattern-matches exhaustively with no fallback branch. An invalid operator is now a compile error at the call site, and the compiler ensures every variant is handled in both eval_expr and eval_bool. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6 lines
107 B
Rust
6 lines
107 B
Rust
pub mod parser;
|
|
pub mod ast;
|
|
|
|
pub use ast::{AggFunc, BinOp, Expr, Formula};
|
|
pub use parser::parse_formula;
|