grammatical-parsers-0.5: parsers that combine into grammars
Safe HaskellNone
LanguageHaskell2010

Text.Grampa.ContextFree.LeftRecursive.Transformer

Synopsis

Documentation

data SeparatedParser p (g :: (* -> *) -> *) s a Source #

Constructors

FrontParser (p g s a) 
CycleParser 

Fields

BackParser 

Fields

lift :: Applicative m => m a -> ParserT m g s a Source #

Lift a parse-free computation into the parser.

liftPositive :: p g s a -> Fixed p g s a Source #

Lifts a primitive positive parser (i.e., one that always consumes some input) into a left-recursive one

tmap :: (m a -> m a) -> ParserT m g s a -> ParserT m g s a Source #

Modify the computation carried by the parser.

parseSeparated :: forall p g rl s. (Apply g, Foldable g, Eq s, FactorialMonoid s, LeftReductive s, TailsParsing (p g s), GrammarConstraint (p g s) g, GrammarFunctor (p g s) ~ rl s, FallibleWithExpectations rl, s ~ ParserInput (p g s)) => g (SeparatedParser p g s) -> s -> [(s, g (GrammarFunctor (p g s)))] Source #

Parse the given input using a context-free grammar separated into two parts: the first specifying all the left-recursive productions, the second all others. The first function argument specifies the left-recursive dependencies among the grammar productions.

separated :: forall p g s. (Alternative (p g s), Apply g, Distributive g, Traversable g, AmbiguousAlternative (GrammarFunctor (p g s))) => g (Fixed p g s) -> g (SeparatedParser p g s) Source #

Orphan instances