The lexical analyzer function,
yylex, recognizes tokens from
the input stream and returns them to the parser. Bison does not create
this function automatically; you must write it so that
call it. The function is sometimes referred to as a lexical scanner.
In simple programs,
yylex is often defined at the end of the
Bison grammar file. If
yylex is defined in a separate source
file, you need to arrange for the token-type macro definitions to be
available there. To do this, use the ‘-d’ option when you run
Bison, so that it will write these macro definitions into the separate
parser header file, name.tab.h, which you can include in
the other source files that need it. See Invoking Bison.