From 0592949de3e274b7d9700ec74466b541055c3bca Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 14 Mar 2012 13:27:06 -0700 Subject: Allow quasi-quoting over hash table literals, to express dynamic hash table construction * eval.c (expand_qquote): Recognize hash-construct forms: expand the hash arguments and pairs separately, then rewrite to a new hash-construct form. (eval-init): hash-construct intrinsic function added. * hash.c (hash_construct_s): New symbol variable. (hash_construct): New function. (hash_init): Initialize hash_construct_s. * hash.h (hash_construct_s, hash_construct): Declared. * parser.y (hash): Rule rewritten to emit either a literal hash table object, or a hash-construct form, based on whether quasiquote unquotes occur within the syntax. (hash_from_notation): Function removed. --- ChangeLog | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 772f53ad..a125a84e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +2012-03-14 Kaz Kylheku + + Allow quasi-quoting over hash table literals, + to express dynamic hash table construction + + * eval.c (expand_qquote): Recognize hash-construct + forms: expand the hash arguments and pairs separately, + then rewrite to a new hash-construct form. + (eval-init): hash-construct intrinsic function added. + + * hash.c (hash_construct_s): New symbol variable. + (hash_construct): New function. + (hash_init): Initialize hash_construct_s. + + * hash.h (hash_construct_s, hash_construct): Declared. + + * parser.y (hash): Rule rewritten to emit either a literal + hash table object, or a hash-construct form, based on + whether quasiquote unquotes occur within the syntax. + (hash_from_notation): Function removed. + 2012-03-13 Kaz Kylheku Change: @(block) requires @(end) from now on. -- cgit v1.2.3