wisp
 
(Arne Babenhauserheide)
2014-08-16: special case for comment at zero indent: -1 indent, meaning not

special case for comment at zero indent: -1 indent, meaning not really empty.

diff --git a/wisp-scheme.w b/wisp-scheme.w
--- a/wisp-scheme.w
+++ b/wisp-scheme.w
@@ -56,13 +56,21 @@ define : wisp-scheme-reader port
                : equal? #\newline next-char
                  read-char port ; remove the newline
                  let ; distinguish pure whitespace lines and lines
-                     ; with comment by giving the former zero indent
+                     ; with comment by giving the former zero
+                     ; indent. Lines with a comment at zero indent get
+                     ; indent -1 for the same reason - meaning not
+                     ; actually empty.
                    :
                      indent 
-                       if : or incomment : not : null? currentsymbols
-                         . currentindent 
-                         ; else
-                         . 0
+                       cond 
+                         incomment 
+                           if : = 0 currentindent ; specialcase
+                             . -1
+                             . currentindent 
+                         : not : null? currentsymbols ; pure whitespace
+                           . currentindent
+                         else
+                           . 0
                    loop
                      append indent-and-symbols : list : append (list indent) currentsymbols
                      . #t ; inindent
@@ -109,10 +117,12 @@ define : wisp-scheme-reader port
                    append currentsymbols : list : read port
                
 
+
+
 ; expected:
 ; ((2 (foo)) (2) (0) (0) (2 foo : moo 
 ; ) (4 #{.}# [goo #{.}# hoo]))
-display : call-with-input-string  "  (foo) ; bar\n  ; nop \n  \n\n  foo : moo \"\n\" \n___ . [goo . hoo]" wisp-scheme-reader
+display : call-with-input-string  "  (foo) ; bar\n  ; nop \n; nup \n  \n\n  foo : moo \"\n\" \n___ . [goo . hoo]" wisp-scheme-reader
 newline
 display : call-with-input-string  "  (foo) \n___. [goo . hoo]" wisp-scheme-reader
 newline