Пред.Страница След.Страница Раздел Содержание
5.1.5. Пример использования АТ-грамматики
Чтобы
показать, как используются наследуемые атрибуты и как АТ-грамматики можно применять при
конструировании компиляторов, рассмотрим процесс обработки описаний переменных
в некотором гипотетическом языке программирования. Допустим, что описание
переменных имеет вид:
int X,Y,Z
и условимся,
что после обработки пакета описания на входном языке лексический анализатор
строит таблицу символьного представления идентификаторов (ТС) и таблицу переменных (ТП).
Каждый элемент таблицы переменных состоит из двух полей. В первое поле
заносится указатель на строку ТС, в которой
хранится идентификатор переменной, а во втором поле должен храниться указатель
на строку таблицы значений (ТЗ), в которой
должно находиться значение переменной. Связи между этими таблицами показаны на
следующем рисунке:
На
рисунке цифрами обозначены указатели на элементы соответствующих таблиц, а
пунктирными линиями показаны указатели, значения которых должны быть записаны в
ТП после синтаксического анализа. В
результате обработки входной строки лексический анализатор заменяет
идентификаторы лексемами, каждая из которых состоит из указателя класса
переменных (V) и наследуемого
атрибута, представляющего собой указатель на соответствующую строку ТП, и входная строка приобретает вид:
int V/10,V/12,V/14