我试图进入我的yyparse函数,这是在Bison生成的代码中定义的,但是我收到了来自GDB的消息说
Reading file "foo.tab.c"...No such file or directory.
Bison生成的文件名为foo.cc.为什么要寻找foo.tab.c
呢?
答案 0 :(得分:2)
.cc文件实际上是Bison程序的输入。 foo.tab.c是输出 - 由Bison生成的C文件。它包含查找表以加速解析,并为您需要的大多数内容提供一些默认定义。此文件 已编译并对目标代码有所贡献。您可能会发现documentation有帮助。
答案 1 :(得分:1)
Bison的输入文件应遵循yacc约定并命名为foo.y.处理时,输出文件应为foo.tab.c.对于C ++,这是foo.yxx到foo.tab.cxx。
您是否正在为Bison使用-o或--output-file参数。这可能是问题所在,而是使用上面提到的约定。