Как преобразовать дерево Pyparsing в граф потока данных? - PullRequest
1 голос
/ 21 июня 2020

Я разработал python -подобный компилятор DSL, использующий pyparsing, который генерирует абстрактное синтаксическое дерево (AST). Сформируйте этот AST, я хочу создать граф потока данных в библиотеке networkx. Я просто не могу понять, как преобразовать последовательности (for), selection (if) и параллельные конструкции в поток данных.

for x in range(1, 10):
    print(x)

Приведенный выше код генерирует следующее дерево синтаксического анализа.

[['STMT', 1, ['FOR', ['x', ['FUNCCALL', ['range', [[['NUMEXPR', ['MULTEXPR', '1']]]] , [['NUMEXPR', ['MULTEXPR', '10']]]]]], ['MULTISTMT', [1, 5], [[['STMT', 2, ['FUNCCALL', ['print ', [[[' NUMEXPR ', [' MULTEXPR ',' x ']]]]]]]]]]]]]]

...