Generador incremental de parsers y biblioteca de análisis sintáctico que crea árboles de sintaxis concretos y los actualiza a medida que se editan los archivos fuente.
swiftlang/swift-syntax
Conjunto de bibliotecas Swift para analizar, inspeccionar, generar y transformar código fuente Swift como un árbol de sintaxis fiel al código original.
- Estrellas
- 3,712
- Forks
- 562
- Issues abiertos
- 180
- Último commit
- hace 8 horas
¿Qué es?
swift-syntax es un conjunto de bibliotecas Swift que trabajan sobre una representación en forma de árbol, fiel al código fuente Swift, llamada árbol SwiftSyntax. Las herramientas que necesitan leer o reescribir código Swift pueden basarse en este árbol en lugar de procesar texto sin formato.
El árbol SwiftSyntax es la base del sistema de macros de Swift: los nodos de expansión de macros se representan como nodos SwiftSyntax, y una macro genera un árbol SwiftSyntax que se inserta en el archivo fuente. El paquete se distribuye a través de Swift Package Manager y Xcode, y también ofrece una configuración experimental de compilación con Bazel.
Las versiones se alinean con las versiones del lenguaje y las herramientas de Swift, por lo que una versión principal como la 509 corresponde a Swift 5.9. El repositorio incluye ejemplos de uso, y es posible explorar el árbol de forma interactiva en un sitio web comunitario para explorar AST.
Funciones clave
- 01Analiza código fuente Swift y lo convierte en un árbol de sintaxis fiel al código original.
- 02Ofrece bibliotecas para inspeccionar y recorrer el árbol.
- 03Permite construir y modificar nodos de sintaxis para generar código Swift.
- 04Sirve de base para la expansión de macros de Swift.
- 05Se puede instalar mediante Swift Package Manager, Xcode o Bazel.
Casos de uso
- Escribir macros Swift que generen código en tiempo de compilación.
- Crear linters, formateadores o herramientas de refactorización para código Swift.
- Reescribir automáticamente archivos fuente Swift o generar código en ellos.
Inicio rápido
- 1
Añade el paquete swift-syntax a las dependencias de Package.swift
dependencies: [ .package(url: "https://github.com/swiftlang/swift-syntax.git", from: "<#latest swift-syntax tag#>"), ] - 2
O añádelo como dependencia de un proyecto de Xcode desde la pestaña Package Dependencies
Antes de usarlo
- Las versiones están vinculadas a las versiones del lenguaje Swift y de la cadena de herramientas, así que debes elegir una que coincida con tu versión de Swift.
- La configuración de compilación de Bazel es experimental.
Temas
Preguntas frecuentes
- ¿Qué es swift-syntax?
- Conjunto de bibliotecas Swift para analizar, inspeccionar, generar y transformar código fuente Swift como un árbol de sintaxis fiel al código original. swift-syntax es un conjunto de bibliotecas Swift que trabajan sobre una representación en forma de árbol, fiel al código fuente Swift, llamada árbol SwiftSyntax. Las herramientas que necesitan leer o reescribir código Swift pueden basarse en este árbol en lugar de procesar texto sin formato.
- ¿swift-syntax es gratuito? ¿Qué licencia tiene?
- swift-syntax es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿swift-syntax sigue mantenido?
- Mantenimiento activo. El último commit de swift-syntax fue el 21 oct 2026.
- ¿Para qué puedo usar swift-syntax?
- Escribir macros Swift que generen código en tiempo de compilación. Crear linters, formateadores o herramientas de refactorización para código Swift. Reescribir automáticamente archivos fuente Swift o generar código en ellos.
- ¿Cómo se instala swift-syntax?
- Añade el paquete swift-syntax a las dependencias de Package.swift: dependencies: [ .package(url: "https://github.com/swiftlang/swift-syntax.git", from: "<#latest swift-syntax tag#>"), ] O añádelo como dependencia de un proyecto de Xcode desde la pestaña Package Dependencies
- ¿Dónde consigo swift-syntax?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/swiftlang/swift-syntax
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Parser completo de C99/C11 escrito en Python puro, que genera un AST a partir de código fuente C sin dependencias externas.
A Linux tool for remapping keys, buttons, and mouse or joystick inputs to other inputs, with macros and X11/Wayland support.
Un formateador de código con criterios propios que vuelve a imprimir JavaScript, TypeScript, CSS, HTML, Markdown, YAML y más con un estilo uniforme.
Un compilador de JavaScript que transforma la sintaxis de nueva generación en código compatible con los entornos de destino.
Librería de JavaScript y CLI que convierte código JS en diagramas de flujo SVG, con niveles de abstracción, modificadores de bloques de código y temas.