The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Каталог документации / Раздел "Программирование в Linux" / Оглавление документа
next up previous contents
Next: Структура файла lex.yy.c Up: Структура LEX-программы Previous: Секция правил LEX-программы   Contents

Секция пользовательских подпрограмм LEX-программы

Все, что размещено за вторым набором, относится к секции пользовательских подпрограмм. Содержимое этой секции копируется в выходной файл lex.yy.c без каких-либо изменений. В файле lex.yy.c строки этого раздела рассматриваются как функции Си. Эти функции могут вызываться в действиях правил и, как обычно, передавать и возвращать значения аргументов.

Комментарии можно вводить во всех разделах LEX-программы. Формат комментариев должен соответствовать формату комментариев хост-языка, т.е. языка Си. Однако в каждой секции LEX - программы комментарии вводятся по-разному:

  1. в секции определений комментарии должны начинаться не с первой позиции строки;
  2. в секции правил комментарии можно записывать только внутри блоков, принадлежащих действиям;
  3. в секции подпрограмм пользователя комментарии записываются как в Си.
Пример:

%Start КОММ
/*
* Программа записывает в стандартный файл вывода
* комментарии Си-программы. Обратите внимание на то,
* что здесь строки комментариев начинаются не с первой
* позиции строки!
*/
КОММ_НАЧАЛО "/*"
КОММ_КОНЕЦ "*/"
%%
{КОММ_НАЧАЛО} {ECHO;
BEGIN КОММ;}
[\t\n]* ;
<КОММ>[^*]* ECHO;
<КОММ>\*/[^/] ECHO;
<КОММ>{КОММ_КОНЕЦ} {ECHO;
printf("\n");
/*
* Здесь приведен пример использования комментариев в
* разделе правил LEX-программы. Обратите внимание на то,
* что комментарий находится внутри блока, определяющего
* действие правила.
*/
BEGIN 0;}
%%
/*
* Здесь приведен пример комментариев в разделе
* пользовательских подпрограмм.
*/



2004-06-22



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру