🖋️ Pretty-print

This commit is contained in:
2024-09-06 14:38:50 +02:00
parent e96686ab9a
commit 7145ce5b99
2 changed files with 50 additions and 4 deletions

View File

@ -25,4 +25,17 @@ data Exp
deriving (Eq, Show)
printExp :: Exp -> String
printExp = undefined -- TODO
printExp (CstBool b) = show b
printExp (CstInt i) = show i
printExp (Add e1 e2) = "("++(printExp e1)++" + "++(printExp e2)++")"
printExp (Mul e1 e2) = "("++(printExp e1)++" * "++(printExp e2)++")"
printExp (Sub e1 e2) = "("++(printExp e1)++" - "++(printExp e2)++")"
printExp (Div e1 e2) = "("++(printExp e1)++" / "++(printExp e2)++")"
printExp (Pow e1 e2) = "("++(printExp e1)++" ** "++(printExp e2)++")"
printExp (If e1 e2 e3) = "(if "++(printExp e1)++" then "++(printExp e2)++" else "++(printExp e3)++")"
printExp (Var var) = var
printExp (Let var e1 e2) = "(let "++var++" = "++(printExp e1)++" in "++(printExp e2)++")"
printExp (Lambda var e) = "(\\"++var++" -> "++(printExp e)++")"
printExp (Apply e1 e2) = "("++(printExp e1)++" "++(printExp e2)++")"
printExp (TryCatch e1 e2) = "(try "++(printExp e1)++" catch "++(printExp e2)++")"
printExp _ = "error"