Bison 野牛报告错误机制可以被覆盖吗?
我注意到Bison使用了一条特定的错误消息,该消息通过Bison 野牛报告错误机制可以被覆盖吗?,bison,Bison,我注意到Bison使用了一条特定的错误消息,该消息通过yyreportSyntaxError()传递给yyrerror()函数。这是使用glr.c生成的函数 有没有办法修改此函数的行为 一种解决方案是修改yyrorm()中的错误消息。但是假设我想避免这种情况,我可以指示Bison使用我自己的函数而不是yyreportSyntaxError()?() @博特写道: 我不是野牛专家。但就手册和o'reilly Bison/Flex手册而言,使用yyerror()是一个不错的选择。但是,如果您使用类似
yyreportSyntaxError()
传递给yyrerror()
函数。这是使用glr.c
生成的函数
有没有办法修改此函数的行为
一种解决方案是修改yyrorm()
中的错误消息。但是假设我想避免这种情况,我可以指示Bison使用我自己的函数而不是yyreportSyntaxError()
?()
@博特写道:
我不是野牛专家。但就手册和o'reilly Bison/Flex手册而言,使用
yyerror()
是一个不错的选择。但是,如果您使用类似flex的lexer,您可以在解析时直接捕获错误,并提供自己的错误例程,而无需使用yyerror()
。您基本上定义了一个标记,它定义语法中的错误,并使用错误例程捕获它
我不是野牛专家。但就手册和o'reilly Bison/Flex手册而言,使用
yyerror()
是一个不错的选择。但是,如果您使用类似flex的lexer,您可以在解析时直接捕获错误,并提供自己的错误例程,而无需使用yyerror()
。您基本上定义了一个标记,它定义语法中的错误,并使用错误例程捕获它。