Dhparser

Latest version: v1.8.1

Safety actively analyzes 681866 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 8

10.2.2023

..................................

- bugfixes, some to restore broken backwards compatibility

10.2.2019

..................................

- optimization: flattens anonymous nodes already while parsing
- optimization: drops empty anonymous nodes already during parsing
- optimization: optionally allows to drop anonymous whitespace and tokens
while parsing
- major refactorings of node and parser class hierarchy: much simpler now,
no zombie classes needed any more
- parser_guard() is now integrated into the Parser class: Parsing
functionality moved to _parse() method, while Parser.__call__() is now the
new parser guard
- better support for customized error messages + bug fixes
- better cython support (makes it about 2.5 times as fast if cython is used)
- testing.grammar_suite now uses multiprocessing to run tests
- parse.Parser.apply() reworked

9.2.2022

.................................

- Module syntaxtree has been renamed to nodetree, because this expresses
the general character of this module better which can be used for
any kind of (XML-)tree-structure, not just syntax-trees
- many bugfixes
- Python3.11 compatibility

8.12.2022

..................................

- nodetree.Node.evaluate() now supports another "mode" where path information
is passed to the evaluating functions, making it much more versatile
- Cython is not listed as a dependency anymore in the pyproject.toml.
To use Cython speedups, Cython 3 alpha 11 is required (alpha 1-9
are also reported to work, but not alpha 11. Many thanks to Ailton Andrade
de Oliveira for cheking this out!) and the command "dhparser_cythonize"
or "dhparser_cythonize_stringview" must be run from the command line.
- a couple of minor bug-fixes

8.5.2020

.................................

- Support for various variants of EBNF-Grammars (see examples/EBNF/grammar_examples)
- More static error checking for EBNF-Grammars
- for debugging, notices informing about where the parser resumes after
an error can be added to the error messages. (See config-parameter
"resume_notices" and ' resume_XXXX' as well as ' skip_XXX'-directives.)
- added support for tag-less parsers: i.e. parser that are assigned to a
symbol that matches a certain regular expression, say, a leading underscore
will be treated as anonymous parsers
- extended support for dropping of content during parsing-stage, now any
tag-less parser's content can be dropped, not only that of the Token
and Whitespace-parsers
- AllOf- and SomeOf-parsers have been exchanged in favor of a more flexible
Interleave-parser
- (some) static analysis of the generated parser during ebnf-compilation for
possible mistakes
- better parsing history (now moved from parse.py to the new trace.py-module)
- some speed optimizations
- refactoring: history tracking has been moved from parse.py to module
trace.py (new) and log.py

6.10.2020

..................................

- better Language server support (modules server.py and lsp.py - still
somewhat experimental)
- language servers can now also be connected via streams, not only tcp
- Rudimentary Language Server example (for Visual Studio Code etc.) in
examples/EBNF added
- faster tree serialization with Node.as_sxpr or Node.as_xml

Page 5 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.