Изменения

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

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

505 байт убрано, 16:31, 5 июня 2015
Атрибуты в ANTLR
Рассмотрим для примера грамматику арифметических выражений с операторами <tex>+-\times \div</tex>, и выводом результата выражениая.
 
Вне продукций грамматики бывает нужно вставить в сгенерированный разборщик(для Java) package, import, а также некоторые поля и методы. Это делается с помощью <code>@header</code> и <code>@members</code>:
grammar Expr;
'''@header''' { package ru.ifmo.ctddev.wiki; import java.util.*; } '''@parser::members''' { Map<String, Integer> memory = new HashMap<String, Integer>(); int eval(int left, int op, int right) { //... } }
Стартовый нетерминал печатает резульат:
Анонимный участник

Навигация