Compiler construction 我在说“%yacc”和“%define api.value.type”不能一起使用时出错
我正在创建一个简单的编译器,我需要生成一个Symantec值类型,我已经检查过了,我需要在parser.y文件中添加这一行:Compiler construction 我在说“%yacc”和“%define api.value.type”不能一起使用时出错,compiler-construction,bison,flex-lexer,yacc,Compiler Construction,Bison,Flex Lexer,Yacc,我正在创建一个简单的编译器,我需要生成一个Symantec值类型,我已经检查过了,我需要在parser.y文件中添加这一行: %define api.value.type union 通知野牛与%token和%type指令一起使用的标记是真正的类型 但我犯了一个奇怪的错误: parser.y:错误:“%yacc”和“%define api.value.type union” 不能同时使用 我不明白%yacc变量是什么以及为什么会出现错误,据我所知,'%define api.value.type
%define api.value.type union
通知野牛与%token和%type指令一起使用的标记是真正的类型
但我犯了一个奇怪的错误:
parser.y:错误:“%yacc”和“%define api.value.type union”
不能同时使用
我不明白%yacc变量是什么以及为什么会出现错误,据我所知,'%define api.value.type union'我可以在解析器中正常使用,但我找不到有关该错误的任何信息或资源。如上所述,bison包括一个运行bison-y的yacc前端。y选项强制进行各种yacc兼容性设置,如前所述
因此,解决方案是运行bison而不是yacc。您在寻找哪种答案,而不是简单地重述错误消息?如果您向我们解释为什么您认为您需要%yacc选项,那么也许我们可以建议一种解决方法。正如我所说,我没有名为%yacc的选项,我在代码中不使用这样的变量,我也不认为我需要它,我想它属于我运行parser.y文件的方式,因为我使用命令$yacc-d parser.y,但我不确定这是否是我犯错误的原因,以及如何解决它