Package lepl :: Package matchers
[hide private]
[frames] | no frames]

Package matchers

source code

Matchers form the basis of the library; they are used to define the grammar and do the work of parsing the input.

A matcher is like a parser combinator - it takes a stream, matches content in the stream, and returns a list of tokens and a new stream. However, matchers are also coroutines that can be "recalled" to return alternative matches. This gives backtracking.

Matchers are defined and implemented as both classes and functions. I have used the same syntax (capitalized names) for both to keep the API uniform.

For more background, please see the manual.

Submodules [hide private]