See: Description
| Interface | Description |
|---|---|
| Combinators.BiCombinator<A,B,R> | |
| Combinators.PentaCombinator<A,B,C,D,E,R> | |
| Combinators.QuaterCombinator<A,B,C,D,R> | |
| Combinators.TerCombinator<A,B,C,R> | |
| Parser<T> |
Main interface of the parser library, used to implement custom parsers.
|
| Class | Description |
|---|---|
| Combinators |
Wrapper class containing parser combinators.
|
| LazyParser<T> |
Lazily initialized parser.
|
| ParserContext |
An object for storing the data of a currently running parsing operation.
|
| Parsers |
Utility class for common helpful parsers.
|
Due to the declarative nature of the parser, it's quite hard to use a debugger with it. The recommended debugging method therefore is the usage of unit tests. Once you find out that something should be parseable, and it is not, write a test for it. Then proceed to minimise the test. Remove parts of the input string that don't make the expectations fail. In the end, you will end up with relatively clear indication about what is wrong, which grammar rule is defined incorrectly.