2011-02-05 102 views
2

我正在使用JavaCC版本5.0。與Eclipse伽利略。JavaCC:警告太多

但是,當我在我的jj文件中設置選項「static = true」時,生成的TokenManager文件有很多警告,例如「應該以靜態方式訪問類型爲SimpleCharStream的靜態方法readChar()」。另外,從我的jj文件導入的所有內容都已複製到TokenManager,並在那裏標記爲未使用。有沒有選擇來防止這種情況發生?

看來這issue was fixed in JavaCC v4.1,那我爲什麼還要面對這個?

+0

你應該*總是*將STATIC設置爲false。 – 2011-03-25 16:04:56

+0

爲什麼?你能給我一些指出原因的指針嗎? – athena 2011-04-10 18:24:14

+0

@LaurentPireyn,讓我點讀更新鏈接:http://lpireyn.pisolutions.eu/blog/2011/02/14/taming-javacc/ – 2013-05-08 22:07:44

回答

0

這些警告是由於代碼是正確的,但不推薦。由於手動修復生成的代碼不是一個好主意,我的建議是在Eclipse中禁用這些警告(Java> Compiler> Error/Warnings)。

我建議您使用項目特定設置來禁用這些警告(因此它不會在所有項目中禁用),還可以將所有生成的代碼放入項目中並使您的代碼依賴於此項目,所以你可以保留你的代碼的警告。

1

當您切換到靜態時,JavaCC不會刪除現有生成的類。該行爲是爲了防止您對這些類進行了更改,或者提供了您自己的版本。

刪除所有生成的類,設置'static = true',然後重新開始。一切都應該工作。

如果您正在自動化構建(比如使用Ant),最好總是刪除並重新生成JavaCC生成的類,以確保您測試的內容是可重現的。

至於Eclipse ...當您對JavaCC輸入文件進行更改時,您可以告訴它運行Ant腳本。