artifacts: add calculators/ — the 30 built calculators (5/variant) + machine-docs + git logs
This commit is contained in:
@ -0,0 +1,21 @@
|
||||
# BACKLOG — Phase `parse`
|
||||
|
||||
## Build backlog
|
||||
_Read-only to Adversary — Builder maintains this section._
|
||||
|
||||
## Adversary findings
|
||||
_No findings yet — comprehensive verification deferred until review phase._
|
||||
|
||||
### Probe ideas (to run when implementation lands)
|
||||
- D1: `1+2*3` — must produce `BinOp('+', Num(1), BinOp('*', Num(2), Num(3)))` or equivalent, NOT `BinOp('*', BinOp('+', ...), ...)`.
|
||||
- D2: `8-3-2` — must be left-associative: `BinOp('-', BinOp('-', Num(8), Num(3)), Num(2))`.
|
||||
- D2: `8/4/2` — must be left-associative: `BinOp('/', BinOp('/', Num(8), Num(4)), Num(2))`.
|
||||
- D3: `(1+2)*3` — `+` must appear as LEFT child of `*`.
|
||||
- D4: `-5` — must parse as `Unary('-', Num(5))` or equivalent.
|
||||
- D4: `3 * -2` — unary on right side of binary op.
|
||||
- D4: `-(1+2)` — unary applied to parenthesized subexpr.
|
||||
- D5: `"1 +"` → ParseError (not generic exception).
|
||||
- D5: `"(1"` → ParseError.
|
||||
- D5: `"1 2"` → ParseError.
|
||||
- D5: `")("` → ParseError.
|
||||
- D5: `""` → ParseError.
|
||||
Reference in New Issue
Block a user