Releases: RPTools/parser
Release 2.0.0
Features a new unicode-compatible parser based on antlr4.
Required Java version is now 21.
Part of the fix for RPTools/maptool#3076 and RPTools/maptool#4832
Release 1.8.3
Updated so that true/false are no longer tokens and will instead be identifiers.
Added code to MapVariableResolver to treat these as constant (as its the closest thing that this parser has to a symbol table).
Part of fix for RPTools/maptool#2168
Release 1.8.2
Make caching of parsed expressions possible in parser/dicelib. Caching is implemented in MaptoolExpressionParser.
The parser library interface changes externally from:
new Parser(resolver, true).parseExpression("Hello").evaluate()
to
new Parser(true).parseExpression("Hello").evaluate(resolver)
Gives a 2-6 factor improvement for re-running macros (or expressions in a loop). The longer the expression parsed, the more advantageous it is. See RPTools/maptool#1898 (comment)
See also:
https://github.com/RPTools/parser#45
https://github.com/RPTools/dicelib#57
RPTools/maptool#2086
Release 1.8.1
Make +, ==, !=, eqs, neqs work for non-string/bigdecimal arguments.
See RPTools/maptool#1898
And: RPTools/maptool#2062
Release 1.8.0
Add support for logical operators to Expression.format()/InlineTreeFormatter.
Part of macro performance improvements. See MapTool #1898 and DiceLib #43.
Release 1.7.1
More ISO-8859-1 support
Release 1.7.0
Add support for ISO-8859-1 characters
Release 1.6.0
Update Gradle and add Macro Stack Trace
Release 1.5.5
Remove self dependency and add antlr build to dependency.
Release 1.5.4
Changed checkParameters() error messages to always give name of function.