Fix not master
authorLuke Lau <luke_lau@icloud.com>
Sat, 1 Dec 2018 16:17:02 +0000 (16:17 +0000)
committerLuke Lau <luke_lau@icloud.com>
Sat, 1 Dec 2018 16:17:02 +0000 (16:17 +0000)
Main.hs
Programs.hs
boolNot.prog [new file with mode: 0644]
fibonacci.prog [new file with mode: 0644]
ttdb.cabal

diff --git a/Main.hs b/Main.hs
index ce81efbf040934b5fe250d8c21d82ff43283969f..951f38865fc5268e36ffa58d81d6db9c227b77ce 100644 (file)
--- a/Main.hs
+++ b/Main.hs
@@ -70,7 +70,7 @@ eval (Div e0 e1) = evali div e0 e1
 eval (And e0 e1) = evalb (&&) e0 e1
 eval (Or e0 e1) = evalb (||) e0 e1
 
 eval (And e0 e1) = evalb (&&) e0 e1
 eval (Or e0 e1) = evalb (||) e0 e1
 
-eval (Not e0  ) = evalb (const not) e0 (Const (B True))
+eval (Not e) = evalb (const not) (Const (B True)) e
 
 eval (Eq e0 e1) = evalib (==) e0 e1
 eval (Gt e0 e1) = evalib (>) e0 e1
 
 eval (Eq e0 e1) = evalib (==) e0 e1
 eval (Gt e0 e1) = evalib (>) e0 e1
@@ -155,6 +155,7 @@ menu = do
     "r increment" -> debugProg increment
     "r tryCatch" -> debugProg tryCatch
     "r fibonacci" -> debugProg fibonacci
     "r increment" -> debugProg increment
     "r tryCatch" -> debugProg tryCatch
     "r fibonacci" -> debugProg fibonacci
+    "r boolNot" -> debugProg boolNot
     ('r':' ':file) -> read <$> readFile file >>= debugProg
     x -> printUnknown x >> menu
 
     ('r':' ':file) -> read <$> readFile file >>= debugProg
     x -> printUnknown x >> menu
 
index 14f066bb17c4c8a74d4f0b57bf75f9ff54177c66..3f05aaa24da2b35ef94b1eeea4a62d60b9127bd1 100644 (file)
@@ -24,3 +24,6 @@ fibonacci = Seq (Assign "n" (Const (I 5)))
                                       (Seq (Assign "x" (Add (Var "x") (Var "y")))
                                             (Seq (Assign "y" (Var "x"))
                                                  (Assign "n" (Sub (Var "n") (Const (I 1))))))))))
                                       (Seq (Assign "x" (Add (Var "x") (Var "y")))
                                             (Seq (Assign "y" (Var "x"))
                                                  (Assign "n" (Sub (Var "n") (Const (I 1))))))))))
+
+boolNot :: Statement
+boolNot = Print (Not (Const (B False)))
diff --git a/boolNot.prog b/boolNot.prog
new file mode 100644 (file)
index 0000000..588a57e
--- /dev/null
@@ -0,0 +1 @@
+Print !False
\ No newline at end of file
diff --git a/fibonacci.prog b/fibonacci.prog
new file mode 100644 (file)
index 0000000..501caf8
--- /dev/null
@@ -0,0 +1 @@
+Seq (Assign "n" 5) (Seq (Assign "x" 1) (Seq (Assign "y" 0) (While n > 0 (Seq (Assign "tmp" x) (Seq (Assign "x" x + y) (Seq (Assign "y" x) (Assign "n" n - 1)))))))
\ No newline at end of file
index de59cfa42c8b5a653c278786c12206e1dda9d108..ff83079c4bee26ba3162c5a426588211f8ceebb0 100644 (file)
@@ -7,7 +7,7 @@ author:              Luke Lau
 maintainer:          luke_lau@icloud.com
 category:            Development
 build-type:          Simple
 maintainer:          luke_lau@icloud.com
 category:            Development
 build-type:          Simple
-extra-source-files:  stack.yaml, README.md
+extra-source-files:  stack.yaml, README.md, *.prog
 cabal-version:       >=1.10
 
 executable ttdb
 cabal-version:       >=1.10
 
 executable ttdb