Make let-kw-form more portable to other syntax-case schemes

* goof.scm (let-kw-form): don't use guile-specific with-ellipsis.
This commit is contained in:
Linus 2021-09-25 21:27:50 +02:00
parent 050f88d678
commit f5a3629b56

View file

@ -206,18 +206,17 @@
((_ macro-name final-fun (user-finals ...) (loop-name (var step) ...) . body)
(let-syntax ((macro-name
(lambda (stx)
(with-ellipsis :::
(let loop ((lst (cdr (syntax->list stx)))
(params (list #'(var step) ...)))
(if (null? lst)
(with-syntax ((((v s) :::) params))
(with-syntax ((((v s) (... ...)) params))
#'(inner-recur loop-name final-fun
(user-finals ...)
((v s) :::)))
((v s) (... ...))))
(syntax-case (car lst) (=>)
((=> name val)
(loop (cdr lst) (update-name params #'name #'val)))
(_ (error "Malformed looping clause in macro")))))))))
(_ (error "Malformed looping clause in macro"))))))))
. body))))