0

Bisonで生成されたコードで定義されているyyparse関数にステップインしようとしていますが、GDBから次のようなメッセージが表示されます。

Reading file "foo.tab.c"...No such file or directory.

Bisonによって生成されたファイルはfoo.ccと呼ばれます。foo.tab.c代わりに、なぜそれを探しているのですか?

4

2 に答える 2

2

.ccファイルは実際にはBisonプログラムへの入力です。foo.tab.cは出力であり、Bisonによって生成されたCファイルです。解析を高速化するためのルックアップテーブルと、必要なほとんどすべてのデフォルト定義が含まれています。このファイルコンパイルされ、オブジェクトコードに貢献します。ドキュメントが役立つ場合があります。

于 2009-02-18T18:10:15.287 に答える
1

Bison の入力ファイルは yacc 規則に従い、foo.y という名前にする必要があります。処理されると、出力ファイルは foo.tab.c になります。C++ の場合、これは foo.yxx から foo.tab.cxx です。

Bison に -o または --output-file 引数を使用していますか。これが問題である可能性があります。代わりに、言及されている規則を使用してください。

于 2009-02-18T18:30:13.910 に答える