Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
31
Добавлен:
02.05.2014
Размер:
1 Кб
Скачать
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