有没有像 JavaScript 那样的标准 Swift AST?

Is there a standard Swift AST like there is for JavaScript?

在 JavaScript 中我们有 estree 这是从 Mozilla 的实现演变而来的 AST 定义。但是现在如果你在 JS AST 的 JS 中构建一个 AST 转换器,你可能会使用这种结构。 Swift AST 的 Swift 有这样的东西吗?

我看到我们有一个 grammar,但是 AST 呢?我想我可以用它做一个,但仍然。

如果没有标准,我们有任何 AST 示例吗?

Swift 项目提供 SwiftSyntax as a package for working with Swift source code, in Swift. Under the hood, it's powered by the compiler's own libSyntax,用 C++ 编写。

请注意,这目前不是 Swift 编译器正确用于实际编译 Swift 代码的表示 — libSyntax 专注于源代码本身的重写、格式化、转换等,但很大程度上没有语义信息,您可能会在编译器 AST 中找到将源代码转换为机器代码所必需的语义信息。如果您只是想在没有这些语义的情况下对 AST 进行操作,这对于您的用例可能就足够了。

repo README 应该有一些帮助您入门的信息,an example, and some real-world use cases 显示了库的具体用法。