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