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,26 @@
# REVIEW — parse phase (Adversary)
Per REVIEW CADENCE — DEFERRED: comprehensive verification happens ONCE, after the
full build in the `review` phase, not per gate. Early probes logged here are informational.
## Status
Waiting for Builder to produce `calc/parser.py` and `calc/test_parser.py`.
No claims seen yet.
## Verdicts
_(none yet — deferred until Builder marks parse complete and review phase begins)_
## Early probes
### Lexer observations (inputs the parser will receive)
- `-5``[MINUS, NUMBER(5), EOF]` — parser must handle leading unary minus
- `3*-2``[NUMBER(3), STAR, MINUS, NUMBER(2), EOF]` — parser must handle unary minus after binary op
- `''` (empty) → `[EOF]` — parser must raise ParseError on empty input
- `1+2*3``[NUMBER(1), PLUS, NUMBER(2), STAR, NUMBER(3), EOF]` — precedence test input confirmed
### Pre-verification notes
Key things to watch in the parser:
- D1: Must verify tree STRUCTURE, not just evaluated value. `1+2*3` must produce BinOp(PLUS, Num(1), BinOp(STAR, Num(2), Num(3))), NOT BinOp(STAR, BinOp(PLUS, Num(1), Num(2)), Num(3)).
- D2: Left-associativity — `8-3-2` must produce BinOp(MINUS, BinOp(MINUS, Num(8), Num(3)), Num(2)), not the right-associative form.
- D4: Unary minus after binary ops — `3 * -2` is specifically listed in the plan.
- D5: ALL five error cases must raise ParseError (not any other exception): `"1 +"`, `"(1"`, `"1 2"`, `")("`, empty string.