packages feed

calculator-0.1.3.0: src/Calculator/Evaluator/Statement.hs

module Calculator.Evaluator.Statement (evalStat) where

--------------------------------------------------------------------------------

import           Calculator.Evaluator.Cmd  (evalCmd)
import           Calculator.Evaluator.Expr (evalExpr)
import           Calculator.Prim.Expr      (Bindings, Expr)
import           Calculator.Prim.Statement (Statement (..))

--------------------------------------------------------------------------------

evalStat :: Bindings -> Statement -> Either Expr Bindings
evalStat b stat = case stat of
                   Expression e -> Left $ evalExpr b e
                   Command c    -> Right $ evalCmd b c

--------------------------------------------------------------------------------