Составители:
17
- $Tab_Lexems[..]->Value -массив значений лексем;
- $Number_Lexem - номер очередной рассматриваемой лексемы в массиве
лексем;
- $Stek_do - стек для циклов WHILE;
- $Stek_if - стек для развилок IF.
Рис. 8. R-схема расстановки ссылок
Семантические функции к R-схеме расстановки ссылок:
y0: подготовка (инициализация стеков и переменных), номер очередной
лексемы $Number_Lexem=1, прочитать лексему с номером $Number_Lexem;
y1: значение $Number_Lexem занести стек $Stek_do ($Number_Lexem→$Stek_do);
y2: снять вершину стека $Stek_do в переменную $s ($s ← $Stek_do), снять
вершину стека $Stek_do в переменную $r ($r ← $Stek_do), значение $r+1
присвоть лексеме с номером $Number_Lexem [ENDDO→WHILE+1]
($Tab_Lexems[$Number_Lexem]->Value=$r+1), значение $Number_Lexem+1
присвоить лексеме с номером $s [DO→ENDDO+1]
($Tab_Lexems[$s]->Value=$Number_Lexem+1);
y3: значение $Number_Lexem занести в стек $Stek_if ($Number_Lexem→$Stek_if);
y4: снять вершину стека $Stek_if в переменную $r ($r ← $Stek_if), присвоить
значение $Number_Lexem+1 лексеме c номером $r [THEN→ELSE+1]
- $Tab_Lexems[..]->Value -массив значений лексем; - $Number_Lexem - номер очередной рассматриваемой лексемы в массиве лексем; - $Stek_do - стек для циклов WHILE; - $Stek_if - стек для развилок IF. Рис. 8. R-схема расстановки ссылок Семантические функции к R-схеме расстановки ссылок: y0: подготовка (инициализация стеков и переменных), номер очередной лексемы $Number_Lexem=1, прочитать лексему с номером $Number_Lexem; y1: значение $Number_Lexem занести стек $Stek_do ($Number_Lexem→$Stek_do); y2: снять вершину стека $Stek_do в переменную $s ($s ← $Stek_do), снять вершину стека $Stek_do в переменную $r ($r ← $Stek_do), значение $r+1 присвоть лексеме с номером $Number_Lexem [ENDDO→WHILE+1] ($Tab_Lexems[$Number_Lexem]->Value=$r+1), значение $Number_Lexem+1 присвоить лексеме с номером $s [DO→ENDDO+1] ($Tab_Lexems[$s]->Value=$Number_Lexem+1); y3: значение $Number_Lexem занести в стек $Stek_if ($Number_Lexem→$Stek_if); y4: снять вершину стека $Stek_if в переменную $r ($r ← $Stek_if), присвоить значение $Number_Lexem+1 лексеме c номером $r [THEN→ELSE+1] 17
Страницы
- « первая
- ‹ предыдущая
- …
- 15
- 16
- 17
- 18
- 19
- …
- следующая ›
- последняя »