Составители:
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
- …
- следующая ›
- последняя »
