Phase 3a: spawn/record initializers use ':' (Rule A)

Comp = { f = v }  ->  Comp { f: v }. record() requires ':' and parse_spawn()
drops the '=' before the record; '=' is now assignment/binding only. Records
appear only in games, so the compiler seed is unaffected.

Migration: tools/ludic-tools/migrate_records.c (spawn-context aware). Verified
every golden byte-identical, old '=' form rejected, reseeded, test.sh 14/14.
Docs updated (LANGUAGE.md, BOOTSTRAP.md R2).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-08-27 15:58:00 +03:00
parent eac8f8f335
commit 39bd430ce8
12 changed files with 2499 additions and 2425 deletions

View file

@ -6,12 +6,12 @@ game Hello {
system Boot phase Start {
spawn Mob {
Pos = { x = 3, y = 4 }
Vel = { dx = 1, dy = 0 }
Pos { x: 3, y: 4 }
Vel { dx: 1, dy: 0 }
}
spawn Mob {
Pos = { x = 10, y = 2 }
Vel = { dx = 0, dy = 1 }
Pos { x: 10, y: 2 }
Vel { dx: 0, dy: 1 }
}
}