Xonsh parser using CPython's PEGen grammar
Documentation: https://jnoortheen.github.io/xonsh-parser/
Source Code: https://github.com/jnoortheen/xonsh-parser
Benchmarks: https://xonsh.github.io/peg-parser/dev/bench/
- You can use any PEP-621 supported tools like PDM, Hatch ... to manage the development environment and production build.
# install development deps
pip install -e ".[dev,test,docs]"
- We use pre-commit for linting the code.
# setup linters,formatters etc.,
pre-commit install
- We use Taskfile to manage development tasks.
task test
# to watch for changes and run tests
task test --watch -- -x --ff
# release a new version
task release
- Explore the PEG grammar notations from the following pages
a. https://we-like-parsers.github.io/pegen/
b. https://devguide.python.org/internals/parser/ - Edit the xonsh.gram while adding any new actions to subheader.py
- Test the new changes with
task test
as the parser.py will get autogenerated - You can force regeneration with
task generate -f
This project is licensed under the terms of the MIT license.
- Thanks to pegen project for the Python version of the
CPython's
PEG parser - Thanks to intellij-pegen-plugin