ANTLR 外掛程式擴充 Java 外掛程式,以新增使用 ANTLR 產生剖析器的支援。
ANTLR 外掛程式支援 ANTLR 版本 2、3 和 4。 |
使用方式
若要使用 ANTLR 外掛程式,請在您的建置指令碼中包含下列內容
plugins {
antlr
}
plugins {
id 'antlr'
}
工作
ANTLR 外掛程式會新增許多工作到您的專案,如下所示。
ANTLR 外掛程式會將下列相依性新增到 Java 外掛程式所新增的任務中。
任務名稱 | 相依性 |
---|---|
|
|
|
|
|
|
專案配置
src/main/antlr
-
生產 ANTLR 語法檔案。如果 ANTLR 語法以套件組織,則 antlr 資料夾中的結構應反映套件結構。這可確保產生的來源會結束在正確的目標子資料夾中。
src/test/antlr
-
測試 ANTLR 語法檔案。
src/sourceSet/antlr
-
給定來源組的 ANTLR 語法檔案。
相依性管理
ANTLR 外掛程式會新增一個 antlr
相依性組態,提供要使用的 ANTLR 實作。下列範例顯示如何使用 ANTLR 版本 3。
repositories {
mavenCentral()
}
dependencies {
antlr("org.antlr:antlr:3.5.2") // use ANTLR version 3
// antlr("org.antlr:antlr4:4.5") // use ANTLR version 4
}
repositories {
mavenCentral()
}
dependencies {
antlr "org.antlr:antlr:3.5.2" // use ANTLR version 3
// antlr "org.antlr:antlr4:4.5" // use ANTLR version 4
}
如果未宣告相依性,antlr:antlr:2.7.7
會做為預設值。若要使用其他 ANTLR 版本,請將適當的相依性新增到 antlr
相依性組態,如上所示。
貢獻的擴充功能
antlr
— AntlrSourceDirectorySet-
此來源組的 ANTLR 語法檔案。包含在 ANTLR 來源目錄中找到的所有
.g
或.g4
檔案,並排除所有其他類型的檔案。預設值為非空值。
慣例屬性 (已棄用)
ANTLR 外掛程式會新增一個慣例屬性。
antlr
— SourceDirectorySet-
此來源組的 ANTLR 語法檔案。包含在 ANTLR 來源目錄中找到的所有
.g
或.g4
檔案,並排除所有其他類型的檔案。預設值為非空值。
此慣例屬性已棄用,並由上文所述的擴充功能取代。
來源組屬性
ANTLR 外掛程式會將下列屬性新增到專案中的每個來源組。
antlr.srcDirs
—Set<File>
-
包含此來源組的 ANTLR 語法檔案的來源目錄。可以使用任何 隱含轉換為檔案集合 的內容來設定。預設值為
[projectDir/src/name/antlr]
。
控制 ANTLR 產生器處理程序
ANTLR 工具會在分岔的處理程序中執行。這允許精細控制 ANTLR 處理程序的記憶體設定。若要設定 ANTLR 處理程序的堆積大小,可以使用 AntlrTask 的 maxHeapSize
屬性。若要傳遞其他命令列引數,請附加到 AntlrTask 的 arguments
屬性。
tasks.generateGrammarSource {
maxHeapSize = "64m"
arguments = arguments + listOf("-visitor", "-long-messages")
}
generateGrammarSource {
maxHeapSize = "64m"
arguments += ["-visitor", "-long-messages"]
}