morley-1.3.0: src/Michelson/Parser/Types.hs
-- SPDX-FileCopyrightText: 2020 Tocqueville Group
--
-- SPDX-License-Identifier: LicenseRef-MIT-TQ
-- | Core parser types
module Michelson.Parser.Types
( Parser
, LetEnv (..)
, noLetEnv
) where
import Data.Default (Default(..))
import qualified Data.Map as Map
import Text.Megaparsec (Parsec)
import Michelson.Let (LetType, LetValue)
import Michelson.Macro (LetMacro)
import Michelson.Parser.Error
type Parser = ReaderT LetEnv (Parsec CustomParserException Text)
instance Default a => Default (Parser a) where
def = pure def
-- | The environment containing lets from the let-block
data LetEnv = LetEnv
{ letMacros :: Map Text LetMacro
, letValues :: Map Text LetValue
, letTypes :: Map Text LetType
} deriving stock (Show, Eq)
noLetEnv :: LetEnv
noLetEnv = LetEnv Map.empty Map.empty Map.empty