artifacts: add calculators/ — the 30 built calculators (5/variant) + machine-docs + git logs
This commit is contained in:
@ -0,0 +1,60 @@
|
||||
# REVIEW — lex phase (Adversary)
|
||||
|
||||
## Status
|
||||
All four gates verified PASS. No defects found.
|
||||
|
||||
## Gate verdicts
|
||||
|
||||
### lex/D1: PASS @2026-06-15T06:09:05Z
|
||||
**Evidence:**
|
||||
```
|
||||
NUMBER 42 int
|
||||
NUMBER 3.14 float
|
||||
NUMBER 0.5 float
|
||||
NUMBER 10.0 float
|
||||
```
|
||||
- `tokenize("42")` → `[Token(NUMBER, 42), Token(EOF, None)]` — int type confirmed
|
||||
- All float variants (`3.14`, `.5`, `10.`) produce float values
|
||||
- Regex `r'\d+\.?\d*|\.\d+'` correctly handles all cases
|
||||
|
||||
### lex/D2: PASS @2026-06-15T06:09:05Z
|
||||
**Evidence:**
|
||||
```
|
||||
['NUMBER', 'PLUS', 'NUMBER', 'STAR', 'NUMBER', 'EOF']
|
||||
['PLUS', 'MINUS', 'STAR', 'SLASH', 'LPAREN', 'RPAREN', 'EOF']
|
||||
```
|
||||
- `tokenize("1+2*3")` → correct 6-token sequence
|
||||
- All six operators `+-*/()` map to correct kinds
|
||||
|
||||
### lex/D3: PASS @2026-06-15T06:09:05Z
|
||||
**Evidence:**
|
||||
- `tokenize(" 12 + 3 ")` → `['NUMBER', 'PLUS', 'NUMBER', 'EOF']` — spaces skipped
|
||||
- `tokenize("1\t+\t2")` → `['NUMBER', 'PLUS', 'NUMBER', 'EOF']` — tabs skipped
|
||||
- `tokenize("1 @ 2")` raises `calc.lexer.LexError: unexpected character '@' at position 2`
|
||||
- LexError message contains both the char (`@`) and position (`2`) ✓
|
||||
- Letters (`abc`) and `$` also raise LexError ✓
|
||||
|
||||
### lex/D4: PASS @2026-06-15T06:09:05Z
|
||||
**Evidence:**
|
||||
```
|
||||
----------------------------------------------------------------------
|
||||
Ran 24 tests in 0.000s
|
||||
|
||||
OK
|
||||
```
|
||||
`python -m unittest -q` — 24 tests, 0 failures, 0 errors
|
||||
|
||||
## Probes run (independent / adversarial)
|
||||
|
||||
All probes ran from cold start in Adversary's own clone.
|
||||
|
||||
- `tokenize('')` → `['EOF']` — empty string handled ✓
|
||||
- `tokenize('10.+.5')` → `[(NUMBER, 10.0), (PLUS, +), (NUMBER, 0.5), EOF]` — consecutive floats ✓
|
||||
- `tokenize('-3')` → `[(MINUS, -), (NUMBER, 3), EOF]` — unary minus handled as operator ✓
|
||||
- `tokenize('((1))')` → `[LPAREN, LPAREN, NUMBER, RPAREN, RPAREN, EOF]` — nested parens ✓
|
||||
- `tokenize('abc')` raises LexError at position 0 ✓
|
||||
- `tokenize('$')` raises LexError at position 0 ✓
|
||||
- Plan's own verification command confirmed:
|
||||
`tokenize('3.5*(1-2)')` → `[('NUMBER', 3.5), ('STAR', '*'), ('LPAREN', '('), ('NUMBER', 1), ('MINUS', '-'), ('NUMBER', 2), ('RPAREN', ')'), ('EOF', None)]` ✓
|
||||
|
||||
No defects found. No veto.
|
||||
Reference in New Issue
Block a user