-
-
Notifications
You must be signed in to change notification settings - Fork 450
Open
Description
This is a list of TODOs I would like to see/do after #1388 is merged (or independently, but reviewing that PR is why I am now making this list):
Doc changes
- Explain that
_rulesare inlined after parsing, not before parsing, preparing for potentially addition of__rulesyntax, and preempting confusion about this (since this has semantic differences, especially with respect tolalr) - Similar thing for templates: They are instantiated, not expanded. (and can be recursive)
- Check if we can move over to proper
larksyntax highlighting instead of misusingperl.
Code changes
- Add terminal templates
- Add ability to
%declarerules so that they can later be implemented with either%overrideor more importantly%extend, useful for plugin features. - long term: Turn
LarkValidatorinto something that can be used byload_grammar.py - Move
find_grammar_errorsintolark_validator.py, and probably make it uselark.lark - Extend
find_grammar_errorsto do semantic checks usingLarkValidator(and therefore add the ability toLarkValidatorto report multiple issues) - longer term: Add a build step that turns
lark.larkinto a BNF representation that can be used byload_grammar.py- For example, alark.bnf.jsonfile loaded by the stdlib module. (We could potentially also "cache" the lalr parse tables in a json file. If we expose this build tool inside oflark.tools, together with aloadfunction, this could be a more lightweight alternative to standalone)
Metadata
Metadata
Assignees
Labels
No labels