2011-03-20 59 views
1

這裏簡單的文件是語法文件:ANTLR的問題:無法獲得ANTLR的工具編譯從ANTLRWorks

grammar fred; 
test : 'fred'; 

這裏是批處理文件來啓動該工具:

SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_24 
SET PATH=%PATH%;%JAVA_HOME%\bin 
SET ANTLR_HOME=c:/users/don/workspace/antlrAssign/lib/ 
java -cp %ANTLR_HOME%/antlr-3.3-complete.jar antlr.Tool fred.g 

這裏的結果:

ANTLR Parser Generator Version 2.7.7 (20060906) 1989-2005 
fred.g:1:1: unexpected token: grammar 
error: Token stream error reading grammar(s): 
fred.g:3:19: expecting ''', found 'r' 
fred.g:1:1: rule grammar trapped: 
fred.g:1:1: unexpected token: grammar 
TokenStreamException: expecting ''', found 'r' 

以前的貼子指的是「org.antlr.Tool」,但3.3的jar版本位於上面。這個想法是創建一個樹解析器的調試版本,根據文檔,你必須使用命令行工具。

有沒有人見過這個?我瘋了嗎?這是兩行長,並在文件中的第一個詞死亡。

當然這編譯在antlrworks。

任何幫助表示讚賞,我無法再對我的藥物進行任何調整。

追問:

我發現,如果你使用的運行 - 在ANTLRWORKS>調試菜單選項它會產生一個樹分析器的調試版本,但在我手中的命令行工具不。生成的調試源生存在輸出文件夾中進行生成。在ANTLRWORKS中獲取非調試版本使用「生成」菜單選項。在eclipse中使用樹解析器的調試版本,啓動測試工具並等待,然後在treegrammar解析器文件上通過運行遠程調試與ANTRWORKS連接。它遍歷樹的解析器,並給了我一個不匹配的樹節點錯誤(不是解析器錯誤,這很好,因爲我正在調試樹解析器)。所以現在我只需要找出我做過的其他愚蠢的事情。 HTH除了我之外有人。

回答

0

以前的發帖是指「org.antlr.Tool」,但3.3 jar的位置如上所述。

老ANTLR 2.X Tool類(antlr.Tool)仍包括在ANTLR 3.x版本(一個或多個),但你需要使用ANTLR 3.X Tool(位於:org.antlr.Tool)爲您語法,因爲它是一個3.x語法。

+0

非常感謝您的回覆!現在我的問題似乎是調試選項不會更改樹語法文件。但它確實可以用於解析器文件。你或者其他人是否能夠進行調試以處理樹語法? – 2011-03-20 11:52:28

+0

@唐,對不起,我不使用ANTLRWorks進行調試,所以不能評論。你最好爲此創建一個新問題,或者試試ANTLR郵件列表:http://www.antlr.org/mailman/listinfo/antlr-interest祝你好運! – 2011-03-20 12:22:32