Safe Haskell | None |
---|---|
Language | Haskell2010 |
A simple interpreter for a subset of Ivory.
Synopsis
- runEval :: Eval a -> Either Error a
- runEvalStartingFrom :: EvalState -> Eval a -> Either Error (a, EvalState)
- type Error = String
- type Eval a = StateT EvalState (ExceptionT Error Id) a
- data EvalState = EvalState (Map Sym Value) SrcLoc (Map Sym Struct)
- data Value
- initState :: Map Sym Value -> EvalState
- openModule :: Module -> Eval a -> Eval a
- evalAssert :: Expr -> Eval ()
- evalBlock :: Block -> Eval ()
- evalCond :: Cond -> Eval Bool
- evalDeref :: Type -> Expr -> Eval Value
- evalExpr :: Type -> Expr -> Eval Value
- evalInit :: Type -> Init -> Eval Value
- evalLit :: Type -> Literal -> Eval Value
- evalOp :: ExpOp -> [Value] -> Eval Value
- evalRequires :: [Require] -> Eval Bool
- evalStmt :: Stmt -> Eval ()
Documentation
evalAssert :: Expr -> Eval () Source #