Рефераты. Программно-методический комплекс для обучения процессу создания компиляторов

Если значение в ячейке типа 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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.