2013-10-23 28 views
-1

如果您看到我的其他問題,您現在可以更好地實現我的目標。看看:https://stackoverflow.com/questions/19510039/from-regex-to-parser-generatorsjavacc測試Simple1.jj

由於我想成爲一個好孩子,我正在閱讀自述文件(請參閱https://java.net/projects/javacc/sources/svn/show/tags/release_60/examples/SimpleExamples?rev=555)。

  1. 的語法輸入文件運行JavaCC的生成一串實現分析器和詞法分析器(或令牌
    經理)Java文件:

    的JavaCC Simple1.jj

  2. 現在編譯生成的Java程序:

    javac * .java

  3. 解析器現在可以使用了。要運行分析程序,類型:

    的Java Simple1

我嘗試:

D:\tests\javacc\simple1>javacc ..\Simple1.jj 
Java Compiler Compiler Version 6.0_beta (Parser Generator) 
(type "javacc" with no arguments for help) 
Reading from file ..\Simple1.jj . . . 
File "TokenMgrError.java" does not exist. Will create one. 
File "ParseException.java" does not exist. Will create one. 
File "Token.java" does not exist. Will create one. 
File "SimpleCharStream.java" does not exist. Will create one. 
Parser generated successfully. 

D:\tests\javacc\simple1>javac *.java 
SimpleCharStream.java:474: error: non-static variable this cannot be referenced from a static context 
    static void setTrackLineColumn(boolean trackLineColumn) { this.trackLineColumn = trackLineColumn; } 
                  ^
1 error 

我的Java版本:

java version "1.7.0_45" 
Java(TM) SE Runtime Environment (build 1.7.0_45-b18) 
Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode, sharing) 

我敢肯定,「這些「傢伙知道他們在做什麼,我確定我做錯了什麼,但是什麼?在使用javacc的第一個測試中獲得類似的簡單錯誤?

我該如何解決這個問題並繼續我的演講?

回答

1

我建議現在使用5.0版本。版本6中有很多更改,並且還帶有一些錯誤。應該儘快更新到版本6。 https://java.net/projects/javacc/downloads

+0

感謝您的幫助(您似乎是這個工具的開發者!太棒了!)。任何我嘗試5.0,再次感謝! :) – user2897090

+0

經過進一步調查後,我發現這是JavaCC 6.0中的一個已知錯誤。我真的建議不要使用6.0。下一個版本無疑會修復這個和其他已知的錯誤。 –

-1

你會把代碼看起來或你的完整調用。我認爲,這是一個代碼錯誤,或者你稱之爲錯誤的.java文件。例如:

我有:Mytokens.jj和javaCode.java好嗎?好,你需要說:

javacc Mytokens.jj 
javac javaCode.java 
java javaCode <test1.txt> 

我給你我的* .bat測試。您創建一個新的TXT,寫它:

CALL javacc nameJJ.jj 
@pause 
CALL javac NameJava.java 
@pause 
java NameJava <prueba1> salida.txt 
type salida.txt 
@pause 

這做測試爲你當你做一個雙擊如果您在JavaCC的/ bin和你的做法目錄有一個副本就可以了。