EInt n -> prPrec i 3 (concatD [prt 0 n])
ENeg exp -> prPrec i 3 (concatD [doc (showString "-") , prt 3 exp])
EInt n -> prPrec i 3 (concatD [prt 0 n])
ENeg 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 [])
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 [])
prt i e = case e of
Lt -> prPrec i 0 (concatD [doc (showString "<")])
ELt -> prPrec i 0 (concatD [doc (showString "<=")])
prt i e = case e of
Lt -> prPrec i 0 (concatD [doc (showString "<")])
ELt -> prPrec i 0 (concatD [doc (showString "<=")])
EGt -> prPrec i 0 (concatD [doc (showString ">=")])
Eq -> prPrec i 0 (concatD [doc (showString "==")])
NEq -> prPrec i 0 (concatD [doc (showString "!=")])
EGt -> prPrec i 0 (concatD [doc (showString ">=")])
Eq -> prPrec i 0 (concatD [doc (showString "==")])
NEq -> prPrec i 0 (concatD [doc (showString "!=")])
Plus -> prPrec i 1 (concatD [doc (showString "+")])
Minus -> prPrec i 1 (concatD [doc (showString "-")])
Times -> prPrec i 2 (concatD [doc (showString "*")])
Plus -> prPrec i 1 (concatD [doc (showString "+")])
Minus -> prPrec i 1 (concatD [doc (showString "-")])
Times -> prPrec i 2 (concatD [doc (showString "*")])