X-Git-Url: https://ruin.nu/git/?p=proglang.git;a=blobdiff_plain;f=Printsyntax.hs;h=e84a1d333e8c46d73773924fa4869e035a7d191e;hp=aeb32584f78b7bd2a380d9ed2361ab0e57b33fed;hb=4f21d932178a490040cf5e054f3ba9d006579368;hpb=e9be0603d9dbd1caa6a0032cad0e39815cb8f38d diff --git a/Printsyntax.hs b/Printsyntax.hs index aeb3258..e84a1d3 100644 --- a/Printsyntax.hs +++ b/Printsyntax.hs @@ -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]) + EAss id exp -> prPrec i 0 (concatD [prt 0 id , doc (showString "=") , prt 0 exp]) EVar id -> prPrec i 3 (concatD [prt 0 id]) - EAss id exp -> prPrec i 3 (concatD [prt 0 id , doc (showString "=") , prt 0 exp]) 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 "*")])