Module

Text.Parsing.Monoid.Repetition

#until

until :: forall m a b c. Monad m => Monoid b => ParserT a m b -> ParserT a m c -> ParserT a m b

Consumes the current parse input with a parser p until the result of a parser q is successful. Does not consume the remaining parse input with the successful result of q.

#exact

exact :: forall a m b. Monad m => Monoid b => Int -> ParserT a m b -> ParserT a m b

Consumes the current parse input with a parser p, with n repetitions of p. Fails if the remaining parse input can be moreover be parsed with p.

#least

least :: forall a m b. Monad m => Monoid b => Int -> ParserT a m b -> ParserT a m b

Consumes the current parse input with a parser p, with n repetitions of p. Does not check if the remaining parse input can be moreover parsed with p.

#greedy

greedy :: forall a m b. Monad m => Monoid b => ParserT a m b -> ParserT a m (Tuple Int b)

Consumes the current input with a parser p as many times as successful. Produces a pair of the number of successful repetitions of p, and the accumulated result. Not guaranteed to be stack-safe for large input.

#many

many :: forall a m b. Monad m => Monoid b => ParserT a m b -> ParserT a m b

Consumes the current input with a parser p as many times as successful. Produces the accumulated result, without the guarantee of being stack-safe for large input.

#many1

many1 :: forall a m b. Monad m => Monoid b => ParserT a m b -> ParserT a m b

Consumes the current input with a parser p as many times as successful, with at least one occurrence of p. Produces the accumulated result, without the guarantee of being stack-safe for large input.

Modules