我正在创建一个简单的编译器,我需要生成一个Symantec值类型,我已经检查了link,我需要在我的parser.y文件中添加这一行:
%define api.value.type union
告知野牛,%token和%type指令使用的标签是真正的类型。
但我得到了一个奇怪的错误:
parser.y:错误:'%yacc'和'%define api.value.type“union”' 不能一起使用
我不明白“%yacc”变量是什么以及为什么会出现错误,据我所知,'%define api.value.type“union”'我可以在解析器中正常使用它,并且我找不到有关该错误的任何信息或资源。
答案 0 :(得分:1)
正如this page of the documentation所述,野牛包含一个yacc
前端,其运行bison -y
。 -y
选项强制执行here所述的各种yacc兼容性设置。
因此,解决方案是运行bison
而不是yacc
。