Your company here — click to reach over 10,000 unique daily visitors

flex - Man Page

the fast lexical analyser generator

Examples (TL;DR)


flex [OPTIONS] [FILE]...


Generates programs that perform pattern-matching on text.

Table Compression

-Ca,  --align

trade off larger tables for better memory alignment

-Ce,  --ecs

construct equivalence classes


do not compress tables; use -f representation


do not compress tables; use -F representation

-Cm,  --meta-ecs

construct meta-equivalence classes

-Cr,  --read

use read() instead of stdio for scanner input

-f,  --full

generate fast, large scanner. Same as -Cfr

-F,  --fast

use alternate table representation. Same as -CFr


default compression (same as --ecs --meta-ecs)


-d,  --debug

enable debug mode in scanner

-b,  --backup

write backing-up information to lex.backup

-p,  --perf-report

write performance report to stderr

-s,  --nodefault

suppress default rule to ECHO unmatched text

-T,  --trace

flex should run in trace mode

-w,  --nowarn

do not generate warnings

-v,  --verbose

write summary of scanner statistics to stdout


use hexadecimal numbers instead of octal in debug outputs


-o,  --outfile=FILE

specify output filename

-S,  --skel=FILE

specify skeleton file

-t,  --stdout

write scanner on stdout instead of lex.yy.c


name of C++ class


create a C header file in addition to the scanner

--tables-file[=FILE] write tables to FILE

Scanner behavior

-7,  --7bit

generate 7-bit scanner

-8,  --8bit

generate 8-bit scanner

-B,  --batch

generate batch scanner (opposite of -I)

-i,  --case-insensitive

ignore case in patterns

-l,  --lex-compat

maximal compatibility with original lex

-X,  --posix-compat

maximal compatibility with POSIX lex

-I,  --interactive

generate interactive scanner (opposite of -B)


track line count in yylineno

Generated code

-+,  --c++

generate C++ scanner class


#define macro defn  (default defn is '1')

-L,  --noline

suppress #line directives in scanner

-P,  --prefix=STRING

use STRING as prefix instead of "yy"

-R,  --reentrant

generate a reentrant C scanner


scanner for bison pure parser.


include yylloc support.


initialize yyin/yyout to stdin/stdout


do not include <unistd.h>


do not generate a particular FUNCTION



do-nothing POSIX option


do-nothing POSIX option


-h,  --help

produce this help message

-V,  --version

report flex version

See Also

The full documentation for flex is maintained as a Texinfo manual.  If the info and flex programs are properly installed at your site, the command

info flex

should give you access to the complete manual.

Referenced By

bison(1), bpfc(8), cdecl(1), flex-2.5.4a(1), mk-configure(7), nawk(1), ocamllex(1), ragel(1), re2c(1), re2go(1), re2rust(1), suffixes(7), yacc(1), zimpl(1).

The man pages flex++(1) and lex(1) are aliases of flex(1).

January 2024 The Flex Project Programming