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