summaryrefslogtreecommitdiffstats
path: root/eval.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-08-30 08:47:29 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-09-02 22:22:48 -0700
commit4463445b017cd0099cbb0fa050d199a814505f72 (patch)
treed098442a4183c67bdcbeb90db97172d12685c166 /eval.h
parent834f4f7d1e56cee66b8cda42ca8bf36da26fe659 (diff)
downloadtxr-4463445b017cd0099cbb0fa050d199a814505f72.tar.gz
txr-4463445b017cd0099cbb0fa050d199a814505f72.tar.bz2
txr-4463445b017cd0099cbb0fa050d199a814505f72.zip
Introducing structs.
* args.c (args_cat_zap): New function. * args.h: (args_cat_zap): Declared. * eval.c (struct_lit_s): New symbol variable. (eval_init): Initialize struct_lit_s. * eval.h (struct_lit_s): Declared. * gc.c (finalize): If a symbol has a struct slot hash attached to it, we must free it when the symbol is reclaimed. * lib.c (make_sym): Initialize symbol's slot_cache pointer to null. (copy): Copy structure objects. (init): Call struct_init to initialize struct module. * lib.h (SLOT_CACHE_SIZE): New preprocessor symbol (slot_cache_line_t, slot_cache_t): New typedefs. (struct sym): New member, slot_cache. * lisplib.c (struct_set_entries, struct_instantiate): New static functions. (liplib_init): Register new functions in dl_table. parser.y (HASH_S): New terminal symbol. (struct): New grammar rule. (n_expr): Derive struct. (yybadtoken): Map HASH_S to #S string. parser.l (grammar): Recognize #S and return HASH_S token. share/txr/stdlib/place.tl (slot): New defplace. share/txr/stdlib/struct.tl: New file. struct.c: New file. struct.h: New file. * Makefile (OBJS): Adding struct.o.
Diffstat (limited to 'eval.h')
-rw-r--r--eval.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/eval.h b/eval.h
index ea6c7a46..301ac55c 100644
--- a/eval.h
+++ b/eval.h
@@ -25,7 +25,7 @@
*/
extern val dwim_s, lambda_s, vector_lit_s, vector_list_s;
-extern val hash_lit_s, hash_construct_s, qref_s;
+extern val hash_lit_s, hash_construct_s, struct_lit_s, qref_s;
extern val eval_error_s;
extern val last_form_evaled, last_form_expanded;