我有一个.y
文件,试图与bison -d
一起使用,但是由于某种原因,未生成.tab.h
文件。有什么建议吗?
%{
#include <stdio.h>
int yyerror(const char* err);
%}
%token G
%token INT
%token X
%token Y
%token Z
%token END
%token ZERO
%token EOL
%%
program: list_of_expr
;
list_of_expr: expr
| list_of_expr expr
;
expr: G INT X INT Y INT Z INT EOL
| ZERO EOL
| END
;
%%
int main(int argc, char** argv){
yyparse();
}
int yyerror(const char* err){
printf("%s\n", err);
}
答案 0 :(得分:0)
使用GNU Bison 3.0.4
(默认的Ubuntu 18野牛)〜
仅当您的野牛语法文件的扩展名为-d
,例如.y
时,my_grammar.y
选项才有效。
但是您可以改用bison --defines=my_tab.h my_grammar.whatever
来解决它。
编辑:您的野牛语法文件必须具有.y
扩展名。