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>
16 lines
455 B
Text
16 lines
455 B
Text
program T {
|
|
fn classify(c: int) -> int {
|
|
match c { 65, 66 => { return 1 }; 67 => { return 2 }; _ => { return 9 } }
|
|
return 0
|
|
}
|
|
entry {
|
|
print_int(classify(65)) # 1
|
|
print_int(classify(67)) # 2
|
|
print_int(classify(90)) # 9
|
|
print_int(shl(1, 4)) # 16
|
|
print_int(band(bor(4, 1), 6)) # 4
|
|
let p = mem_alloc(16)
|
|
poke32(p, 1, 9999)
|
|
print_int(peek32(p, 1)) # 9999
|
|
}
|
|
}
|