• 使用golang+antlr4构建一个自己的语言解析器(一)


    Antlr4 简介


    ANTLR(全名:ANother Tool for Language Recognition)是基于LL(*)算法实现的语法解析器生成器(parser generator),用Java语言编写,使用自上而下(top-down)的递归下降LL剖析器方法。由旧金山大学的Terence Parr博士等人于1989年开始发展。

    antlr4 是一款强大的语法分析器生成工具,可用于读取、处理、执行和翻译结构化的文本或二进制文件。它被广泛的应用于学术领域和工业生产实践,是众多语言、工具和框架的基石。Twitter 搜索使用 antlr 进行语法分析,hadoop 生态系统中的 Hive、Pig、数据仓库和分析系统所使用的语言都用到了 antlr,Lex Machina 将 antlr 用于分析法律文本,oracle 公司在 sql 开发者 IDE 和迁移工具中使用了 antlr,NetBeans 公司的 IDE 使用 antlr 来解析 c++,Hibernate 对象-关系映射框架 ORM 使用 antlr 来处理 HQL 语言。

    Antlr4 使用


    1. 下载最新版Antlr4

    https://www.antlr.org/download/antlr-4-12.0-complete.jar (这里下载得是12版本的Antlr4)

    2. 下载JDK11

    因为Antlr4版本4.12使用的JDK最低使用11版本的,所以这里我们下载JDK11,下载链接:https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html

    3. 将下载的antlr4 jar包移动到JDK目录中

    JDK一般安装在C:\Program Files\Java,新建文件夹:antlr,将antlr-4.12.0-complete.jar放入该文件夹中,如下图:


    image

    4. 设置antlr4命令:

    新建antlr4.bat
    输入
    @ECHO OFF
    "C:\Program Files\Java\jdk-11.0.17\bin\java" -jar "%~dp0antlr-4.12.0-complete.jar"

    保存使用CMD执行下脚本,查看到如下图则证明antlr可以正常工作

    image

    新建grun.bat,这个是Antlr4自带的用来检查自定义的语法树是否正确的工具
    输入
    @ECHO OFF
    "C:\Program Files\Java\jdk-11.0.17\bin\java" -cp "%~dp0antlr-4.12.0-complete.jar" org.antlr.v4.gui.TestRig %*

    保存使用CMD执行下脚本,查看到如下图则证明antlr工具可以正常工作

    image

    上述操作做完文件目录如下图

    image

    5. 设置环境变量

    1. 设置系统变量CLASSPATH:.C:\Program Files\Java\jdk-11.0.17\bin(注意开头有个点)
    2. 设置系统变量JAVA_HOME:C:\Program Files\Java\jdk-11.0.17
    3. 在PATH中添加:%JAVA_HOME%\bin

    设置好之后打开CMD,输入Java-version和Javac-version,验证Java环境是否正确


    image

    image

    这里有的小伙伴输入java-version可以执行,输入javac-version不能执行,可以看下环境变量设置的是否正确,环境变量正确,可以重启电脑,有时候环境变量重启之后才会生效

    到此,使用antlr4的环境就配置好了。接下来,就是学习使用antlr4。距离成功已经打开了大门!!!

  • 相关阅读:
    电子统计台账:垂直流水账格式数据的导入
    AVR汇编(五):算术和逻辑指令
    MySQL的MVCC机制理解和总结
    Apache JMeter压测安装使用
    第一周pwn的题目
    3.2 机器学习 --- 朴素贝叶斯作业
    nginx——复习
    httprunner环境变量
    代码随想录算法训练营第三十四天| LeetCode1005. K 次取反后最大化的数组和、LeetCode134. 加油站、LeetCode135. 分发糖果
    一文掌握虚拟机
  • 原文地址:https://www.cnblogs.com/thirteenAnimation/p/17252455.html