Создание синтаксического анализатора абстрактного синтаксического дерева для вашего собственного предметно-ориентированного языка.
pyastbuilder
— это среда Python для создания анализаторов, которые создают дерево объектов , отражающее абстрактное синтаксическое дерево языка (AST), по которому можно осуществлять навигацию, поиск и изменение с помощью Python. В пакет включен один наглядный пример: синтаксический анализатор языка W3C SPARQL, то есть sparqlparser.py
, который реализует Sparql v1.1. Однако можно использовать любой другой язык, указанный в BNF.
Существует множество специальных или универсальных парсеров, однако причина разработки pyastbuilder
заключается в том, что часто синтаксический анализ рассматривается как потоковый динамический процесс, в котором существует несколько перехватчиков, к которым можно прикрепить свой собственный код, в отличие от генерации статического абстрактного синтаксиса. дерево электронного «документа» с API для доступа к нему для последующей обработки.
Тяжелая работа по фактическому синтаксическому анализу возлагается на pyparsing, который включен и широко используется.
Мы следим за нашими подписчиками
ПРИНЦИП ДИЗАЙНА: Будьте предусмотрительным. Определите четкие критерии расположения документации. Какая часть документации помещена в файлы README, какие части можно найти на страницах вики, а какую информацию вы помещаете в код в виде комментариев? Определите и задокументируйте критерии документации, желательно в основной части документации, которую будет использовать ваш пользователь или разработчик, которой, вероятно, является файл README.md проекта.
Поэтому мы следуем следующим критериям в отношении документации:
pyastparser
, будут задокументированы как файлы README.md в каждой папке дерева исходного кода.pyastbuilder
, а также вся подробная документация по конкретному коду доступна в исходном коде в виде синтаксиса разметки reStructuredText (reST). Поскольку этот тип документации соответствует соглашению Python pydoc, можно создавать соответствующие HTML-страницы. Документация будет доступна после создания HTML, указав в браузере файл Doc/build/html/index.html
( TODO ).Они будут содержать ту часть документации, которая включает в себя общий дизайн исходного кода, доступного в конкретной части дерева. Данная документация предназначена для разработчиков проекта с целью предоставить им полное понимание:
Полный обзор документации вики можно найти на домашней странице вики. Можно ожидать следующие записи:
sparqlparser
в качестве библиотеки в вашем собственном коде Python, а также любого другого готового xxxparser
, который может быть предоставлен в будущем. проект. Поскольку любой другой xxxparser
будет основан на этом же проекте, мы можем с уверенностью предположить, что в sparqlparser
можно найти множество ссылок на очень похожие или даже идентичные варианты использования.xxxparser
, поделитесь им с этим проектом и создайте отдельную главу в нашем руководстве пользователя, посвященную использованию этого парсера. Однако: не дублируйте документацию , а вместо этого используйте руководство sparqlparser
в качестве справочного руководства. Пожалуйста, прочтите CONTRIBUTING.md для получения подробной информации о нашем кодексе поведения и процессе отправки нам запросов на включение.
Мы используем SemVer для управления версиями. Доступные версии см. в тегах этого репозитория.
См. также список участников, которые принимают участие(d) в этом проекте.
Этот проект лицензируется по лицензии MIT — подробности см. в файле LICENSE.md.