Skip to main content

Module calc

Module calc 

Source
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§

Evaluator
Expression evaluator
Parser
Expression parser

Enums§

BinaryOp
Binary operators
CalcError
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