wisp
 
(Arne Babenhauserheide)
2016-10-10: show some additional colorcodes + cleanup. three-witches-space-in-name

show some additional colorcodes + cleanup.

diff --git a/examples/enter-three-witches.w b/examples/enter-three-witches.w
--- a/examples/enter-three-witches.w
+++ b/examples/enter-three-witches.w
@@ -37,6 +37,29 @@ define : show str
               lp : cdr chars
 
 
+define colortable
+    `
+      #f . "\x1b[0m"
+      black . "\x1b[1;30m"
+      red . "\x1b[1;31m"
+      green . "\x1b[1;32m"
+      yellow . "\x1b[1;33m"
+      blue . "\x1b[1;34m"
+      magenta . "\x1b[1;35m"
+      cyan . "\x1b[1;36m"
+      white . "\x1b[1;37m"
+      
+
+define : color col
+       . "helper function to colorize the input"
+       cond
+         : assoc col colortable
+           format #t : assoc-ref colortable col
+           . #f
+         else
+           format #t : assoc-ref colortable #f
+           . #f
+
 define-syntax say-words 
     lambda (x)
         syntax-case x ()
@@ -177,25 +200,27 @@ define : main args
 
   First Witch
       When shall we three meet again
-      In thunder, lightning, or in rain?
+      In ,(color 'cyan) thunder, ,(color #f) ,(color 'white) lightning, ,(color #f) or in ,(color 'blue) rain? ,(color #f)
   
   Second Witch :resolute
       When the hurlyburly's done, (we ,(+ 1 2)) ; inline-code is allowed!
-      When the battle's lost and won. ; ,(read-char) ; and executed when the word is shown
+      When the ,(color 'red) battle's ,(color #f) 
+         . lost and won. ; ,(read-char) ; and executed when the word is shown
 
   Third Witch
-      That will be ere the set of sun.
+      That will be ere the set of ,(color 'yellow) sun. ,(color #f)
+      ; FIXME: there is a bug in wisp which disallows using the dot at the end!
 
   First Eldritch :crazy
-      gnignigni!
+      ,(color 'magenta) gnignigni! ,(color #f)
 
   Enter : Second Eldritch
   
   Second Eldritch :quick
-      Guh!
+      ,(color 'black) Guh!
       ; . :goo ; invalid ⇒ would be an error
       ; . foo ; invalid ⇒ would be an error
-      Moo
+      Moo ,(color #f)
 
 ;; Making the name longer throws an Error, but only at runtime:
 ;  Second Eldritch shoo