Phase 6e: unify builtin naming (loaders domain-first, set_reg)
Fixed the naming inconsistencies the cohesion audit flagged, converging on the domain-first style the bulk of the surface already uses (ui_*, text_*, rng_*, font_load, image_load): - load_png -> png_load (asset loaders were split: font_load/image_load - load_sprites -> sprites_load were domain-first, load_* were verb-first) - setreg -> set_reg (missing underscore vs ui_set_int/ui_set_text) Game builtins resolve to their `rt_` runtime function, so the renames are in runtime/native (rt_png_load, rt_sprites_load, rt_set_reg) plus the ~100 example call sites; `become` lowering in emit_machine now emits @fn_rt_set_reg. Purely a surface rename — every renamed call maps to the same runtime symbol, so behavior and golden renders are byte-identical. Vocabulary + docs updated (ludic_syntax.h, grammar, LudicTokens.kt, LANGUAGE.md, README, SYNTAX-REDESIGN). Reseeded; C-free fixpoint holds; goldens identical; 17/17; vocab clean. Left as-is: os_argc/os_arg (compiler-internal intrinsics, already namespaced and consistent with each other; renaming would need a bootstrap dance for little gain). reg/set_reg keep the getter-bare/setter-set_ shape ui_focused/ui_set_int already use. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
c5bd50d544
commit
cc701013f5
16 changed files with 122 additions and 122 deletions
|
|
@ -29,13 +29,13 @@ program Snake {
|
|||
spawn S0 { Seg { order: 0 }; Pos { x: 10, y: 7 } }
|
||||
spawn S1 { Seg { order: 1 }; Pos { x: 9, y: 7 } }
|
||||
spawn S2 { Seg { order: 2 }; Pos { x: 8, y: 7 } }
|
||||
setreg(R_DIR, 3)
|
||||
setreg(R_LEN, 3)
|
||||
setreg(R_TICK, 0)
|
||||
setreg(R_MODE, 0)
|
||||
setreg(R_SCORE, 0)
|
||||
setreg(R_FX, 14)
|
||||
setreg(R_FY, 7)
|
||||
set_reg(R_DIR, 3)
|
||||
set_reg(R_LEN, 3)
|
||||
set_reg(R_TICK, 0)
|
||||
set_reg(R_MODE, 0)
|
||||
set_reg(R_SCORE, 0)
|
||||
set_reg(R_FX, 14)
|
||||
set_reg(R_FY, 7)
|
||||
return 0
|
||||
}
|
||||
|
||||
|
|
@ -44,25 +44,25 @@ program Snake {
|
|||
handler Input phase Input {
|
||||
let k = key()
|
||||
if reg(R_MODE) == 0 {
|
||||
if k == 'w' { if reg(R_DIR) != 1 { setreg(R_DIR, 0) } }
|
||||
if k == 's' { if reg(R_DIR) != 0 { setreg(R_DIR, 1) } }
|
||||
if k == 'a' { if reg(R_DIR) != 3 { setreg(R_DIR, 2) } }
|
||||
if k == 'd' { if reg(R_DIR) != 2 { setreg(R_DIR, 3) } }
|
||||
if k == 'w' { if reg(R_DIR) != 1 { set_reg(R_DIR, 0) } }
|
||||
if k == 's' { if reg(R_DIR) != 0 { set_reg(R_DIR, 1) } }
|
||||
if k == 'a' { if reg(R_DIR) != 3 { set_reg(R_DIR, 2) } }
|
||||
if k == 'd' { if reg(R_DIR) != 2 { set_reg(R_DIR, 3) } }
|
||||
}
|
||||
if reg(R_MODE) == 1 {
|
||||
if k == 0 { setreg(R_ACK, 1) }
|
||||
if k == 0 { set_reg(R_ACK, 1) }
|
||||
if k != 0 { if reg(R_ACK) == 1 { reset(0) } }
|
||||
}
|
||||
}
|
||||
|
||||
handler Move phase Update {
|
||||
if reg(R_MODE) == 0 {
|
||||
setreg(R_TICK, reg(R_TICK) + 1)
|
||||
set_reg(R_TICK, reg(R_TICK) + 1)
|
||||
if reg(R_TICK) >= 6 {
|
||||
setreg(R_TICK, 0)
|
||||
set_reg(R_TICK, 0)
|
||||
let len = reg(R_LEN)
|
||||
for (pt, stg) in query [Pos, Seg] {
|
||||
if stg.order == len - 1 { setreg(R_TX, pt.x); setreg(R_TY, pt.y) }
|
||||
if stg.order == len - 1 { set_reg(R_TX, pt.x); set_reg(R_TY, pt.y) }
|
||||
}
|
||||
for step in 0 .. len {
|
||||
let i = len - 1 - step
|
||||
|
|
@ -76,35 +76,35 @@ program Snake {
|
|||
}
|
||||
}
|
||||
}
|
||||
setreg(R_ATE, 0)
|
||||
set_reg(R_ATE, 0)
|
||||
for (ph, sh) in query [Pos, Seg] {
|
||||
if sh.order == 0 {
|
||||
if reg(R_DIR) == 0 { ph.y = ph.y - 1 }
|
||||
if reg(R_DIR) == 1 { ph.y = ph.y + 1 }
|
||||
if reg(R_DIR) == 2 { ph.x = ph.x - 1 }
|
||||
if reg(R_DIR) == 3 { ph.x = ph.x + 1 }
|
||||
if ph.x < 0 { setreg(R_MODE, 1) }
|
||||
if ph.x >= GW { setreg(R_MODE, 1) }
|
||||
if ph.y < 0 { setreg(R_MODE, 1) }
|
||||
if ph.y >= GH { setreg(R_MODE, 1) }
|
||||
if ph.x == reg(R_FX) { if ph.y == reg(R_FY) { setreg(R_ATE, 1) } }
|
||||
if ph.x < 0 { set_reg(R_MODE, 1) }
|
||||
if ph.x >= GW { set_reg(R_MODE, 1) }
|
||||
if ph.y < 0 { set_reg(R_MODE, 1) }
|
||||
if ph.y >= GH { set_reg(R_MODE, 1) }
|
||||
if ph.x == reg(R_FX) { if ph.y == reg(R_FY) { set_reg(R_ATE, 1) } }
|
||||
}
|
||||
}
|
||||
for (ph, sh) in query [Pos, Seg] {
|
||||
if sh.order == 0 {
|
||||
for (pb, sb) in query [Pos, Seg] {
|
||||
if sb.order > 0 {
|
||||
if pb.x == ph.x { if pb.y == ph.y { setreg(R_MODE, 1) } }
|
||||
if pb.x == ph.x { if pb.y == ph.y { set_reg(R_MODE, 1) } }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if reg(R_ATE) == 1 {
|
||||
setreg(R_SCORE, reg(R_SCORE) + 1)
|
||||
set_reg(R_SCORE, reg(R_SCORE) + 1)
|
||||
spawn Body { Seg { order: len }; Pos { x: reg(R_TX), y: reg(R_TY) } }
|
||||
setreg(R_LEN, len + 1)
|
||||
setreg(R_FX, rng_range(0, GW - 1))
|
||||
setreg(R_FY, rng_range(0, GH - 1))
|
||||
set_reg(R_LEN, len + 1)
|
||||
set_reg(R_FX, rng_range(0, GW - 1))
|
||||
set_reg(R_FY, rng_range(0, GH - 1))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue