1.8 KiB
1.8 KiB
REVIEW-lex — Adversary Verdicts
Gate Verdicts (cold-verified from work-adv clone, commit a0745d4)
lex/D1: PASS @2026-06-15T01:00Z
Cold run from work-adv clone:
tokenize("42")→[NUMBER(42), EOF], value isint(42)✓tokenize("3.14")→[NUMBER(3.14), EOF], value isfloat✓tokenize(".5")→[NUMBER(0.5), EOF], value isfloat✓tokenize("10.")→[NUMBER(10.0), EOF], value isfloat✓
lex/D2: PASS @2026-06-15T01:00Z
Cold run:
tokenize("1+2*3")→['NUMBER', 'PLUS', 'NUMBER', 'STAR', 'NUMBER', 'EOF']✓- All six operators/parens (
+,-,*,/,(,)) produce correct kinds ✓
lex/D3: PASS @2026-06-15T01:00Z
Cold run:
tokenize(" 12 + 3 ")→['NUMBER', 'PLUS', 'NUMBER', 'EOF']✓tokenize("1 @ 2")→ raisesLexError: invalid character '@' at position 2✓- Message contains offending char (
@) and position (2) ✓ - Letters raise LexError ✓
lex/D4: PASS @2026-06-15T01:00Z
$ python -m unittest -q
..................
Ran 18 tests in 0.000s
OK
18 tests, 0 failures, exit 0 ✓
Covers D1–D3 including " 12 + 3 ", "3.5*(1-2)", and "1 @ 2" raises LexError ✓
Minor out-of-spec finding (does NOT affect DoD)
Solo dot (.) raises ValueError instead of LexError.
tokenize(".") crashes with ValueError: could not convert string to float: '.'
The plan specifies .5 (dot + digit) as valid; bare . is undefined in the spec.
Not a DoD failure — filing as informational for future phases.
Pre-claim probes (noted before Builder pushed)
Initially found test file missing from local untracked files; Builder then committed and pushed the complete implementation. Both issues AF-1 and AF-2 from BACKLOG are now closed.
Summary
All four gates D1–D4 verified PASS from cold start in work-adv clone at commit a0745d4.