wisp
 
(Arne Babenhauserheide)
2013-03-21: implement ENLIST: : in a line starts a function which ends at the

implement ENLIST: : in a line starts a function which ends at the end of the line.

diff --git a/tests/readable-tests.w b/tests/readable-tests.w
--- a/tests/readable-tests.w
+++ b/tests/readable-tests.w
@@ -1,11 +1,9 @@
-define 
-      fibfast n   
+define : fibfast n
       if (< n 2)
       . n           
       fibup n 2 1 0 
 
-define 
-       fibup maxnum count n-1 n-2
+define : fibup maxnum count n-1 n-2
        if (= maxnum count)
          + n-1  n-2
          fibup maxnum 
@@ -13,7 +11,7 @@ define
                + n-1 n-2 
                . n-1
 
-define (factorial n)
+define : factorial n
        if (<= n 1) 
          . 1
          * n 
@@ -25,19 +23,16 @@ define (gcd x y)
        gcd y
          rem x y
 
-define (add-if-all-numbers lst)
+define : add-if-all-numbers lst
        call/cc 
          lambda (exit)
                 let loop 
                   : 
                     lst lst 
                     sum 0
-                  if (null? lst)
+                  if : null? lst
                      . sum
-                     if 
-                        not 
-                          number? 
-                            car lst
+                     if : not : number? : car lst
                         exit #f
                         + (car lst)
                           loop (cdr lst)
\ No newline at end of file
diff --git a/wisp.py b/wisp.py
--- a/wisp.py
+++ b/wisp.py
@@ -64,6 +64,11 @@ class Line:
                 self.comment = self.content[n+1:]
                 self.content = self.content[:n]
                 break
+        
+        # treat inline " : " as opening a bracket which gets closed at the end of the line
+        toclose = self.content.count(" : ")
+        self.content = self.content.replace(" : ", " (")
+        self.content += ")" * toclose
 
         #: Is the line effectively empty?
         self.empty = False