2011-02-05 12 views
2

JavaCC 5.0を使用しています。 Eclipse Galileoで。JavaCC:警告が多すぎます

しかし、jjファイルでオプション "static = true"を設定すると、生成されたTokenManagerファイルに "静的メソッドreadChar()のstaticCharStream型から静的な方法でアクセスする必要があります。また、私のjjファイルからのすべてのインポートはTokenManagerにコピーされ、未使用としてフラグが付けられます。これを防ぐオプションはありますか?

これはissue was fixed in JavaCC v4.1と思われますが、なぜ私はまだこれに直面していますか?

+0

常に* STATICをfalseに設定する必要があります。 –

+0

なぜですか?あなたは私にその理由を指摘できますか? – athena

+0

@LaurentPireyn、私はあなたの更新されたリンクに読者を指摘させてください:http://lpireyn.pisolutions.eu/blog/2011/02/14/taming-javacc/ –

答えて

0

これらの警告は、正しいが推奨されないコードによるものです。生成されたコードを手作業で修正するのは良い考えではないので、私はEclipseでこれらの警告を無効にすることを提案します(Java> Compiler> Error/Warnings)。

これらの警告を無効にするプロジェクト固有の設定を使用することをお勧めします(すべてのプロジェクトで無効になるわけではありません)。生成されたコードをすべてプロジェクトに配置し、コードをこのプロジェクトに依存させることもできます。それらの警告をあなたのコードに保存することができます。

+0

私は警告を無効にしたくありません。私はJavaCCコードを別のプロジェクトに分けることはできません。 – athena

1

静的に切り替えると、JavaCCは既存の生成クラスを削除しません。その動作は、クラスを変更した場合、または独自のバージョンを提供した場合に発生します。

生成されたすべてのクラスを削除し、 'static = true'に設定して、再び開始します。すべてがうまくいくはずです。

(Antのような)ビルドを自動化する場合は、テストしているものが再現可能であることを確認するために、JavaCC生成クラスを常に削除して再生成することをお勧めします。

Eclipseについて... JavaCC入力ファイルを変更したときにAntスクリプトを実行するように指示できます。

+0

私は再生クラスでもこの問題を抱えています。例えば。 Token Managerクラスは、未使用のインポートについて警告を出します。静的メソッドを非静的な方法で使用する場合の警告もあります。 – athena

関連する問題