trifecta-1.4.2: A modern parser combinator library with convenient diagnostics

Portabilitynon-portable
Stabilityexperimental
Maintainerekmett@gmail.com
Safe HaskellNone

Text.Trifecta.Combinators

Description

 

Synopsis

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.

Methods

line :: m ByteStringSource

Retrieve the contents of the current line (from the beginning of the line)

position :: m DeltaSource

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

Retrieve a Rendering of the current linem noting this position, but not placing a Caret there.

restOfLine :: DeltaParsing m => m ByteStringSource

Grab the remainder of the current line

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

Parse a Careted result. Pointing the Caret to where you start.

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

Parse a Spanned result. The Span starts here and runs to the last position parsed.

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.

Methods

mark :: m dSource

mark the current location so it can be used in constructing a span, or for later seeking

release :: d -> m ()Source

Seek a previously marked location

Instances