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