You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
License modified to GNU LGPL version 3
The license agreement for this library has been changed to GNU LGPL,
version 3. This change was made for compatibility reasons and most
users will remain unaffected.
Added Visual Basic.NET code generation
A Visual Basic.NET source code generator has been contributed by
Adrian Moore. It uses the same run-time library (DLL) as the C# .NET
version. Bug #8199
Added support for case-insensitive parsing
A CASESENSITIVE grammar declaration has been added to make it
possible to parse in case-insensitive mode. By default all parsing is
case-sensitive. Thanks to Adrian Moore for providing a partial implementation. Bug #5060
Added support for reusing parsers and tokenizers
A reset() method has been added to both the Parser and the Tokenizer
classes, allowing to reuse a parser with a new input stream. By reusing a
single parser and tokenizer for various input files speed and memory
gains can be made, especially for complex grammars. Bug #4500
Added factory methods for creating various objects
New factory methods for creating tokens, productions, tokenizers and
analyzers have been added. These can be overridden in subclasses to
provide more specific classes if desired.
Improved the tokenizer processing speed
The tokenizer speed has been improved by using a custom DFA
implementation for regular expressions. The tokenization phase now
runs some 20-30% faster in the general case. Bug #3603 & Bug #8202
Changed to use native Java regular expressions
Since the built-in regular expression library is not used as frequently
after the implementation of DFA regular expression handling, the native
Java regular expression classes are now used. This implies improved
support for advanced regular expression syntax (at a performance
penalty). Bug #3597 & Bug #17189
Changed .NET parser namespace for C# 2.0
The C# parser namespace has been modified from PerCederberg.Grammatica.Parser
to PerCederberg.Grammatica.Runtime due to the new C# 2.0 compiler strictness. Bug #14302
Changed .NET parser API for better integration
The .NET parser API has been modified for almost all classes, introducing
properties and indices instead of getter and setter methods. The old methods
have been deprecated, but are still available to avoid breaking existing applications. Bug #8693
Changed built-in regular expression API subtly
Due to fixes required to be able to reuse tokenizers, the built-in regular
expression class API had to be changed subtly. In essence, all the methods
can now throw IOException which breaks a Java compile. Bug #4500
Fixed possible divide by zero in profiling
When profiling grammars with small input files, the time measured could
previously be zero (0). This caused a division by zero exception when
calculating the number of tokens parsed per second. Bug #7998
Fixed parse error on some grammar comments
Grammar comments ending with **/ previously caused a parse error.
The comment token regular expression has now been corrected to fix this. Bug #12767
Fixed premature EOF reported in some cases
The tokenizer previously assumed EOF had been encountered when a full
look-ahead buffer couldn't be read. Thanks to Jeremy M Stone for finding this. Bug #23818
Fixed token match priority to use the grammar order
String tokens were previously always checked and considered first, unless a
regular expression token matched more characters. This has now been
changed to depend on the grammar file ordering instead. Bug #13009