Copyright | (c) Edward Kmett 2011-2014 |
---|---|
License | BSD3 |
Maintainer | ekmett@gmail.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
- 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 Source
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.
line :: m ByteString Source
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 Source
Run a parser, grabbing all of the text between its start and end points
rend :: DeltaParsing m => m Rendering Source
restOfLine :: DeltaParsing m => m ByteString Source
Grab the remainder of the current line
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 Source
Run a parser, grabbing all of the text between its start and end points and discarding the original result
careting :: DeltaParsing m => m Caret Source
Grab a Caret
pointing to the current location.
careted :: DeltaParsing m => m a -> m (Careted a) Source
spanning :: DeltaParsing m => m a -> m Span Source
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) Source
fixiting :: DeltaParsing m => m ByteString -> m Fixit Source
Grab a fixit.
class (DeltaParsing m, HasDelta d) => MarkParsing d m | m -> d where Source
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.
mark the current location so it can be used in constructing a span, or for later seeking
Seek a previously marked location
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) |