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 { ParseFixity n s -> Fixity n
fixity :: Fixity n
, ParseFixity n s -> ExtParser s ()
parser :: ExtParser s ()
}
data ParseMode n v e s
= ParseMode { ParseMode n v e s -> FilePath
filename :: FilePath
, ParseMode n v e s -> [ParseFixity n s]
fixities :: [ParseFixity n s]
, :: Maybe (Tokens s, Tokens s)
, :: Maybe (Tokens s)
, ParseMode n v e s -> ExtParser s v
varNameParser :: ExtParser s v
, ParseMode n v e s -> ExtParser s n
nameParser :: ExtParser s n
, ParseMode n v e s -> ExtParser s e
valueExprParser :: ExtParser s e
}