Нет, задача лексера - преобразовать поток символов (текст программы) на входе в поток лексем, как правило расширенных, на выходе. Например:
1 + 1 * 2 => <число(1)> <плюс> <число(2)> <умножить> <число(2)>
flex по формальной грамматике строит лексер, то есть выдаёт код на C, содержащий определение функции yylex(), при каждом вызове которой выдаётся следующая лексема.
Реализация лексера может быть различной, часто используются конечные автоматы.