1. 环境筹备
- JAVA 版本:openjdk version “18.0.2.1” 2022-08-18
- antlr4 jar 下载
- 本地新建文件夹:D:\file\work\mine\antlr
- 下载的 antlr4 的 jar 文件放入该目录
-
提取 jar 中的 org 目录,放到当前目录
D:\file\work\mine\antlr\org
2. 文件筹备
这些文件都放在 D:\file\work\mine\antlr 下
2.1 bat 文件
-
antlr4.bat
java -cp D:\file\work\mine\antlr\antlr-4.12.0-complete.jar org.antlr.v4.Tool %*
-
grun.bat
java -cp .;D:\file\work\mine\antlr\antlr-4.12.0-complete.jar org.antlr.v4.gui.TestRig %*
-
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
3. 操作
用 cmd 命令行 cd 到当前目录。
不过我发现一个更好的货色,也是微软出的。新的 PowerShell
-
依据 g4 文件生成 java 代码
> .\antlr4.bat Hello.g4
此时在当前目录会生成 java 文件
-
编译
> javac *.java
-
生成语法 tree
#1 PS D:\file\work\mine\antlr> .\grun.bat Hello r -gui #2 #3 D:\file\work\mine\antlr>java -cp .;D:\file\work\mine\antlr\antlr-4.12.0-complete.jar org.antlr.v4.gui.TestRig Hello r -gui #4 hello world #5 ^Z
这里用 # 的模式标记行号,#1 是执行 grun.bat 文件,-gui 示意以 ui 的模式展现语法树(下图)。#3 是输入 grun.bat 执行的全部内容,之后进入待输出状态。此时输出 hello world(对应 #4),而后回车,再按 Ctrl + Z,再回车,就会呈现下图