module Calc where
import ExprT
import Parser
-- Exercise 1
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)