---
name: "lex"
section: "1"
platform: "linux"
package: "flex"
version: "2.6.4-8.2+b4"
release: "Debian 13 (Trixie)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/flex"
---

# lex(1)

the fast lexical analyser generator

Part of [flex(1)](/flex/1.md).

## NAME

flex - the fast lexical analyser generator

## 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

- **--backup-file**=*FILE*

  write backing-up information 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.
