ANTLR v4
ANTLR (另一种语言识别工具)是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。它广泛用于构建语言、工具和框架。 ANTLR 根据语法生成一个解析器,该解析器可以构建解析树,并生成一个侦听器接口(或访问者),以便轻松响应感兴趣短语的识别。
Dev分支构建状态
(github 行动)
版本控制
ANTLR 4 支持 10 种目标语言(Cpp、CSharp、Dart、Java、JavaScript、PHP、Python3、Swift、TypeScript、Go),确保这些目标之间的一致性是一项独特且非常有价值的功能。为了确保正确支持此功能,ANTLR 的每个版本都是该工具和 10 个运行时的完整版本,全部具有相同的版本。因此,ANTLR 版本控制并不严格遵循 semver 语义:
- 组件可能会以最新版本号发布,即使自上一个版本以来该组件内没有任何更改
- 仅当 ANTLR 被重写为全新“一代”时,主要版本才会被提升,例如 ANTLR3 -> ANTLR4(LL(*) -> ALL(*) 解析)
- 次要版本更新可能包括次要的重大更改,策略是在每个版本中重新生成解析器(4.11 -> 4.12)
- 仅保证补丁版本升级(4.11.1 -> 4.11.2)的向后兼容性
如果您在 CI 中使用 semver 验证器,您可能希望对 ANTLR 应用特殊规则,例如将较小的更改视为主要更改。
回购分支结构
该存储库的默认分支是master
,它是最新的稳定版本,并且具有各个版本的标签;例如,请参阅发布标签 4.9.3。分支dev
是在版本之间进行开发的地方,所有拉取请求都应该从该分支派生。 dev
分支被合并回master
以剪切发布,并且发布状态被标记(例如,使用4.10-rc1
或4.10
。)从视觉上看,我们的流程大致如下:
Go 目标现在有自己的专用存储库:
$ go get github.com/antlr4-go/antlr
注意专用的 Go 存储库仅用于go get
和import
。 Go 运行时开发仍然在主antlr/antlr4
存储库中进行。
作者和主要贡献者
- Terence Parr, [email protected] ANTLR 项目负责人、旧金山大学终身最高独裁者
- Sam Harwell(工具合著者,Java 和原始 C# 目标)
- Eric Vergnaud(Javascript、TypeScript、Python2、Python3 目标和 C# 目标的维护)
- 彼得·博耶(Go Target)
- Mike Lischke(C++ 完成目标)
- Dan McLaughlin(C++ 初始目标)
- David Sisson(C++ 初始目标和测试)
- Janyou(Swift 目标)
- Ewan Mellor,杭州施(Swift 目标合并)
- Ben Hamilton(序列化 ATN 中的完整 Unicode 支持以及所有语言的代码点运行时 > U+FFFF)
- Marcos Passos(PHP 目标)
- 李玲玉(飞镖靶)
- Ivan Kochurkin 对整体质量、错误处理和 Target 性能做出了重大贡献。
- Justin King 在多个目标上做了大量工作,尤其是 C++。
- Ken Domino 具有发现错误/问题和分析的技巧;也是 Grammars-v4 存储库的主要贡献者。
- Jim Idle 为 ANTLR 的早期版本做出了贡献,最近又重新参与解决 Go 目标的一个主要问题。
有用的信息
- 发行说明
- v4 入门
- 官方网站
- 文档
- 常问问题
- ANTLR 代码生成目标
(当前:Java、C#、Python3、JavaScript、TypeScript、Go、C++、Swift、Dart、PHP) - 注意:从 4.14 版本开始,我们将放弃对 Python 2 的支持。我们热爱 Python 社区,但 Python 2 支持已于 2020 年 1 月正式停止。最近,GiHub 也放弃了对 Python 2 的支持,这让我们无法继续支持 Python 2。保持跨目标的一致质量水平(我们使用 GitHub 作为 CI)。 Python 3 万岁!
- Java API
- ANTLR v3
- v3 到 v4 的迁移,差异
您可能还会发现以下页面很有用,特别是如果您想尝试各种目标语言。
- 如何构建 ANTLR 本身
- 我们如何创建和部署 ANTLR 版本
权威的 ANTLR 4 参考
程序员总是会遇到解析问题。无论是像 JSON 这样的数据格式、像 SMTP 这样的网络协议、Apache 服务器配置文件、PostScript/PDF 文件,还是简单的电子表格宏语言——ANTLR v4 和本书都将揭开这个过程的神秘面纱。 ANTLR v4 已从头开始重写,使构建解析器和构建在其上的语言应用程序变得比以往更容易。这本完全重写的畅销《ANTLR 权威参考》新版本向您展示了如何利用这些新功能。
您可以在亚马逊购买《The Definitive ANTLR 4 Reference》一书,也可以在出版商的网站上购买电子版。
您会发现本书的源代码很有用。
附加语法
该存储库是没有操作的语法集合,其中根目录名称是语法解析的语言的全小写名称。例如java、cpp、csharp、c等...