Version: 0.4.0

combinators

identity

Identity parser, returns the Parser as is.

function identity(Parser $parser) : Parser

pure

A parser that will have the argument as its output, no matter what the input was. It doesn't consume any input.

function pure($output) : Parser

optional

Optionally parse something, but still succeed if the thing is not there

function optional(Parser $parser) : Parser

bind

Create a parser that takes the output from the first parser (if successful) and feeds it to the callable. The callable must return another parser. If the first parser fails, the first parser is returned.

This is a monadic bind aka flatmap.

function bind(Parser $parser, callable $f) : Parser

sequence

Parse something, then follow by something else. Ignore the result of the first parser and return the result of the second parser.

function sequence(Parser $first, Parser $second) : Parser

keepFirst

Sequence two parsers, and return the output of the first one.

function keepFirst(Parser $first, Parser $second) : Parser

keepSecond

Sequence two parsers, and return the output of the second one.

function keepSecond(Parser $first, Parser $second) : Parser

either

Either parse the first thing or the second thing

function either(Parser $first, Parser $second) : Parser

append

Combine the parser with another parser of the same type, which will cause the results to be appended.

function append(Parser $left, Parser $right) : Parser

assemble

Append all the passed parsers.

function assemble(Parser ...$parsers) : Parser

collect

Parse into an array that consists of the results of all parsers.

function collect(Parser ...$parsers) : Parser

any

Tries each parser one by one, returning the result of the first one that succeeds.

function any(Parser ...$parsers) : Parser

choice

Tries each parser one by one, returning the result of the first one that succeeds.

Alias for {@see any()}

function choice(Parser ...$parsers) : Parser

atLeastOne

One or more repetitions of Parser, with the outputs appended.

function atLeastOne(Parser $parser) : Parser

zeroOrMore

Warning: Deprecated

Zero or more repetitions of Parser, with the outputs appended.

function zeroOrMore(Parser $parser) : Parser

map

Map a function over the parser (which in turn maps it over the result).

function map(Parser $parser, callable $transform) : Parser