Interfacing with `yacc'
***********************
One of the main uses of `flex' is as a companion to the `yacc'
parser-generator. `yacc' parsers expect to call a routine named
`yylex()' to find the next input token. The routine is supposed to
return the type of the next token as well as putting any associated
value in the global `yylval'. To use `flex' with `yacc', one specifies
the `-d' option to `yacc' to instruct it to generate the file `y.tab.h'
containing definitions of all the `%tokens' appearing in the `yacc'
input. This file is then included in the `flex' scanner. For example,
if one of the tokens is "TOK_NUMBER", part of the scanner might look
like:
%{
#include "y.tab.h"
%}
%%
[0-9]+ yylval = atoi( yytext ); return TOK_NUMBER;