parsley-core-1.8.0.0: A fast parser combinator library backed by Typed Template Haskell
Safe HaskellNone
LanguageHaskell2010

Parsley.Internal.Core.Primitives

Synopsis

Documentation

data Parser a Source #

The opaque datatype that represents parsers.

Since: 0.1.0.0

data Reg (r :: Type) a Source #

This is an opaque representation of a parsing register. It cannot be manipulated as a user, and the type parameter r is used to ensure that it cannot leak out of the scope it has been created in. It is the abstracted representation of a runtime storage location.

Since: 0.1.0.0

class ParserOps rep where Source #

Methods

pure :: rep a -> Parser a Source #

satisfy :: rep (Char -> Bool) -> Parser Char Source #

conditional :: [(rep (a -> Bool), Parser b)] -> Parser a -> Parser b -> Parser b Source #

Instances

Instances details
x ~ Defunc => ParserOps x Source # 
Instance details

Defined in Parsley.Internal.Core.Primitives

Methods

pure :: x a -> Parser a Source #

satisfy :: x (Char -> Bool) -> Parser Char Source #

conditional :: [(x (a -> Bool), Parser b)] -> Parser a -> Parser b -> Parser b Source #

ParserOps WQ Source # 
Instance details

Defined in Parsley.Internal.Core.Primitives

Methods

pure :: WQ a -> Parser a Source #

satisfy :: WQ (Char -> Bool) -> Parser Char Source #

conditional :: [(WQ (a -> Bool), Parser b)] -> Parser a -> Parser b -> Parser b Source #

_conditional :: [(Defunc (a -> Bool), Parser b)] -> Parser a -> Parser b -> Parser b Source #

(<*>) :: Parser (a -> b) -> Parser a -> Parser b Source #

(<*) :: Parser a -> Parser b -> Parser a Source #

(*>) :: Parser a -> Parser b -> Parser b Source #

(<|>) :: Parser a -> Parser a -> Parser a Source #

branch :: Parser (Either a b) -> Parser (a -> c) -> Parser (b -> c) -> Parser c Source #

chainPre :: Parser (a -> a) -> Parser a -> Parser a Source #

chainPost :: Parser a -> Parser (a -> a) -> Parser a Source #

loop :: Parser () -> Parser a -> Parser a Source #

newRegister :: Parser a -> (forall r. Reg r a -> Parser b) -> Parser b Source #

get :: Reg r a -> Parser a Source #

put :: Reg r a -> Parser a -> Parser () Source #