|
| Text.ParserCombinators.ReadP.ByteString | | Portability | non-portable (local universal quantification) | | Stability | provisional | | Maintainer | gracjanpolak@gmail.com |
|
|
|
|
|
| Description |
This is a library of parser combinators, originally written by Koen Claessen.
It parses all alternatives in parallel, so it never keeps hold of
the beginning of the input string, a common source of space leaks with
other parsers. The '(+++)' choice combinator is genuinely commutative;
it makes no difference which branch is "shorter".
Adapted to use Data.ByteString by Gracjan Polak. Designed as a drop-in
replacement for Text.ParserCombinators.ReadP.
|
|
| Synopsis |
|
|
|
|
| The ReadP type
|
|
|
Instances | |
|
|
| Primitive operations
|
|
|
|
|
| Look-ahead: returns the part of the input that is left, without
consuming it.
|
|
|
| Symmetric choice.
|
|
|
| Local, exclusive, left-biased choice: If left parser
locally produces any result at all, then right parser is
not used.
|
|
|
| Transforms a parser into one that does the same, but
in addition returns the exact number of characters read.
IMPORTANT NOTE: countsym gives a runtime error if its first argument
is built using any occurrences of readS_to_P.
|
|
| Other operations
|
|
|
| Consumes and returns the next character.
Fails if there is no input left.
|
|
|
| Always fails.
|
|
|
| Consumes and returns the next character, if it satisfies the
specified predicate.
|
|
|
| Parses and returns the specified character.
|
|
|
| Parses and returns the specified string.
|
|
|
| Transforms a parser into one that does the same, but
in addition returns the exact characters read.
IMPORTANT NOTE: gather gives a runtime error if its first argument
is built using any occurrences of readS_to_P.
|
|
|
| Parses the first zero or more characters satisfying the predicate.
|
|
|
| Parses the first one or more characters satisfying the predicate.
|
|
|
| Skips all whitespace.
|
|
|
| Combines all parsers in the specified list.
|
|
|
| count n p parses n occurrences of p in sequence. A list of
results is returned.
|
|
|
| between open close p parses open, followed by p and finally
close. Only the value of p is returned.
|
|
|
| option x p will either parse p or return x without consuming
any input.
|
|
|
| optional p optionally parses p and always returns ().
|
|
|
| Parses zero or more occurrences of the given parser.
|
|
|
| Parses one or more occurrences of the given parser.
|
|
|
| Like many, but discards the result.
|
|
|
| Like many1, but discards the result.
|
|
|
| sepBy p sep parses zero or more occurrences of p, separated by sep.
Returns a list of values returned by p.
|
|
|
| sepBy1 p sep parses one or more occurrences of p, separated by sep.
Returns a list of values returned by p.
|
|
|
| endBy p sep parses zero or more occurrences of p, separated and ended
by sep.
|
|
|
| endBy p sep parses one or more occurrences of p, separated and ended
by sep.
|
|
|
| chainr p op x parses zero or more occurrences of p, separated by op.
Returns a value produced by a right associative application of all
functions returned by op. If there are no occurrences of p, x is
returned.
|
|
|
| chainl p op x parses zero or more occurrences of p, separated by op.
Returns a value produced by a left associative application of all
functions returned by op. If there are no occurrences of p, x is
returned.
|
|
|
| Like chainl, but parses one or more occurrences of p.
|
|
|
| Like chainr, but parses one or more occurrences of p.
|
|
|
| manyTill p end parses zero or more occurrences of p, until end
succeeds. Returns a list of values returned by p.
|
|
| Running a parser
|
|
|
A parser for a type a, represented as a function that takes a
ByteString and returns a list of possible parses as (a,ByteString) pairs.
Note that this kind of backtracking parser is very inefficient;
reading a large structure may be quite slow (cf ReadP).
|
|
|
| Converts a parser into a Haskell ReadS-style function.
This is the main way in which you can "run" a ReadP parser:
the expanded type is
readP_to_S :: ReadP a -> ByteString -> [(a,ByteString)]
|
|
|
| Converts a Haskell ReadS-style function into a parser.
Warning: This introduces local backtracking in the resulting
parser, and therefore a possible inefficiency.
|
|
| Produced by Haddock version 2.3.0 |