Изменения

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

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

301 байт добавлено, 13:12, 5 июня 2015
Пример S-атрибутной грамматики
===Пример S-атрибутной грамматики===
<wikitex>
Выпишем синтаксически управляемое определение для грамматики арифметических выражений с операторами $+$ и $*$ (здесь $\{ADD {{...}} \}$ и $\{MUL {{...}} \}$ - [[Атрибутные_транслирующие_грамматики#tr_char|транслирующие символы]]. Если в продукции несколько раз встречается одинаковый нетерминал, будем добавлять к нему индексы, считая от начала продукции.) :
{| style="background-color:#CCC;margin:0.5px"
|style="background-color:#FFF;padding:2px 30px"| $S.val=E.val$
|-
|style="background-color:#FFF;padding:2px 30px"| $val\ E \to E + T\ \{ADD\ res = op_1 + op_2\}$
|style="background-color:#FFF;padding:2px 30px"| $ADD.op_1=E_1.val \\ ADD.op_2=T.val \\ E_0.val=ADD.res $
|-
|style="background-color:#FFF;padding:2px 30px"| $E.val=T.val$
|-
|style="background-color:#FFF;padding:2px 30px"| $val\ T \to T \times F \ \{MUL\ res = op_1 * op_2\}$
|style="background-color:#FFF;padding:2px 30px"| $MUL.op_1=T.val \\ MUL.op_2=F.val \\ T_0.val=MUL.res$
|-
497
правок

Навигация