Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compiler construction 我在说“%yacc”和“%define api.value.type”不能一起使用时出错_Compiler Construction_Bison_Flex Lexer_Yacc - Fatal编程技术网

Compiler construction 我在说“%yacc”和“%define api.value.type”不能一起使用时出错

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

我正在创建一个简单的编译器,我需要生成一个Symantec值类型,我已经检查过了,我需要在parser.y文件中添加这一行:

%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,但我不确定这是否是我犯错误的原因,以及如何解决它