Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Text.Lips
Description
Monadic parsing combinator library with attention to locations.
Synopsis
- 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
- class LocParsing p => ResetLineParsing p where
- resetLineNr :: Word -> p (Seq Text)
Documentation
data ParsedLines Source #
Lines of text consumed by a parser (fully or partially).
Constructors
ParsedLines | |
Instances
Show ParsedLines Source # | |
Defined in Text.Lips Methods showsPrec :: Int -> ParsedLines -> ShowS # show :: ParsedLines -> String # showList :: [ParsedLines] -> ShowS # |
Opaque parser type.
Instances
MonadFail Parser Source # | |
Alternative Parser Source # | |
Applicative Parser Source # | |
Functor Parser Source # | |
Monad Parser Source # | |
MonadPlus Parser Source # | |
CharParsing Parser Source # | |
Parsing Parser Source # | |
LocParsing Parser Source # | |
ResetLineParsing Parser Source # | |
α ~ String => IsString (Parser α) Source # | |
Defined in Text.Lips Methods fromString :: String -> Parser α # | |
type ParserLoc Parser Source # | |
data ParserResult α Source #
Parser result.
Constructors
ParserSuccess | |
Fields
| |
ParserFailure | |
Fields
|
Instances
Show α => Show (ParserResult α) Source # | |
Defined in Text.Lips Methods showsPrec :: Int -> ParserResult α -> ShowS # show :: ParserResult α -> String # showList :: [ParserResult α] -> ShowS # |
data ParserStep α Source #
Parser continuation.
Constructors
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.
Methods
location :: p (ParserLoc p) Source #
The current location.
default location :: (MonadTrans t, Monad m, LocParsing m, p ~ t m, ParserLoc p ~ ParserLoc m) => p (ParserLoc p) Source #
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.
Instances
LocParsing Parser Source # | |
(MonadPlus p, LocParsing p) => LocParsing (IdentityT p) Source # | |
Defined in Text.Lips | |
(MonadPlus p, LocParsing p) => LocParsing (ReaderT r p) Source # | |
Defined in Text.Lips | |
(MonadPlus p, LocParsing p) => LocParsing (StateT s p) Source # | |
Defined in Text.Lips | |
(MonadPlus p, LocParsing p) => LocParsing (StateT s p) Source # | |
Defined in Text.Lips | |
(Monoid w, MonadPlus p, LocParsing p) => LocParsing (WriterT w p) Source # | |
Defined in Text.Lips | |
(Monoid w, MonadPlus p, LocParsing p) => LocParsing (WriterT w p) Source # | |
Defined in Text.Lips | |
(Monoid w, MonadPlus p, LocParsing p) => LocParsing (RWST r w s p) Source # | |
Defined in Text.Lips | |
(Monoid w, MonadPlus p, LocParsing p) => LocParsing (RWST r w s p) Source # | |
Defined in Text.Lips |
class LocParsing p => ResetLineParsing p where Source #
Parsers with resettable line numbers.
Minimal complete definition
Nothing
Methods
resetLineNr :: Word -> p (Seq Text) Source #
Reset the current line number and return the text lines fully consumed by the parser so far.
default resetLineNr :: (MonadTrans t, Monad m, ResetLineParsing m, p ~ t m) => Word -> p (Seq Text) Source #
Instances
ResetLineParsing Parser Source # | |
(MonadPlus p, ResetLineParsing p) => ResetLineParsing (IdentityT p) Source # | |
(MonadPlus p, ResetLineParsing p) => ResetLineParsing (ReaderT r p) 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 # | |
(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 # | |