Repolode
swiftlang

swiftlang/swift-syntax

Набор библиотек Swift для разбора, анализа, генерации и преобразования исходного кода Swift в синтаксическое дерево, точно соответствующее исходному тексту.

Звёзды
3,712
Форки
562
Открытые issues
180
Последний коммит
9 часов назад

Что это?

swift-syntax — набор библиотек Swift для работы с древовидным представлением исходного кода Swift, точно соответствующим исходному тексту и называемым деревом SwiftSyntax. Инструменты, которым нужно читать или переписывать код Swift, могут использовать это дерево вместо обработки обычного текста.

Дерево SwiftSyntax служит основой системы макросов Swift: узлы раскрытия макросов представлены узлами SwiftSyntax, а макрос генерирует дерево SwiftSyntax, которое вставляется в исходный файл. Пакет распространяется через Swift Package Manager и Xcode, а также предлагает экспериментальную конфигурацию сборки Bazel.

Релизы синхронизированы с версиями языка Swift и инструментов: например, основная версия 509 соответствует Swift 5.9. В репозитории есть примеры использования, а исследовать дерево можно интерактивно на сайте сообщества для просмотра AST.

Ключевые возможности

  • 01Разбирает исходный код Swift и преобразует его в синтаксическое дерево, точно соответствующее исходному тексту.
  • 02Предоставляет библиотеки для анализа дерева и обхода его узлов.
  • 03Позволяет создавать и изменять узлы синтаксического дерева для генерации кода Swift.
  • 04Служит основой для раскрытия макросов Swift.
  • 05Устанавливается через Swift 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 для работы с древовидным представлением исходного кода Swift, точно соответствующим исходному тексту и называемым деревом SwiftSyntax. Инструменты, которым нужно читать или переписывать код Swift, могут использовать это дерево вместо обработки обычного текста.
swift-syntax можно использовать бесплатно? Какая у него лицензия?
swift-syntax распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
swift-syntax всё ещё поддерживается?
Активно поддерживается. Последний коммит в swift-syntax — 21 окт. 2026 г..
Для чего можно использовать 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 проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты