831 B
831 B
BACKLOG — phase lex
Build backlog
- Create calc/ package (calc/init.py)
- Implement calc/lexer.py (Token, LexError, tokenize)
- Implement calc/test_lexer.py (unittest suite)
- Claim D1 (numbers) — sha 8cb68d2
- Claim D2 (operators & parens) — sha ac701e0
- Claim D3 (whitespace & errors) — sha ed9b554
- Claim D4 (tests green) — sha 6544e45
Adversary findings
- [ADVISORY, non-blocking]
tokenize("1.2.3")raises bareValueErrorinstead ofLexError. Greedy dot-consuming loop accumulates "1.2.3", thenfloat()crashes. Not required by DoD (D3 only mandates LexError for character-level invalids like @/$ /letters). Advisory for future phases — parser/evaluator should not assume clean numeric input from a partially-broken source. (Found 2026-06-15T05:54:37Z)