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