— стартовый (главный) нетерминальный символ.
int x, y, z;
DVARB®intl iden (‘,’ iden) *’;’
PROG®(DVARB | DCONST | DFUNC) *eof
Строчные — терминальные, заглавные — нетерминальные.
Предположим, есть две цепочки и , . И есть правило, что ( можно заменить на ):
.
Тогда, заменив на , можно из цепочки получить (за один шаг). Говорят, что цепочка является непосредственно выводимой из цепочки :
.
Цепочка — просто выводимая из цепочки в двух (2) случаях:
Язык , определяемый грамматикой , — множество цепочек терминальных символов, полученных из стартового нетерминального символа путем применения правил преобразования, перечисленных в множестве при описании грамматики:
.
Пример:
, где ,
— нетерминальный символ,
— соответствующее ему регулярное выражение .
Самое первое регулярное выражение должно быть для главного стартового нетерминала.
Дана грамматика. Дано конкретное слово (цепочка символов). Необходимо определить, принадлежит ли это слово к формальному языку, описываемому данной грамматикой. В этом случае реализуется алгоритм LA(1)-анализ (лексический анализ — по одному символу прочитываются слева направо, и осуществляется анализ).
Пусть:
Цепочка
Относится ли эта цепочка к данному языку, описываемому данной грамматикой?
Реализуется одна из двух стратегий:
Пример: (сверху вниз)
Тогда: цепочка выводится из главного нетерминала.
Синтаксическая диаграмма представляет собой ориентированный граф с двумя вершинами — входной и выходной.®
Каждому нетерминальному символу соответствует регулярное выражение, по которому строится синтаксическая диаграмма: сколько нетерминальных символов, столько и синтаксических диаграмм.
В соответствии с каждой синтаксической диаграммой будет составляться функция для вывода и анализа цепочек, выводимых из этого нетерминального символа (для проверки правильности написания цепочки).
Дуги синтаксической диаграммы могут помечаться или терминальными или нетерминальными символами.
Условились: терминальные символы обводить в кружочек:
а нетерминальные — в квадрат:
Регулярное выражение :
и сдвинуться на следующий символ вправо в этой цепочке. Если символ не совпал, то анализ прекращается.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.