Um gerador de parsers incremental e uma biblioteca de parsing que cria árvores de sintaxe concreta e as atualiza conforme os arquivos-fonte são editados.
swiftlang/swift-syntax
Conjunto de bibliotecas Swift para analisar, inspecionar, gerar e transformar código-fonte Swift como uma árvore de sintaxe fiel ao código original.
- Estrelas
- 3,712
- Forks
- 562
- Issues abertas
- 180
- Último commit
- há 8 horas
O que é?
swift-syntax é um conjunto de bibliotecas Swift que trabalham com uma representação em árvore do código-fonte Swift fiel ao código original, chamada de árvore SwiftSyntax. Ferramentas que precisam ler ou reescrever código Swift podem se basear nessa árvore, em vez de manipular texto bruto.
A árvore SwiftSyntax é a base do sistema de macros do Swift: os nós de expansão de macros são representados como nós SwiftSyntax, e uma macro gera uma árvore SwiftSyntax que é inserida no arquivo-fonte. O pacote é distribuído pelo Swift Package Manager e pelo Xcode, e também oferece uma configuração experimental de build para Bazel.
Os lançamentos acompanham as versões da linguagem Swift e de suas ferramentas; por isso, uma versão principal como 509 corresponde ao Swift 5.9. O repositório inclui exemplos de uso, e é possível explorar a árvore de forma interativa em um site comunitário de AST explorer.
Recursos principais
- 01Analisa código-fonte Swift e o converte em uma árvore de sintaxe fiel ao código original.
- 02Oferece bibliotecas para inspecionar e percorrer a árvore.
- 03Permite criar e modificar nós de sintaxe para gerar código Swift.
- 04Serve de base para a expansão de macros do Swift.
- 05Pode ser instalado pelo Swift Package Manager, pelo Xcode ou pelo Bazel.
Casos de uso
- Criar macros Swift que geram código em tempo de compilação.
- Desenvolver linters, formatadores ou ferramentas de refatoração para código Swift.
- Reescrever automaticamente ou gerar arquivos de código-fonte Swift.
Início rápido
- 1
Adicione o pacote swift-syntax às dependências do Package.swift
dependencies: [ .package(url: "https://github.com/swiftlang/swift-syntax.git", from: "<#latest swift-syntax tag#>"), ] - 2
Ou adicione-o como dependência de um projeto do Xcode pela aba Package Dependencies
Antes de usar
- As versões estão vinculadas às versões da linguagem Swift e da toolchain, então você deve escolher uma que corresponda à sua versão do Swift.
- A configuração de build do Bazel é experimental.
Tópicos
Perguntas frequentes
- O que é swift-syntax?
- Conjunto de bibliotecas Swift para analisar, inspecionar, gerar e transformar código-fonte Swift como uma árvore de sintaxe fiel ao código original. swift-syntax é um conjunto de bibliotecas Swift que trabalham com uma representação em árvore do código-fonte Swift fiel ao código original, chamada de árvore SwiftSyntax. Ferramentas que precisam ler ou reescrever código Swift podem se basear nessa árvore, em vez de manipular texto bruto.
- swift-syntax é gratuito? Qual é a licença?
- swift-syntax é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- swift-syntax ainda é mantido?
- Manutenção ativa. O último commit de swift-syntax foi em 21 de out. de 2026.
- Para que posso usar swift-syntax?
- Criar macros Swift que geram código em tempo de compilação. Desenvolver linters, formatadores ou ferramentas de refatoração para código Swift. Reescrever automaticamente ou gerar arquivos de código-fonte Swift.
- Como instalar swift-syntax?
- Adicione o pacote swift-syntax às dependências do Package.swift: dependencies: [ .package(url: "https://github.com/swiftlang/swift-syntax.git", from: "<#latest swift-syntax tag#>"), ] Ou adicione-o como dependência de um projeto do Xcode pela aba Package Dependencies
- Onde consigo swift-syntax?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/swiftlang/swift-syntax
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um parser completo de C99/C11 escrito em Python puro, que gera uma AST a partir do código-fonte C sem dependências externas.
A Linux tool for remapping keys, buttons, and mouse or joystick inputs to other inputs, with macros and X11/Wayland support.
Um formatador de código opinativo que reimprime JavaScript, TypeScript, CSS, HTML, Markdown, YAML e outras linguagens em um estilo consistente.
Um compilador de JavaScript que transforma a sintaxe das próximas versões da linguagem em código compatível com os ambientes de destino.
Biblioteca JavaScript e CLI que converte código JS em fluxogramas SVG, com níveis de abstração, modificadores de blocos de código e temas.