diff options
-rw-r--r-- | lec05/Calc.hs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lec05/Calc.hs b/lec05/Calc.hs index 8051d76..cd6f408 100644 --- a/lec05/Calc.hs +++ b/lec05/Calc.hs @@ -1,6 +1,7 @@ module Calc where import ExprT +import Parser -- Exercise 1 @@ -8,3 +9,10 @@ eval :: ExprT -> Integer eval (Lit n) = n eval (Add l r) = eval l + eval r eval (Mul l r) = eval l * eval r + +-- Exercise 2 + +evalStr :: String -> Maybe Integer +evalStr s = case parseExp Lit Add Mul s of + Nothing -> Nothing + Just t -> Just (eval t) |