- •Раздел операторов
- •Выражения
- •Синтаксис языка
- •Грамматика № 1_1. Программа
- •Грамматика № 1_2. Раздел описаний
- •Функция перенос
- •Функция свертка
- •Грамматика № 1_3. Метка
- •Грамматика № 2. Раздел операторов
- •Функция перенос
- •Функция свертка
- •Грамматика № 3. Описание выражений
- •Матрица предшествования
- •Функция перенос
- •Функция свертка
Грамматика № 1_2. Раздел описаний
Правила :
1) RO -> lab OM
2) RO -> c OC
3) RO -> var OP
4) OC -> i = VR ;
5) OC -> i = VR ; OC
6) OP -> LP : T ; OP
7) OP -> LP : T ;
8) OM -> m
9) OM -> OM , m
10) LP -> i
11) LP -> LP , i
12) T -> int
13) T -> bl
14) T -> ar [ PR ] of bl
15) VR -> Z
16) VR -> tru
17) VR -> fal
18) Z -> -- n
19) Z -> n
20) PR -> n . . n
где:
Терминалы :
lab = ключевое слово label, var = ключевое слово , c = ключевое слово const,
i = идентификатор, n = целое без знака,
m = метка (соответствует грамматике № 1_3),
, , ; , : , = , [ , ] , .
int = ключевое слово integer ,
bl = ключевое слово boolean ,
ar = ключевое слово array ,
of = ключевое слово,
Нетерминалы :
RO = раздел описаний
OC = описание констант
OP = описание переменных
OM = описание меток
LP = список меток
T = тип
PR = промежуток
VR, Z
Матрица предшествования:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|