Phase 6b: annotation DSL (@Queries, @Handles) + docs prose pass
@Queries(these: [Prop{constraint}, ...], on: Model) on a handler desugars to the
existing S_QUERY loop: each property binds by its own name, a Prop{...} block
qualifies its bare fields to that property, and on: adds a {Model} tag filter.
Implemented via parse_queries_anno + qualify_fields (parse_game.ludic), wired
into parse_one_decl; @Handles parses on the program (documentation).
examples/annotations.ludic demonstrates it (output 3 1 0 0); test.sh 15/15.
Docs: added the Annotations section to LANGUAGE.md and did the vocabulary prose
pass (component->property, archetype->model, system->handler, game->program)
across the docs. check-docs + test-tools green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
69fe39bff1
commit
dfc17398cf
10 changed files with 3812 additions and 3113 deletions
|
|
@ -343,7 +343,23 @@ Full generation-from-one-list (emit the editor files from a manifest) was not
|
|||
needed: the bidirectional *checks* give the same guarantee — nothing can drift
|
||||
without CI failing — without a code-generation step to maintain.
|
||||
|
||||
**Phases 1–5 are complete.** All thirteen findings are resolved or resolved by an
|
||||
**Phases 1–5 are complete.**
|
||||
|
||||
### Phase 6 — vocabulary rename + annotation DSL ✅ DONE (follow-on request)
|
||||
Renamed the core nouns: `game`/`module` → `program`, `main` → `entry`,
|
||||
`component` → `property`, `archetype` → `model`, `system` → `handler`. Done via a
|
||||
transitional self-hosting bootstrap (accept both → reseed → move the compiler's
|
||||
own source to new keywords + tighten → reseed); old keywords now rejected.
|
||||
Token-safe corpus migration ([rename_kw.c](tools/ludic-tools/rename_kw.c)), goldens
|
||||
byte-identical. Reconciled the LSP indexer, editor vocab, check-docs wrapper, and
|
||||
docs; fixed two pre-existing toolchain bugs (a `set -e` bug in build-tools.sh that
|
||||
blocked all editor-binary rebuilds, and a stale LSP test offset).
|
||||
|
||||
Added an **annotation DSL**: `@Queries(these: [Prop{constraint}, …], on: Model)` on
|
||||
a handler desugars to the existing `S_QUERY` loop (each property binds by its own
|
||||
name; a `Prop{…}` constraint qualifies its bare fields; `on:` adds a `{Model}`
|
||||
tag), and `@Handles(…)` on a program parses as documentation. See
|
||||
[examples/annotations.ludic](examples/annotations.ludic); test.sh 15/15. All thirteen findings are resolved or resolved by an
|
||||
explicit, documented decision.
|
||||
|
||||
---
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue