return TRUE; // применяем это правило, т. е. не делаем ничего и возвращаемся
return FALSE; // очередной терминал не входит ни в одно множество выбора, поэтому останов по ошибке
}
bool V() {
switch (CurrentLexem) { // здесь использована другая техника проверки очередного терминала
case ‘(‘ : // в этом случае должно применяться правило V : ( S )
CurrentLexem = GetLexem(); // прочитаем следующий терминал
if ( S() == FALSE ) // вызовем S(), и если она обнаружит ошибку,
return FALSE; // остановимся
if ( CurrentLexem != ‘)’ ) // если ошибки не было, то очередным терминалом должна быть скобка )
return FALSE; // если нет – остановимся
// если да, действуем так же, как в случае правил V : i и V : c
case ‘i’ : // это правило V : i
case ‘c’ : // это правило V : c
CurrentLexem = GetLexem(); // прочитаем следующий терминал
break; // и на выход
default : // очередной терминал не входит ни в одно множество выбора
return FALSE; // остановимся по ошибке
}
return TRUE; // возвратимся для продолжения разбора
}
( x + y ) * z u
Такт |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
Вход |
( |
( |
( |
( |
x |
x |
x |
+ |
+ |
+ |
+ |
+ |
y |
y |
y |
) |
) |
) |
) |
) |
) |
) |
* |
* |
z |
z |
u |
u |
u |
u |
u |
Функция |
Z |
S |
U |
V |
S |
U |
V |
U |
W |
U |
S |
R |
S |
U |
V |
U |
W |
U |
S |
R |
S |
V |
U |
W |
U |
V |
U |
W |
U |
S |
Z |
Стек |
Z |
S |
U |
V |
S |
U |
S |
U |
S |
V |
S |
R |
S |
U |
S |
U |
S |
R |
S |
V |
U |
S |
U |
W |
U |
W |
U |
S |
Z |
||
Z |
S |
U |
V |
S |
V |
S |
V |
U |
V |
S |
R |
S |
R |
S |
R |
S |
V |
U |
S |
Z |
S |
U |
W |
U |
S |
Z |
|||||
Z |
S |
U |
V |
U |
V |
U |
S |
U |
V |
S |
R |
S |
R |
S |
V |
U |
S |
Z |
Z |
S |
U |
S |
Z |
||||||||
Z |
S |
U |
S |
U |
S |
Z |
S |
U |
V |
S |
V |
S |
V |
U |
S |
Z |
Z |
S |
Z |
||||||||||||
Z |
S |
Z |
S |
Z |
Z |
S |
U |
V |
U |
V |
U |
S |
Z |
Z |
|||||||||||||||||
Z |
Z |
Z |
S |
U |
S |
U |
S |
Z |
|||||||||||||||||||||||
Z |
S |
Z |
S |
Z |
|||||||||||||||||||||||||||
Z |
Z |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.