gpt4 book ai didi

c++ - 如何从 lex/yacc 获取更多解析错误信息?

转载 作者:行者123 更新时间:2023-11-30 17:22:40 24 4
gpt4 key购买 nike

如何从 lex/yacc 获取更多解析错误信息?

当前在我正在使用的 lex 文件中:

int yyerror(const char *msg)
{
fprintf(stderr, "Parse error: %s\n", msg);
return 0;
}

但是当我运行程序 yyerror 时输出一条空白消息。我尝试将 yylineno 和 yytext 添加到 yyerror 但这些会导致编译错误。我尝试将“%error-verbose”添加到 yacc 文件中将“%option debug”添加到 lex 文件中,但这些对消息没有任何影响。

我确实注意到 yyparse 从我试图解析的文件中输出了一个括号:'{',我不知道它的重要性。

我正在使用 win_flex 和 win_bison。

最佳答案

其中大部分内容在 official bison manual 中进行了描述。当它展示如何使用yyerror来获得改进的错误消息时。

特别是,它建议您在 Bison 声明部分中使用 %define parse.error verbose 来获取增强的错误消息。

关于c++ - 如何从 lex/yacc 获取更多解析错误信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27943284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com