Merge branch 'master' of github.com:dopefishh/cc1516
[cc1516.git] / AST.icl
diff --git a/AST.icl b/AST.icl
index 90d1e53..3679b36 100644 (file)
--- a/AST.icl
+++ b/AST.icl
@@ -84,6 +84,10 @@ instance toString Op2 where
                BiLesserEq = "<="; BiGreaterEq = ">="; BiUnEqual = "!=";
                BiAnd = "&&"; BiOr = "||"; BiCons = ":"
 
+instance toString Op1 where
+    toString UnNegation = "!"
+    toString UnMinus = "-"
+
 instance print Expr where
        print (VarExpr _ vd) = print vd
        print (Op2Expr _ e1 o e2) = ["(":print e1] ++ 
@@ -110,3 +114,11 @@ printFunCall s args = [s, "(":printersperse "," args] ++ [")"]
 
 derive gEq Op2
 instance == Op2 where (==) o1 o2 = gEq{|*|} o1 o2
+
+instance zero Pos where
+       zero = {line=0, col=0}
+
+derive gEq Op1
+instance == Op1 where (==) o1 o2 = gEq{|*|} o1 o2
+instance < Op2 where (<) o1 o2 = toString o1 < toString o2
+instance < Op1 where (<) o1 o2 = toString o1 < toString o2