The Wayback Machine - http://web.archive.org/web/20230203014424/https://github.com/apple/swift-syntax/
Skip to content

apple/swift-syntax

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

SwiftSyntax

SwiftSyntax is a set of Swift libraries for parsing, inspecting, generating, and transforming Swift source code.

Note: SwiftSyntax is still in development, and its API is not guaranteed to be stable. It is subject to change without warning.

Adding SwiftSyntax as a Dependency

Trunk Development (main)

The mainline branch of SwiftSyntax tracks the latest developments. It is not an official release, and is subject to rapid changes in APIs and behaviors. To use it, add this repository to the Package.swift manifest of your project:

// 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"),
    ]),
  ]
)

Mainline SwiftSyntax also includes

  • SwiftParser for natively parsing source code
  • SwiftOperators for folding SwiftSyntax trees containing operators
  • SwiftSyntaxBuilder for generating Swift code with a result builder-style interface

Releases

Releases of SwiftSyntax are aligned with corresponding language and tooling releases and are stable. To use them, add this repository to the Package.swift manifest of your project:

// 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"),
    ]),
  ]
)

Replace <#Specify Release tag#> by the version of SwiftSyntax that you want to use (see the following table for mapping details).

Xcode Release Swift Release Tag SwiftSyntax Release Tag
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

Documentation

SwiftSyntax uses DocC bundles for its documentation. To view rendered documentation in Xcode, open the SwiftSyntax package and select

Product > Build Documentation

Associated articles are written in markdown, and can be viewed in a browser, text editor, or IDE.

Contributing

Start contributing to SwiftSyntax see this guide for more information.

Reporting Issues

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

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

Packages

No packages published

Languages