ソースファイルの編集に合わせて構文木を更新する、インクリメンタルパーサージェネレーター兼パーシングライブラリ。
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
swift-syntax パッケージを Package.swift の依存関係に追加します
dependencies: [ .package(url: "https://github.com/swiftlang/swift-syntax.git", from: "<#latest swift-syntax tag#>"), ] - 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 の数値は毎日更新されます。
関連プロジェクト
外部依存なしの純粋なPythonで書かれたC99/C11パーサー。CソースからASTを生成します。
A Linux tool for remapping keys, buttons, and mouse or joystick inputs to other inputs, with macros and X11/Wayland support.
JavaScript、TypeScript、CSS、HTML、Markdown、YAMLなどを、統一されたスタイルに整形し直す、独自の方針を持つコードフォーマッターです。
対象環境で動作するよう、次世代のJavaScript構文を変換するJavaScriptコンパイラー。
JSコードをSVGフローチャートに変換する、抽象化レベルやブロック修飾子、テーマに対応したライブラリとCLI。