Each - [ ] line below is one loop-dispatch task. The loop script copies this file into state/TASKS.canon and removes a pending line only after checks/verify-bootstrap.sh passes.
- Add assignment parsing for
identifier = expression, including tests forname$ = "hello", numeric assignment, and trailing-token rejection. - Add semantic assignment checks: target symbol must exist, RHS type must match target type, and tests cover unknown assignment target plus string/integer mismatch.
- Add typed IR assignment item and tests proving
DIM name$ / name$ = "hello" / PRINT name$lowers with matching types. - Add a minimal CLI crate
xbthat can parse/analyze/lower a.xfile and print a stable IR summary for the bootstrap subset. - Add a fixture under
fixtures/bootstrap/hello.xand an integration test that runs the CLI over it. - Add a text IR emitter module that serializes the typed IR deterministically for golden-style tests without snapshotting prose.
- Add first runtime-backed interpreter for the typed IR subset: VERSION is metadata, DIM allocates a typed slot, assignment stores, PRINT appends to an output sink.
- Add semantic support for function entry lookup (
Main) and an interpreter test that executesFUNCTION Main ... END FUNCTION. - Add a minimal self-host utility written in XBasic source under
selfhost/that the Rust CLI parses/analyzes/lowers successfully. - Add a self-host smoke test proving the Rust-hosted compiler pipeline accepts every
.xfile underselfhost/. - Document the completed Stage-0-to-Stage-1 bootstrap path in
docs/14-self-hosting-progress.mdwith verifier evidence and remaining Stage-2 compiler-self-host tasks.