| Copyright | (c) Edward Kmett 2011-2014 |
|---|---|
| License | BSD3 |
| Maintainer | ekmett@gmail.com |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Text.Trifecta.Combinators
Description
- class (MonadPlus m, TokenParsing m) => DeltaParsing m where
- line :: m ByteString
- position :: m Delta
- slicedWith :: (a -> ByteString -> r) -> m a -> m r
- rend :: DeltaParsing m => m Rendering
- restOfLine :: DeltaParsing m => m ByteString
- sliced :: DeltaParsing m => m a -> m ByteString
- careting :: DeltaParsing m => m Caret
- careted :: DeltaParsing m => m a -> m (Careted a)
- spanning :: DeltaParsing m => m a -> m Span
- spanned :: DeltaParsing m => m a -> m (Spanned a)
- fixiting :: DeltaParsing m => m ByteString -> m Fixit
- class (DeltaParsing m, HasDelta d) => MarkParsing d m | m -> d where
Documentation
class (MonadPlus m, TokenParsing m) => DeltaParsing m where
This class provides parsers with easy access to:
1) the current line contents.
2) the current position as a Delta.
3) the ability to use sliced on any parser.
Minimal complete definition
Methods
line :: m ByteString
Retrieve the contents of the current line (from the beginning of the line)
Retrieve the current position as a Delta.
slicedWith :: (a -> ByteString -> r) -> m a -> m r
Run a parser, grabbing all of the text between its start and end points
rend :: DeltaParsing m => m Rendering
restOfLine :: DeltaParsing m => m ByteString
Grab the remainder of the current line
Instances
| DeltaParsing Parser | |
| (MonadPlus m, DeltaParsing m) => DeltaParsing (IdentityT m) | |
| (MonadPlus m, DeltaParsing m) => DeltaParsing (ReaderT e m) | |
| (MonadPlus m, DeltaParsing m) => DeltaParsing (StateT s m) | |
| (MonadPlus m, DeltaParsing m) => DeltaParsing (StateT s m) | |
| (MonadPlus m, DeltaParsing m, Monoid w) => DeltaParsing (WriterT w m) | |
| (MonadPlus m, DeltaParsing m, Monoid w) => DeltaParsing (WriterT w m) | |
| (MonadPlus m, DeltaParsing m, Monoid w) => DeltaParsing (RWST r w s m) | |
| (MonadPlus m, DeltaParsing m, Monoid w) => DeltaParsing (RWST r w s m) |
sliced :: DeltaParsing m => m a -> m ByteString
Run a parser, grabbing all of the text between its start and end points and discarding the original result
careting :: DeltaParsing m => m Caret
Grab a Caret pointing to the current location.
careted :: DeltaParsing m => m a -> m (Careted a)
spanning :: DeltaParsing m => m a -> m Span
Discard the result of a parse, returning a Span from where we start to where it ended parsing.
spanned :: DeltaParsing m => m a -> m (Spanned a)
fixiting :: DeltaParsing m => m ByteString -> m Fixit
Grab a fixit.
class (DeltaParsing m, HasDelta d) => MarkParsing d m | m -> d where
This class is a refinement of DeltaParsing that adds the ability to mark your position in the input
and return there for further parsing later.
Methods
mark :: m d
mark the current location so it can be used in constructing a span, or for later seeking
release :: d -> m ()
Seek a previously marked location
Instances
| MarkParsing Delta Parser | |
| (MonadPlus m, MarkParsing d m) => MarkParsing d (IdentityT m) | |
| (MonadPlus m, MarkParsing d m, Monoid w) => MarkParsing d (WriterT w m) | |
| (MonadPlus m, MarkParsing d m, Monoid w) => MarkParsing d (WriterT w m) | |
| (MonadPlus m, MarkParsing d m) => MarkParsing d (ReaderT e m) | |
| (MonadPlus m, MarkParsing d m) => MarkParsing d (StateT s m) | |
| (MonadPlus m, MarkParsing d m) => MarkParsing d (StateT s m) | |
| (MonadPlus m, MarkParsing d m, Monoid w) => MarkParsing d (RWST r w s m) | |
| (MonadPlus m, MarkParsing d m, Monoid w) => MarkParsing d (RWST r w s m) |