Unix Man (Справочное руководство)


FLEX(1) - часть 17


[A-Za-z][A-Za-z0-9]* | [0-9]+ | \n | . ECHO;

Заметим, что эта программа не является полной; она не справится с проблемами пробелов в FORTRAN и с использованием ключевых слов в качестве идентификаторов.

Описание наборов символов


Программы, созданные lex, осуществляют символьный ввод/вывод только с помощью подпрограмм input(), output(), unput(). Таким образом, символьное представление в этих подпрограммах допускается lex и используется для возврата значений в yytext. Для внутреннего использования символ представляется как малое целое. Если используется стандартная библиотека, он имеет значение, равное целому значению двоичного кода, представляющего символ на главной ЭВМ. Обычно буква a представляется в той же форме, что и символьная константа:

'a'

Если эта интерпретация изменяется добавлением подпрограмм ввода-вывода, транслирующих символы, то об этом надо информировать lex с помощью таблицы перекодировки. Эта таблица должна находиться в секции определений и должна отделяться строками, содержащими только %T. Таблица состоит из строк следующего вида:

{целое} {строка символов}

которые указывают значения, соответствующие каждому символу. Например:

%T 1 Aa 2 Bb ... 26 Zz 27 \n 28 + 29 - 30 0 31 1 ... 39 9 %T

Эта таблица устанавливает соответствие заглавных и строчных букв целым числам от 1 до 26, знака новой строки - 27, плюса (+) и минуса (-) - 28 и 29, и цифр - числам от 30 до 39. Заметьте избегание знака новой строки. Если таблица задается, то каждый символ, который может появиться в правилах или в корректных входных данных, должен быть в нее включен. нельзя пользоваться значением 0 и значениями, выходящими за пределеы набора кодов, обеспечиваемого аппаратной частью.

Формат источника


Стандартная форма файла источника lex:

{определения} %% {правила} %% {подпрограммы пользователя}

Cекция определений содержит комбинацию следующих элементов:

  1. Определения в форме "имя пробел перевод".
  2. Включаемый код в форме "пробел код".
  3. Включаемый код в форме




    Начало  Назад  Вперед



    Книжный магазин