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))"
|
"(let sub((p p)(use-ellipses? #t))"
|
||||||
"(cond "
|
"(cond "
|
||||||
"((and use-ellipses?(ellipsis? p))"
|
"((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)))"
|
"(let((subs(sub(stx-car p) #t)))"
|
||||||
"(append(map list subs)"
|
"(append(map nest subs)"
|
||||||
"(sub(stx-cdr(stx-cdr p)) #t))))"
|
"(sub rest #t)))))"
|
||||||
"((stx-pair? p) "
|
"((stx-pair? p) "
|
||||||
"(let((hd(stx-car p)))"
|
"(let((hd(stx-car p)))"
|
||||||
"(if(and use-ellipses?"
|
"(if(and use-ellipses?"
|
||||||
|
|
|
@ -1520,9 +1520,15 @@
|
||||||
(let sub ([p p][use-ellipses? #t])
|
(let sub ([p p][use-ellipses? #t])
|
||||||
(cond
|
(cond
|
||||||
[(and use-ellipses? (ellipsis? p))
|
[(and use-ellipses? (ellipsis? p))
|
||||||
(let ([subs (sub (stx-car p) #t)])
|
(let-values ([(rest nest)
|
||||||
(append (map list subs)
|
(let loop ([p (stx-cdr (stx-cdr p))][nest list])
|
||||||
(sub (stx-cdr (stx-cdr p)) #t)))]
|
(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)
|
[(stx-pair? p)
|
||||||
(let ([hd (stx-car p)])
|
(let ([hd (stx-car p)])
|
||||||
(if (and use-ellipses?
|
(if (and use-ellipses?
|
||||||
|
|
Loading…
Reference in New Issue
Block a user