Advertisement
Guest User

Untitled

a guest
May 28th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.86 KB | None | 0 0
  1. unit LexType; {!!! Зависит от входного языка !!!}
  2.  
  3. interface
  4. { Модуль, содержащий описание всех типов лексем }
  5.  
  6. type
  7. { Возможные типы лексем в программе }
  8. TLexType = (
  9.   LEX_SEMI, LEX_IF, LEX_THEN, LEX_ELSE, LEX_VAR, LEX_CONST,
  10.   LEX_ASSIGN, LEX_OR, LEX_XOR, LEX_AND,
  11.   LEX_OPEN, LEX_CLOSE, LEX_START);
  12.  
  13. { Функция получения строки наименования типа лексемы }
  14. function LexTypeName(lexT: TLexType): string;
  15. { Функция получения текстовой информации о типе лексемы }
  16. function LexTypeInfo(lexT: TLexType): string;
  17.  
  18. implementation
  19.  
  20. function LexTypeName(lexT: TLexType): string;
  21. { Функция получения строки наименования типа лексемы }
  22. begin
  23.   case lexT of
  24.     LEX_OPEN:   Result := 'Открывающая скобка';
  25.     LEX_CLOSE:  Result := 'Закрывающая скобка';
  26.     LEX_ASSIGN: Result := 'Знак присвоения';
  27.     LEX_VAR:    Result := 'Переменная';
  28.     LEX_CONST:  Result := 'Константа';
  29.     LEX_SEMI:   Result := 'Разделитель';
  30.     else        Result := 'Ключевое слово';
  31.   end;
  32. end;
  33.  
  34. function LexTypeInfo(lexT: TLexType): string;
  35. { Функция получения текстовой информации о типе лексемы }
  36. begin
  37.   case lexT of
  38.     LEX_IF:     Result := 'if';
  39.     LEX_THEN:   Result := 'then';
  40.     LEX_ELSE:   Result := 'else';
  41.     LEX_OR:     Result := 'or';
  42.     LEX_XOR:    Result := 'xor';
  43.     LEX_AND:    Result := 'and';
  44.     LEX_OPEN:   Result := '(';
  45.     LEX_CLOSE:  Result := ')';
  46.     LEX_ASSIGN: Result := ':=';
  47.     LEX_SEMI:   Result := ';';
  48.     LEX_START:  Result := '';
  49.     else        Result := 'a';
  50.   end;
  51. end;
  52.  
  53. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement