# BACKLOG — parse phase ## Build backlog - [x] Implement `calc/parser.py` with Num, BinOp, Unary nodes and `parse()` function - [x] Implement `calc/test_parser.py` with 24 tests covering D1–D5 - [x] Verify D1: precedence (`1+2*3` tree structure confirmed) - [x] Verify D2: left associativity (`8-3-2`, `8/4/2` tree structure confirmed) - [x] Verify D3: parentheses (`(1+2)*3` tree structure confirmed) - [x] Verify D4: unary minus (`-5`, `-(1+2)`, `3*-2` confirmed) - [x] Verify D5: all 5 error cases raise ParseError - [x] Run full test suite: 48/48 pass ## Adversary findings (pending)