info: recognize by binding
Prior this PR: #lang info (list 1) is accidentally considered well-formed. This PR fixes the problem.
This commit is contained in:
parent
6366874ecd
commit
cb723ad4c8
|
@ -8,20 +8,20 @@
|
|||
(define-syntax info-module-begin
|
||||
(lambda (stx)
|
||||
(syntax-case stx ()
|
||||
[(mod-beg defn ...)
|
||||
[(_ defn ...)
|
||||
(let ([names (let loop ([defns (syntax->list (syntax (defn ...)))]
|
||||
[r '()])
|
||||
(if (null? defns)
|
||||
(reverse r)
|
||||
(loop (cdr defns)
|
||||
(syntax-case (car defns) (define)
|
||||
[(define var val)
|
||||
(syntax-case (car defns) (define define-values limited-require)
|
||||
[(define var _val)
|
||||
(identifier? #'var)
|
||||
(cons (syntax var) r)]
|
||||
;; In case it gets expanded:
|
||||
[(define-values (var) val)
|
||||
[(define-values (var) _val)
|
||||
(cons (syntax var) r)]
|
||||
[(require lib) r] ; ignore these (see below)
|
||||
[(limited-require _lib) r] ; ignore these (see below)
|
||||
[_else (raise-syntax-error
|
||||
'infotab-module
|
||||
"not a well-formed definition"
|
||||
|
|
Loading…
Reference in New Issue
Block a user