Изменения

Перейти к: навигация, поиск

Атрибутные транслирующие грамматики

59 байт добавлено, 10:43, 4 июня 2015
Пример S-атрибутной грамматики.
В нашем примере видно, что $.val$ зависит только от детей, то есть это синтезируемый атрибут. Результат умножителя ($MUL.res$) зависит только от атрибутов атрибутов самого умножителя ($MUL.op_1$ и $MUL.op_2$), а значит тоже является синтезируемым(аналогично с сумматором $ADD$).
[[Файл:attributes_3mul5add43mul5add4.png|300pxаннотированное дерево разбора для 3*5+4|600px]]
После такого разбора, в $S.val$ будет лежать вычисленное значение выражения. Можно, например сразу напечатеть напечатать его, добавив правило к нему правило $\{print(S.val)\}$.
Хотя всегда можно переписать синтаксически управляемое определение таким образом, чтобы использовать только синтезируемые атрибуты, зачастую более удобно и естественно воспользоваться также и наследуемыми атрибутами.
497
правок

Навигация