ANTLR4 在 IDEA 中使用 ANTLR 与 Java 程序集成

在这里插入图片描述

ANTLR4 版本:4.9.2

1. 添加依赖

如果想将 ANTLR 自动生成的代码与 Java 程序进行集成,需要在 Maven 项目中添加如下依赖:

<dependency><groupId>org.antlrgroupId><artifactId>antlr4-runtimeartifactId><version>4.9.2version>
dependency>

2. 下载 ANTLR4 插件

第二件事情就是安装 ANTLR4 插件。在 Plugins 页面搜索 ANTLR4 插件,但是不要着急点击安装,需要判断一下插件对应的 ANTLR4 的版本和我们使用的 ANTLR 版本是否一致:

在这里插入图片描述

如果一致,直接点击 install 按钮安装即可。否则点击 Plugin homepage 下载对应版本的 ANTLR4 插件:

在这里插入图片描述

进入主页后在下方找到与你 ANTLR4 版本以及 IDEA 版本相符的插件包下载,在这我们选择的是 1.17 版本(antlr-intellij-plugin-v4-1.17.zip),对应 ANTLR4 4.9.2 版本以及 IDEA 2021.3+ 版本:
在这里插入图片描述

下载的插件版本要和 pom 依赖的 ANTLR 版本以及 IDEA 版本相匹配。

然后在 IDEA 中通过磁盘安装插件的方式安装 ANTLR4 插件,安装完重启即可:

在这里插入图片描述

3. 构建和运行 Hello 语法

3.1 定义语法文件

src/main 专门定一个 antlr4 目录来定义 g4 语法文件。在 antlr4 目录下的 com/antlr/example/hello 目录下定义 Hello.g4 语法文件:

grammar Hello; // 定义一个名为 Hello 的语法
r : LITTER ID ; // 定义一个语法规则:匹配一个关键词 hello 和一个紧随其后的标识符
LITTER : 'hello' ;
ID : [a-z]+ ; // 匹配小写字母组成的标识符
WS: [ \t\r\n]+ -> skip; // 忽略空格、Tab、换行以及\r

为啥在 com/antlr/example/hello 目录下定义 Hello.g4 语法文件下面会详细介绍。

编辑好 .g4 文件后即可测试该语法规则。在语法规则 r 处选中 r 并右击鼠标后,点击 Test Rule r,如下图所示:

在这里插入图片描述

然后在左下输入框输入文本信息,在右下方框中便会显示对应的语法分析树:

在这里插入图片描述

3.2 生成程序文件

有两种方法解析 ANTLR4 语法文件 g4 并将它们转换为 Java 源文件的方法:

  • 手动图形化界面
  • 自动 Maven ANTLR4 插件

3.2.1 图形化界面

第一种方式是通过图形化界面手动进行转换。右击项目中刚刚创建的 Hello.g4 文件,点击 Configure ANTLR…,然后便会弹出如下图所示窗口:

在这里插入图片描述
需要在 output directory 输入框中配置为 Java 文件输出目录:/Users/wy/study/code/data-example/antlr-example/src/main/generated-sources/antlr4,Package 输入框中配置为 Java 文件的包名:com.antlr.example.hello

上述配置的 Java 文件为测试目录,最好是放置到 target 下的 generated-sources 目录下

在项目中选中 Hello.g4 文件并右击选择 Generate ANTLR Recognizer。随后便会在 hello 目录下看到生成的各种 .java 文件等:


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部