Подтвердить что ты не робот

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

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

Заметьте, я не манипулирую АСТ, но я считаю, что модуль АСТ не подходит.

4b9b3361

Ответ 1

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

Ответ 2

pyast - это пакет для создания декларативных абстрактных синтаксических деревьев.

Ответ 3

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