ref: a9a7d5b32a9423f871311384af6260a3848291d1
dir: /lib/escfmt/escre.myr/
use std pkg escfmt = type escre = byte[:] const re : (s : byte[:] -> escre) ;; const __init__ = { var s = ("" : escre) std.fmtinstall(std.typeof(s), refmt, [][:]) } const re = {s -> (s : escre) } const refmt = {sb, ap, args var s : byte[:] s = std.vanext(ap) for c in std.bychar(s) match c | '|': std.sbputs(sb, "\\|") | '*': std.sbputs(sb, "\\*") | '+': std.sbputs(sb, "\\+") | '?': std.sbputs(sb, "\\?") | '[': std.sbputs(sb, "\\[") | ']': std.sbputs(sb, "\\]") | '^': std.sbputs(sb, "\\^") | '$': std.sbputs(sb, "\\$") | '.': std.sbputs(sb, "\\.") | '\\': std.sbputs(sb, "\\.") | '(': std.sbputs(sb, "\\(") | ')': std.sbputs(sb, "\\)") | _: std.sbputc(sb, c) ;; ;; }