Ontwerpbesluitendocumentje toegevoegd
[cc1516.git] / AST.icl
diff --git a/AST.icl b/AST.icl
index fb4c405..21f27d5 100644 (file)
--- a/AST.icl
+++ b/AST.icl
@@ -47,10 +47,6 @@ printStatements [s:ss] i = (case s of
                indent :: Int [String] -> [String]
                indent i rest = replicate i "\t" ++ rest
 
-instance print FunType where
-       print (FunType at rt) = printersperse " " at ++
-               [if (isEmpty at) "" "->":maybe ["Void"] print rt]
-
 instance print VarDecl where
        print (VarDecl _ t i e) = print t ++ [" ":i:"=":print e] ++ [";"]
 
@@ -62,6 +58,8 @@ instance print Type where
        print BoolType = print "Bool"
        print CharType = print "Char"
        print VarType = print "var"
+    print VoidType = print "Void"
+    print (t1 ->> t2) = print t1 ++ [" -> ":print t2]
 
 instance print String where
        print s = [s]
@@ -82,7 +80,7 @@ instance print Expr where
        print (VarExpr _ vd) = print vd
        print (Op2Expr _ e1 o e2) = ["(":print e1] ++ [" ",case o of
                BiPlus = "+"; BiMinus = "-"; BiTimes = "*"; BiDivide = "/"
-               BiMod = "%"; BiEquals = "="; BiLesser = "<"; BiGreater = ">"
+               BiMod = "%"; BiEquals = "=="; BiLesser = "<"; BiGreater = ">"
                BiLesserEq = "<="; BiGreaterEq = ">="; BiUnEqual = "!=";
                BiAnd = "&&"; BiOr = "||"; BiCons = ":"
                ," ":print e2] ++ [")"]