Если значение в ячейке типа x,y%a,b,c, и err=0, то перейти по ссылке x,y, в формируемой таблице переходов перейти по адресу, указанному в текущей ячейке.
Если номер столбца текущей ячейки = 3 и err<>0, то в ячейке возврата удалить при наличии знак % и значения за ним.
Если первый символ ^ – значение в ячейке является литерой (таблица литералов – №3). Осуществляемая при этом проверка: если в таблице выходных символов № текущей таблицы равен 3 (if Tabl_vs[count_vs,2]=’3’), то занести в текущую ячейку формируемой таблицы № таблицы (3) и № строки в ней (Table_Perehod1[i1,j1]:=$3,№строки), перейти на следующую ячейку (i:=i+1; i1:=i1+1; count_vs:=count_vs+1). В случае отрицательного результата сравнения переменной err присваивается значение 1.
Если первый символ $ – значение в ячейке является терминальным символом (таблица терминальных символов – №1). Осуществляемая проверка: если в таблице выходных символов № текущей таблицы равен 1 (if Tabl_vs[count_vs,2]=’1’), то занести в текущую ячейку формируемой таблицы № таблицы (1) и № строки в ней (Table_Perehod1[i1,j1]:=$1,код), перейти на следующую ячейку (i:=i+1; i1:=i1+1; count_vs:=count_vs+1). В случае отрицательного результата сравнения переменной err присваивается значение 1.
Если первый символ ~ – это переход на вторую ячейку строки с номером, указанным за символом ~, в формируемой таблице переходов добавляется новая строка и переход осуществляется на нее. При этом осуществляется следующее: в первую ячейку (ячейку возврата) указанной строки заносится адрес возврата: если переход осуществляется с одной из позиций с элементом ИЛИ и не является последним в списке, то в ячейке возврата формируется код возврата типа x,y,z, где x – номер строки, y – номер столбца, z – номер позиции откуда был произведен переход (x:=j; y:=i; z:=pos; j:=a; i:=2, где а номер строки в адресе перехода – ~a), тоже происходит и в формируемой таблицей переходов (x:=j1; y:=i1; j1:=№последней строки; i1:=2).
Коды терминальных символов показаны в таблице 11.
Таблица 11 – Таблица кодов терминальных символов
Код
Терминальный символ
Комментарий
1
PROGRAM
объявление программу
2
VAR
объявление переменных
3
BEGIN
начало тела
4
END
конец тела
5
INTEGER
тип целое
6
REAL
вещественный тип
7
STRING
строковый тип
8
FOR
цикл с параметром – ДЛЯ
9
TO
цикл с параметром – ДО
10
DO
ВЫПОЛНИТЬ
11
REPEAT
цикл с постусловием – ПОВТОРЯТЬ
12
UNTIL
цикл с постусловием – ПОКА НЕ
13
WHILE
цикл с предусловием – ПОКА
14
IF
условный оператор – ЕСЛИ
15
THEN
условный оператор – ТО
16
ELSE
условный оператор – ИНАЧЕ
17
DIV
делить на цело
18
WRITE
вывести на консоль
19
READ
считать с консоли
20
DOWNTO
21
FUNCTION
функция
22
PROCEDURE
процедура
23
{
начало комментария
24
}
конец комментария
25
[
открытие квадратных скобок
26
]
закрытие квадратных скобок
27
;
конец операции
28
:=
присвоить значение
29
,
разделитель
30
.
конец программы/отделение дробной части
31
:
разделение идентификатора от его типа
32
+
оператор сложения
33
-
оператор вычитания
34
*
оператор умножения
35
(
открывающаяся скобка
36
)
закрывающаяся скобка
37
/
оператор деления
38
΄
кавычка
39
Страницы: 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