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;