compileExp :: Exp -> String
compileExp (EBool True) = "1";
compileExp (EBool False) = "0";
compileExp :: Exp -> String
compileExp (EBool True) = "1";
compileExp (EBool False) = "0";
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 (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