191
В классе состояний 5:
В конструкции BoldTag после компоненты '.' ожидается Tag
В конструкции Lexeme
после компоненты SpecSymbol ожидается Comment
В классе состояний 7:
В конструкции Comment после компоненты '{' ожидается '}'
В классе состояний 8:
В конструкции BoldTag после компоненты Tag ожидается 'Blind'
В конструкции Lexeme после компоненты BoldTag ожидается Comment
В конструкции Tag после компоненты 'Digit' ожидается 'Letter', 'Digit'
В конструкции Tag после компоненты 'Letter' ожидается 'Letter', 'Digit'
В классе состояний 9:
В конструкции Lexeme после компоненты Comment ожидается Comment
В классе состояний 10:
В конструкции Lexeme после компоненты BoldTag ожидается Comment
Замечание 4. В спецификации трансляции GenerLex не были определены
синонимы для нетерминала и вспомогательных понятий. Поэтому в
приведенных диагностических сообщениях использованы рабочие термины
(акронимы). Разумеется, в окончательной версии этого процессора следовало
бы использовать русско-язычную терминологию. Здесь этого не сделано, чтобы
показать, что на ранней стадии разработки трансляции выбор окончательной
терминологии для диагностических сообщений временно можно отложить "на
потом".
7.5. ОДНОПРОСМОТРОВЫЙ АНАЛИЗ
ГЕНЕРАТОРОВ АЛГОЛА 68
Для иллюстрации многопроцессорной
123
техники трансляции здесь мы
рассмотрим ход анализа на лексическом и синтаксическом уровнях одного
локального генератора Алгола 68, а именно:
.loc .struct ([5].int x, .proc[ ] .real y).
Лексический анализ реализуется конечным процессором GenerLex, а
синтаксический — сплайновым процессором Gener. Собственно
сканированием входного текста занимается транслитератор, использующий
таблицу транслитерации, построенную по описанию микролексики в
спецификации трансляции GenerLex. Оба процессора однопросмотровые и
контекстно-чувствительные. Тот и другой используют оптимизированные
управляющие таблицы (см. табл.7.4 и 7.8).
Протокол однопросмотрового анализа генератора : .loc .struct ( [ 5 ] .int x,
.proc [ ] .real y). В представленном далее протоколе (табл. 7.10) левая колонка
показывает работу основного процессора Gener, а правая — процессора
123
Имеется в виду использование нескольких языковых процессоров.