diff options
-rw-r--r-- | parser.y | 2 | ||||
-rw-r--r-- | tests/008/repeat.expected | 3 | ||||
-rw-r--r-- | tests/008/repeat.txr | 6 | ||||
-rw-r--r-- | y.tab.c.shipped | 2 |
4 files changed, 11 insertions, 2 deletions
@@ -1634,10 +1634,10 @@ static val expand_repeat_rep_args(val args) } } else if (exp_pair) { match_reg_var(arg); + ptail = list_collect(ptail, arg); } exp_pair = exp_pairs = nil; - ptail = list_collect(ptail, arg); } return out; diff --git a/tests/008/repeat.expected b/tests/008/repeat.expected new file mode 100644 index 00000000..495d096a --- /dev/null +++ b/tests/008/repeat.expected @@ -0,0 +1,3 @@ +1 3 a +2 3 b +3 3 c diff --git a/tests/008/repeat.txr b/tests/008/repeat.txr new file mode 100644 index 00000000..dba54831 --- /dev/null +++ b/tests/008/repeat.txr @@ -0,0 +1,6 @@ +@(bind a ("a" "b" "c")) +@(output) +@(repeat :counter (i 1) :vars ((x (len a)))) +@i @x @a +@(end) +@(end) diff --git a/y.tab.c.shipped b/y.tab.c.shipped index 31da32e7..f1377d67 100644 --- a/y.tab.c.shipped +++ b/y.tab.c.shipped @@ -7351,10 +7351,10 @@ static val expand_repeat_rep_args(val args) } } else if (exp_pair) { match_reg_var(arg); + ptail = list_collect(ptail, arg); } exp_pair = exp_pairs = nil; - ptail = list_collect(ptail, arg); } return out; |