ВУЗ:
Составители:
68
С5. Цикл (см. рис. к правилу В5) преобразуется в следующую
структуру:
S
*
empty
NULL
*
*
В качестве примера рассмотрим построение структуры данных для
сводного синтаксического графа, приведенного выше на рис.10.2.
Структура данных идентифицируется узлом-заголовком
, который
содержит имя нетерминального символа (цели), к которому относится
структура. Вообще говоря, заголовок не является необходимым, так как
можно вместо поля цели указывать непосредственно на "вход" в
соответствующую структуру. Однако заголовок можно использовать для
хранения выводимого на печать имени структуры:
struct header;
typedef header *hpointer;
struct header {
pointer entry;
char sym;
};
Программа, производящая грамматический разбор предложения,
представленного в виде
последовательности символов входного файла,
состоит из повторяющегося оператора, описывающего переход от одного
узла к следующему узлу.
В поле sym для терминального символа помещается сам символ, для
нетерминального – ссылка на соответствующую структуру данных. Она
оформлена как процедура, задающая интерпретацию графа; если встречается
узел, представляющий нетерминальный символ, то интерпретация графа, на
который
ссылается данный узел, предшествует завершению интерпретации
текущего графа. Следовательно, процедура интерпретации вызывается
68 С5. Цикл (см. рис. к правилу В5) преобразуется в следующую структуру: S * * empty NULL * В качестве примера рассмотрим построение структуры данных для сводного синтаксического графа, приведенного выше на рис.10.2. Структура данных идентифицируется узлом-заголовком, который содержит имя нетерминального символа (цели), к которому относится структура. Вообще говоря, заголовок не является необходимым, так как можно вместо поля цели указывать непосредственно на "вход" в соответствующую структуру. Однако заголовок можно использовать для хранения выводимого на печать имени структуры: struct header; typedef header *hpointer; struct header { pointer entry; char sym; }; Программа, производящая грамматический разбор предложения, представленного в виде последовательности символов входного файла, состоит из повторяющегося оператора, описывающего переход от одного узла к следующему узлу. В поле sym для терминального символа помещается сам символ, для нетерминального – ссылка на соответствующую структуру данных. Она оформлена как процедура, задающая интерпретацию графа; если встречается узел, представляющий нетерминальный символ, то интерпретация графа, на который ссылается данный узел, предшествует завершению интерпретации текущего графа. Следовательно, процедура интерпретации вызывается
Страницы
- « первая
- ‹ предыдущая
- …
- 66
- 67
- 68
- 69
- 70
- …
- следующая ›
- последняя »