Книга: Системное программное обеспечение. Лабораторный практикум
Листинг ПЗ.З. Описание всех типов лексем
Листинг ПЗ.З. Описание всех типов лексем
unit LexType; {!!! Зависит от входного языка!!!}
interface
{ Модуль, содержащий описание всех типов лексем }
type
TLexType = { Возможные типы лексем в программе }
(LEX_PROG, LEX_FIN, LEX_SEMI, LEX_IF, LEX_OPEN, LEX_CLOSE,
LEX_ELSE, LEX_BEGIN, LEX_END, LEX_WHILE, LEX_DO, LEX_VAR,
LEX_CONST, LEX_ASSIGN, LEX_OR, LEX_XOR, LEX_AND,
LEX_LT, LEX_GT, LEX_EQ, LEX_NEQ, LEX_NOT,
LEX_SUB, LEX_ADD, LEX_UMIN, LEX_START);
{ Функция получения строки наименования типа лексемы }
function LexTypeName(lexT: TLexType): string;
{ Функция получения текстовой информации о типе лексемы }
function LexTypeInfo(lexT: TLexType): string;
implementation
function LexTypeName(lexT: TLexType): string;
{ Функция получения строки наименования типа лексемы }
begin
case lexT of
LEX_OPEN: Result:= 'Открывающая скобка';
LEX_CLOSE: Result:= 'Закрывающая скобка';
LEX_ASSIGN: Result:= 'Знак присвоения';
LEX_VAR: Result:= 'Переменная';
LEX_CONST: Result:= 'Константа';
LEX_SEMI: Result:= 'Разделитель';
LEX_ADD,LEX_SUB,LEX_UMIN,LEX_GT,LEX_LT,LEX_EQ,
LEX_NEQ: Result:= 'Знак операции';
else Result:= 'Ключевое слово';
end;
end;
function LexTypeInfo(lexT: TLexType): string;
{ Функция получения текстовой информации о типе лексемы }
begin
case lexT of
LEX_PROG: Result:= 'prog';
LEX_FIN: Result:= 'end.;
LEX_SEMI: Result:=; ;
LEX_IF: Result:= 'if';
LEX_OPEN: Result:= ( ;
LEX_CLOSE: Result:=) ;
LEX_ELSE: Result:= 'else';
LEX_BEGIN: Result:= 'begin';
LEX_END: Result:= 'end';
LEX_WHILE: Result:= 'while';
LEX_DO: Result:= 'do';
LEX_VAR: Result:= 'a';
LEX_CONST: Result:= 'c';
LEX_ASSIGN: Result:=:=;
LEX_OR: Result:= 'or';
LEX_XOR: Result:= 'xor';
LEX_AND: Result:= 'and';
LEX_LT: Result:= <;
LEX_GT: Result:= >;
LEX_EQ: Result:= = ;
LEX_NEQ: Result:= <>;
LEX_NOT: Result:= 'not';
LEX_ADD: Result:= + ;
LEX_SUB,
LEX_UMIN: Result:= – ;
else Result:= ;
end;
end;
end.
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Использование типов содержимого и столбцов
- Листинг 15.11. Код для загрузки файла с Web-сервера
- 5.3 Классификация типов резервного копирования
- 2.7 Преобразования типов
- Описание работы МП
- Описание разъемов МП
- Описание программы настройки BIOS
- Описание работы ЦПУ
- Описание типов модулей оперативной памяти
- Описание работы накопителя на жестком магнитном диске
- Описание работы CD-DVD-приводов