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: