wisp
 
(Arne Babenhauserheide)
2013-09-10: aside from some necessary workarounds (check for FIXME in the file), v0.4

aside from some necessary workarounds (check for FIXME in the file), wisp-guile.w can now parse itself: python3 wisp.py wisp-guile.w > wisp-guile.scm && guile wisp-guile.scm wisp-guile.w > 1 guile 1 wisp-guile.w > 2 diff 1 2 YAY

diff --git a/wisp-guile.w b/wisp-guile.w
--- a/wisp-guile.w
+++ b/wisp-guile.w
@@ -86,7 +86,9 @@ define : nostringandbracketbreaks inport
             ; check if we switch to a comment
             when 
                 and 
-                     char=? nextchar #\;
+                     ; FIXME: this should be
+                     ; char=? nextchar #\;
+                     equal? ";" : string nextchar
                      not incomment
                      not instring
                      < incharform 2
@@ -237,13 +239,23 @@ define : splitindent inport
               comment ""
             while : not : eof-object? nextchar
                 ; check whether we leave the content
-                when : and ( not incomment ) : char=? nextchar #\;
+                ; FIXME: (wisp.py) the reader cuts the ; here, when I write it as this:
+                ; when : and ( not incomment ) : char=? nextchar #\; 
+                ; FIXME: THIS mistreats #\; as comment! (shown 4 lines after this comment…)
+                when 
+                    and 
+                        not incomment
+                        ; FIXME: this should be but would break
+                        ; char=? nextchar #\;
+                        equal?  ";" : string nextchar
+                        not : string-suffix? ( string #\# #\\ ) content
                     set! commentstart #t
                     set! comment : string-append comment : string nextchar
                     set! nextchar : read-char inport
                     continue
                 ; check whether we stay in the commentcheck
                 when : and commentstart : char=? nextchar : string-ref commentstartidentifier commentidentifierindex
+
                     set! commentidentifierindex : + commentidentifierindex 1
                     set! comment : string-append comment : string nextchar
                     when : = commentidentifierindex commentstartidentifierlength