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

Text.Grampa.ContextFree.Continued

Description

Continuation-passing parser for context-free grammars

Synopsis

Documentation

newtype Parser (g :: (* -> *) -> *) s r Source #

Parser type for context-free grammars that uses a continuation-passing algorithm, fast for grammars in LL(1) class but with potentially exponential performance for longer ambiguous prefixes.

Constructors

Parser 

Fields

Instances

Instances details
Monad (Parser g s) Source # 
Instance details

Defined in Text.Grampa.ContextFree.Continued

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.ContextFree.Continued

Methods

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

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

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

Defined in Text.Grampa.ContextFree.Continued

Methods

fail :: String -> Parser g s a #

Applicative (Parser g s) Source # 
Instance details

Defined in Text.Grampa.ContextFree.Continued

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 #

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

Defined in Text.Grampa.ContextFree.Continued

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] #

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

Defined in Text.Grampa.ContextFree.Continued

Methods

mzero :: Parser g s a #

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

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

Defined in Text.Grampa.ContextFree.Continued

Methods

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

takeOptional :: Parser g s a -> Parser g s (Maybe a) #

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

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

concatAll :: Monoid a => Parser g s a -> Parser g s a #

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

(LeftReductive s, FactorialMonoid s) => InputParsing (Parser g s) Source # 
Instance details

Defined in Text.Grampa.ContextFree.Continued

Associated Types

type ParserInput (Parser g s) #

type ParserPosition (Parser g s) #

Methods

getInput :: Parser g s (ParserInput (Parser g s)) #

getSourcePos :: Parser g s (ParserPosition (Parser g s)) #

anyToken :: Parser g s (ParserInput (Parser g s)) #

take :: Int -> Parser g s (ParserInput (Parser g s)) #

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

notSatisfy :: (ParserInput (Parser g s) -> Bool) -> Parser g s () #

scan :: state -> (state -> ParserInput (Parser g s) -> Maybe state) -> Parser g s (ParserInput (Parser g s)) #

string :: ParserInput (Parser g s) -> Parser g s (ParserInput (Parser g s)) #

takeWhile :: (ParserInput (Parser g s) -> Bool) -> Parser g s (ParserInput (Parser g s)) #

takeWhile1 :: (ParserInput (Parser g s) -> Bool) -> Parser g s (ParserInput (Parser g s)) #

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

Defined in Text.Grampa.ContextFree.Continued

Methods

satisfyCharInput :: (Char -> Bool) -> Parser g s (ParserInput (Parser g s)) #

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

scanChars :: state -> (state -> Char -> Maybe state) -> Parser g s (ParserInput (Parser g s)) #

takeCharsWhile :: (Char -> Bool) -> Parser g s (ParserInput (Parser g s)) #

takeCharsWhile1 :: (Char -> Bool) -> Parser g s (ParserInput (Parser g s)) #

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

Defined in Text.Grampa.ContextFree.Continued

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.ContextFree.Continued

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.ContextFree.Continued

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

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

Defined in Text.Grampa.ContextFree.Continued

Methods

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

catMaybes :: Parser g s (Maybe a) -> Parser g s a #

filter :: (a -> Bool) -> Parser g s a -> Parser g s a #

(LeftReductive s, FactorialMonoid s) => MultiParsing (Parser g s) Source #

Continuation-passing context-free parser

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

Defined in Text.Grampa.ContextFree.Continued

Associated Types

type ResultFunctor (Parser g s) :: Type -> Type Source #

type GrammarConstraint (Parser g s) g Source #

Methods

parseComplete :: (ParserInput (Parser g s) ~ s0, GrammarConstraint (Parser g s) g0, Eq s0, FactorialMonoid s0) => g0 (Parser g s) -> s0 -> g0 (ResultFunctor (Parser g s)) Source #

parsePrefix :: (ParserInput (Parser g s) ~ s0, GrammarConstraint (Parser g s) g0, Eq s0, FactorialMonoid s0) => g0 (Parser g s) -> s0 -> g0 (Compose (ResultFunctor (Parser g s)) ((,) s0)) Source #

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

Defined in Text.Grampa.ContextFree.Continued

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.ContextFree.Continued

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 ParserPosition (Parser g s) Source # 
Instance details

Defined in Text.Grampa.ContextFree.Continued

type ParserInput (Parser g s) Source # 
Instance details

Defined in Text.Grampa.ContextFree.Continued

type ParserInput (Parser g s) = s
type ResultFunctor (Parser g s) Source # 
Instance details

Defined in Text.Grampa.ContextFree.Continued

type GrammarConstraint (Parser g1 s) g2 Source # 
Instance details

Defined in Text.Grampa.ContextFree.Continued

type GrammarConstraint (Parser g1 s) g2 = Functor g2

data Result (g :: (* -> *) -> *) s v Source #

Constructors

Parsed 

Fields

NoParse (FailureInfo s) 

Instances

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

Defined in Text.Grampa.ContextFree.Continued

Methods

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

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

Show s => Show1 (Result g s) Source # 
Instance details

Defined in Text.Grampa.ContextFree.Continued

Methods

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

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

FactorialMonoid s => Filterable (Result g s) Source # 
Instance details

Defined in Text.Grampa.ContextFree.Continued

Methods

mapMaybe :: (a -> Maybe b) -> Result g s a -> Result g s b #

catMaybes :: Result g s (Maybe a) -> Result g s a #

filter :: (a -> Bool) -> Result g s a -> Result g s a #

alt :: forall g s a. Parser g s a -> Parser g s a -> Parser g s a Source #

A named and unconstrained version of the <|> operator