- acceptsepsilon :: IsParser p s => p v -> Bool
- mnz :: IsParser p s => p v -> t -> String -> t
- (<..>) :: IsParser p s => s -> s -> p s
- pExcept :: (IsParser p s, Symbol s, Ord s, Eq (SymbolR s)) => (s, s, s) -> [s] -> p s
- opt :: IsParser p s => p a -> a -> p a
- asList :: IsParser p s => Expecting s -> p v -> p v
- asList1 :: IsParser p s => Expecting s -> p v -> p v
- asOpt :: IsParser p s => Expecting s -> p v -> p v
- (<+>) :: IsParser p s => p a -> p b -> p (a, b)
- (<**>) :: IsParser p s => p a -> p (a -> b) -> p b
- (<$$>) :: IsParser p s => (a -> b -> c) -> p b -> p (a -> c)
- (<??>) :: IsParser p s => p a -> p (a -> a) -> p a
- (<?>) :: IsParser p s => p v -> String -> p v
- pPacked :: IsParser p s => p a -> p b1 -> p b -> p b
- pFoldr_ng :: IsParser p s => (a -> a1 -> a1, a1) -> p a -> p a1
- pFoldr_gr :: IsParser p s => (a -> b -> b, b) -> p a -> p b
- pFoldr :: IsParser p s => (a -> b -> b, b) -> p a -> p b
- pFoldr1_gr :: IsParser p s => (v -> b -> b, b) -> p v -> p b
- pFoldr1_ng :: IsParser p s => (v -> b -> b, b) -> p v -> p b
- pFoldr1 :: IsParser p s => (v -> b -> b, b) -> p v -> p b
- pFoldrSep_gr :: IsParser p s => (v -> b -> b, b) -> p a -> p v -> p b
- pFoldrSep_ng :: IsParser p s => (v -> b -> b, b) -> p a -> p v -> p b
- pFoldrSep :: IsParser p s => (v -> b -> b, b) -> p a -> p v -> p b
- pFoldr1Sep_gr :: IsParser p s => (a -> b -> b, b) -> p a1 -> p a -> p b
- pFoldr1Sep_ng :: IsParser p s => (a -> b -> b, b) -> p a1 -> p a -> p b
- pFoldr1Sep :: IsParser p s => (a -> b -> b, b) -> p a1 -> p a -> p b
- list_alg :: (a -> [a] -> [a], [a1])
- pList_gr :: IsParser p s => p a -> p [a]
- pList_ng :: IsParser p s => p a -> p [a]
- pList :: IsParser p s => p a -> p [a]
- pList1_gr :: IsParser p s => p a -> p [a]
- pList1_ng :: IsParser p s => p a -> p [a]
- pList1 :: IsParser p s => p a -> p [a]
- pListSep_gr :: IsParser p s => p a1 -> p a -> p [a]
- pListSep_ng :: IsParser p s => p a1 -> p a -> p [a]
- pListSep :: IsParser p s => p a -> p a1 -> p [a1]
- pList1Sep_gr :: IsParser p s => p a1 -> p a -> p [a]
- pList1Sep_ng :: IsParser p s => p a1 -> p a -> p [a]
- pList1Sep :: IsParser p s => p a -> p a1 -> p [a1]
- pChainr_gr :: IsParser p s => p (c -> c -> c) -> p c -> p c
- pChainr_ng :: IsParser p s => p (a -> a -> a) -> p a -> p a
- pChainr :: IsParser p s => p (c -> c -> c) -> p c -> p c
- pChainl_gr :: IsParser p s => p (c -> c -> c) -> p c -> p c
- pChainl_ng :: IsParser p s => p (c -> c -> c) -> p c -> p c
- pChainl :: IsParser p s => p (c -> c -> c) -> p c -> p c
- pAny :: IsParser p s => (a -> p a1) -> [a] -> p a1
- pAnySym :: IsParser p s => [s] -> p s
- pToks :: IsParser p s => [s] -> p [s]
- pLocate :: IsParser p s => [[s]] -> p [s]
Documentation
acceptsepsilon :: IsParser p s => p v -> BoolSource
Checks if the parser accepts epsilon.
opt :: IsParser p s => p a -> a -> p aSource
Optionally recognize parser p
.
If p
can be recognized, the return value of p
is used. Otherwise,
the value v
is used. Note that opt is greedy, if you do not want
this use ... | pSucceed v
instead. Furthermore, p
should not
recognise the empty string.
(<+>) :: IsParser p s => p a -> p b -> p (a, b)Source
Parses the sequence of pa
and pb
, and combines them as a tuple.
(<**>) :: IsParser p s => p a -> p (a -> b) -> p bSource
Suppose we have a parser a with two alternatives that both start with recognizing a non-terminal p, then we will typically rewrite:
a = f <$> p <*> q <|> g <$> p <*> r
into:
a = p <**> (f <$$> q <|> g <$$> r)
pPacked :: IsParser p s => p a -> p b1 -> p b -> p bSource
This can be used to parse x
surrounded by l
and r
.
Example:
pParens = pPacked pOParen pCParen
pFoldr1_gr :: IsParser p s => (v -> b -> b, b) -> p v -> p bSource
pFoldr1_ng :: IsParser p s => (v -> b -> b, b) -> p v -> p bSource
pFoldrSep_gr :: IsParser p s => (v -> b -> b, b) -> p a -> p v -> p bSource
pFoldrSep_ng :: IsParser p s => (v -> b -> b, b) -> p a -> p v -> p bSource
pFoldr1Sep_gr :: IsParser p s => (a -> b -> b, b) -> p a1 -> p a -> p bSource
pFoldr1Sep_ng :: IsParser p s => (a -> b -> b, b) -> p a1 -> p a -> p bSource
pFoldr1Sep :: IsParser p s => (a -> b -> b, b) -> p a1 -> p a -> p bSource
pListSep_gr :: IsParser p s => p a1 -> p a -> p [a]Source
pListSep_ng :: IsParser p s => p a1 -> p a -> p [a]Source
pList1Sep_gr :: IsParser p s => p a1 -> p a -> p [a]Source
pList1Sep_ng :: IsParser p s => p a1 -> p a -> p [a]Source
pChainr_gr :: IsParser p s => p (c -> c -> c) -> p c -> p cSource
pChainr_ng :: IsParser p s => p (a -> a -> a) -> p a -> p aSource
pChainl_gr :: IsParser p s => p (c -> c -> c) -> p c -> p cSource
pChainl_ng :: IsParser p s => p (c -> c -> c) -> p c -> p cSource