Python-синтаксический анализатор для Python-подобного языка

Я хочу написать фильтр импорта Python или препроцессор для исходных файлов, которые по сути являются Python с дополнительными языковыми элементами. Цель состоит в том, чтобы прочитать исходный файл, проанализировать его до абстрактного синтаксического дерева, применить некоторые преобразования для реализации новых частей языка и написать действительный исходный код Python, который затем может быть использован CPython. Я хочу написать это на Python и ищу лучший парсер для этой задачи.

Встроенный в Python синтаксический анализатор не подходит, потому что он требует, чтобы исходные файлы были на самом деле Python, а это не так. Существует множество парсеров (или генераторов парсеров), которые будут работать с Python, но без целого ряда исследований трудно сказать, какой из них лучше всего подходит для моих нужд.

В общем, мои требования таковы:

  1. Парсер написан на Python или имеет привязки к Python.
  2. Поставляется с грамматикой Python, которую я могу настроить или могу легко использовать настраиваемую грамматику Python, доступную в другом месте (например, http://docs.python.org/reference/grammar.html ).
  3. Может повторно сериализовать AST после его преобразования.
  4. Не должно быть слишком ужасно для работы с API.

Есть предложения?

13
задан chris 21 March 2013 в 06:59
поделиться