Продолжение таблицы 10
19
<text-val>
?
$38
<text>
~20
20
^string
21
<if>
IF
$14
<сравнение>
~22
THEN
$15
<body>
~17
ELSE |
$16 | @21,1
22
<factor>
~12
<условие>
~23
23
< | > | = | >= | <=| <>
$39|$40|$41|$42|$43|$44
24
<while>
WHILE
~13
DO
$10
25
<repeat>
REPEAT
$11
UNTIL
$12
При отрицательном результате (err=1), обработка происходит в следующей последовательности:
если в ячейке возврата текущей строки нет знака %, то err:=0;
если параметр единственный (нет ИЛИ элемента) или это последний элемент последовательности ИЛИ, и в ячейке возврата текущей строки нет знака %, то генерировать ошибку «Должен быть элемент % в позиции %%», где % либо терминальный символ (или его код), либо “идентификатор”, либо “литера”; %% - позиция в таблице выходных символов;
при наличии нескольких параметров (разделенных элементом ИЛИ) и если текущий не последний из них, то перейти на следующий параметр, более правый, значение переменной err присвоить значение 0;
если номер столбца текущей ячейки - 2, то если в ячейке возврата есть знак %, то перейти по адресу, указанному за знаком % и:
в таблице переходов очистить ячейку возврата,
в формируемой таблице переходов удалить последнюю строку.
Коды терминальных символов показаны в таблице 11.
Таблица 11 - Таблица кодов терминальных символов
Код
Терминальный символ
Комментарий
1
PROGRAM
объявление программу
2
VAR
объявление переменных
3
BEGIN
начало тела
4
END
конец тела
5
INTEGER
тип целое
6
REAL
вещественный тип
7
STRING
строковый тип
8
FOR
цикл с параметром - ДЛЯ
9
TO
цикл с параметром - ДО
10
ВЫПОЛНИТЬ
11
цикл с постусловием - ПОВТОРЯТЬ
12
цикл с постусловием - ПОКА НЕ
13
цикл с предусловием - ПОКА
14
условный оператор - ЕСЛИ
15
условный оператор - ТО
16
ELSE
условный оператор - ИНАЧЕ
17
DIV
делить на цело
18
WRITE
вывести на консоль
READ
считать с консоли
DOWNTO
FUNCTION
функция
PROCEDURE
процедура
{
начало комментария
}
конец комментария
[
открытие квадратных скобок
26
]
закрытие квадратных скобок
27
;
конец операции
28
:=
присвоить значение
29
,
разделитель
30
.
конец программы/отделение дробной части
31
:
разделение идентификатора от его типа
32
+
оператор сложения
33
-
оператор вычитания
34
*
оператор умножения
35
(
открывающаяся скобка
36
)
закрывающаяся скобка
37
/
оператор деления
38
ґ
кавычка
39
<
меньше
40
>
больше
41
=
равно
42
>=
больше или равно
43
<=
меньше или равно
44
<>
не равно
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15