antlr 初相识

Antlr (ANother Tool for Language Recognition)

  • 一门语言的正式描述称为语法(grammar),ANTLR能够为该语言生成一个语法分析器,并自动建立语法分析树——种描述语法与输入文本匹配关系的数据结构。ANTLR也能够自动生成树的遍历器,这样你就可以访问树中的节点,执行自定义的业务逻辑代码。

  • 仓库地址

基础环境搭建

  • 添加maven依赖,ANTLR 4 从4.10 版本后最低要求的JDK版本升到了Java 11,所以如果在Java 8上运行ANTLR4只能使用4.9.3以下的版本。
    1
    2
    3
    4
    5
    <dependency>
    <groupId>org.antlr</groupId>
    <artifactId>antlr4-runtime</artifactId>
    <version>4.9.3</version>
    </dependency>
  • maven插件配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<version>${antlr4.version}</version>
<configuration>
<sourceDirectory>src/main/resources/grammar</sourceDirectory>
<outputDirectory>
${project.build.directory}/generated-sources/src/main/java/com/equator/antlr/gen
</outputDirectory>
<listener>true</listener>
<visitor>true</visitor>
<treatWarningsAsErrors>true</treatWarningsAsErrors>
<arguments>
<argument>-package</argument>
<argument>com.equator.antlr.gen</argument>
</arguments>
</configuration>
<executions>
<execution>
<id>antlr</id>
<phase>generate-sources</phase>
<goals>
<goal>antlr4</goal>
</goals>
</execution>
</executions>
</plugin>
  • 安装IDEA插件 ANTLR V4
  • 使用插件可视化解析
    可视化解析