On Sat, 16 Jan 2010, Tom Stellard wrote: > I am trying to add line numbers to my parser's error messages. I have > included the options, %locations and %define api.pure in my bison > definition file, but it seems to be generating yyerror with this signature: > yyerror(const char *msg); > instead of the signature I am expecting: > yyerror (YYLTYPE *locp, const char * msg) > I have attached the bison definition file I am trying to use. > Thanks.
The section of the manual you want is: http://www.gnu.org/software/bison/manual/html_node/Error-Reporting.html#Error-Reporting As you'll read there, to convince the deterministic parser in C to pass a location to yyerror, you need to specify %define api.pure, at least one %lex-param, and at least one %parse-param. The %lex-param and %parse-param can be the same. The yyerror prototype is confusing. We've been considering ways to alleviate this problem, but we're not done yet. _______________________________________________ help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison