Skip to content

A set of Swift libraries for parsing, inspecting, generating, and transforming Swift source code.

License

Notifications You must be signed in to change notification settings

meg-gupta/swift-syntax

This branch is 681 commits behind swiftlang/swift-syntax:main.

Folders and files

NameName
Last commit message
Last commit date
Apr 20, 2024
Jun 5, 2024
Mar 20, 2024
May 17, 2024
Jun 3, 2024
Jun 6, 2024
Mar 20, 2024
Apr 22, 2024
Jun 6, 2024
Apr 26, 2024
May 7, 2024
May 7, 2024
Feb 6, 2024
Feb 2, 2020
Sep 25, 2023
Sep 12, 2023
Mar 20, 2024
May 7, 2024
Feb 27, 2024
Feb 14, 2023
May 4, 2024
Jul 7, 2023
Aug 28, 2018
Mar 21, 2024
May 16, 2024
Sep 18, 2023
Apr 3, 2023
Nov 29, 2023

Repository files navigation

Swift Syntax

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.

Documentation

You can read SwiftSyntax’s documentation on swiftpackageindex.com.

A great way to interactively explore the SwiftSyntax tree of a source file is https://swift-ast-explorer.com, developed by @kishikawakatsumi.

A set of example usages of swift-syntax can be found in Examples.

Releases

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 your Package.swift.

dependencies: [
  .package(url: "https://github.com/apple/swift-syntax.git", from: "<#latest swift-syntax tag#>"),
],

To add swift-syntax as a dependency of your Xcode project, go to the Package Dependencies tab of your Xcode project, click the plus button and search for https://github.com/apple/swift-syntax.git.

Reporting Issues

If you should hit any issues while using SwiftSyntax, we appreciate bug reports on GitHub Issue.

Contributing

Start contributing to SwiftSyntax see this guide for more information.

Bazel

SwiftSyntax provides an experimental Bazel build configuration, maintained by Keith Smiley. To use it you can pull the source archive from the relevant release tag into your WORKSPACE and depend on the libraries you need from the BUILD.bazel file. Each library also has an associated Library_opt target (such as SwiftSyntax_opt) which forces SwiftSyntax to always build with optimizations enabled. This may help local runtime performance at the cost of debuggability, and initial build time. Please tag any issues related to the Bazel configuration with the label "Bazel".

License

Please see LICENSE for more information.

About

A set of Swift libraries for parsing, inspecting, generating, and transforming Swift source code.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 99.5%
  • Other 0.5%