ВУЗ:
Составители:
63
В5. Цикл вида
S
переводится в оператор
while(belongsTo(ch, L)) T(S);
где T(S) есть отображение S в соответствии с правилами В3-В7, а L есть
множество L = first(S).
В6. Элемента графа, обозначающий другой граф A
A
переводится в оператор обращения к функции A().
В7. Элемент графа, обозначающий терминальный символ
x
переводится в оператор
if(ch == ’x’) ch = fgetc(input);
else error();
где error() – функция, к которой обращаются при появлении неправильной
конструкции.
Теперь покажем применение этих правил на примере преобразования
редуцированного графа (см. рис.10.2) в программу грамматического разбора.
char ch;
void A()
{
if(ch == 'x') ch = fgetc(input);
else
if(ch == '(')
{
ch = fgetc(input);
A();
while(ch == '+')
{
ch = fgetc(input);
63
В5. Цикл вида
S
переводится в оператор
while(belongsTo(ch, L)) T(S);
где T(S) есть отображение S в соответствии с правилами В3-В7, а L есть
множество L = first(S).
В6. Элемента графа, обозначающий другой граф A
A
переводится в оператор обращения к функции A().
В7. Элемент графа, обозначающий терминальный символ
x
переводится в оператор
if(ch == ’x’) ch = fgetc(input);
else error();
где error() – функция, к которой обращаются при появлении неправильной
конструкции.
Теперь покажем применение этих правил на примере преобразования
редуцированного графа (см. рис.10.2) в программу грамматического разбора.
char ch;
void A()
{
if(ch == 'x') ch = fgetc(input);
else
if(ch == '(')
{
ch = fgetc(input);
A();
while(ch == '+')
{
ch = fgetc(input);
Страницы
- « первая
- ‹ предыдущая
- …
- 61
- 62
- 63
- 64
- 65
- …
- следующая ›
- последняя »
