flex - Man Page
the fast lexical analyser generator
Examples (TL;DR)
- Generate an analyzer from a flex file, storing it to the file
lex.yy.c
:lex analyzer.l
- Write analyzer to
stdout
:lex --stdout|t analyzer.l
- Specify the output file:
lex analyzer.l -o analyzer.c
- Generate a [B]atch scanner instead of an interactive scanner:
lex -B analyzer.l
- Compile a C file generated by Lex:
cc path/to/lex.yy.c --output executable
Synopsis
flex [OPTIONS] [FILE]...
Description
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
- -Cf
do not compress tables; use -f representation
- -CF
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
- -Cem
default compression (same as --ecs --meta-ecs)
Debugging
- -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
- --hex
use hexadecimal numbers instead of octal in debug outputs
Files
- -o, --outfile=FILE
specify output filename
- -S, --skel=FILE
specify skeleton file
- -t, --stdout
write scanner on stdout instead of lex.yy.c
- --yyclass=NAME
name of C++ class
- --header-file=FILE
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)
- --yylineno
track line count in yylineno
Generated code
- -+, --c++
generate C++ scanner class
- -Dmacro[=defn]
#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
- --bison-bridge
scanner for bison pure parser.
- --bison-locations
include yylloc support.
- --stdinit
initialize yyin/yyout to stdin/stdout
- --nounistd
do not include <unistd.h>
- --noFUNCTION
do not generate a particular FUNCTION
Miscellaneous
- -c
do-nothing POSIX option
- -n
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).