我正在尝试进入我的 yyparse 函数,该函数在 Bison 生成的代码中定义,但我从 GDB 收到一条消息说
Reading file "foo.tab.c"...No such file or directory.
Bison 生成的文件名为 foo.cc。它为什么要寻找foo.tab.c
,而不是?
.cc 文件实际上是 Bison 程序的输入。foo.tab.c 是输出——由 Bison 生成的 C 文件。它包含用于加速解析的查找表和一些您需要的大多数内容的默认定义。该文件被编译并提供给目标代码。您可能会发现文档很有帮助。
Bison 的输入文件应遵循 yacc 约定并命名为 foo.y。处理后的输出文件应该是 foo.tab.c。对于 C++,这是 foo.yxx 到 foo.tab.cxx。
您是否使用 Bison 的 -o 或 --output-file 参数。这可能是问题所在,而是使用提到的约定。