SwiftSyntax
SwiftSyntax 是一组 Swift 库,用于解析、检查、生成和转换 Swift 源代码。
文档
您可以在 swiftpackageindex.com 阅读SwiftSyntax的文档。
一种互动探索源文件 SwiftSyntax 树的好方法是 https://swift-ast-explorer.com,由 @kishikawakatsumi 开发。
将 SwiftSyntax 作为依赖项添加
主干开发(主)
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 Issue上的错误报告。
Bazel
SwiftSyntax提供了一个由Keith Smiley维护的实验性Bazel构建配置。要使用它,您可以从相关发布标签中将源存档拉取到您的WORKSPACE
文件中,并在BUILD.bazel
文件中依赖您需要的库。每个库还有一个相关的Library_opt
目标(例如SwiftSyntax_opt
),它强制SwiftSyntax始终启用优化。这可能会在牺牲可调试性的同时提高本地运行时性能和初始构建时间。如果您遇到与Bazel配置相关的任何问题,请用“Bazel”标签标记。
许可证
有关更多信息,请参阅许可证。