Fix some reader-bugs introduced in the conversion to scheme/match.
This commit is contained in:
parent
cbcea20701
commit
387ff63a48
|
|
@ -1,6 +1,7 @@
|
|||
#lang scheme/base
|
||||
|
||||
(require scheme/list)
|
||||
(require scheme/match)
|
||||
(require scheme/path)
|
||||
|
||||
(provide read-module)
|
||||
|
|
@ -14,16 +15,16 @@
|
|||
(if (null? bindings)
|
||||
'()
|
||||
`((letrec ,(reverse bindings))))]
|
||||
[`((define ,var ,expr) . ,rst)
|
||||
(iter rst (cons (list var expr) bindings))]
|
||||
[`((define (,var . ,arglist) . ,body) . ,rst)
|
||||
[`((define (,(? symbol? var) . ,arglist) . ,body) . ,rst)
|
||||
(iter rst (cons (list var `(lambda ,arglist ,@body)) bindings))]
|
||||
[`((define ,(? symbol? var) ,expr) . ,rst)
|
||||
(iter rst (cons (list var expr) bindings))]
|
||||
[`((define . ,_) . ,_)
|
||||
(error "Unrecognized define-form:" (first forms))]
|
||||
[`((begin . ,body) . ,rst)
|
||||
(iter (append body rst) bindings)]
|
||||
[`((load ,(? string? pathname)) . ,rst)
|
||||
(let ([complete-path (path->complete-path pathname)]
|
||||
(let* ([complete-path (path->complete-path pathname)]
|
||||
[directory (path-only complete-path)])
|
||||
(iter (append (with-input-from-file complete-path
|
||||
(lambda ()
|
||||
|
|
@ -33,7 +34,7 @@
|
|||
bindings))]
|
||||
[`((load . ,_) . ,rst)
|
||||
(error "Unrecognized load-form:" (first forms))]
|
||||
[(,form . ,rst)
|
||||
[`(,form . ,rst)
|
||||
(if (null? bindings)
|
||||
(cons form (iter rst '()))
|
||||
`((letrec ,(reverse bindings)
|
||||
|
|
|
|||
Loading…
Reference in New Issue