svn: r12120
This commit is contained in:
Eli Barzilay 2008-10-24 20:21:07 +00:00
parent 0ccbac0647
commit ec6d2a1f40

View File

@ -161,8 +161,16 @@
(let ([expr (let ([expr
;; just reading the definitions might be a syntax error, ;; just reading the definitions might be a syntax error,
;; possibly due to bad language (eg, no foo/lang/reader) ;; possibly due to bad language (eg, no foo/lang/reader)
(with-handlers ([exn? (λ (e) (raise-hopeless-exception (with-handlers ([exn? (λ (e)
e "invalid module text"))]) ;; [Eli] FIXME: use `read-language' on `port' after calling
;; `file-position' to reset it to the beginning (need to
;; make sure that it's always a seekable port), then see
;; the position that we're left at, re-read that part of
;; the port (a second reset), construct a string holding
;; the #lang, and read from it an empty module, and extract
;; the base module from it (ask Matthew about this).
(raise-hopeless-exception
e "invalid module text"))])
(super-thunk))]) (super-thunk))])
(when (eof-object? expr) (raise-hopeless-syntax-error)) (when (eof-object? expr) (raise-hopeless-syntax-error))
(let ([more (super-thunk)]) (let ([more (super-thunk)])