-
Notifications
You must be signed in to change notification settings - Fork 0
/
Grammar.txt
31 lines (23 loc) · 1.3 KB
/
Grammar.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Граф по форме Бекуса Наура
// Блок данных
P -> var S (Программа -> объявление переменных + блок кода)
S -> IX (Объявление переменных -> Идентификатор [, идентификатор])
X -> ,S | :T (,[vars] или объявление типа)
T -> Integer ;D (Тип -> Тип + Блок кода)
// Блок кода
D -> begin F end.
F -> AF | A (Список присваиваний)
A -> I=E; (Присваивание -> переменная = выражение)
E -> -W | W (Выражение ->
W -> (E)Z | OZ (Подвыражение -> (выражение) + Z или Операнд + ВТ
Z -> ; | BW | ) (Вспомогательный терминал -> Точка с запятой, либо оператор + подвыражение)
// Операнд, идентификатор и константа
O -> I | C (Идентификатор или константа)
I -> LI | L (буквы или буква)
C -> NC | N (Константа -> цифры или цифра)
//терминалы
N -> "0-9"
L -> "a-zA-Z"
//бинарные операторы
B -> '-' | '+' | '*' | '/'
Нетерминалы: P, S, X, T, Q, D, F, A, E, W, O, I, C, N, L, U, B