module Example4 where import Opn import Eval4 p1 :: Prog p1 = [ Assign "y" (Read "b") , Assign "x" (BinOp Div (Var "y") (Read "a")) , Handle [Assign "x" (Lit 5), Assign "y" (Read "syzygy")] (Assign "x" (Lit 3)) , Print (Var "x") ] p2 :: Prog p2 = [ Assign "y" (Read "b") , Assign "x" (BinOp Div (Var "y") (Read "a")) , Raise "TERMINATE!" , Assign "x" (Lit 99) ] e1 :: Env e1 = [("a", 3), ("b", 4)] e2 :: Env e2 = [("a", 0), ("b", 57)] -- Fakultät-- mit Ausnahmen. fac :: Prog fac = [ Assign "n" (Read "n") , Assign "f" (Lit 1) , Handle [While (Lit 1) [ Assign "f" (BinOp Times (Var "f") (Var "n")) , Print (Var "n") , Assign "n" (BinOp Plus (Var "n") (UnOp UMinus (Lit 1))) , If (UnOp Not (Var "n")) [Raise "END"] ] ] $ Print (Var "f") ] e3 :: Env e3 = [("n", 10)]