flex

the fast lexical analyser generator

TLDR

Generate an analyser from a flex file

$ flex [analyser.l]
copy

Specify the output file

$ flex --outfile [analyser.c] [analyser.l]
copy

Compile a C file generated by flex

$ cc [path/to/lex.yy.c] --output [executable]
copy

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.

Copied to clipboard
Coindodo