phase: 20.49 COMPLETE; 20.50 Flow+String minimal reps; 20.51 selfhost v0/v1 minimal (Option A/B); hv1-inline binop/unop/copy; docs + run_all + CURRENT_TASK -> 21.0

This commit is contained in:
nyash-codex
2025-11-06 15:41:52 +09:00
parent 2dc370223d
commit 77d4fd72b3
1658 changed files with 6288 additions and 2612 deletions

View File

@ -0,0 +1,39 @@
// StringStd — minimal standard string helpers (commonized API)
static box StringStd {
length(s) {
if s == null { return 0 }
return s.length()
}
substring(s, start, end) {
if s == null { return "" }
if start == null { start = 0 }
if end == null { end = s.length() }
return s.substring(start, end)
}
indexOf(s, needle, start) {
if s == null { return -1 }
if needle == null { needle = "" }
if start == null { return s.indexOf(needle) }
return s.indexOf(needle, start)
}
lastIndexOf(s, needle, start) {
if s == null { return -1 }
if needle == null { needle = "" }
if start == null { return s.lastIndexOf(needle) }
return s.lastIndexOf(needle, start)
}
esc_json(s) {
if s == null { return "" }
local out = ""
local i = 0
local n = s.length()
loop(i < n) {
local ch = s.substring(i, i+1)
if ch == "\\" { out = out + "\\\\" } else { if ch == "\"" { out = out + "\\\"" } else { out = out + ch } }
i = i + 1
}
return out
}
}