在文法檔上呼叫 ANTLR 轉譯器產生器。
若要使用 ANTLR 任務,請將 target 屬性設定為要處理的文法檔名稱。您也可以選擇設定 outputdirectory,將產生的檔案寫入特定目錄。否則,ANTLR 會將產生的檔案寫入包含文法檔的目錄。
此任務僅在文法檔(或 glib 屬性指定的超文法)比產生的檔案新時才會呼叫 ANTLR。
注意:此任務依賴於 Apache Ant 發行版中未包含的外部函式庫。請參閱 函式庫相依性 以取得更多資訊。
Antlr 2.7.2 注意:您需要 antlrall.jar,它可以透過下載時提供的 Makefile 的 antlr-all.jar
目標建立。
屬性 | 說明 | 必要 |
---|---|---|
target | 要處理的文法檔。 | 是 |
outputdirectory | 要將產生的檔案寫入的目錄。 | 否;預設為包含文法檔的目錄 |
glib | 目標文法會覆寫的選用超文法檔。此功能僅需要用於進階詞彙。 | 否 |
debug | 當設定為 yes時,此旗標會將程式碼新增到產生的剖析器,在呼叫時會啟動 ParseView 除錯器。 注意:ParseView 是需要安裝的獨立元件,否則您的文法會有編譯錯誤。 |
否;預設為 no |
html | 如果設定為 yes,會產生文法的 HTML 版本,並附帶超連結動作。 |
否;預設為 no |
diagnostic | 如果設定為 yes,會根據目標文法產生一個包含除錯資訊的文字檔。 |
否;預設為 no |
trace | 如果設定為 yes,會強制所有規則呼叫 traceIn/traceOut。 |
否;預設為 no |
traceParser | 如果設定為 yes,會強制剖析器規則呼叫 traceIn/traceOut。 |
否;預設為 no |
traceLexer | 如果設定為 yes,會強制詞法分析器規則呼叫 traceIn/traceOut。 |
否;預設為 no |
traceTreeWalker | 如果設定為 yes,會強制樹狀結構漫遊器規則呼叫 traceIn/traceOut。 |
否;預設為 no |
dir | 呼叫 JVM 的目錄。 | 否 |
此任務支援巢狀 <classpath>
元素,它代表 類似的路徑結構。如果您必須指定原始 ANTLR 目錄,則可以將它視為一種便利性。在大部分情況下,將適當的 ANTLR jar 放到正常的 Ant lib 儲存庫中就夠了。
可以透過巢狀 <jvmarg>
屬性將其他參數傳遞給新的 JVM,例如
<antlr target="..."> <jvmarg value="-Dfoo=bar"/> ... </antlr>
會在沒有 JIT 的 JVM 中執行 ANTLR。
<jvmarg>
允許使用 命令列引數 中描述的所有屬性。
在語法檔案 etc/java.g 上呼叫 ANTLR,將產生的檔案寫入 build/src
<antlr target="etc/java.g" outputdirectory="build/src"/>