ANTLR4的IntelliJ插件安装及示例Hello.g4
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/