Я понимаю, что мне нужен токенизатор, структура данных, такая как дерево или карта, для хранения моих узлов по мере работы. , но меня ставят в тупик вложенные блоки кода.
Если бы у меня было что-то простое, например
Код: Выделить всё
if foo:
Поэтому я мог бы написать что-нибудь, чтобы приведенный выше простой код анализировался и генерировал следующий вывод:
Код: Выделить всё
[IF_BLOCK]
[Condition] foo
[Then] statements
Код: Выделить всё
if foo:
if bar:
do1()
else:
do2()
if bar2:
do3()
Код: Выделить всё
[IF_BLOCK]
[Condition] foo
[Then] [IF_BLOCK]
[Condition] bar
[Then] do2()
[IF_BLOCK]
[Condition] bar2
[Then] do3()
Подробнее здесь: https://stackoverflow.com/questions/785 ... ython-code