Bison -d不创建tab.h

时间:2018-11-20 21:49:10

标签: bison

我有一个.y文件,试图与bison -d一起使用,但是由于某种原因,未生成.tab.h文件。有什么建议吗?

My bison file in PasteBin:

%{
    #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);
}

1 个答案:

答案 0 :(得分:0)

使用GNU Bison 3.0.4(默认的Ubuntu 18野牛)〜

仅当您的野牛语法文件的扩展名为-d,例如.y时,my_grammar.y选项才有效。

但是您可以改用bison --defines=my_tab.h my_grammar.whatever来解决它。

编辑:您的野牛语法文件必须具有.y扩展名。