Как я могу пройти по дереву разбора, сгенерированному yacc? - PullRequest
0 голосов
/ 14 сентября 2018

Предположим, я дал правильное арифметическое выражение для моего файла yacc.А теперь я хочу показать, как выглядит дерево разбора, обходя его в предварительном или последующем порядке.Возможно ли пройти через дерево разбора. Просто новичок в разработке компилятора.

1 Ответ

0 голосов
/ 14 сентября 2018

Только если вы сами строите дерево во время разбора. Бизон / якк не сделают этого за вас.

Тем не менее, действия по уменьшению являются, по сути, предварительным обходом в глубину, поскольку сокращения происходят снизу вверх слева направо. Таким образом, вы можете получить нечто очень похожее на обход дерева разбора, добавив код «посещения» в каждое правило сокращения.

Но вам действительно лучше научиться создавать AST.

...