Генератор инкрементальных парсеров и библиотека для построения конкретных синтаксических деревьев и их обновления при редактировании исходного кода.
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
Добавьте пакет 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 для работы с древовидным представлением исходного кода 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 обновляется ежедневно.
Похожие проекты
Полноценный парсер C99/C11 на чистом Python: строит AST исходного кода на C и не требует внешних зависимостей.
Утилита для Linux, которая переназначает клавиши, кнопки и сигналы мыши или джойстика, поддерживает макросы, X11 и Wayland.
Prettier — инструмент, который автоматически форматирует код на JavaScript, TypeScript, CSS, HTML, Markdown, YAML и других языках в едином стиле.
Компилятор JavaScript, который преобразует синтаксис нового поколения в код, работающий в целевых средах.
Библиотека JavaScript и CLI для преобразования исходного кода JS в блок-схемы SVG с уровнями абстракции, модификаторами блоков кода и темами оформления.