antlr4-go/antlr
GitHub: antlr4-go/antlr
ANTLR4 Go Runtime 的官方独立发布仓库,解决了主仓库深层目录导致 Go modules 无法正确解析语义化版本标签的问题。
Stars: 147 | Forks: 25
[](https://goreportcard.com/report/github.com/antlr4-go/antlr)
[](https://pkg.go.dev/github.com/antlr4-go/antlr)
[](https://github.com/antlr4-go/antlr/releases/latest)
[](https://github.com/antlr4-go/antlr/releases/latest)
[](https://github.com/antlr4-go/antlr/commit-activity)
[](https://opensource.org/licenses/BSD-3-Clause)
[](https://GitHub.com/Naereen/StrapDown.js/stargazers/)
# ANTLR4 Go Runtime Module Repo
重要提示:请通过 https://github.com/antlr/antlr4 仓库的克隆提交 PR,而不是在此处提交。
- 请勿向此仓库提交 PR 或任何更改请求
- 此仓库为只读状态,由 ANTLR 团队更新,用于发布 ANTLR 的 Go Runtime 新版本
- 此仓库包含你生成的项目应导入的 Go runtime
## 简介
此仓库包含 ANTLR Go Runtime 的官方 module。它是所维护的 runtime 的副本,
位于:https://github.com/antlr/antlr4/tree/master/runtime/Go/antlr,并由 ANTLR 团队自动更新,
仅用于发布官方的 Go runtime。此仓库不进行任何开发工作,也不接受 PR。
此仓库的 dev 分支与主 ANTLR 仓库的 dev 分支保持同步,并会定期更新。
### 为什么?
`go get` 命令在 Go runtime 嵌入主仓库如此深处时无法正确获取它。
对 `antlr/antlr4` 仓库执行 `go get`,虽然能获取到正确的 runtime 源代码,但无法正确解析 tag,
并且会在你的 `go.mod` 文件中生成不明确的引用,这会导致无法平滑升级并引起混乱。
例如,当前在 `antlr/antlr4` 中标记为 v4.13.0 的 Go runtime 版本,通过 go get 获取到的内容如下:
```
require (
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230219212500-1f9a474cc2dc
)
```
而你期望看到的是:
```
require (
github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.13.0
)
```
因此,我们决定在一个单独的仓库中创建一个单独的组织,以存放 ANTLR 的官方 Go runtime,这样用户就可以期望 `go get` 能够按预期工作。
# 文档
请阅读官方文档:https://github.com/antlr/antlr4/blob/master/doc/index.md,以获取有关将现有项目迁移至使用新 module 位置的提示,以及有关如何使用 Go runtime 的常规信息。
标签:ANTLR4, EVTX分析, Go, Ruby工具, SOC Prime, 开发工具, 日志审计, 编译原理, 解析器生成器, 运行时环境