more extensive list of constructs not to descend into

This commit is contained in:
Alex Shinn 2021-05-05 08:08:12 +09:00
parent 9a9f974d69
commit 1db8a573f1

View file

@ -43,15 +43,15 @@
(memq? random-symbol-to-match sk fk)))))))) (memq? random-symbol-to-match sk fk))))))))
(begin (begin
(define-syntax report-vars (define-syntax report-vars
(syntax-rules (quote quasiquote lambda) (syntax-rules ()
((report-vars (lambda . x) (next ...) res) ((report-vars (op arg0 arg1 ...) (next ...) res)
(next ... res)) (syntax-memq? op (quote quasiquote lambda let let* letrec letrec*
((report-vars 'x (next ...) res) let-syntax letrec-syntax let-values let*-values
(next ... res)) receive match case define define-syntax do)
((report-vars `x (next ...) res) (next ... res)
(next ... res)) (report-vars arg0
((report-vars (op arg0 arg1 ...) next res) (report-vars (op arg1 ...) (next ...))
(report-vars arg0 (report-vars (op arg1 ...) next) res)) res)))
((report-vars (op . x) (next ...) res) ((report-vars (op . x) (next ...) res)
(next ... res)) (next ... res))
((report-vars x (next ...) (res ...)) ((report-vars x (next ...) (res ...))