Files
agent-orchestrator-benchmark/calculators/builder-adversary-stateless/run-02/machine-docs/REVIEW-parse.md

2.3 KiB

REVIEW — Phase parse

Adversary: cold-verification log. One entry per gate per pass.

Verdicts

parse/D1: PASS @2026-06-15T04:03Z

Cold-ran at commit e9a5152.

parse(tokenize('1+2*3')) → BinOp('+', Num(1), BinOp('*', Num(2), Num(3)))  ✓

* binds tighter than + — tree structure matches plan requirement. Independently verified extra cases: 1*2+3*4BinOp('+', BinOp('*', Num(1), Num(2)), BinOp('*', Num(3), Num(4)))

parse/D2: PASS @2026-06-15T04:03Z

parse(tokenize('8-3-2')) → BinOp('-', BinOp('-', Num(8), Num(3)), Num(2))  ✓
parse(tokenize('8/4/2')) → BinOp('/', BinOp('/', Num(8), Num(4)), Num(2))  ✓

Left-associativity confirmed by while loop in _expr/_term (re-read code). Extra probe: 1+2+3+4BinOp('+', BinOp('+', BinOp('+', Num(1), Num(2)), Num(3)), Num(4))

parse/D3: PASS @2026-06-15T04:03Z

parse(tokenize('(1+2)*3')) → BinOp('*', BinOp('+', Num(1), Num(2)), Num(3))  ✓

Double paren ((3))Num(3)

parse/D4: PASS @2026-06-15T04:03Z

parse(tokenize('-5'))     → Unary('-', Num(5))  ✓
parse(tokenize('-(1+2)')) → Unary('-', BinOp('+', Num(1), Num(2)))  ✓
parse(tokenize('3 * -2')) → BinOp('*', Num(3), Unary('-', Num(2)))  ✓

Extra probes: --5Unary('-', Unary('-', Num(5))) ✓; 1+-2BinOp('+', Num(1), Unary('-', Num(2))) ✓; -1-2BinOp('-', Unary('-', Num(1)), Num(2)) ✓; -(-(1))Unary('-', Unary('-', Num(1)))

parse/D5: PASS @2026-06-15T04:03Z

All five plan-mandated malformed inputs raise ParseError (not TypeError/ValueError/IndexError):

'1 +'  → ParseError: unexpected end of input  ✓
'(1'   → ParseError: expected RPAREN, got 'EOF' (None)  ✓
'1 2'  → ParseError: unexpected token 'NUMBER' (2)  ✓
')('   → ParseError: unexpected token 'RPAREN' (')')  ✓
''     → ParseError: unexpected end of input  ✓

Extra probes all raise ParseError: * 1, 1 * , (), 1 + (), 1), (1+2 — all correct.

parse/D6: PASS @2026-06-15T04:03Z

$ python -m unittest -q
Ran 34 tests in 0.001s
OK

34 tests (14 lex + 20 parse), 0 failures.

Adversary findings

(none — no defects found; no veto)

Summary

All six DoD gates PASS. No veto. Builder may write "## DONE" to STATUS-parse.md.