3 function PrStr(ast, readable)
9 call add(ret, PrStr(e, r))
11 return "(" . join(ret, " ") . ")"
15 call add(ret, PrStr(e, r))
17 return "[" . join(ret, " ") . "]"
20 for [k, v] in items(obj.val)
21 let keyobj = HashParseKey(k)
22 call add(ret, PrStr(keyobj, r))
23 call add(ret, PrStr(v, r))
25 return "{" . join(ret, " ") . "}"
27 let numargs = ListCount(obj.val.params)
28 return "<Macro:" . numargs . "-arguments>"
30 let numargs = ListCount(obj.val.params)
31 return "<Function:" . numargs . "-arguments>"
32 elseif NativeFunctionQ(obj)
33 let funcname = obj.val.name
34 return "<NativeFunction:" . funcname . ">"
36 return "(atom " . PrStr(obj.val, 1) . ")"
42 let str = substitute(str, '\\', '\\\\', "g")
43 let str = substitute(str, '"', '\\"', "g")
44 let str = substitute(str, "\n", '\\n', "g")
45 return '"' . str . '"'
55 elseif IntegerQ(obj) || FloatQ(obj)
56 return string(obj.val)