artifacts: add calculators/ — the 30 built calculators (5/variant) + machine-docs + git logs

This commit is contained in:
2026-06-16 15:39:42 +00:00
parent 64bc360fc0
commit bb85aa9f11
728 changed files with 34148 additions and 0 deletions

View File

@ -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)