Flex - a scanner generator - 1.15 Interfacing with yacc

Go to the first, previous, next, last section, table of contents.

## 1.15 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;

Go to the first, previous, next, last section, table of contents.