Книга: Системное программное обеспечение. Лабораторный практикум

Таблица 3.8. Матрица операторного предшествования

Таблица 3.8. Матрица операторного предшествования


Теперь на основе исходной грамматики G можно построить остовную грамматику G'({if,then,else,a,=,or,xor,and,(,),},{E},P',E) с правилами P':

E ? E; – правило 1;

E ? if E then E else E | if E then E | a:= E – правила 2, 3 и 4;

E ? if E then E else E | a:= E – правила 5 и 6;

E ? E or E | E xor E | E – правила 7, 8 и 9;

E ? E and E | E – правила 10 и 11;

E ? a | (E) – правила 12 и 13.

Жирным шрифтом в грамматике и в правилах выделены терминальные символы.

Всего имеем 13 правил грамматики. Причем правила 2 и 5, а также правила 4 и 6 в остовной грамматике неразличимы, а правила 9 и 11 не имеют смысла (как было уже сказано, цепные правила в остовных грамматиках теряют смысл). То, что две пары правил стали неразличимы, не имеет значения, так как по смыслу (семантике входного языка) эти две пары правил обозначают одно и то же (правила 2 и 5 соответствуют полному условному оператору, а правила 9 и 11 – оператору присваивания). Поэтому в дереве синтаксического разбора нет необходимости их различать. Следовательно, синтаксический распознаватель может пользоваться остовной грамматикой G'.

Оглавление книги


Генерация: 0.065. Запросов К БД/Cache: 0 / 3
поделиться
Вверх Вниз