Kenneth, maybe it's better to mark _mesa_glsl_lex as inline?
2013/7/30 Kenneth Graunke <kenn...@whitecape.org> > 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 <kenn...@whitecape.org> > Cc: mesa-sta...@lists.freedesktop.org > Cc: Sandeep <sandy.8...@gmail.com> > Cc: Bruno Jacquet <maxi...@free.fr> > Cc: Laurent Carlier <lordhea...@gmail.com> > Cc: Nikita Malyavin <nikitamalya...@gmail.com> > --- > src/glsl/glsl_parser.yy | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy > index 0b16d1d..fcc5620 100644 > --- a/src/glsl/glsl_parser.yy > +++ b/src/glsl/glsl_parser.yy > @@ -31,8 +31,6 @@ > #include "glsl_types.h" > #include "main/context.h" > > -#define YYLEX_PARAM state->scanner > - > #undef yyerror > > static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state *st, const char > *msg) > @@ -41,9 +39,9 @@ static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state > *st, const char *msg) > } > > static int > -_mesa_glsl_lex(YYSTYPE *val, YYLTYPE *loc, void *scanner) > +_mesa_glsl_lex(YYSTYPE *val, YYLTYPE *loc, _mesa_glsl_parse_state *state) > { > - return _mesa_glsl_lexer_lex(val, loc, scanner); > + return _mesa_glsl_lexer_lex(val, loc, state->scanner); > } > %} > > @@ -61,7 +59,7 @@ _mesa_glsl_lex(YYSTYPE *val, YYLTYPE *loc, void *scanner) > @$.source = 0; > } > > -%lex-param {void *scanner} > +%lex-param {struct _mesa_glsl_parse_state *state} > %parse-param {struct _mesa_glsl_parse_state *state} > > %union { > -- > 1.8.3.4 > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev