From fff6c80a0f7dd2c90033a48444aad0db36ff9b80 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 15 Apr 2015 05:45:46 -0700 Subject: Allow quasiquotes in braces and quasiliterals, and quotes in braces. * parser.l: Consolidate rules for recognizing quote, unquote, and quasiquote. An effect of this is that quasiquotes can now occur in braces and in string quasiliterals. * parser.y (quasi_item): Support quotes and quasiquotes as quasi items: that is to say, i.e. objects denoted by @ in a quasiliteral. --- parser.y | 2 ++ 1 file changed, 2 insertions(+) (limited to 'parser.y') diff --git a/parser.y b/parser.y index 8941df4c..6abd646d 100644 --- a/parser.y +++ b/parser.y @@ -949,6 +949,8 @@ quasi_item : litchars { $$ = lit_char_helper($1); } | METANUM { $$ = cons(var_s, cons($1, nil)); rl($$, num(parser->lineno)); } | list { $$ = rlcp(cons(expr_s, $1), $1); } + | '\'' n_expr { $$ = rlcp(cons(expr_s, list(quote_s, $2, nao)), $2); } + | '^' n_expr { $$ = rlcp(cons(expr_s, list(sys_qquote_s, $2, nao)), $2); } | ',' n_expr { $$ = rlcp(cons(expr_s, list(sys_unquote_s, $2, nao)), $2); } | SPLICE n_expr { $$ = rlcp(cons(expr_s, list(sys_splice_s, $2, nao)), $2); } ; -- cgit v1.2.3