compileStm (SPrint e) = "printf(\"%d\\n\","++compileExp e++");\n"
compileStm (SBlock ss) = "{\n"++concat (map (("\t"++).compileStm) ss)++"\n}\n"
compileStm (SWhile e s) = "while("++compileExp e++")"++compileStm s
+compileStm (SDeclD t i) = compileStm (SDecl t i $ case t of
+ TInt -> EInt 0
+ TBool -> EBool False
+ )
compileStm (SDecl t (Ident i) e) = "int "++i++"="++compileExp e++";\n"