Package proguard.classfile.attribute.signature.parsing
This package contains a small library for writing recursive descent parsers through the use of
parser combinators. It is somewhat inspired by ParsecJ, but simplified to be good enough for
our needs.
Debugging
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.
- See Also:
- Parser combinators
-
Interface Summary 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 Summary 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.