ANTLR v4

Java 11+ License

ANTLR (ANother Tool for Language Recognition,另一种语言识别工具) 是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。它被广泛用于构建语言、工具和框架。从语法上讲,ANTLR 生成一个可以构建解析树的解析器,并且还生成一个监听器接口(或访问者),使其可以轻松地响应感兴趣的短语的识别。

Dev 分支构建状态

MacOSX, Windows, Linux (github actions)

版本控制

ANTLR 4 支持 10 种目标语言(Cpp, CSharp, Dart, Java, JavaScript, PHP, Python3, Swift, TypeScript),确保这些目标之间的一致性是一个独特且非常有价值的功能。为了确保对该功能的适当支持,ANTLR 的每个版本都是该工具和 10 个运行时的完整版本,所有版本都具有相同的版本号。因此,ANTLR 版本控制并不严格遵循语义版本控制。

如果在 CI 中使用语义版本验证器,您可能需要为 ANTLR 应用特殊规则,例如将次要更改视为主要更改。

仓库分支结构

此仓库的默认分支是 master,它是最新的稳定版本,并具有各种版本的标签;例如,参见版本标签 4.9.3。分支 dev 是发布之间进行开发的地方,所有 pull request 都应源自该分支。dev 分支被合并回 master 以进行发布,并且发布状态被标记(例如,使用 4.10-rc14.10。)从视觉上看,我们的过程大致如下

Go 目标现在有其自己专用的仓库

$ go get github.com/antlr4-go/antlr

注意 专用的 Go 仓库仅用于 go getimport。Go 运行时开发仍然在主要的 antlr/antlr4 仓库中进行。

作者和主要贡献者

有用的信息

您可能还会发现以下页面很有用,特别是如果您想尝试使用各种目标语言。

ANTLR 4 权威参考

程序员经常遇到解析问题。无论是像 JSON 这样的数据格式,像 SMTP 这样的网络协议,Apache 的服务器配置文件,PostScript/PDF 文件,还是简单的电子表格宏语言 — ANTLR v4 和本书都将揭开这个过程的神秘面纱。ANTLR v4 已从头开始重写,使其比以往更容易构建解析器和基于其构建的语言应用程序。这本完全重写的畅销书《ANTLR 4 权威参考》新版向您展示了如何利用这些新功能。

您可以在亚马逊购买本书 ANTLR 4 权威参考,或在 出版社网站 购买电子版。

您会发现 本书的源代码 很有用。

其他语法

此存储库 是一个没有操作的语法的集合,其中根目录名称是由语法解析的语言的全小写名称。例如,java、cpp、csharp、c 等...