sep of concerns
[clean-tests.git] / expr / exist / while.icl
index 4e23327..72430fc 100644 (file)
@@ -35,4 +35,28 @@ where
        evalb (Not a)   = not o evalb a
        evalb (WBool e) = evalb e
 
+instance print WhileExpr
+where
+       print (i =. v)         = i +++ " := " +++ print v
+       print (If b _ t _ e)   = "If " +++ print b +++ " then " +++ print t +++ " else " +++ print e
+       print (a :. b)         = print a +++ "; " +++ print b
+       print x=:(While b _ e) = "While " +++ print b +++ " do " +++ print e
+       print Skip             = "Skip"
+       print (WExpr e)        = print e
+
+instance print WhileInt
+where
+       print (Int i)  = toString i
+       print (Var s)  = s
+       print (a +. b) = print a +++ " + " +++ print b
+       print (WInt e) = print e
+
+instance print WhileBool
+where
+       print (Bool b)  = toString b
+       print (a ==. b) = print a +++ " = " +++ print b
+       print (a &. b)  = print a +++ " && " +++ print b
+       print (Not a)   = "!" +++ print a
+       print (WBool e) = print e
+
 Start = (eval ("a" =. Int 42 :. While (Bool False) Do ("b" =. Int 4)) emptyGamma) "a"