Составители:
18
($Tab_Lexems[$r]->Value=$Number_Lexem+1), занести в $Stek_if значение
$Number_Lexem ($Number_Lexem→$Stek_if);
y5: снять вершину стека $Stek_if в переменную $r ($r←$Stek_if), присвоить
значение $Number_Lexem+1 лексеме c номером $r [THEN→ENDIF+1,
ELSE→ENDIF+1] ($Tab_Lexems[$r]->Value=$Number_Lexem+1) занести в
$Stek_if значение $Number_Lexem ($Number_Lexem→$Stek_if);
y6: завершить работу;
y7: $Number_Lexem++, прочитать очередную лексему с номером
$Number_Lexem;
2.3. Интерпретатор
После лексической обработки и расстановки ссылок последовательность
лексем, массивы идентификаторов и констант поступают на обработку
интерпретатору. Задача интерпретатора - распознать конструкции языка и
выполнить действия, предписанные входной программой. Учитывая, что
синтаксический разбор будет производиться над массивом лексем, уточним
грамматику языка МИЛАН, которая будет использована для синтаксического
анализа последовательности лексем. Множество терминалов в уточненной
грамматике - это множество лексем.
Уточненная грамматика языка МИЛАН:
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
Здесь и - число идентификаторов и констант; нетерминалы обозначают
конструкции языка: - <программа>; -<последовательность операторов>;
- <оператор>; - <условие>; - <выражение>; - <терм>; - <множитель>;
- <константа>; O - <знак отношения>; M - <операция типа умножения>;
N - <операция типа сложения>; I - <идентификатор>.
Построим синтаксические диаграммы интерпретатора языка МИЛАН (рис.
9-10). Из диаграммы видно, что грамматика языка МИЛАН является -
грамматикой.
($Tab_Lexems[$r]->Value=$Number_Lexem+1), занести в $Stek_if значение $Number_Lexem ($Number_Lexem→$Stek_if); y5: снять вершину стека $Stek_if в переменную $r ($r←$Stek_if), присвоить значение $Number_Lexem+1 лексеме c номером $r [THEN→ENDIF+1, ELSE→ENDIF+1] ($Tab_Lexems[$r]->Value=$Number_Lexem+1) занести в $Stek_if значение $Number_Lexem ($Number_Lexem→$Stek_if); y6: завершить работу; y7: $Number_Lexem++, прочитать очередную лексему с номером $Number_Lexem; 2.3. Интерпретатор После лексической обработки и расстановки ссылок последовательность лексем, массивы идентификаторов и констант поступают на обработку интерпретатору. Задача интерпретатора - распознать конструкции языка и выполнить действия, предписанные входной программой. Учитывая, что синтаксический разбор будет производиться над массивом лексем, уточним грамматику языка МИЛАН, которая будет использована для синтаксического анализа последовательности лексем. Множество терминалов в уточненной грамматике - это множество лексем. Уточненная грамматика языка МИЛАН: 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) Здесь и - число идентификаторов и констант; нетерминалы обозначают конструкции языка: - <программа>; -<последовательность операторов>; - <оператор>; - <условие>; - <выражение>; - <терм>; - <множитель>; - <константа>; O - <знак отношения>; M - <операция типа умножения>; N - <операция типа сложения>; I - <идентификатор>. Построим синтаксические диаграммы интерпретатора языка МИЛАН (рис. 9-10). Из диаграммы видно, что грамматика языка МИЛАН является - грамматикой. 18
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »