如何使用yyerror来讲述解析错误的更多信息

时间:2012-05-10 11:09:31

标签: compiler-construction bison yacc

所以我写了我想要的所有语法,一切顺利。 当遇到语法时,我绝对不会采取行动。

这是我的yyerror函数的定义

int yyerror (const char *s)
{                                                     
    printf("parser error %s \n ",s);
    return 0;
}

好吧,如果我想获得有关我的解析器遇到的错误的更多信息,我已经阅读了我需要添加%error-verbose的地方;当我尝试添加它时,我收到此错误消息

  

错误:无法识别:%error_verbose

考虑到我使用Flex,Bison并将它们与VS2010连接起来
编辑:即使错误提到error_verbose,我也确保我传递的是错误详细信息,而不是使用短划线。

2 个答案:

答案 0 :(得分:1)

它是%error-verbose,带有短划线,但您的错误消息却显示为下划线。

答案 1 :(得分:0)

奇怪的是,当我在Linux上的最新野牛版本上尝试%error-verbose时,它运行得很好但不适用于Windows版本。
不确定这是我在Windows上使用的版本中的错误,还是不支持的功能。