10.1.5 C++ Scanner Interface

The parser invokes the scanner by calling yylex. Contrary to C
parsers, C++ parsers are always pure: there is no point in using the
‘%define api.pure’ directive. The actual interface with yylex
depends whether you use unions, or variants.