497
правок
Изменения
→Пример работы с атрибутами в нисходящем разборе
$
В данной реализации рекурсивные функции от нетерминалов получают на вход (если необходимо) наследуемые атрибуты узла и возвращают вершины дерева разбора, в атрибутах которых записан результат вычислений соответствующего подвыражения. Однако этот код легко изменить, чтобы он только вычислял значение выражения и не строил дерево разбора. Как мы видим, $val$ - синтезируемый атрибут, $acc$ - наследуемый атрибут, $ADD$ - транслирующий символ. Синим подсвечены строки, отвечающие за работу с атрибутами.
Здесь <tex>\mathtt{Node}</tex> {{---}} структура следующего вида: