Phase 6a: rename core vocabulary (game/main/component/archetype/system)
game/module -> program, main -> entry, component -> property, archetype -> model, system -> handler. Done via a transitional self-hosting bootstrap: parser accepts both -> reseed -> compiler source moved to new keywords + parser tightened to new-only -> reseed (fixpoint holds). Old keywords now rejected. Token-safe corpus migration (tools/ludic-tools/rename_kw.c) leaves the LLVM @main/entry: labels in emit strings untouched; goldens byte-identical. Editor vocab (header/JetBrains/TextMate/emacs), check-docs wrapper, and doc fences updated; error string 'unknown component' -> 'unknown property'. test.sh 14/14, test-tools 28/0, check-vocabulary green. (Doc prose pass to follow.) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
3227e1e1d3
commit
42f955fd22
35 changed files with 2632 additions and 2646 deletions
|
|
@ -1,10 +1,10 @@
|
|||
# hello.ludic — smallest program that exercises the ECS pipeline
|
||||
game Hello {
|
||||
program Hello {
|
||||
|
||||
component Pos { x: int = 0, y: int = 0 }
|
||||
component Vel { dx: int = 0, dy: int = 0 }
|
||||
property Pos { x: int = 0, y: int = 0 }
|
||||
property Vel { dx: int = 0, dy: int = 0 }
|
||||
|
||||
system Boot phase Start {
|
||||
handler Boot phase Start {
|
||||
spawn Mob {
|
||||
Pos { x: 3, y: 4 }
|
||||
Vel { dx: 1, dy: 0 }
|
||||
|
|
@ -17,14 +17,14 @@ game Hello {
|
|||
|
||||
# a system can declare the entities it operates on: the body then runs once
|
||||
# per match, with the components bound and self() giving that entity.
|
||||
system Move phase FixedUpdate
|
||||
handler Move phase FixedUpdate
|
||||
query (p, v) [Pos, Vel]
|
||||
{
|
||||
p.x = p.x + v.dx
|
||||
p.y = p.y + v.dy
|
||||
}
|
||||
|
||||
system Report phase Update {
|
||||
handler Report phase Update {
|
||||
for (p) in query [Pos] {
|
||||
print_int(p.x)
|
||||
print_int(p.y)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue