diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-05-28 21:07:46 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-05-28 21:07:46 -0700 |
commit | 5d42362d611c9103a07f768d8d2bcc1911e0f41b (patch) | |
tree | b3108e56546a98596fcded61d559cd89ddf8d317 /eval.c | |
parent | f24dad0044cd108c537477373a20027ee660de4c (diff) | |
download | txr-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.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -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); |