Курсовая Лексический анализатор. Краткий курс лекций. Курс лекций по спецкурсу Методы трансляции
Скачать 0.64 Mb.
|
Синтаксический анализ предложений для грамматик с |
M1 | x1...xk | y1...ym | СП | * | M2 |
где
M1 – метка правила (может отсутствовать);
x1...xk – образец для сравнения с частью приводимой строки. Может содержать символ – любой символ;
y1...ym – строка, которая заменяет часть приводимой строки x1...xk (может отсутствовать);
СП – имя семантической подпрограммы (может отсутствовать). Это может быть фиксация обнаруженной ошибки, выход по концу разбора и т.п.;
* – знак, предписывающий прочитать следующий символ входной строки (может отсутствовать);
M2 – метка правила, к которому нужно перейти после успешного применения данного правила (может отсутствовать).
Грамматический разбор предложений для LR(n)-грамматик ведется с использованием стека терминальных и нетерминальных символов. Возможность применения отдельных правил подстановки Флойда определяется совпадением образца x1...xk из правила с k верхними символами стека.
Завершение грамматического разбора осуществляется путем вызова специальной семантической подпрограммы – «Выход». Для обеспечения автоматического вызова этой подпрограммы исходная грамматика дополняется правилом вида: Z → S┴, где S – начальный символ исходной грамматики, ┴ – ограничитель, добавляемый к входной строке.