Safe Haskell | None |
---|---|
Language | GHC2021 |
Symparsec.Parser
Synopsis
- data State str n = State {}
- type PState = State Symbol Natural
- data SState (s :: PState) where
- demoteSState :: forall (s :: PState). SState s -> State String Natural
- data Error str = Error {
- detail :: [str]
- type PError = Error Symbol
- data SError (e :: PError) where
- demoteSError :: forall (e :: PError). SError e -> Error String
- data Reply str n a = Reply {}
- type PReply = Reply Symbol Natural
- data SReply (sa :: a -> Type) (rep :: PReply a) where
- demoteSReply :: forall {a} sa da (rep :: PReply a). (forall (a1 :: a). sa a1 -> da) -> SReply sa rep -> Reply String Natural da
- data Result str (n :: k) a
- type PResult = Result Symbol Natural
- data SResult (sa :: a -> Type) (res :: PResult a) where
- demoteSResult :: forall {a} sa da (res :: PResult a). (forall (a1 :: a). sa a1 -> da) -> SResult sa res -> Result String Natural da
- type Parser str n a = State str n -> Reply str n a
- type PParser a = PState ~> PReply a
- type SParser (sa :: a -> Type) (p :: PState ~> PReply a) = Lam SState (SReply sa) p
Documentation
Parser state.
Constructors
State | |
Fields
|
Instances
data SState (s :: PState) where Source #
Singled State
.
Constructors
SState :: forall (rem :: Symbol) (len :: Natural) (idx :: Natural). SSymbol rem -> SNat len -> SNat idx -> SState ('State rem len idx) |
data SError (e :: PError) where Source #
Singled Error
.
Parser completion: result, and final state.
TODO: megaparsec also returns a bool indicating if any input was consumed. Unsure what it's used for.
Constructors
Reply | |
Instances
data SReply (sa :: a -> Type) (rep :: PReply a) where Source #
Singled Reply
.
Constructors
SReply :: forall {a} (sa :: a -> Type) (result :: Result Symbol Natural a) (state :: State Symbol Natural). SResult sa result -> SState state -> SReply sa ('Reply result state) |
demoteSReply :: forall {a} sa da (rep :: PReply a). (forall (a1 :: a). sa a1 -> da) -> SReply sa rep -> Reply String Natural da Source #
Demote an 'SReply.
data Result str (n :: k) a Source #
Parse result: a value, or an error.
data SResult (sa :: a -> Type) (res :: PResult a) where Source #
Singled Result
.
Constructors
SOK :: forall {a} (sa :: a -> Type) (a1 :: a). sa a1 -> SResult sa ('OK a1 :: Result Symbol Natural a) | |
SErr :: forall {a} (e :: Error Symbol) (sa :: a -> Type). SError e -> SResult sa ('Err e :: Result Symbol Natural a) |
demoteSResult :: forall {a} sa da (res :: PResult a). (forall (a1 :: a). sa a1 -> da) -> SResult sa res -> Result String Natural da Source #
Demote an SResult
.