]> ruin.nu Git - proglang.git/blobdiff - Printsyntax.hs
initial commit of interpreter
[proglang.git] / Printsyntax.hs
index 1d1068749e5bc7d85c4411c7eb9efdf905125d07..e84a1d333e8c46d73773924fa4869e035a7d191e 100644 (file)
@@ -103,17 +103,17 @@ instance Print Stm where
 
 instance Print Exp where
   prt i e = case e of
-   BExp exp0 bop exp -> prPrec i 0 (concatD [prt 1 exp0 , prt 0 bop , prt 1 exp])
-   EVar id -> prPrec i 3 (concatD [prt 0 id])
    EAss id exp -> prPrec i 0 (concatD [prt 0 id , doc (showString "=") , prt 0 exp])
+   EVar id -> prPrec i 3 (concatD [prt 0 id])
    EInt n -> prPrec i 3 (concatD [prt 0 n])
    ENeg exp -> prPrec i 3 (concatD [doc (showString "-") , prt 3 exp])
+   ENot exp -> prPrec i 3 (concatD [doc (showString "!") , prt 3 exp])
    EBool bool -> prPrec i 3 (concatD [prt 0 bool])
    EReadI  -> prPrec i 3 (concatD [doc (showString "readInt")])
    EReadB  -> prPrec i 3 (concatD [doc (showString "readBool")])
    ExpT type' exp -> prPrec i 0 (concatD [prt 0 type' , prt 0 exp])
    EDefault  -> prPrec i 0 (concatD [])
-   OpExp exp0 op exp -> prPrec i 0 (concatD [prt 0 exp0 , prt 0 op , prt 0 exp])
+   BiOpExp exp0 op exp -> prPrec i 0 (concatD [prt 0 exp0 , prt 0 op , prt 0 exp])
    EPost id op -> prPrec i 0 (concatD [prt 0 id , prt 1 op])
 
 
@@ -122,7 +122,7 @@ instance Print Stms where
    Program stms -> prPrec i 0 (concatD [prt 0 stms])
 
 
-instance Print BOp where
+instance Print Op where
   prt i e = case e of
    Lt  -> prPrec i 0 (concatD [doc (showString "<")])
    ELt  -> prPrec i 0 (concatD [doc (showString "<=")])
@@ -130,10 +130,6 @@ instance Print BOp where
    EGt  -> prPrec i 0 (concatD [doc (showString ">=")])
    Eq  -> prPrec i 0 (concatD [doc (showString "==")])
    NEq  -> prPrec i 0 (concatD [doc (showString "!=")])
-
-
-instance Print Op where
-  prt i e = case e of
    Plus  -> prPrec i 1 (concatD [doc (showString "+")])
    Minus  -> prPrec i 1 (concatD [doc (showString "-")])
    Times  -> prPrec i 2 (concatD [doc (showString "*")])