| LEX(1) | LEX(1)

NAME

| lex – generator of lexical analysis programs

SYNOPSIS

| `lex` [ `−tvn9` ] [ file ... ]

DESCRIPTION

Lex generates programs to be used in simple lexical analysis of text. The input files (standard input default) contain regular expressions to be searched for and actions written in C to be executed when expressions are found.

A C source program, `lex.yy.c` is generated. This program, when run, copies unrecognized portions of the input to the output, and executes the associated C action for each regular expression that is recognized.

The options have the following meanings.
`−t` Place the result on the standard output instead of in file `lex.yy.c`.
`−v` Print a one-line summary of statistics of the generated analyzer.
`−n` Opposite of `−v`; `−n` is default.
`−9` Adds code to be able to compile through the native C compilers.

EXAMPLES

This program converts upper case to lower, removes blanks at the end of lines, and replaces multiple blanks by single blanks.

`%%
[A−Z] putchar(yytext[0]+'a'−'A');
[ ]+$
[ ]+ putchar(' ');
`

FILES

| `lex.yy.c` output `/sys/lib/lex/ncform` template

SEE ALSO

| yacc(1), sed(1) M. E. Lesk and E. Schmidt, ‘LEX--Lexical Analyzer Generator’, Unix Research System Programmer’s Manual, Tenth Edition, Volume 2.

SOURCE

| `/usr/local/plan9/src/cmd/lex`

BUGS

Cannot handle UTF.

The asteroid to kill this dinosaur is still in orbit.