All notable changes to this project will be documented in this file.
- Fix get_cls in BaseNodeRegistry, now updates fields of classes already in the registry
- Support for Terminal nodes in
get_text
- Add optional text attribute to BaseNode
- Fix marshalling to recursively transform children
- Return
None
ifget_position
has no better result - Add type signatures
- Improve lexer errors
- Support
get_position
for Terminal nodes
- Rewrite as a staged approach
- autodetection of ANTLR fields and labels: Unshaped doesn’t exist anymore
- more isolated steps: enables serialization (and possibility to let ANTLR parser run in a separate service)
- more powerful definition of reshaped node (= AliasNode) fields using tree paths
- easier definition of transforms (simplification & AliasNodes) (no ANTLR API knowledge needed, no other visiting in transformation methods)
- more shared code
- Add parameter to
parse
function to set a custom error listener (or remove the default listener)
- Fix setup.py
- Better package structure
- Helper to handle case sensitivity during lexing of ANTLR grammar
- The fields for AstNode subclasses are now defined in
_fields_spec
instead of_fields
so_fields
is now compatible with how theast
module defines it. parse()
doesn't accept a visitor but returns the parsed input.