docs: spec §2 (reader) — grammar, reader-macro catalog, syntax-quote contract

The lexical-syntax chapter, granularity modeled on jank's 62-file
per-construct reader corpus: token grammar (whitespace/comments, collections
with read-time duplicate checks, numbers incl. the N/M tower question,
symbols/keywords incl. ::auto-resolution, strings/chars), the quote-family
sugars, the full #-dispatch catalog with normative entries (anonymous fn
%-derivation, discard composition, reader conditionals, symbolic floats,
tagged literals), and the syntax-quote contract (core/alias/current-ns
qualification, template-stable gensyms, ~' idiom, distribution through
collections).

Adapting the corpus surfaced and filed three findings, recorded as labeled
divergences/UNVERIFIED in the chapter: nested syntax-quote doesn't collapse
(S25, (= "meow" ```"meow") is false), #inst reads as a bare string (identity
data reader, no instant type), and jolt satisfies :clj in reader
conditionals (feature-key policy under review).

reader-forms-spec gains 11 chapter-cited rows (discard stacking, ##Inf/
##-Inf/##NaN, :default conditionals, qualified var-quote identity, gensym
stability within vs across templates) — all passing.
This commit is contained in:
Yogthos 2026-06-10 11:23:38 -04:00
parent 4d4402b75a
commit 2224e40afc
3 changed files with 206 additions and 1 deletions

View file

@ -76,7 +76,7 @@ independent execution paths) and in the cross-dialect clojure-test-suite.
| § | File | Status |
|---|---|---|
| 1 | `01-evaluation.md` | planned |
| 2 | `02-reader.md` | planned (first: jank's reader corpus gives conformance shape) |
| 2 | `02-reader.md` | **drafted** (grammar + reader-macro catalog; 2 divergences open) |
| 3 | `03-special-forms.md` | **exemplars written** (`if`, `let*`); catalog complete |
| 4 | `04-data-types.md` | planned (numeric-tower design note required) |
| 5 | `05-sequences.md` | planned (laziness contract from jolt Phase-5 work) |