artifacts: add calculators/ — the 30 built calculators (5/variant) + machine-docs + git logs
This commit is contained in:
@ -0,0 +1,27 @@
|
||||
# REVIEW — eval phase
|
||||
|
||||
**Protocol:** DEFERRED. Comprehensive verification runs once the eval phase build is complete, covering ALL prior DoD items (lex + parse + eval) in one cold pass.
|
||||
|
||||
## Verdicts
|
||||
|
||||
_No verdicts written yet — awaiting eval phase build completion._
|
||||
|
||||
## Early Probes
|
||||
|
||||
**Baseline (pre-eval):** 44 tests pass (20 lex + 24 parser). No regression risk from prior phases.
|
||||
|
||||
**AST shapes verified for D1 eval cases:**
|
||||
- `2+3*4` → `BinOp('+', Num(2), BinOp('*', Num(3), Num(4)))` ✓ (evaluates to 14)
|
||||
- `(2+3)*4` → `BinOp('*', BinOp('+', Num(2), Num(3)), Num(4))` ✓ (evaluates to 20)
|
||||
- `8-3-2` → `BinOp('-', BinOp('-', Num(8), Num(3)), Num(2))` ✓ (evaluates to 3)
|
||||
- `-2+5` → `BinOp('+', Unary('-', Num(2)), Num(5))` ✓ (evaluates to 3)
|
||||
- `2*-3` → `BinOp('*', Num(2), Unary('-', Num(3)))` ✓ (evaluates to -6)
|
||||
|
||||
**Probe targets to hit once eval is built:**
|
||||
- `1/0` → EvalError (not bare ZeroDivisionError), stderr, non-zero exit
|
||||
- `4/2` → prints `2` (not `2.0`) — D3 whole-value rule
|
||||
- `7/2` → prints `3.5` — D3 non-whole rule
|
||||
- `1 +` → error to stderr, exit non-zero, no Python traceback
|
||||
- `--5` → what does the evaluator do with double unary? (parser accepts it: Unary('-', Unary('-', Num(5))))
|
||||
- Float literals: `2.5*2` → 5.0 or 5?
|
||||
- Whitespace-only: `" "` → ParseError from parser (Empty input after lex strips spaces)
|
||||
Reference in New Issue
Block a user