module Language.Egison.Parser.Pattern.Prim.ParseMode
( ParseMode(..)
, ParseFixity(..)
, ExtParser
)
where
import Language.Egison.Syntax.Pattern.Fixity
( Fixity )
import Language.Egison.Parser.Pattern.Prim.Source
( Tokens )
type ExtParser s a = Tokens s -> Either String a
data ParseFixity n s =
ParseFixity { forall n s. ParseFixity n s -> Fixity n
fixity :: Fixity n
, forall n s. ParseFixity n s -> ExtParser s ()
parser :: ExtParser s ()
}
data ParseMode n v e s
= ParseMode { forall n v e s. ParseMode n v e s -> FilePath
filename :: FilePath
, forall n v e s. ParseMode n v e s -> [ParseFixity n s]
fixities :: [ParseFixity n s]
, :: Maybe (Tokens s, Tokens s)
, :: Maybe (Tokens s)
, forall n v e s. ParseMode n v e s -> ExtParser s v
varNameParser :: ExtParser s v
, forall n v e s. ParseMode n v e s -> ExtParser s n
nameParser :: ExtParser s n
, forall n v e s. ParseMode n v e s -> ExtParser s e
valueExprParser :: ExtParser s e
}