| 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 # | |