X-Git-Url: https://ruin.nu/git/?p=proglang.git;a=blobdiff_plain;f=Compile.hs;h=0e1cf22a1c0b0239f43af889962496e9ce2c37f7;hp=69edecd879be433bab4f32259f8f0f79d2af0d41;hb=08d98a82fabc381a8b101387f39ae5752cfeb314;hpb=565fbd61dca527c23888e08783d0d91cee458524 diff --git a/Compile.hs b/Compile.hs index 69edecd..0e1cf22 100644 --- a/Compile.hs +++ b/Compile.hs @@ -36,4 +36,8 @@ compileStm (SIf b s s') = "if("++compileExp b++")"++compileStm s++" \nelse "++co 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"