Библиотека для программирования Абстрактных синтаксических деревьев в Python

Я создаю дерево для представления простого языка. Я очень знаком с Абстрактными синтаксическими деревьями и работал над платформами для создания и использования их в C++. Существует ли стандартная библиотека Python для определения или управления произвольным ASTs? Сбой этого, там древовидная библиотека, которая полезна для той же цели?

Отметьте, я не управляю Python ASTs, таким образом, я думаю, что модуль AST не подходит.

10
задан Paul Biggar 23 December 2009 в 03:40
поделиться

3 ответа

АСТ очень просто реализовать на Python. Например, для моего проекта pycparser (полный парсер на Си на Python) я реализовал ASTs на основе идей, заимствованных из модулей Python. Различные узлы AST указаны в конфигурационном файле YAML, и я генерирую код на Python для этих узлов на самом Python

.
7
ответ дан 4 December 2019 в 02:26
поделиться

Если вы представляете свои грамматические элементы как выражения в наборе, то к каждому выражению можно прикрепить действие по разбору, которое возвращает экземпляр класса, содержащий маркеры разбора, относящиеся к конкретному типу синтаксического анализатора. В вики-проекте pyparsing есть пара примеров, иллюстрирующих эту технику (invRegex.py, simpleBool.py и evalArith.py). (Во всех этих грамматиках используется встроенный операторPrecedence, который может затушевывать некоторые грамматические структуры, но

.
0
ответ дан 4 December 2019 в 02:26
поделиться

Эта запись в блоге, хотя и краткая по деталям реализации, описывает хороший интерфейс, который Python ASTs мог бы реализовать.

http://chris-lamb.co. uk/2006/12/08/ Visitor-pattern-in-python/

0
ответ дан 4 December 2019 в 02:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: