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/mesa/program/program_parse.y | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/mesa/program/program_parse.y b/src/mesa/program/program_parse.y index 6415bef..3aceb21 100644 --- a/src/mesa/program/program_parse.y +++ b/src/mesa/program/program_parse.y @@ -113,15 +113,13 @@ static struct asm_instruction *asm_instruction_copy_ctor( + (Current).first_column; \ } \ } while(YYID(0)) - -#define YYLEX_PARAM state->scanner %} %pure-parser %locations +%lex-param { struct asm_parser_state *state } %parse-param { struct asm_parser_state *state } %error-verbose -%lex-param { void *scanner } %union { struct asm_instruction *inst; @@ -274,9 +272,10 @@ _mesa_program_lexer_lex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, void *yyscanner); static int -yylex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, void *yyscanner) +yylex(YYSTYPE *yylval_param, YYLTYPE *yylloc_param, + struct asm_parser_state *state) { - return _mesa_program_lexer_lex(yylval_param, yylloc_param, yyscanner); + return _mesa_program_lexer_lex(yylval_param, yylloc_param, state->scanner); } %} -- 1.8.3.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev