artifacts: add calculators/ — the 30 built calculators (5/variant) + machine-docs + git logs
This commit is contained in:
@ -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) ✓
|
||||
```
|
||||
Reference in New Issue
Block a user