Bison does not create tab.h file

I am new to flex and bison and have been working on this project for a couple of days. I had a bison file in which the bee worked correctly and changed it a little, and now it does not create the tab.h file ... I put both the error and my bison and flex files below ... Error:

In file included from stojk_3_2.y:55: stojkovic_project1_2.l:4:27: error: stojk_3_2.tab.h: No such file or directory stojk_3_2.tab.c: In function 'int yyparse()': stojk_3_2.tab.c:1416: warning: deprecated conversion from string constant to 'char*' stojk_3_2.tab.c:1562: warning: deprecated conversion from string constant to 'char*' 

.y file:

 %{ #include <stdio.h> #include <stdlib.h> #include <ctype.h> #define YYSTYPE double int yylex(void); static void yyerror(char *s) { printf("yyerror: %s\n", s); } %} %token PLUS %token MINUS %token MULT %token DIVIDE %token LPAREN %token RPAREN %token UNSIGNEDINTEGER %left PLUS MINUS %left MULT DIVIDE %token Variable %token Exp %token Sign %token Unsigned_int %token Unsigned_float_int %token Factor %% lines : lines expr '\n' {printf("%g\n", $2);} | lines '\n' | /*empty*/ ; expr : expr PLUS expr {$$ = $1 + $3;} | expr MINUS expr {$$ = $1 - $3;} | expr MULT expr {$$ = $1 * $3;} | expr DIVIDE expr {$$ = $1 / $3;} | LPAREN expr RPAREN {$$ = $2;} | UNSIGNEDINTEGER ; %% #include "lex.yy.c" int yylex(void); int yyparse(void); int main(void) { return yyparse(); } 

.l file

 /*** Definition section ***/ %{ #include "stojk_3_2.tab.h" %} Variable [a-zA-Z_]+[a-zA-Z0-9_]* Digit [0-9] Digits [0-9]* Sign [+]|[-] Exp [E]+{Sign}|[e]+{Sign} Unsigned_int {Digit}|{Digits} Unsigned_float_int ({Digit}|{Digits}+[.]+{Digit}|{Digits})({Digit}| {Digits}+[.]+{Digit}|{Digits}+{Exp}+{Digit}|{Digits}) Factor {Variable}|{Unsigned_int}| {Unsigned_float_int} %{ /* C code to be copied verbatim */ #include <stdio.h> %} /* This tells flex to read only one input file */ %option noyywrap %% /*** Rules section ***/ /* [0-9]+ matches a string of one or more digits */ {Variable} { return Variable; } {Exp} {return Exp; } {Sign} { return Sign; } {Unsigned_int} { return Unsigned_int; } {Unsigned_float_int} { return Unsigned_float_int; } {Factor} { return Factor; } .|\n { /* Ignore all other characters. */ } %% 
+4
source share
1 answer

Try to run

 bison -d blah.y 

This will create a .h file

+9
source

Source: https://habr.com/ru/post/1446720/


All Articles