如果我稱之爲:如何爲ANTLR指定目標包?
java org.antlr.Tool -o outdir sources/com/example/Java5.g
...與ANTLR-3.1.3解析器和詞法分析器的代碼將在目錄outdir/sources/com/example
產生。但是生成的類沒有任何package
陳述。我需要他們去生活在包com.example
。
有沒有辦法指定目標包?
如果我稱之爲:如何爲ANTLR指定目標包?
java org.antlr.Tool -o outdir sources/com/example/Java5.g
...與ANTLR-3.1.3解析器和詞法分析器的代碼將在目錄outdir/sources/com/example
產生。但是生成的類沒有任何package
陳述。我需要他們去生活在包com.example
。
有沒有辦法指定目標包?
ANTLR提供了一個標題工具,它允許您包含包和導入。您這包括在* .G語法文件:
@header {
package org.xmlcml.cml.converters.antlr;
import java.util.HashMap;
}
,您可能需要它在詞法分析器,以及:
@lexer::header {package org.xmlcml.cml.converters.antlr;}
,並在情況下,你需要添加一些成員和代碼:
@members {
HashMap<String, Object> objectMap = new HashMap<String, Object>();
//...
private void addArrayValue(String content) {
//... code required by snippets in the grammar
}
}
感謝您投入了關於成員和代碼的信息,即使他沒有要求。 +1 – 2011-07-28 13:55:26
一個老問題,答案很完美,但是因爲對這個問題的評論問了一個命令行選項(當我到這裏的時候我就是這麼想的),我以爲我只是在提示在和說fol降脂...
你,如果你正在使用ANTLR 4.我checked,可以指定命令行上的包,好像在3版本,不應該存在這樣的other答案是去ANTLR 3
方式下面是一個例子:
java -cp antlr-4.4-complete.jar org.antlr.v4.Tool -package my.package MyGram.g4
看到ANTLR Tool Command Line Options的-package
選項以獲取更多信息。
我確定有。我會在星期一上班的時候查看它;) – Jorn 2009-10-31 23:01:51
在http://www.jguru.com/faq/view.jsp?EID=16185上,他們解釋瞭如何在程序包內嵌入語法。但有沒有辦法將它指定爲命令行參數? – tangens 2009-10-31 23:17:21