summaryrefslogtreecommitdiffstats
path: root/parser.y
diff options
context:
space:
mode:
Diffstat (limited to 'parser.y')
-rw-r--r--parser.y7
1 files changed, 5 insertions, 2 deletions
diff --git a/parser.y b/parser.y
index 37fe0814..a29c7f00 100644
--- a/parser.y
+++ b/parser.y
@@ -341,8 +341,11 @@ texts : text %prec LOW { $$ = rlcp(cons($1, nil), $1); }
elem : texts { $$ = rlcp(cons(text_s, $1), $1);
$$ = rlcp(optimize_text($$), $$); }
| var { $$ = rl($1, num(lineno)); }
- | list { if (first($1) == do_s)
- $$ = expand($1);
+ | list { val sym = first($1);
+ if (sym == do_s || sym == require_s)
+ $$ = rlcp(cons(sym,
+ expand_forms(rest($1))),
+ $1);
else
$$ = $1; }
| COLL exprs_opt ')' elems END { $$ = list(coll_s, $4, nil, $2, nao);