SwiftSyntaxLib 509.1.0

SwiftSyntaxLib 509.1.0

SwiftyLab 维护。



SwiftSyntax

SwiftSyntax 是一系列用于解析、检查、生成和转换 Swift 源代码的 Swift 库。

文档

您可以在 swiftpackageindex.com 上阅读 SwiftSyntax 的文档。

交互式探索源文件中 SwiftSyntax 树的极佳方法是 https://swift-ast-explorer.com,由 @kishikawakatsumi 开发。

将 SwiftSyntax 添加为依赖项

主线开发 (main)

SwiftSyntax的主线分支跟踪最新的开发进展。它不是一个官方版本,API和行为的变更非常快。要使用它,将此仓库添加到您项目的Package.swift清单中

// swift-tools-version:5.7
import PackageDescription

let package = Package(
  name: "MyTool",
  dependencies: [
    .package(url: "https://github.com/apple/swift-syntax.git", branch: "main"),
  ],
  targets: [
    .target(name: "MyTool", dependencies: [
      .product(name: "SwiftSyntax", package: "swift-syntax"),
    ]),
  ]
)

主线的SwiftSyntax还包括

  • SwiftParser用于本地解析源代码
  • SwiftOperators用于折叠包含运算符的SwiftSyntax树
  • SwiftSyntaxBuilder用于以结果构建器风格的接口生成Swift代码
  • SwiftSyntaxMacros提供语法宏支持

发布版本

SwiftSyntax的发布版本与相应的语言和工具版本保持一致,且是稳定的。要使用它们,请将此仓库添加到您项目的Package.swift清单中

// swift-tools-version:5.7
import PackageDescription

let package = Package(
  name: "MyTool",
  dependencies: [
    .package(url: "https://github.com/apple/swift-syntax.git", exact: "<#Specify Release tag#>"),
  ],
  targets: [
    .target(name: "MyTool", dependencies: [
      .product(name: "SwiftSyntax", package: "swift-syntax"),
    ]),
  ]
)

<#指定发布标签#>替换为您想要使用的SwiftSyntax版本(请参见下表中的映射细节)。

Xcode发布版 Swift发布标签 SwiftSyntax发布标签
Xcode 14.3 swift-5.8-RELEASE 508.0.0
Xcode 14.0 swift-5.7-RELEASE 0.50700.1
Xcode 13.3 swift-5.6-RELEASE 0.50600.1
Xcode 13.0 swift-5.5-RELEASE 0.50500.0
Xcode 12.5 swift-5.4-RELEASE 0.50400.0
Xcode 12.0 swift-5.3-RELEASE 0.50300.0
Xcode 11.4 swift-5.2-RELEASE 0.50200.0

文档

SwiftSyntax使用DocC存档进行文档。要在Xcode中查看渲染的文档,打开SwiftSyntax包并选择

Product > Build Documentation

相关文章用markdown编写,可以浏览器、文本编辑器或IDE中查看。

贡献

开始为SwiftSyntax贡献力量,请参阅此指南获取更多信息。

上报问题

如果您在使用 SwiftSyntax 时遇到任何问题,我们感谢您在 GitHub 问题 上提交错误报告。

Bazel

SwiftSyntax 提供了一个由 Keith Smiley 维护的实验性 Bazel 建议配置。要使用它,您可以将相关发布标签中来源获得的源代码存档拉入您的 WORKSPACE,并从 BUILD.bazel 文件中依赖于您所需的库。每个库都有自己的相关 Library_opt 目标(例如 SwiftSyntax_opt),这将促使 SwiftSyntax 总是启用优化来构建。这可能有助于本地运行时性能,但以可调试性和初步构建时间为代价。请将有关 Bazel 配置的任何 问题 标记为 "Bazel"。

许可证

有关更多信息,请参阅 LICENSE