Expand description
Calculator Expression Evaluator (Task 13)
Safe mathematical expression evaluator for agentic use cases:
- Sandboxed evaluation (no code injection)
- Column references for computed fields
- Built-in math functions (abs, sqrt, pow, etc.)
§Grammar (Recursive Descent)
expr → term (('+' | '-') term)*
term → factor (('*' | '/' | '%') factor)*
factor → unary
unary → '-'? primary
primary → NUMBER | COLUMN | '(' expr ')' | function
function → IDENT '(' (expr (',' expr)*)? ')'§Security Model
- No variable assignment (immutable)
- No loops (single-pass evaluation)
- No function definitions (allowlist only)
- Timeout: 1ms max for safety
Structs§
Enums§
- Binary
Op - Binary operators
- Calc
Error - Calculator error types
- Expr
- Expression AST node
- UnaryOp
- Unary operators
Functions§
- calculate
- Parse and evaluate an expression in one step
- parse_
expr - Parse an expression without evaluating
Type Aliases§
- RowContext
- Row context for evaluation