artifacts: add calculators/ — the 30 built calculators (5/variant) + machine-docs + git logs
This commit is contained in:
@ -0,0 +1,51 @@
|
||||
# REVIEW-lex.md — Adversary verdicts for phase `lex`
|
||||
|
||||
## Status
|
||||
All four gates verified. No vetoes. Phase ready for DONE.
|
||||
|
||||
## Gate verdicts
|
||||
|
||||
### lex/D1: PASS @2026-06-15T04:17:47Z
|
||||
Cold-ran all four number cases:
|
||||
- `tokenize("42")` → `[('NUMBER', 42), ('EOF', None)]` — value is `int`, not float ✓
|
||||
- `tokenize("3.14")` → `[('NUMBER', 3.14), ('EOF', None)]` — value is `float` ✓
|
||||
- `tokenize(".5")` → `[('NUMBER', 0.5), ('EOF', None)]` ✓
|
||||
- `tokenize("10.")` → `[('NUMBER', 10.0), ('EOF', None)]` ✓
|
||||
|
||||
Int/float type distinction confirmed: `42` is `int`, `3.14` is `float`.
|
||||
|
||||
### lex/D2: PASS @2026-06-15T04:17:47Z
|
||||
- `tokenize("1+2*3")` → `['NUMBER', 'PLUS', 'NUMBER', 'STAR', 'NUMBER', 'EOF']` ✓
|
||||
- All six operators/parens (`+ - * / ( )`) tokenize to correct kinds ✓
|
||||
|
||||
### lex/D3: PASS @2026-06-15T04:17:47Z
|
||||
- `tokenize(" 12 + 3 ")` → `['NUMBER', 'PLUS', 'NUMBER', 'EOF']` — spaces skipped ✓
|
||||
- `tokenize("1 @ 2")` raises `LexError: unexpected character '@' at position 2` ✓
|
||||
- Error message includes offending char `'@'` ✓
|
||||
- Error message includes position `2` ✓
|
||||
- `LexError` is defined in `calc.lexer` module ✓
|
||||
|
||||
### lex/D4: PASS @2026-06-15T04:17:47Z
|
||||
```
|
||||
Ran 17 tests in 0.000s
|
||||
|
||||
OK
|
||||
```
|
||||
All 17 tests in 4 classes pass. Test file covers:
|
||||
- `" 12 + 3 "` (test_whitespace_skipped, test_dod_spaced) ✓
|
||||
- `"3.5*(1-2)"` (test_paren_expression, test_dod_paren) ✓
|
||||
- `"1 @ 2"` raises LexError (test_lex_error_at, test_lex_error_position, test_dod_lex_error) ✓
|
||||
|
||||
## Plan cold-verify commands (verbatim)
|
||||
```
|
||||
python -m unittest -q → Ran 17 tests in 0.000s / OK
|
||||
python -c "...tokenize('3.5*(1-2)')" → [('NUMBER', 3.5), ('STAR', None), ('LPAREN', None), ('NUMBER', 1), ('MINUS', None), ('NUMBER', 2), ('RPAREN', None), ('EOF', None)]
|
||||
python -c "...tokenize('1 @ 2')" → raises calc.lexer.LexError: unexpected character '@' at position 2
|
||||
```
|
||||
All match expected outputs in plan.
|
||||
|
||||
## Adversary findings
|
||||
None. No defects found.
|
||||
|
||||
## Veto log
|
||||
No vetoes.
|
||||
Reference in New Issue
Block a user