summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-05-28 21:07:46 -0700
committerKaz Kylheku <kaz@kylheku.com>2021-05-28 21:07:46 -0700
commit5d42362d611c9103a07f768d8d2bcc1911e0f41b (patch)
treeb3108e56546a98596fcded61d559cd89ddf8d317 /eval.c
parentf24dad0044cd108c537477373a20027ee660de4c (diff)
downloadtxr-5d42362d611c9103a07f768d8d2bcc1911e0f41b.tar.gz
txr-5d42362d611c9103a07f768d8d2bcc1911e0f41b.tar.bz2
txr-5d42362d611c9103a07f768d8d2bcc1911e0f41b.zip
json: get-json function.
* eval.c (eval_init): get-json intrinsic registered. * parser.c (prime_parser): Handle prime_json. (lisp_parse_impl): Take enum prime_parser argument directly instead of the interactive flag. (lisp_parse, nread, iread): Pass appropriate prime_parser value instead of the original flag. (get_json): New function. Like nread, but passes prime_json. * parser.h (enum prime_parser): New constant, prime_json. (get_json): Declared. * parser.l (prime_scanner): Handle prime_json. * parser.y (SECRET_ESCAPE_J): New terminal symbol. (spec): New productions around SECRET_ESCAPE_J for parsing JSON. * lex.yy.c.shipped, y.tab.c.shipped, y.tab.h.shipped: Updated. * txr.1: Documented. * share/txr/stdlib/doc-syms.tl: Updated.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 117890c7..ca7f09f5 100644
--- a/eval.c
+++ b/eval.c
@@ -6809,6 +6809,7 @@ void eval_init(void)
reg_fun(intern(lit("lisp-parse"), user_package), func_n5o(nread, 0));
reg_fun(intern(lit("read"), user_package), func_n5o(nread, 0));
reg_fun(intern(lit("iread"), user_package), func_n5o(iread, 0));
+ reg_fun(intern(lit("get-json"), user_package), func_n5o(get_json, 0));
reg_fun(intern(lit("txr-parse"), user_package), func_n4o(txr_parse, 0));
reg_fun(intern(lit("load"), user_package), func_n1(load));
reg_var(load_path_s, nil);