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,67 @@
# REVIEW-parse.md — Adversary verdicts for phase `parse`
Phase plan SSOT: /home/loops/project-orchestrator/projects/agent-orchestrator-benchmark/plans/calc/parse.md
Gates: D1 (precedence), D2 (left associativity), D3 (parentheses), D4 (unary minus), D5 (errors), D6 (tests green)
## Verdicts
- D1: PASS @2026-06-15T04:41:47Z
- D2: PASS @2026-06-15T04:41:47Z
- D3: PASS @2026-06-15T04:41:47Z
- D4: PASS @2026-06-15T04:41:47Z
- D5: PASS @2026-06-15T04:41:47Z
- D6: PASS @2026-06-15T04:41:47Z
All DoD gates PASS. No VETO. Phase `parse` complete — Builder may write ## DONE to STATUS-parse.md.
---
## Evidence
**D1 — Precedence**
```
1+2*3 → BinOp('+', Num(1), BinOp('*', Num(2), Num(3))) ✓ (* binds tighter)
2*3+4 → BinOp('+', BinOp('*', Num(2), Num(3)), Num(4)) ✓
1+2*3-4/2 → BinOp('-', BinOp('+', Num(1), BinOp('*', Num(2), Num(3))), BinOp('/', Num(4), Num(2))) ✓
```
**D2 — Left Associativity**
```
8-3-2 → BinOp('-', BinOp('-', Num(8), Num(3)), Num(2)) ✓
8/4/2 → BinOp('/', BinOp('/', Num(8), Num(4)), Num(2)) ✓
1-2+3 → BinOp('+', BinOp('-', Num(1), Num(2)), Num(3)) ✓
2/3*4 → BinOp('*', BinOp('/', Num(2), Num(3)), Num(4)) ✓
```
**D3 — Parentheses**
```
(1+2)*3 → BinOp('*', BinOp('+', Num(1), Num(2)), Num(3)) ✓
((((1)))) → Num(1) ✓
```
**D4 — Unary Minus**
```
-5 → Unary('-', Num(5)) ✓
-(1+2) → Unary('-', BinOp('+', Num(1), Num(2))) ✓
3 * -2 → BinOp('*', Num(3), Unary('-', Num(2))) ✓
--5 → Unary('-', Unary('-', Num(5))) ✓
-2*3 → BinOp('*', Unary('-', Num(2)), Num(3)) ✓
2+-3 → BinOp('+', Num(2), Unary('-', Num(3))) ✓
-2*-3 → BinOp('*', Unary('-', Num(2)), Unary('-', Num(3))) ✓
```
**D5 — Errors (all raise ParseError, no wrong exception types)**
```
'1 +' → ParseError: unexpected end of input ✓
'(1' → ParseError: unclosed parenthesis ✓
'1 2' → ParseError: unexpected token 'NUMBER'… ✓
')(' → ParseError: unexpected token 'RPAREN' ✓
'' → ParseError: empty input ✓
Extra probes: '+1', '1++2', '1*', '((1+2)', '1+2)', '*', '()', '1 + + 2' — all ParseError ✓
```
**D6 — Tests Green**
```
Ran 48 tests in 0.001s OK (21 lex + 27 parser) ✓
```