- •Раздел операторов
- •Выражения
- •Синтаксис языка
- •Грамматика № 1_1. Программа
- •Грамматика № 1_2. Раздел описаний
- •Функция перенос
- •Функция свертка
- •Грамматика № 1_3. Метка
- •Грамматика № 2. Раздел операторов
- •Функция перенос
- •Функция свертка
- •Грамматика № 3. Описание выражений
- •Матрица предшествования
- •Функция перенос
- •Функция свертка
Грамматика № 3. Описание выражений
Правила :
1) VR -> VR or V1
2) VR -> V1
3) V1 -> V1 and V2
4) V1 -> V2
5) V2 -> V2 < V3
6) V2 -> V3
7) V3 -> V3 > V4
8) V3 -> V4
9) V4 -> V4 <> V5
10) V4 -> V5
11) V5 -> V5 = V6
12) V5 -> V6
13) V6 -> V6 + V7
14) V6 -> V7
15) V7 -> V7 - V8
16) V7 -> V8
17) V8 -> V8 * V9
18) V8 -> V9
19) V9 -> V9 / V10
20) V9 -> V10
21) V10 -> V10 not V11
22) V10 -> V11
23) V11 -> ( VR )
24) V11 -> Z
25) V11 -> TMP
26) Z -> -- F
27) Z -> n
28) TMP -> i
29) TMP -> i [ VR ]
30) F -> n
где:
Терминалы :
–, – –, = , < , > , <> , / , + , ( , ) , *, [ , ] ,
i = идентификатор
n = целое без знака
or = ключевое слово
and = ключевое слово
not = ключевое слово
Нетерминалы :
VR = выражение
V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, Z, F
TMP = переменная
Матрица предшествования
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|