Safe Haskell | None |
---|---|
Language | Haskell98 |
Monadic parsing combinator library with attention to locations.
- data ParsedLines = ParsedLines {}
- data Parser α
- data ParserResult α
- = ParserSuccess {
- prLeftovers :: [Text]
- prLines :: ParsedLines
- prLoc :: LineCol
- prResult :: α
- | ParserFailure {
- prLeftovers :: [Text]
- prLines :: ParsedLines
- prLoc :: LineCol
- prErrCtx :: [String]
- prErrMsg :: String
- = ParserSuccess {
- data ParserStep α
- = ParserCont (Text -> ParserStep α) (ParserResult α)
- | ParserDone (ParserResult α)
- startParser :: Parser α -> ParserStep α
- startParserAtLine :: Word -> Text -> Parser α -> ParserStep α
- starveParser :: ParserStep α -> ParserResult α
- parseText :: Text -> Parser α -> ParserResult α
- class CharParsing p => LocParsing p where
- type ParserLoc p
- class LocParsing p => ResetLineParsing p where
Documentation
data ParsedLines Source #
Lines of text consumed by a parser (fully or partially).
Opaque parser type.
data ParserResult α Source #
Parser result.
ParserSuccess | |
| |
ParserFailure | |
|
Show α => Show (ParserResult α) Source # | |
data ParserStep α Source #
Parser continuation.
ParserCont (Text -> ParserStep α) (ParserResult α) | |
ParserDone (ParserResult α) |
startParser :: Parser α -> ParserStep α Source #
Start a parser.
startParserAtLine :: Word -> Text -> Parser α -> ParserStep α Source #
Start a parser on a specific line number and provide it with a first chunk of the input.
starveParser :: ParserStep α -> ParserResult α Source #
Feed a parser continuation with empty input.
class CharParsing p => LocParsing p where Source #
Parsers that provide location information.
location :: p (ParserLoc p) Source #
The current location.
location :: (MonadTrans t, Monad m, LocParsing m, p ~ t m, ParserLoc p ~ ParserLoc m) => p (ParserLoc p) Source #
The current location.
located :: p α -> p (Located (ParserLoc p) α) Source #
Attach the starting location to the parsed value.
spanned :: p α -> p (Located (Span (ParserLoc p)) α) Source #
Attach the spanned location to the parsed value.
LocParsing Parser Source # | |
(MonadPlus p, LocParsing p) => LocParsing (StateT s p) Source # | |
(MonadPlus p, LocParsing p) => LocParsing (StateT s p) Source # | |
(Monoid w, MonadPlus p, LocParsing p) => LocParsing (WriterT w p) Source # | |
(Monoid w, MonadPlus p, LocParsing p) => LocParsing (WriterT w p) Source # | |
(MonadPlus p, LocParsing p) => LocParsing (IdentityT * p) Source # | |
(MonadPlus p, LocParsing p) => LocParsing (ReaderT * r p) Source # | |
(Monoid w, MonadPlus p, LocParsing p) => LocParsing (RWST r w s p) Source # | |
(Monoid w, MonadPlus p, LocParsing p) => LocParsing (RWST r w s p) Source # | |
class LocParsing p => ResetLineParsing p where Source #
Parsers with resettable line numbers.
resetLineNr :: Word -> p (Seq Text) Source #
Reset the current line number and return the text lines fully consumed by the parser so far.
resetLineNr :: (MonadTrans t, Monad m, ResetLineParsing m, p ~ t m) => Word -> p (Seq Text) Source #
Reset the current line number and return the text lines fully consumed by the parser so far.
ResetLineParsing Parser Source # | |
(MonadPlus p, ResetLineParsing p) => ResetLineParsing (StateT s p) Source # | |
(MonadPlus p, ResetLineParsing p) => ResetLineParsing (StateT s p) Source # | |
(Monoid w, MonadPlus p, ResetLineParsing p) => ResetLineParsing (WriterT w p) Source # | |
(Monoid w, MonadPlus p, ResetLineParsing p) => ResetLineParsing (WriterT w p) Source # | |
(MonadPlus p, ResetLineParsing p) => ResetLineParsing (IdentityT * p) Source # | |
(MonadPlus p, ResetLineParsing p) => ResetLineParsing (ReaderT * r p) Source # | |
(Monoid w, MonadPlus p, ResetLineParsing p) => ResetLineParsing (RWST r w s p) Source # | |
(Monoid w, MonadPlus p, ResetLineParsing p) => ResetLineParsing (RWST r w s p) Source # | |