TN5RCIH3OI5AW756GICACN24TBABGLNDQ7LZJTUYHXYVW3ARGBBQC 6WM2DD32XSC2HFLOXBDPFCU6BI2BD5ZYFGBIEIVEQOKWRCNTXROQC UW27LKXM2BJ77FQLTY4WPKDSSWI2RFNFRJ7CB4U3TS7KYVIV72LQC FITNBSMMJCQIFJGUMVSZYHJM4OSBXEZO5YWYEJ4CXGMFPBSIT5WAC 7SNXCC5KSDXU3MBJT2FBEPAISWPY62DHPC2RLEYXC2WVTWX5TKKQC RHFZ2YBK7K6MYUJDJGDOOIKZ6BSCCL2C7EEGYGUYZYKU7JCFGVRQC MDCE6UHRABRWF7Z7NOQ3OTB5WXRIHPY7A625V5E6COPS44ETZSQQC CSYWOT2I424JQUSOH4DB6UNOOHMB5FOA5B7AY4CE45EQORRB4LWAC 2CXQ53RHKGIT5KR7VHOVRVHCD5MK4V2J3AJDQ3CNSJLHJXXA4GXQC # woo, tricky quoting inside this very script, before it gets to glotawklisp_eval_should_be '(string-length ".\\a.\\b.\\f.\\n.\\r.\\t.\\v.\\\\.\\".")' '19' 'string read backslash escapes'lisp_eval_should_be_tricky_output '(mapcar (lambda (x) (substr ".\\a.\\b.\\f.\\n.\\r.\\t.\\v.\\\\.\\"." x 1)) '\''(2 4 6 8 10 12 14 16 18))' ' 28 22 5c 61 22 20 22 5c 62 22 20 22 5c 66 22 20 22 5c 6e 22 20 22 5c 72 22 20 22 5c 74 22 20 22 5c 76 22 20 22 5c 5c 22 20 22 5c 22 22 29 0a' 'string print backslash escapes'
ans = _string(substr(this, 2, length(this)-2))
ans = substr(this, 2, length(this)-2)# effectuate backslash-escapes. note we are only# supporting single-letter escapes, not \012 style octal# escapes.## logg_dbg("read_atom", "string before backslash escapes: " ans)while(match(ans, /\\[abfnrtv"\\]/)) {ch = _string_unescapes[substr(ans, RSTART+1, 1)]ans = substr(ans, 1, RSTART-1) ch substr(ans, RSTART+RLENGTH)}# careful.# logg_dbg("read_atom", "string after backslash escapes: " ans)# ok.ans = _string(ans)
BEGIN {_string_reescapes["\a"] = "\\a"_string_reescapes["\b"] = "\\b"_string_reescapes["\f"] = "\\f"_string_reescapes["\n"] = "\\n"_string_reescapes["\r"] = "\\r"_string_reescapes["\t"] = "\\t"_string_reescapes["\v"] = "\\v"_string_reescapes["\\"] = "\\\\"_string_reescapes["\""] = "\\\""}
function _repr_string(n) {return "\"" _STRING[n] "\""
function _repr_string(n, s, chs) {s = _STRING[n]gsub(/\\/, "\\\\", s)gsub(/"/, "\\\"", s)while(match(s, /[\a\b\f\n\r\t\v]/)) {# logg_dbg("_repr_string", "reescaping " s)chs = _string_reescapes[substr(s, RSTART, 1)]s = substr(s, 1, RSTART-1) chs substr(s, RSTART+1)# logg_dbg("_repr_string", "now it is " s)}return "\"" s "\""