groff 1.23.0 added .MR to its -man macro package. The NEWS file states
that the inclusion of the macro "was prompted by its introduction to
Plan 9 from User Space's troff in August 2020." From d32deab it seems
that the name for Plan 9 from User Space's implementation was suggested
by groff maintainer G. Brandon Robinson.
Not sure if the intention was to make these definitions compatible, but
it would be nice if they were.
Currently, Plan 9 from User Space's .MR expects its second argument to
be parenthesized. groff's .MR does not. This results in extra
parentheses appearing in manual references when viewing Plan 9 from User
Space's manual pages on a system using groff.
82 lines
1.5 KiB
Groff
82 lines
1.5 KiB
Groff
.TH LEX 1
|
|
.SH NAME
|
|
lex \- generator of lexical analysis programs
|
|
.SH SYNOPSIS
|
|
.B lex
|
|
[
|
|
.B -tvn9
|
|
]
|
|
[
|
|
.I file ...
|
|
]
|
|
.SH DESCRIPTION
|
|
.I Lex
|
|
generates programs to be used in simple lexical analysis of text.
|
|
The input
|
|
.I files
|
|
(standard input default)
|
|
contain regular expressions
|
|
to be searched for and actions written in C to be executed when
|
|
expressions are found.
|
|
.PP
|
|
A C source program,
|
|
.B 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.
|
|
.PP
|
|
The options have the following meanings.
|
|
.TP
|
|
.B -t
|
|
Place the result on the standard output instead of in file
|
|
.BR lex.yy.c .
|
|
.TP
|
|
.B -v
|
|
Print a one-line summary of statistics of the generated analyzer.
|
|
.TP
|
|
.B -n
|
|
Opposite of
|
|
.BR -v ;
|
|
.B -n
|
|
is default.
|
|
.TP
|
|
.B -9
|
|
Adds code to be able to compile through the native C compilers.
|
|
.SH EXAMPLES
|
|
This program converts upper case to lower,
|
|
removes blanks at the end of lines,
|
|
and replaces multiple blanks by single blanks.
|
|
.PP
|
|
.EX
|
|
%%
|
|
[A-Z] putchar(yytext[0]+\'a\'-\'A\');
|
|
[ ]+$
|
|
[ ]+ putchar(\' \');
|
|
.EE
|
|
.SH FILES
|
|
.TF /sys/lib/lex/ncform
|
|
.TP
|
|
.B lex.yy.c
|
|
output
|
|
.TP
|
|
.B /sys/lib/lex/ncform
|
|
template
|
|
.SH "SEE ALSO"
|
|
.IR yacc (1),
|
|
.MR sed 1
|
|
.br
|
|
M. E. Lesk and E. Schmidt,
|
|
`LEX\(emLexical Analyzer Generator',
|
|
.I
|
|
Unix Research System Programmer's Manual,
|
|
Tenth Edition, Volume 2.
|
|
.SH SOURCE
|
|
.B \*9/src/cmd/lex
|
|
.SH BUGS
|
|
Cannot handle
|
|
.SM UTF.
|
|
.PP
|
|
The asteroid to kill this dinosaur is still in orbit.
|