- ParseRunner now requires the input to fully match to declare success.
- Require Java 8.
- Fix stupid bug with Characters
- Replace the value stack with a better performing one, based on arrays.
- Make InputBuffer implement CharSequence.
- New EventBusParser class.
- Name change: ParseRunnerListener -> ParseEventListener.
- Gradle 2.12.
- Experimental code to generate parsers from classes in custom classloaders.
- Add repeat() rule; remove {Zero,One}OrMoreMatcher since they are special cases of the new RepeatMatcher.
- Add popAs(), peekAs() to retrieve stack values casted to a subclass.
- join() (and using()) now allow several arguments: join(rule1, rule2).using(rule2, rule3) etc.
- Add regex() to match a Java regular expression (using .lookingAt()).
- Add longestString{,IgnoreCase}() as aliases to trie{,IgnoreCase}()
- Fix bugs with trieIgnoreCase()
- Significant performance improvements in trieIgnoreCase()
- trieIgnoreCase()
- trie() now accepts single character strings.
- When generating a label in the tracing CSV, escape all ASCII controls (this includes \r and \n).
- Simplify firstOf() with strings: replace with a trie()
- Simplify string() and ignoreCase()
- Get rid of MatcherPath
- ListeningParseRunner: throw exceptions thrown by parse runner listeners
- Regression: clear the value stack when reusing the same ParseRunner between to runs
- First beta version