— стартовый
(главный) нетерминальный символ.
int x, y, z;
DVARB®intl iden (‘,’ iden) *’;’
PROG®(DVARB | DCONST | DFUNC) *eof
Строчные — терминальные, заглавные — нетерминальные.
Предположим, есть две цепочки
и
,
. И есть
правило, что
(
можно
заменить на
):
.
Тогда, заменив
на
, можно из цепочки
получить
(за один шаг). Говорят, что цепочка
является непосредственно выводимой
из цепочки
:
.
Цепочка
— просто
выводимая из цепочки
в двух (2) случаях:
Язык
, определяемый
грамматикой
, — множество цепочек
терминальных символов, полученных из стартового нетерминального символа путем
применения правил преобразования, перечисленных в множестве
при описании грамматики:
.
Пример: ![]()
![]()
![]()
![]()
, где
,
— нетерминальный
символ,
— соответствующее
ему регулярное выражение
.
Самое первое регулярное выражение должно быть для главного стартового нетерминала.

Дана грамматика. Дано конкретное слово (цепочка символов). Необходимо определить, принадлежит ли это слово к формальному языку, описываемому данной грамматикой. В этом случае реализуется алгоритм LA(1)-анализ (лексический анализ — по одному символу прочитываются слева направо, и осуществляется анализ).
Пусть: ![]()
![]()
![]()
Цепочка ![]()
Относится ли эта цепочка к данному языку, описываемому данной грамматикой?
Реализуется одна из двух стратегий:
Пример: (сверху вниз)
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Тогда: цепочка выводится из главного нетерминала.
Синтаксическая диаграмма представляет собой ориентированный граф с двумя вершинами — входной и выходной.®

Каждому нетерминальному символу соответствует регулярное выражение, по которому строится синтаксическая диаграмма: сколько нетерминальных символов, столько и синтаксических диаграмм.
![]()
В соответствии с каждой синтаксической диаграммой будет составляться функция для вывода и анализа цепочек, выводимых из этого нетерминального символа (для проверки правильности написания цепочки).
Дуги синтаксической диаграммы могут помечаться или терминальными или нетерминальными символами.
Условились: терминальные символы обводить в кружочек:

а нетерминальные — в квадрат:

Регулярное выражение
:

|
|
|
|
|
|
|
|
|
|
|
|

и сдвинуться на следующий символ вправо в этой цепочке. Если символ не совпал, то анализ прекращается.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.