From 9952353de4a6bdfd27727a00d53ae8958038c72d Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 14 Aug 2015 07:20:03 -0700 Subject: Word splices not quite on board with consing dot handling. * parser.y (r_exprs): The WSPLICE and QWSPLICE syntax at the front of a list must now initialize the terminating atom to unique_s, not to nil. Without this we get mysterious "misplaced consing dot" errors (even though no consing dot occurs). --- parser.y | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/parser.y b/parser.y index a88293f6..4cda5a34 100644 --- a/parser.y +++ b/parser.y @@ -763,7 +763,7 @@ r_exprs : n_expr { val exprs = cons($1, nil); misplaced_consing_dot_check(scnr, term_atom_cons); rplaca(term_atom_cons, $3); $$ = $1; } - | WSPLICE wordslit { $$ = cons(nil, nreverse(rl($2, num($1)))); + | WSPLICE wordslit { $$ = cons(unique_s, nreverse(rl($2, num($1)))); rlcp($$, cdr($$)); } | r_exprs WSPLICE wordslit { val term_atom_cons = $1; @@ -773,7 +773,7 @@ r_exprs : n_expr { val exprs = cons($1, nil); nappend2(rl(nreverse($3), num($2)), exprs)); $$ = term_atom_cons; } - | QWSPLICE wordsqlit { $$ = cons(nil, rl($2, num($1))); + | QWSPLICE wordsqlit { $$ = cons(unique_s, rl($2, num($1))); rlcp($$, cdr($$)); } | r_exprs QWSPLICE wordsqlit { val term_atom_cons = $1; -- cgit v1.2.3