diff --git a/a1/src/APL/AST.hs b/a1/src/APL/AST.hs index 9172de6..3d341f1 100644 --- a/a1/src/APL/AST.hs +++ b/a1/src/APL/AST.hs @@ -32,10 +32,10 @@ printExp (Mul e1 e2) = "("++(printExp e1)++" * "++(printExp e2)++")" printExp (Sub e1 e2) = "("++(printExp e1)++" - "++(printExp e2)++")" printExp (Div e1 e2) = "("++(printExp e1)++" / "++(printExp e2)++")" printExp (Pow e1 e2) = "("++(printExp e1)++" ** "++(printExp e2)++")" +printExp (Eql e1 e2) = "("++(printExp e1)++" == "++(printExp e2)++")" printExp (If e1 e2 e3) = "(if "++(printExp e1)++" then "++(printExp e2)++" else "++(printExp e3)++")" printExp (Var var) = var printExp (Let var e1 e2) = "(let "++var++" = "++(printExp e1)++" in "++(printExp e2)++")" printExp (Lambda var e) = "(\\"++var++" -> "++(printExp e)++")" printExp (Apply e1 e2) = "("++(printExp e1)++" "++(printExp e2)++")" printExp (TryCatch e1 e2) = "(try "++(printExp e1)++" catch "++(printExp e2)++")" -printExp _ = "error" diff --git a/a1/src/APL/AST_Tests.hs b/a1/src/APL/AST_Tests.hs index 82d953a..fd3db06 100644 --- a/a1/src/APL/AST_Tests.hs +++ b/a1/src/APL/AST_Tests.hs @@ -23,6 +23,9 @@ tests = printExp (Div (CstInt 1) (CstInt 9999)) @?= "(1 / 9999)", testCase "Pow" $ printExp (Pow (CstInt 1) (CstInt 9999)) @?= "(1 ** 9999)", + testCase "Eql" $ + printExp (Eql (CstInt 2) (CstInt 3)) + @?= "(2 == 3)", testCase "If" $ printExp (If (CstBool True) (CstInt 2) (CstInt 3)) @?= "(if True then 2 else 3)",