Antlr 版本:4.9.3
1. Antlr 简介
Antlr 是一款强大的语法分析器生成工具,可用于读取、处理、执行以及翻译结构化的文本或二进制文件。被广泛应用于学术领域和工业生产实践,是众多语言、工具和框架的基石。Twitter 搜索使用 Antlr 进行语法分析,每天处理超过20亿次查询;Hadoop 生态系统中的 Hive、Pig、数据仓库和分析系统所使用的语言都用到了 Antlr;Lex Machina 将 Antlr 用于分析法律文本;Oracle 公司在 SQL 开发者 IDE 和迁移工具中使用了 Antlr;NetBeans 公司的 IDE 使用 Antlr 来解析 C++;Hibernate 对象-关系映射框架(ORM)使用 Antlr 来处理 HQL 语言。
除了这些鼎鼎大名的项目之外,还可以利用 Antlr 构建各种各样的实用工具,如配置文件读取器、遗留代码转换器、维基文本渲染器,以及 JSON 解析器。一门语言的正式描述称为语法(grammar),Antlr 能够为该语言生成一个语法分析器,并自动建立语法分析树,一种描述语法与输入文本匹配关系的数据结构。Antlr 也能够自动生成树的遍历器,这样你就可以访问树中的节点,执行自定义的业务逻辑代码。
2. 安装 Antlr
Antlr 是用 Java 编写的,因此需要首先安装 Java。Antlr 运行所需的 Java 版本为 1.6 或者更高版本。安装 Antlr 前,需要检查自己的 Java 版本,如果低版本的 Java 安装高版本的 Antlr4,使用时会报如下类似的错误:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/antlr/v4/Tool has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
详细请查阅 Antlr4 xxx has been compiled by a more recent version of the Java Runtime
通过如下命令检查 Java 版本:
localhost:opt wy$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)