-
[clean-tests.git] / expr / exist / while.icl
diff --git a/expr/exist/while.icl b/expr/exist/while.icl
deleted file mode 100644 (file)
index 72430fc..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-implementation module while
-
-import StdEnv
-
-:: Gamma :== String -> Int
-instance gamma Gamma
-where
-       put g i v = \i`->if (i == i`) v (g i)
-       get g v = g v
-
-emptyGamma :: Gamma
-emptyGamma = abort "Undefined variable"
-
-instance eval WhileExpr
-where
-       eval (i =. v)         = \g->put g i (evali v g)
-       eval (If b _ t _ e)   = \g->if (evalb b g) (eval t g) (eval e g)
-       eval (a :. b)         = eval b o eval a
-       eval x=:(While b _ e) = \g->if (evalb b g) (eval (e :. x) g) g
-       eval Skip             = id
-       eval (WExpr e)        = eval e
-
-instance evali WhileInt
-where
-       evali (Int i)  = const i
-       evali (Var s)  = flip get s
-       evali (a +. b) = \g->evali a g + evali b g
-       evali (WInt e) = evali e
-
-instance evalb WhileBool
-where
-       evalb (Bool b)  = const b
-       evalb (a ==. b) = \g->evali a g == evali b g
-       evalb (a &. b)  = \g->evalb a g && evalb b g
-       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"