Go1 中最近引入的 go 命令激发了人们对其底层功能的好奇。具体来说,go/ast、go/token 和 go/parser 等软件包的存在引发了人们对其在新编译器中的作用的疑问。
与预期相反,Go1 编译器仍然主要用 C 编写。它的词法分析器驻留在 src/cmd/gc/lex.c 中,而它的 Bison 语法定义在src/cmd/gc/go.y。因此,上面提到的包在实际的编译过程中并没有被使用。
相反,go/ 包在众多工具中发挥着关键作用。走向生态系统。这些工具包括用于文档生成的 godoc、用于代码格式化的 gofmt 以及 go 工具的各种子命令。
尽管当前实现如此,但用 Golang 编写的 Go 编译器的前景仍然令人着迷。然而,这方面尚未取得实质性进展。
以上是Go 1 编译器是否使用 `go/ast`、`go/token` 和 `go/parser` 包?的详细内容。更多信息请关注PHP中文网其他相关文章!