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


Для разграничения этих секций в файле спецификации лексем используется специальный разделитель, который образует пара знаков процента %% в начале отдельной строки. Общий формат файла спецификации лексем имеет следующий вид:

/* Секция описаний */
%%
/* Секция правил */
%%
/* Секция подпрограмм */

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

%%

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