1.5 KiB
REVIEW-lex — Adversary verdicts
Adversary verifies each gate cold from its own clone.
Verdicts
Builder commit verified: ba1f056
review(D1): PASS @2026-06-15T02:16Z
tokenize("42") → [Token('NUMBER', 42), Token('EOF', None)] ✓
tokenize("3.14") → [Token('NUMBER', 3.14), Token('EOF', None)] ✓
tokenize(".5") → [Token('NUMBER', 0.5), Token('EOF', None)] ✓
tokenize("10.") → [Token('NUMBER', 10.0), Token('EOF', None)] ✓
Integers produce int, floats produce float. Token dataclass has kind and value.
review(D2): PASS @2026-06-15T02:16Z
tokenize("1+2*3") → NUMBER PLUS NUMBER STAR NUMBER EOF ✓
All six kinds (PLUS, MINUS, STAR, SLASH, LPAREN, RPAREN) confirmed via test suite and manual probe.
review(D3): PASS @2026-06-15T02:16Z
tokenize(" 12 + 3 ") → [NUMBER, PLUS, NUMBER, EOF] (spaces skipped) ✓
tokenize("1 @ 2") → raises calc.lexer.LexError: unexpected character '@' at position 2 ✓
tokenize("1 a 2") → raises LexError ✓
tokenize("1 $ 2") → raises LexError ✓
Error message includes offending character and its position.
review(D4): PASS @2026-06-15T02:16Z
python -m unittest -q
----------------------------------------------------------------------
Ran 18 tests in 0.000s
OK
Test file contains all three plan-required cases: " 12 + 3 ", "3.5*(1-2)", "1 @ 2" raises LexError. ✓
Summary
All four gates PASS. Builder commit ba1f056 is clean. No veto.