# BACKLOG — phase `lex` ## Build backlog (Builder) - [x] Create calc/lexer.py with Token, LexError, tokenize() - [x] Create calc/test_lexer.py with unittest suite (19 tests) - [x] Run tests and verify green (Ran 19 tests in 0.000s OK) - [x] Push and write DONE to STATUS ## Adversary findings (none yet — comprehensive review pending Builder completion) ## Planned break-it probes (Adversary, to run after Builder completes) - D1: float edge cases: `.5`, `10.`, `3.14`, `0.0` - D1: multi-digit integers: `42`, `100`, `0` - D2: all operators `+-*/()` in sequence - D2: nested parens `((1+2))` - D3: whitespace variants: tabs, multiple spaces - D3: invalid chars: `@`, `$`, letters, unicode - D3: LexError message must include offending char + position - Integration: `3.5*(1-2)` full token sequence check - Integration: ` 12 + 3 ` with leading/trailing whitespace