ВУЗ:
Составители:
21
2) gc – процедура считывания очередного символа исходной строки в пе-
ременную СH;
3)
Err - процедура обработки ошибок, возвращающая по коду соответст-
вующее сообщение об ошибке.
С учетом введенных обозначений, процедуры синтаксического разбора
будут иметь вид.
procedure S;
begin
A; B;
if CH<>′⊥′ then ERR
end;
procedure A;
begin
if CH=
′
a
′
then gc
else if CH=′c′
then begin
gc; A
end
else Err
end;
procedure B;
begin
if CH= ′b′ then
begin
gc; B
end
else Err
end;
Теорема 2.1. Достаточные условия применимости метода рекурсивного
спуска
Метод рекурсивного спуска применим к грамматике, если правила выво-
да грамматики имеют один из следующих видов:
1) A→
α
, где
α
∈(T∪N)
*
, и это единственное правило вывода для этого не-
терминала;
2) A→a
1
α
1
| a
2
α
2
|…| a
n
α
n
, где a
i
∈T для каждого i=1, 2,…, n; a
i
≠
a
j
для i
≠
j,
α
i
∈(T∪N)
*
, т.е. если для нетерминала А несколько правил вывода, то они долж-
ны начинаться с терминалов, причем эти терминалы должны быть различными.
Данные требования являются достаточными, но не являются необходи-
мыми. Можно применить эквивалентные преобразования КС-грамматик, кото-
рые способствуют приведению грамматики к требуемому виду, но не гаранти-
руют его достижения (см. лабораторную работу № 4) /11/.
2) gc – процедура считывания очередного символа исходной строки в пе- ременную СH; 3) Err - процедура обработки ошибок, возвращающая по коду соответст- вующее сообщение об ошибке. С учетом введенных обозначений, процедуры синтаксического разбора будут иметь вид. procedure S; begin A; B; if CH<>′⊥′ then ERR end; procedure A; begin if CH=′a′ then gc else if CH=′c′ then begin gc; A end else Err end; procedure B; begin if CH= ′b′ then begin gc; B end else Err end; Теорема 2.1. Достаточные условия применимости метода рекурсивного спуска Метод рекурсивного спуска применим к грамматике, если правила выво- да грамматики имеют один из следующих видов: 1) A→α, где α∈(T∪N)*, и это единственное правило вывода для этого не- терминала; 2) A→a1α1 | a2α2 |…| anαn, где ai ∈T для каждого i=1, 2,…, n; ai≠aj для i≠j, αi∈(T∪N)*, т.е. если для нетерминала А несколько правил вывода, то они долж- ны начинаться с терминалов, причем эти терминалы должны быть различными. Данные требования являются достаточными, но не являются необходи- мыми. Можно применить эквивалентные преобразования КС-грамматик, кото- рые способствуют приведению грамматики к требуемому виду, но не гаранти- руют его достижения (см. лабораторную работу № 4) /11/. 21
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »