PEG parser improvements, and default EBNF parser is now the PEG version.
- CI on Ruby 3.3.
- Add dependency on base64 gem.
- Revise logging to use standard RDF log facility.
- Example JSON grammars
EBNF grammar ambiguity
- Allow angle brackets around EBNF symbols. (Fixes #15).
- Parsers determine the if grammar rules start with an identifier followed by a symbol and dynamically set the terminal regular expressions accordingly. Subsequent rules must either all begin with an identifier, or only a symbol.
PEG parser
- Add informative/progress output for entry to productions as well as exit.
- Pass options recursively to parsers, and allow handlers to specify options. (Used for ignore_strings).
- Check for terminals that also match a string production but match longer than that string; they should not match.
- Add some missing unscans to PEG rule parser.