Download:
https://plugins.jetbrains.com/plugin/7358-antlr-v4-grammar-plugin
或者從這里http://www.antlr.org/tools.html進入下載。
前提
安裝好
- jdk
- IntelliJ
配置好ANTLR的java運行時環境(庫)。具體見這里
插件安裝
Hello.g4示例
在IntelliJ中新建java項目(即一個Module),並創建grammar文件Hello.g4 。代碼如下:
//Define a grammar called Hello grammar Hello; r : 'hello' ID; // match keyword hello followed by an identifier ID : [a-z]+; // match lower-case identifiers WS : [ \t\r\n]+ -> skip; // skip spaces, tabs, newlines
IntelliJ 中的Project相當於eclipse中的workspace;
而IntelliJ中的Module相當於eclipse中的project。
因此,我們創建項目時只需在當前Project中創建一個新的Module項目(File -> New -> Module)。
編輯好該.g4文件后即可測試該grammar規則。在rule “r”處選中“r”並右擊鼠標后,點擊“Test Rule r”,如下圖。然后在左下方便可以輸入“hello name”,在右下方框中便會顯示對應的Parse tree。
Hello.g4的ANTLR代碼生成配置
注意:IntelliJ中的ANTLR插件指定了antlr的運行時庫的版本為最新版本(此處即為ANTLR4 4.7版本)
右擊項目中剛剛創建的Hello.g4文件,點擊“Configure ANTLR…”,然后便會彈出如下圖所示窗口。
在該窗口中便可以對從grammar自動生成對應的ANTLR API的java代碼進行配置。
其中,“Output directory where all output is generated”表示指定隨后生成的java代碼所存放的路徑。
“generate parse tree vistor”表示生成ANTLR中用於遍歷parse tree的visitor類相關API。(我這里勾選上了,萬一要”實現”了呢^_^)
Hello.g4的ANTLR代碼生成
如下圖所示,在項目中選中Hello.g4文件並右擊選擇“Generate ANTLR Recognizer”。隨后便會在app目錄下看到生成的各種.java 文件等。(上一步配置中我們設置了代碼生成的目標路徑為app目錄)
生成了這些API后,我們就可以通過調用API實現相應的功能了。
---------------------------------------------------------
參考:
https://blog.csdn.net/yuexiang321/article/details/52770283
https://www.cnblogs.com/clonen/p/9083359.html
https://blog.csdn.net/dc_726/article/details/45399371
https://www.cnblogs.com/sld666666/p/6145854.html
https://blog.csdn.net/yangguosb/article/details/86007195
https://blog.csdn.net/yuexiang321/article/details/52770283
https://liangshuang.name/2017/08/20/antlr/
http://yijun1171.github.io/2015/03/30/ANTLR4學習筆記-語法字典-Grammar-Lexicon/