Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
14
Добавлен:
02.05.2014
Размер:
1.27 Кб
Скачать
unit TrdType; {!!! Зависит от входного языка !!!}

interface
{ Модуль для описания допустимых типов триад }

const
NAME_PROG = 'MyCurs';
NAME_INPVAR = 'InpVar';
NAME_RESULT = 'Result';
NAME_FUNCT = 'CompileTest';
NAME_TYPE = 'integer';

type
{ Типы триад, соответствующие типам допустимых операций,
а также три дополнительные типа триад:
- CONST - для алгоритма свёртки объектного кода;
- SAME - для алгоритма исключения лишних операций;
- NOP (No OPerations) - для ссылок на конец списка триад.
}
TTriadType = (TRD_IF, TRD_OR, TRD_XOR, TRD_AND, TRD_NOT,
TRD_LT, TRD_GT, TRD_EQ, TRD_NEQ,
TRD_ADD, TRD_SUB, TRD_UMIN, TRD_ASSIGN,
TRD_JMP, TRD_CONST, TRD_SAME, TRD_NOP);

{ Массив строковых обозначений триад
для вывода их списка на экран }
TTriadStr = array[TTriadType] of string;
const
TriadStr: TTriadStr =
('if','or','xor','and','not',
'<','>','=','<>','+','-','-',':=',
'jmp','C','same','nop');
{ Множество триад, которые являются линейными операциями }
TriadLineSet : set of TTriadType =
[TRD_OR, TRD_XOR, TRD_AND, TRD_NOT, TRD_ADD, TRD_SUB,
TRD_LT, TRD_GT, TRD_EQ, TRD_NEQ, TRD_UMIN];

implementation

end.
Соседние файлы в папке Cursov