2

これで、必要なすべての文法を作成し、すべてがスムーズに機能します。文法に遭遇したとき、私はまったく何もしていません。

これは私の yyerror 関数の定義です

int yyerror (const char *s)
{                                                     
    printf("parser error %s \n ",s);
    return 0;
}

パーサーが遭遇したエラーに関する詳細情報を取得したい場合は、%error-verbose を追加する必要があることをどこかで読みました。追加しようとすると、このエラーメッセージが表示されました

エラー: 認識されません: %error_verbose

Flex、Bison を使用していて、それらを VS2010 に接続していることを考慮して
ください。エラーには error_verbose が記載されていますが、アンダースコアの代わりにダッシュを使用してエラー詳細を渡していることを確認しました。

4

2 に答える 2

1

%error-verbose、ダッシュが付いていますが、エラー メッセージには代わりにアンダースコアが表示されます。

于 2012-05-10T11:16:29.210 に答える
0

奇妙なことに、Linuxの最新のbisonバージョンで%error-verboseを試したところ、問題なく動作しましたが、Windowsバージョンでは動作しませんでした。
Windowsで使用しているバージョンのバグなのか、サポートされていない機能なのかわからない。

于 2012-05-31T11:22:49.313 に答える