(Arne Babenhauserheide)
2014-11-04: wisp-scheme: replace ((#wisp-scheme: replace ((#<eof>)) by ()
diff --git a/wisp-scheme.w b/wisp-scheme.w
--- a/wisp-scheme.w
+++ b/wisp-scheme.w
@@ -519,6 +519,15 @@ define : wisp-unescape-underscore-and-co
. a
+define : wisp-replace-empty-eof code
+ . "replace ((#<eof>)) by ()"
+ ; FIXME: Actually this is a hack which fixes a bug when the
+ ; parser hits files with only hashbang and comments.
+ if : and (pair? (car code)) (eof-object? (car (car code))) (null? (cdr code)) (null? (cdr (car code)))
+ list
+ . code
+
+
define : wisp-replace-paren-quotation-repr code
. "Replace lists starting with a quotation symbol by
quoted lists."
@@ -610,9 +619,10 @@ define : wisp-scheme-read-chunk port
. "Read and parse one chunk of wisp-code"
let : : lines : wisp-scheme-read-chunk-lines port
wisp-make-improper
- wisp-unescape-underscore-and-colon
- wisp-replace-paren-quotation-repr
- wisp-scheme-indentation-to-parens lines
+ wisp-replace-empty-eof
+ wisp-unescape-underscore-and-colon
+ wisp-replace-paren-quotation-repr
+ wisp-scheme-indentation-to-parens lines
define : wisp-scheme-read-all port
. "Read all chunks from the given port"