227
Синтаксис
TERMINALS LIST : 'Terminals' , ':' , TERMINAL # ',' , '.' .
TERMINAL : " ' " , DENOTATION, " ' " ; ' " ' , DENOTATION, ' " ' .
DENOTATION : 'Любая цепочка литер' .
Описание алфавита терминалов начинается с ключевого слова Terminals, за
которым следует двоеточие и элементы списка терминалов, разделенные
запятыми. Список элементов завершается точкой. Элемент списка —
произвольная цепочка литер, заключенная в апострофы или двойные кавычки.
Пример:
Terminals : 'begin' , ':=' , "'".
Последний элемент в этом списке — апостроф в двойных кавычках.
Алфавиты семантических символов. Семантические символы
ассоциируются с некоторыми преобразованиями операционной среды,
выполняемыми на прямом или обратном просмотре челночного процессора.
Соответственно, если семантики используются, необходимо определять
алфавиты семантических символов прямого и (или) обратного просмотров.
Синтаксис
FORWARD PASS SEMANTICS LIST: 'Forward pass semantics' , ':' , TAG # ',' ,
'.' .
BACKWARD PASS SEMANTICS LIST: 'Backward pass semantics', ':', TAG # ',' ,
'.' .
Описания алфавитов семантик прямого и обратного просмотров
различаются только ключевыми фразами, с которых они начинаются: Forward
pass semantics или Backward pass semantics соответственно. Далее следует
двоеточие, элементы алфавита, разделенные запятой, и точка.
Элементы-идентификаторы используются в правых частях правил
грамматики в качестве семантик. В разделе описания операционной среды
каждый семантический символ должен быть описан как процедура без
параметров.
Примеры:
Forward pass semantics : FPInit , FPStep , FPDone .
Backward pass semantics : BPInit , BPStep , BPDone .
По этим словарям символы FPInit, FPStep, FPDone, используемые в правилах
грамматики, идентифицируются как семантики прямого просмотра, тогда как
символы BPInit, BPStep, BPDone — как семантики обратного.
Алфавиты резольверных символов. Резольверные символы ассоциируют-
ся с некоторыми предикатами, тестирующими текущее состояние операцион-
ной среды на прямом или обратном просмотре челночного процессора.
Соответственно, если резольверы используются, необходимо определять алфа-
виты резольверных символов прямого и (или) обратного просмотров.
Синтаксис
FORWARD PASS RESOLVERS LIST: 'Forward pass resolvers', ':', TAG # ',' , '.' .
BACKWARD PASS RESOLVERS LIST: 'Backward pass resolvers', ':', TAG # ',' , '.' .