Как визуализировать каждый шаг построения АСТ

Я кодирую синтаксический анализатор выражения и его визуализации, что означает, что каждый шаг разбора рекурсивного спуска или построения AST будет визуализироваться как крошечная версия VisuAlgo.

// Expression grammer
Goal -> Expr
Expr -> Term + Term
      | Expr - Term
      | Term
Term -> Term * Factor
      | Term / Factor
      | Factor
Factor -> (Expr)
      | num
      | name

Поэтому мне интересно, какую структуру данных можно легко использовать для хранения каждого шага построения AST и как реализовать визуализацию каждого шага построения AST. Ну, я уже искал несколько похожих вопросов и реализовал парсер рекурсивного спуска раньше, но просто не могу найти способ это выяснить. Я буду признателен, если кто-нибудь может мне помочь.

1 ответ

Этот SO-ответ показывает, как анализировать и строить дерево при разборе.

Вы можете легко распечатать дерево или фрагменты дерева в каждой точке, где они созданы.

Чтобы напечатать дерево, просто пройдитесь по нему рекурсивно и напечатайте узлы с отступом, равным глубине рекурсии.

Другие вопросы по тегам