GNU Info

Info Node: (flex.info)YACC interface

(flex.info)YACC interface


Next: Options Prev: User variables Up: Top
Enter node , (file) or (file)node

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;


automatically generated by info2www version 1.2.2.9