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


FLEX(1) - часть 3


\n знак новой строки \t знак табуляции \b возврат на один знак назад с его удалением \\ обратная косая черта

Поскольку знаки новой строки в выражениях запрещены, надо использовать \n. Не требуется избегать использования знаков табуляции и возврата. Заметим, что любой символ всегда является текстовым. Исключение из этого составляют знаки табуляции, пробелы, знаки новой строки и знаки операторов, рассмотренные выше.

Вызов lex


Компилирование исходной программы lex осуществляется в две стадии. Сначала исходная программа преобразуется в модуль на универсальном языке программирования. Затем программа (обычно с использованием библиотечных подпрограмм lex) транслируется и загружается. Созданная программа находится в файле с именем lex. yy.c. Библиотека ввода/вывода определяется в теминах стандартной библиотеки СИ. Доступ к библиотеке осуществляется с помощью флага загрузки -ll. Вот пример характерного набора команд:

lex source cc lex.yy.c -ll

Полученная программа помещается в файл a.out для последующего использования. Как применять lex вместе с yacc, описано в разделе "lex и yacc" этой главы и в главе 6 "YACC: компилятор компиляторов". Хотя подпрограммы ввода-вывода lex по умолчанию используют стандартную библиотеку СИ, производимые lex программы этого не делают. Если даны собственные варианты input(), output(), unput(), библиотека может не использоваться.

Описание классов символов


Классы символов задаются с помощью квадратных скобок [ и ]. Конструкция

[abc]

выбирает один из символов a, b или c. Внутри квадратных скобок большинство значений операторов игнорируется. Только три знака рассматриваются как специальные: обратная косая черта (\), тире (-) и символ (^). Символ тире задает перечисления. Например:

[a-z0-9<>_]

задает класс символов, содержащие все строчные буквы, цифры, угловые скобки и знак подчеркивания. Перечисления могут задаваться в любом порядке.

Использование тире между парами символов, не являющихся одновременно заглавныим буквами, сточными буквами или числами, делает их зависимыми от реализации и вызывает предупреждающее сообщение. Если желательно включить тире в класс символов, то оно должно быть первым или последним. Таким образом:




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