野牛报告错误机制可以被覆盖吗?

时间:2012-01-16 18:47:43

标签: bison

我注意到Bison使用通过yyerror()传递给yyreportSyntaxError()函数的特定错误消息。这是使用glr.c生成的函数。

有没有办法可以修改这个功能的行为?

一种解决方案是修改yyerror()中的错误消息。但是假设我想避免这种情况,我可以指示Bison使用我自己的函数而不是yyreportSyntaxError()吗?

1 个答案:

答案 0 :(得分:0)

Comment converted to an answer

@Bort写道:

  

我不是Bison / Flex专家。但是就本手册以及o&Billyi Bison / Flex书而言,使用yyerror()是可行的方法。但是,如果您使用像flex这样的词法分析器,则可以在解析时直接捕获错误并提供自己的错误例程而不使用yyerror()。您基本上定义了一个令牌,用于定义语法中的错误并使用错误例程捕获它。