2015-04-04 96 views
1

你好,我需要一些關於用antlr和java構建一個簡單的分析樹的幫助。 我試圖使用powershell來編譯和運行語法文件(這是pascal.g4文件),我希望能夠生成一些java文件,但有時當我嘗試使用命令「 。\ antlr.bat -package pdl -o pdl。\ pascal.g4「我在powershell 上收到一條消息,指出」系統找不到指定的文件「。用ANTLR和Java解析樹建設

我認爲我輸入的命令可能是錯誤的,但無論如何,我已經得到了語法文件,並且得到了.bat文件(grun.bat,java.bat & javac.bat)和antlr-4.5-complete .jar文件。

我認爲這些基本上都是構建分析樹所需的全部文件。 至於所有這些文件所在的文件夾位置是C:\用戶\聯想\ Documents \ test2 我已經看過其他人的一些例子,但我現在真的不能再走了,任何人都可以請幫我在這裏建立這個 。

謝謝

+0

AFAIK,標準ANTLR發行版不包含'antlr.bat'文件。無論如何,問題解決取決於該文件的內容。發表它。 – GRosenberg 2015-04-04 22:07:12

+0

我知道它不包含antlr.bat文件,這就是爲什麼我必須從antlr網站下載它。 – ekcs 2015-04-04 22:13:36

回答

0

該批處理文件僅僅是一個提示。

嘗試顯式使用路徑和參數 - 並且不要試圖以兼容批處理文件執行的方式強制Powershell傳遞參數。

像這樣:

@echo off 
rem Execute the Antlr compiler/generator tool 

SETLOCAL 
set CLASSPATH=C:\Users\Lenovo\Documents\test2\antlr-4.5-complete.jar;%CLASSPATH% 

cd /d C:\Users\Lenovo\Documents\test2\ 
"C:\Program Files\Java\jre8\bin\java.exe" org.antlr.v4.Tool pascal.g4 

timeout 4 
+0

現在,我剛纔編輯的位置,在antlr.bat文件, 我已經把位置,因爲你讓我在你的榜樣,所以現在 .bat文件內容是這些: 集BASEDIR =」 C:\用戶\聯想\文件\ TEST2 \ ANTLR-4.5-complete.jar;」 set cp =%basedir%\ jre \ lib \ rt.jar %basedir%\ bin \ java.exe -cp%cp%;。; antlr-4.5-complete.jar org.antlr.v4.Tool% * – ekcs 2015-04-05 17:38:49

0

這裏的單行版本我使用,從權威ANTLR 4參考通過使用相對參閱包含.CMD/.BAT的目錄文件...

@java -cp %~dp0..\ClassLib\antlr-4.5-complete.jar;%CLASSPATH% org.antlr.v4.Tool %*

%~dp0使用有助於避免它硬編碼的絕對路徑...