Изменения

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

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

5 байт убрано, 17:00, 11 февраля 2019
Атрибуты в ANTLR
Стартовый нетерминал печатает результат:
s : expr { System.out.println($expr.valueval); };
В продукции для нетерминала <code>expr</code> определяется возвращаемое значение (<code>['''int''' valueval]</code>). Обращение к этому атрибуту имеет вид <code>$expr.value</code>. В фигурных скобках записаны семантические правила.
Разобранные нетерминалы возвращают результат, вычисленный в поддереве(<code>returns [int val]</code>) как свой синтезируемый атрибут, процесс вычисления которого описан в фигурных скобках <code>{ $val = $exprP.val; }</code>.
term '''returns''' ['''int''' val]
: fact termP[$fact.val] { $val = $termpPtermP.val; }
;
Анонимный участник

Навигация