Я хочу написать фильтр импорта или препроцессор Python для исходных файлов, которые по сути являются Python с дополнительными элементами языка.Цель состоит в том, чтобы прочитать исходный файл, проанализировать его в абстрактном синтаксическом дереве, применить некоторые преобразования для реализации новых частей языка и написать действительный исходный код Python, который затем может использоваться CPython.Я хочу написать эту вещь на Python и ищу лучший синтаксический анализатор для этой задачи.
Парсер, встроенный в Python, не подходит, потому что он требует, чтобы исходные файлы были реальными Python, чего не будет.Существуют тонны парсеров (или генераторов парсеров), которые будут работать с Python, но трудно сказать, какой из них лучше всего подходит для моих нужд без целого ряда исследований.
Итак, мои требования:
- Parser написан на Python или имеет привязки Python.
- Поставляется с грамматикой Python, которую можно настроить, или может легко использовать настраиваемую грамматику Python, доступную в другом месте (например, http://docs.python.org/reference/grammar.html).
- Можно ли повторно сериализовать AST после преобразования.
- Не должно быть слишком ужасно работать с API.
Есть предложения?