Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
adds EnumTokens and NumberTokens :
allows using Enums as simple single-token grammar junctions, simplifying and optimizing handling of sutuations where similar non-composite tokens can occur in the same position;
allows to define rule fields using types that extend java.lang.Number and have a constructor that accepts a String. Vastly simplifies implementations of java-compatible number type system.
Example:
adds IgnoreCase annotation
allows to perform case-insensitive matching using both Pattern and Terminal matchers
support for compilers:
now parser will read rule definition from the first class in inheritance chain that implements Rule interface, ignoring all its children. This allows to reuse grammar rules while implementing different behavior for the resulting AST: one set of grammar extending tokens can be used for evaluation, another - for linting or compiling the application into a different language.
Example (evaluating token):
Example (compiling token):