Repolode
swiftlang

swiftlang/swift-syntax

Swiftソースコードをソース位置に忠実な構文木として解析・検査・生成・変換するためのSwiftライブラリ群。

スター
3,712
フォーク
562
未解決の Issue
180
最終コミット
8 時間前

これは何?

swift-syntaxは、Swiftソースコードを「SwiftSyntaxツリー」と呼ばれる、ソース位置に忠実なツリー表現として扱うためのSwiftライブラリ群です。Swiftコードを読み取ったり書き換えたりするツールは、生のテキストを直接処理する代わりに、このツリーを基盤として利用できます。

SwiftSyntaxツリーはSwiftのマクロシステムの基盤です。マクロ展開のノードはSwiftSyntaxノードとして表現され、マクロはSwiftSyntaxツリーを生成してソースファイルに挿入します。このパッケージはSwift Package ManagerとXcodeで配布されており、実験的なBazelビルド設定も用意されています。

リリースはSwift言語およびツールのバージョンに対応しており、たとえばメジャーバージョン509はSwift 5.9に相当します。リポジトリには使用例が用意されており、コミュニティが運営するASTエクスプローラーのWebサイトでツリーを対話的に確認できます。

主な機能

  • 01Swiftソースを、ソース位置に忠実な構文木に解析します。
  • 02ツリーを検査・走査するためのライブラリを提供します。
  • 03Swiftコードを生成するための構文ノードの構築・変更をサポートします。
  • 04Swiftのマクロ展開の基盤として機能します。
  • 05Swift Package Manager、Xcode、またはBazelから導入できます。

ユースケース

  • コンパイル時にコードを生成するSwiftマクロの作成。
  • Swiftコード向けのリンター、フォーマッター、リファクタリングツールの開発。
  • Swiftソースファイルの自動書き換えやコード生成。

クイックスタート

  1. 1

    swift-syntax パッケージを Package.swift の依存関係に追加します

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

    または、Xcode プロジェクトの「Package Dependencies」タブから依存関係として追加します

使う前に知っておきたいこと

  • リリースは Swift の言語バージョンとツールチェーンのバージョンに紐づいているため、お使いの Swift のリリースに合ったバージョンを選ぶ必要があります。
  • Bazel のビルド設定は試験的なものです。

トピック

よくある質問

swift-syntax とは?
Swiftソースコードをソース位置に忠実な構文木として解析・検査・生成・変換するためのSwiftライブラリ群。 swift-syntaxは、Swiftソースコードを「SwiftSyntaxツリー」と呼ばれる、ソース位置に忠実なツリー表現として扱うためのSwiftライブラリ群です。Swiftコードを読み取ったり書き換えたりするツールは、生のテキストを直接処理する代わりに、このツリーを基盤として利用できます。
swift-syntax は無料で使えますか?ライセンスは?
swift-syntax は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
swift-syntax は今もメンテナンスされていますか?
活発にメンテナンス中。swift-syntax の最終コミットは 2026年10月21日 です。
swift-syntax は何に使えますか?
コンパイル時にコードを生成するSwiftマクロの作成。 Swiftコード向けのリンター、フォーマッター、リファクタリングツールの開発。 Swiftソースファイルの自動書き換えやコード生成。
swift-syntax のインストール方法は?
swift-syntax パッケージを Package.swift の依存関係に追加します: dependencies: [ .package(url: "https://github.com/swiftlang/swift-syntax.git", from: "<#latest swift-syntax tag#>"), ] または、Xcode プロジェクトの「Package Dependencies」タブから依存関係として追加します
swift-syntax はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/swiftlang/swift-syntax

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト