This release fixes portability/ANSI-C issues, a bug where actions would not fire with regex productions, and changes the binary interface ${action} to be by rule instead of by production and to take an optional integer argument.
This release fixes a bug in ambiguity handling which could result in
incorrect results or a crash. It adds new interfaces for building tables
from a grammar in a string and reading and writing binary tables to/from
memory and/or a FILE*.
Ported to x86-64 (tested on SUSE 9.1). A bug in the Python binary interface has been fixed. Python emacs support files and testing files have been added.
Support for trailing contexts in regexps ("foo/bar") and binary
table format for Python. Bugs in error recovery were fixed,
longest match scanning and d_ws_before were included, and
str(r)chr is now used instead of non-standard (r)index.
New features include the ability to "include"
subgrammars and new notation: %< %> as
global code indicators, $#n for the number of
children of element n, ${child 1,2,3} for the 3rd
child of the 2nd child of the 1st child. An option
was added for fixup_EBNF_productions, and the way
that fixups work was changed to be more
consistent. Naming of regex productions was added.
Support for dynamic scoping was added to symtab.
Line numbering of generated code was improved.
The -I option was added to identify grammar by
filename. Support for very large scanners was
fixed.