sepBy -package:construct
sepBy p sep parses zero or more occurrences of p,
separated by sep. Returns a list of values returned by
p.
sepBy p sep parses
zero or more occurrences of
p, separated by
sep. Returns a list of values
returned by
p.
commaSep p = p `sepBy` (symbol ",")
sepBy p sep applies
zero or more occurrences of
p, separated by
sep. Returns a list of the values
returned by
p.
commaSep p = p `sepBy` (char ',')
sepBy p sep parses
zero or more occurrences of
p, separated by
sep. Returns a list of values
returned by
p.
commaSep p = p `sepBy` (symbol ",")
sepBy p sep parses
zero or more occurrences of
p, separated by
sep. Returns a list of values
returned by
p.
commaSep p = p `sepBy` comma
sepBy p sep parses
zero or more occurrences of
p, separated by
sep. Returns a list of values
returned by
p.
commaSep p = p `sepBy` comma
sepBy p sep parses
zero or more occurrences of
p, separated by
sep. Returns a list of values
returned by
p.
commaSep p = p `sepBy` (symbol ",")
Parse a list of items separated by discarded junk.
p sepBy sep matches zero or more occurrences of
p separated by
sep
>>> match (decimal `sepBy` char ',') "1,2,3"
[[1,2,3]]
>>> match (decimal `sepBy` char ',') ""
[[]]
Deliver zero or more values of a separated by b's.
Apply two parsers alternately to an input stream. Parsing starts at
the first parser and stops at the first parser. The output of the
first parser is emiited and the output of the second parser is
discarded. It can be used to parse a infix style pattern e.g. p1 p2 p1
. Empty input or single parse of the first parser is accepted.
Definitions:
>>> sepBy p1 p2 f = Parser.deintercalate p1 p2 (Fold.catLefts f)
>>> sepBy p1 p2 f = Parser.sepBy1 p1 p2 f <|> Parser.fromEffect (Fold.extractM f)
Examples:
>>> p1 = Parser.takeWhile1 (not . (== '+')) Fold.toList
>>> p2 = Parser.satisfy (== '+')
>>> p = Parser.sepBy p1 p2 Fold.toList
>>> Stream.parse p $ Stream.fromList ""
Right []
>>> Stream.parse p $ Stream.fromList "1"
Right ["1"]
>>> Stream.parse p $ Stream.fromList "1+"
Right ["1"]
>>> Stream.parse p $ Stream.fromList "1+2+3"
Right ["1","2","3"]
sepBy p sep parses zero or more occurrences of p,
separated by sep. Returns a list of values returned by
p.
sepBy p sep parses zero or more occurrences of p,
separated by sep. Returns a list of values returned by
p.
r `sepBy` sep parses zero or more occurences of r,
separated by sep. Biased towards matching more.
Concatenate a list od documents, separating them by a given separator.
sepBy1 p sep parses one 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.
sepBy' p sep applies
zero or more occurrences of
p, separated by
sep. Returns a list of the values
returned by
p. The value returned by
p is forced to
WHNF.
commaSep p = p `sepBy'` (char ',')