]> granicus.if.org Git - flex/commitdiff
Fix two tests to pass under bison 2.6
authorElias Pipping <pipping@users.sourceforge.net>
Mon, 6 Aug 2012 19:13:23 +0000 (15:13 -0400)
committerWill Estes <westes575@gmail.com>
Mon, 6 Aug 2012 19:13:23 +0000 (15:13 -0400)
Given that bison is moving forward with the %parse-param instead of
YYPARSE_PARAM syntax, it makes sense to switch over to using the new style
declaration. In particular, this means that flex scanners that use bison
features will now require bison 2.6 or higher.

Signed-off-by: Will Estes <westes575@gmail.com>
tests/test-bison-yylloc/main.c
tests/test-bison-yylloc/parser.y
tests/test-bison-yylval/main.c
tests/test-bison-yylval/parser.y

index 082c88c67338e2d6987c59afcf66269a8746d923..24568a936bf2b10b5655a5e94d88a7612226bba5 100644 (file)
@@ -24,8 +24,6 @@
 #include "parser.h"
 #include "scanner.h"
 
-extern int testparse(yyscan_t);
-
 int main ( int argc, char** argv )
 {
     yyscan_t scanner;
index aaee976af5049abc5f2d644073759fa0304065b4..e8f4e56ba3e9f95aeb786374a6559b2e05e8e03b 100644 (file)
@@ -21,6 +21,8 @@
  * PURPOSE.
  */
 
+%parse-param { void* scanner }
+
 /* 
    How to compile:
    bison --defines --output-file="parser.c" --name-prefix="test" parser.y
 #include "config.h"
 
 #define YYERROR_VERBOSE 1
-#define YYPARSE_PARAM scanner
 #define YYLEX_PARAM   scanner
 
-int yyerror(char* msg);
 extern int testget_lineno(void*);
 
 
@@ -89,7 +89,7 @@ line:
 
 %%
 
-int yyerror(char* msg) {
+int yyerror(void* scanner, char* msg) {
     fprintf(stderr,"%s\n",msg);
     return 0;
 }
index 165e6720eedff4996ab688ca32f7ef25eb5f4f93..30c43141adddd26c64fab62d8f332f63064b367b 100644 (file)
@@ -24,8 +24,6 @@
 #include "parser.h"
 #include "scanner.h"
 
-extern int testparse(yyscan_t);
-
 int main ( int argc, char** argv )
 {
     yyscan_t scanner;
index 77bac87cc749a8b937f52c1ccbaba17092ab1253..0ffdb8959816761ef6ef01364fcacd29935e10b0 100644 (file)
@@ -25,6 +25,7 @@
    How to compile:
    bison --defines --output-file="parser.c" --name-prefix="test" parser.y
  */
+%parse-param { void* scanner }
 %{
 #include <stdio.h>
 #include <stdlib.h>
 #include "config.h"
 
 #define YYERROR_VERBOSE 1
-#define YYPARSE_PARAM scanner
 #define YYLEX_PARAM   scanner
 
-int yyerror(char* msg);
-
 
 /* A dummy function. A check against seg-faults in yylval->str. */
 int process_text(char* s) {
@@ -76,7 +74,7 @@ starttag:  LT      TAGNAME GT { process_text($2); free($2);} ;
 endtag:    LTSLASH TAGNAME GT { process_text($2);free($2);} ;
 %%
 
-int yyerror(char* msg) {
+int yyerror(void* scanner, char* msg) {
     fprintf(stderr,"%s\n",msg);
     return 0;
 }