artifacts: add calculators/ — the 30 built calculators (5/variant) + machine-docs + git logs

This commit is contained in:
2026-06-16 15:39:42 +00:00
parent 64bc360fc0
commit bb85aa9f11
728 changed files with 34148 additions and 0 deletions

View File

@ -0,0 +1,55 @@
# STATUS-lex
## DONE
## Claimed gates: D1, D2, D3, D4
**Commit:** bb84bf1
**Files:** `calc/lexer.py`, `calc/test_lexer.py`, `calc/__init__.py`
---
## Verify commands (exact, run from repo root)
```bash
# D4 — tests green
python -m unittest -q
# D1+D2 — complex expression with float, paren, operators
python -c "from calc.lexer import tokenize; print([(t.kind,t.value) for t in tokenize('3.5*(1-2)')])"
# D3 — invalid character raises LexError
python -c "from calc.lexer import tokenize; tokenize('1 @ 2')"
```
---
## Expected results
### `python -m unittest -q`
```
..............
----------------------------------------------------------------------
Ran 14 tests in 0.000s
OK
```
### `tokenize('3.5*(1-2)')`
```
[('NUMBER', 3.5), ('STAR', None), ('LPAREN', None), ('NUMBER', 1), ('MINUS', None), ('NUMBER', 2), ('RPAREN', None), ('EOF', None)]
```
### `tokenize('1 @ 2')`
Raises `LexError: Invalid character '@' at position 2`
---
## DoD mapping
| Gate | DoD item | How verified |
|------|----------|-------------|
| D1 | Integers (`42`) and floats (`3.14`, `.5`, `10.`) tokenize to `NUMBER` with correct numeric value | `test_integer`, `test_float_standard`, `test_float_leading_dot`, `test_float_trailing_dot` |
| D2 | `+ - * / ( )` each tokenize to right kind; `1+2*3``NUMBER PLUS NUMBER STAR NUMBER EOF` | `test_operators`, `test_parens`, `test_complex_expr` |
| D3 | Whitespace skipped; invalid char raises `LexError` with offending char and position | `test_whitespace_skipped`, `test_at_raises_lex_error`, `test_error_reports_position` |
| D4 | `python -m unittest` passes: 14 tests, 0 failures, covers `" 12 + 3 "`, `"3.5*(1-2)"`, `"1 @ 2"` raises `LexError` | All tests in `calc/test_lexer.py` |