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

Text.Grampa.PEG.Packrat

Description

Packrat parser

Synopsis

Documentation

newtype Parser g s r Source #

Parser type for Parsing Expression Grammars that uses an improved packrat algorithm, with O(1) performance bounds but with worse constants and more memory consumption than the backtracking Parser. The parse function returns an input prefix parse paired with the remaining input suffix.

Constructors

Parser 

Fields

Instances

Instances details
GrammarParsing Parser Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Associated Types

type GrammarFunctor Parser :: ((Type -> Type) -> Type) -> Type -> Type -> Type Source #

Methods

nonTerminal :: GrammarConstraint Parser g => (g (GrammarFunctor Parser g s) -> GrammarFunctor Parser g s a) -> Parser g s a Source #

selfReferring :: (GrammarConstraint Parser g, Distributive g) => g (Parser g s) Source #

fixGrammar :: (GrammarConstraint Parser g, Distributive g) => (g (Parser g s) -> g (Parser g s)) -> g (Parser g s) Source #

recursive :: forall (g :: (Type -> Type) -> Type) s a. Parser g s a -> Parser g s a Source #

MultiParsing Parser Source #

Packrat parser

parseComplete :: (Rank2.Functor g, FactorialMonoid s) =>
                 g (Packrat.Parser g s) -> s -> g ParseResults
Instance details

Defined in Text.Grampa.PEG.Packrat

MonoidParsing (Parser g) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Monad (Parser g s) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

(>>=) :: Parser g s a -> (a -> Parser g s b) -> Parser g s b #

(>>) :: Parser g s a -> Parser g s b -> Parser g s b #

return :: a -> Parser g s a #

Functor (Parser g s) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

fmap :: (a -> b) -> Parser g s a -> Parser g s b #

(<$) :: a -> Parser g s b -> Parser g s a #

Applicative (Parser g s) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

pure :: a -> Parser g s a #

(<*>) :: Parser g s (a -> b) -> Parser g s a -> Parser g s b #

liftA2 :: (a -> b -> c) -> Parser g s a -> Parser g s b -> Parser g s c #

(*>) :: Parser g s a -> Parser g s b -> Parser g s b #

(<*) :: Parser g s a -> Parser g s b -> Parser g s a #

Alternative (Parser g s) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

empty :: Parser g s a #

(<|>) :: Parser g s a -> Parser g s a -> Parser g s a #

some :: Parser g s a -> Parser g s [a] #

many :: Parser g s a -> Parser g s [a] #

MonadPlus (Parser g s) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

mzero :: Parser g s a #

mplus :: Parser g s a -> Parser g s a -> Parser g s a #

(Lexical g, LexicalConstraint Parser g s, Show s, TextualMonoid s) => TokenParsing (Parser g s) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

someSpace :: Parser g s () #

nesting :: Parser g s a -> Parser g s a #

semi :: Parser g s Char #

highlight :: Highlight -> Parser g s a -> Parser g s a #

token :: Parser g s a -> Parser g s a #

FactorialMonoid s => LookAheadParsing (Parser g s) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

lookAhead :: Parser g s a -> Parser g s a #

(Show s, TextualMonoid s) => CharParsing (Parser g s) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

satisfy :: (Char -> Bool) -> Parser g s Char #

char :: Char -> Parser g s Char #

notChar :: Char -> Parser g s Char #

anyChar :: Parser g s Char #

string :: String -> Parser g s String #

text :: Text -> Parser g s Text #

FactorialMonoid s => Parsing (Parser g s) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

try :: Parser g s a -> Parser g s a #

(<?>) :: Parser g s a -> String -> Parser g s a #

skipMany :: Parser g s a -> Parser g s () #

skipSome :: Parser g s a -> Parser g s () #

unexpected :: String -> Parser g s a #

eof :: Parser g s () #

notFollowedBy :: Show a => Parser g s a -> Parser g s () #

Semigroup x => Semigroup (Parser g s x) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

(<>) :: Parser g s x -> Parser g s x -> Parser g s x #

sconcat :: NonEmpty (Parser g s x) -> Parser g s x #

stimes :: Integral b => b -> Parser g s x -> Parser g s x #

Monoid x => Monoid (Parser g s x) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

mempty :: Parser g s x #

mappend :: Parser g s x -> Parser g s x -> Parser g s x #

mconcat :: [Parser g s x] -> Parser g s x #

type GrammarFunctor Parser Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

type ResultFunctor Parser Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

type GrammarConstraint Parser g Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

type GrammarConstraint Parser g = Functor g

data Result g s v Source #

Constructors

Parsed 

Fields

NoParse FailureInfo 

Instances

Instances details
Functor (Result g s) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

fmap :: (a -> b) -> Result g s a -> Result g s b #

(<$) :: a -> Result g s b -> Result g s a #

Show1 (Result g s) Source # 
Instance details

Defined in Text.Grampa.PEG.Packrat

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> Result g s a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [Result g s a] -> ShowS #