Как визуализировать каждый шаг построения АСТ
Я кодирую синтаксический анализатор выражения и его визуализации, что означает, что каждый шаг разбора рекурсивного спуска или построения 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-ответ показывает, как анализировать и строить дерево при разборе.
Вы можете легко распечатать дерево или фрагменты дерева в каждой точке, где они созданы.
Чтобы напечатать дерево, просто пройдитесь по нему рекурсивно и напечатайте узлы с отступом, равным глубине рекурсии.