| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
MarkupParse.Internal.FlatParse
Contents
Description
Various flatparse helpers and combinators.
This module is exposed only for testing via doctest-parallel and is not intended to form part of the stable API.
Synopsis
- isWhitespace :: Char -> Bool
- ws_ :: Parser e ()
- ws :: Parser e Char
- nota :: Char -> Parser e ByteString
- isa :: (Char -> Bool) -> Parser e ByteString
- sq :: forall (st :: ZeroBitType) e. ParserT st e ()
- dq :: forall (st :: ZeroBitType) e. ParserT st e ()
- wrappedDq :: Parser b ByteString
- wrappedSq :: Parser b ByteString
- wrappedQ :: Parser e ByteString
- wrappedQNoGuard :: Parser e a -> Parser e a
- eq :: Parser e ()
- bracketed :: Parser e b -> Parser e b -> Parser e a -> Parser e a
- bracketedSB :: Parser e [Char]
- wrapped :: Parser e () -> Parser e a -> Parser e a
Parsers
isWhitespace :: Char -> Bool Source #
\n \t \f \r and space
Consume whitespace.
>>>runParser ws_ " \nx"OK () "x"
>>>runParser ws_ "x"OK () "x"
nota :: Char -> Parser e ByteString Source #
Parse whilst not a specific character
>>>runParser (nota 'x') "abcxyz"OK "abc" "xyz"
isa :: (Char -> Bool) -> Parser e ByteString Source #
Parse whilst satisfying a predicate.
>>>runParser (isa (=='x')) "xxxabc"OK "xxx" "abc"
sq :: forall (st :: ZeroBitType) e. ParserT st e () Source #
Single quote
>>>runParser sq "'"OK () ""
dq :: forall (st :: ZeroBitType) e. ParserT st e () Source #
Double quote
>>>runParser dq "\""OK () ""
wrappedDq :: Parser b ByteString Source #
A double-quoted string.
wrappedSq :: Parser b ByteString Source #
A single-quoted string.
wrappedQ :: Parser e ByteString Source #
A single-quoted or double-quoted string.
>>>runParser wrappedQ "\"quoted\""OK "quoted" ""
>>>runParser wrappedQ "'quoted'"OK "quoted" ""
wrappedQNoGuard :: Parser e a -> Parser e a Source #
A single-quoted or double-quoted wrapped parser.
>>>runParser (wrappedQNoGuard (many $ satisfy (/= '"'))) "\"name\""OK "name" ""
Will consume quotes if the underlying parser does.
>>>runParser (wrappedQNoGuard (many anyChar)) "\"name\""Fail
xml production [25]
>>>runParser eq " = "OK () ""
>>>runParser eq "="OK () ""
bracketed :: Parser e b -> Parser e b -> Parser e a -> Parser e a Source #
Parser bracketed by two other parsers.
>>>runParser (bracketed ($(char '[')) ($(char ']')) (many (satisfy (/= ']')))) "[bracketed]"OK "bracketed" ""
bracketedSB :: Parser e [Char] Source #
Parser bracketed by square brackets.
>>>runParser bracketedSB "[bracketed]"OK "bracketed" ""