Portability | non-portable |
---|---|

Stability | experimental |

Maintainer | ekmett@gmail.com |

Safe Haskell | None |

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

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 ByteStringSource

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 rSource

Run a parser, grabbing all of the text between its start and end points

rend :: DeltaParsing m => m RenderingSource

restOfLine :: DeltaParsing m => m ByteStringSource

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 ByteStringSource

Run a parser, grabbing all of the text between its start and end points and discarding the original result

careting :: DeltaParsing m => m CaretSource

Grab a `Caret`

pointing to the current location.

careted :: DeltaParsing m => m a -> m (Careted a)Source

spanning :: DeltaParsing m => m a -> m SpanSource

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 FixitSource

Grab a fixit.

class (DeltaParsing m, HasDelta d) => MarkParsing d m | m -> d whereSource

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