- Notifications
You must be signed in to change notification settings - Fork462
A set of Swift libraries for parsing, inspecting, generating, and transforming Swift source code.
License
swiftlang/swift-syntax
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
The swift-syntax package is a set of libraries that work on a source-accurate tree representation of Swift source code, called the SwiftSyntax tree. The SwiftSyntax tree forms the backbone of Swift’s macro system – the macro expansion nodes are represented as SwiftSyntax nodes and a macro generates a SwiftSyntax tree to be inserted into the source file.
You can read SwiftSyntax’s documentation onswiftpackageindex.com.
A great way to interactively explore the SwiftSyntax tree of a source file ishttps://swift-ast-explorer.com, developed by@kishikawakatsumi.
A set of example usages of swift-syntax can be found inExamples.
Releases of SwiftSyntax are aligned with corresponding language and tooling releases, for example the major version 509 of swift-syntax is aligned with Swift 5.9.
To depend on swift-syntax in a SwiftPM package, add the following to yourPackage.swift.
dependencies:[.package(url:"https://github.com/swiftlang/swift-syntax.git", from:"<#latest swift-syntax tag#>"),],
To add swift-syntax as a dependency of your Xcode project, go to thePackage Dependencies tab of your Xcode project, click the plus button and search forhttps://github.com/swiftlang/swift-syntax.git.
If you should hit any issues while using SwiftSyntax, we appreciate bug reports onGitHub Issue.
Start contributing to SwiftSyntax seethis guide for more information.
SwiftSyntax provides an experimentalBazel build configuration, maintained by Keith Smiley.To use it, you can pull the source archive from the relevant release taginto yourMODULE.bazel file (preferred and recommended) withbazel_dep. Bzlmod support was added starting release of509.0.0 and above. All available versions can be found in theBazel Central Registry
bazel_dep(name="swift-syntax",version="600.0.1")
You can also pull source archive withWORKSPACE but note that it is preferred to useMODULE.bazel. To useWORKSPACE and swift-syntax, you can usehttp_archive as such
http_archive(name="SwiftSyntax",sha256="f070fd44db9b33f430fd5b5d2700f1e2001c0028711859600e80cc975074fab0",strip_prefix="swift-syntax-509.1.0",url="https://github.com/apple/swift-syntax/archive/refs/tags/509.1.0.tar.gz",)
and depend on the libraries you need from theBUILD.bazel file. Each library also has an associatedLibrary_opt target (such asSwiftSyntax_opt) which forcesSwiftSyntax to always build with optimizations enabled. This may helplocal runtime performance at the cost of debuggability, and initialbuild time. Please tag anyissues related to the Bazel configuration with the label "Bazel".
Please seeLICENSE for more information.
About
A set of Swift libraries for parsing, inspecting, generating, and transforming Swift source code.
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.