关于antlr:windows-antlr4入门demo

3次阅读

共计 995 个字符,预计需要花费 3 分钟才能阅读完成。

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,再回车,就会呈现下图

正文完
 0