glsl: Switch from the deprecated YYLEX_PARAM to %lex-param.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 29 Jul 2013 22:28:59 +0000 (15:28 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 31 Jul 2013 18:51:57 +0000 (11:51 -0700)
commitf043381334a0760ec118d07b6fb7785b5692572a
treeca64bb3d18887b583da0556900b1d6afeb13379d
parenteb7c8c7fb6e49a04f3fe84a6d438160dc4a14ac0
glsl: Switch from the deprecated YYLEX_PARAM to %lex-param.

YYLEX_PARAM is no longer supported as of Bison 3.0.  Instead, the Bison
developers recommend using %lex-param.

%lex-param takes a type and variable name, similar to %parse-param,
so you can't pass an arbitrary expression like state->scanner.  But Flex
insists on passing the actual scanner object, not an arbitrary object
like state.

To solve this, the parser defines a wrapper lex() function which accepts
"state," and calls Flex's lex() function with state->scanner.

Fixes the build with Bison 3.0.  Also works with Bison 2.7.1.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67354
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Tested-by: Laurent Carlier <lordheavym@gmail.com>
Cc: "9.2" mesa-stable@lists.freedesktop.org
src/glsl/glsl_parser.yy