fix template bug in nested sequence of multiple ellipses, such as ((a ... ...) ...)
svn: r3277
This commit is contained in:
parent
7e61d42fda
commit
b773eeb6c2
File diff suppressed because it is too large
Load Diff
|
@ -1269,9 +1269,15 @@
|
|||
"(let sub((p p)(use-ellipses? #t))"
|
||||
"(cond "
|
||||
"((and use-ellipses?(ellipsis? p))"
|
||||
"(let-values(((rest nest)"
|
||||
"(let loop((p(stx-cdr(stx-cdr p)))(nest list))"
|
||||
"(if(and(stx-pair? p)"
|
||||
"(...?(stx-car p)))"
|
||||
"(loop(stx-cdr p)(lambda(x)(list(nest x))))"
|
||||
"(values p nest)))))"
|
||||
"(let((subs(sub(stx-car p) #t)))"
|
||||
"(append(map list subs)"
|
||||
"(sub(stx-cdr(stx-cdr p)) #t))))"
|
||||
"(append(map nest subs)"
|
||||
"(sub rest #t)))))"
|
||||
"((stx-pair? p) "
|
||||
"(let((hd(stx-car p)))"
|
||||
"(if(and use-ellipses?"
|
||||
|
|
|
@ -1520,9 +1520,15 @@
|
|||
(let sub ([p p][use-ellipses? #t])
|
||||
(cond
|
||||
[(and use-ellipses? (ellipsis? p))
|
||||
(let ([subs (sub (stx-car p) #t)])
|
||||
(append (map list subs)
|
||||
(sub (stx-cdr (stx-cdr p)) #t)))]
|
||||
(let-values ([(rest nest)
|
||||
(let loop ([p (stx-cdr (stx-cdr p))][nest list])
|
||||
(if (and (stx-pair? p)
|
||||
(...? (stx-car p)))
|
||||
(loop (stx-cdr p) (lambda (x) (list (nest x))))
|
||||
(values p nest)))])
|
||||
(let ([subs (sub (stx-car p) #t)])
|
||||
(append (map nest subs)
|
||||
(sub rest #t))))]
|
||||
[(stx-pair? p)
|
||||
(let ([hd (stx-car p)])
|
||||
(if (and use-ellipses?
|
||||
|
|
Loading…
Reference in New Issue
Block a user