Tree-sitter es un generador de analizadores sintácticos y una biblioteca de análisis sintáctico incremental gratuitos y de código abierto . Se utiliza para analizar el código fuente y convertirlo en árboles sintácticos concretos utilizables en compiladores , intérpretes , editores de texto y analizadores estáticos . [ 2 ] [ 3 ] Está especializado para su uso en editores de texto, ya que admite el análisis sintáctico incremental para actualizar los árboles de análisis mientras se edita el código en tiempo real, [ 4 ] y proporciona un sistema de consulta de expresiones S integrado para analizar el código. [ 5 ]
Los editores de texto que tienen integraciones oficiales con Tree-sitter incluyen GNU Emacs , [ 6 ] Neovim , [ 7 ] Lapce, [ 8 ] Zed , [ 9 ] Helix, [ 10 ] y Atom . [ 11 ] Las vinculaciones de lenguaje permiten usarlo desde lenguajes de programación como Go , Haskell , Java , JavaScript (con Node.js y WASM ), Kotlin , Lua , OCaml , Perl , Python , Ruby , Rust , Swift y Zig . Se han escrito analizadores sintácticos de Tree-sitter para estos lenguajes y muchos otros. [ 12 ] GitHub usa Tree-sitter para admitir la navegación simbólica de código en el navegador en repositorios Git . [ 13 ]
Tree-sitter utiliza un analizador GLR , un tipo de analizador LR . [ 14 ] [ 15 ] [ 13 ]
Tree-sitter fue desarrollado originalmente por GitHub para su uso en el editor de texto Atom , donde se lanzó por primera vez en 2018. [ 16 ] [ 11 ]
Véase también
Referencias
- ↑ "Versión 0.26.11" . 12 de julio de 2026. Consultado el 13 de julio de 2026 .
- ^ "Introducción a Treesitter" . Blog Tecnología Umum . Consultado el 30 de julio de 2023 .
- ↑ Petersen, Mickey. "Cómo empezar con Tree-Sitter" . Mastering Emacs . Consultado el 30 de octubre de 2023 .
- ↑ "TreeSitter: el santo grial del análisis de código fuente" . symflower.com . Consultado el 30 de julio de 2023 .
- ↑ Petersen, Mickey. "Tree Sitter y las complicaciones del análisis sintáctico de lenguajes" . Mastering Emacs . Consultado el 30 de julio de 2023 .
- ↑ "GNU Emacs NEWS -- historial de cambios visibles para el usuario" .
- ↑ "Treesitter - Documentación de Neovim" . neovim.io . Consultado el 30 de julio de 2023 .
- ↑ "lapce/CHANGELOG.md en f4747fbd306a4b8fda6927e37593bf23f4a1584b · lapce/lapce" . GitHub . Recuperado el 30-07-2023 .
- ↑ "Zed - Código a la velocidad del pensamiento" . Zed . Consultado el 30 de julio de 2023 .
- ↑ "Helix" . helix-editor.com . Consultado el 30 de julio de 2023 .
- 1 2 Brunsfeld, Max (31-10-2018). "Atom entiende tu código mejor que nunca" . El blog de GitHub . Recuperado el 30-07-2023 .
- ↑ "Tree-sitter | Introducción" . tree-sitter.github.io . Consultado el 30 de julio de 2023 .
- 1 2 Clem, Timothy; Thomson, Patrick (31 de agosto de 2021). "Análisis estático en GitHub: un informe de experiencia" . ACM Queue . 19 (4): 42– 67. doi : 10.1145/3487019.3487022 . ISSN 1542-7730 . S2CID 238412787 .
- ↑ Nadeem, Ayman (2020-08-04). "CodeGen: Sistema de soporte de lenguaje mejorado de Semantic" . El blog de GitHub . Recuperado el 30 de julio de 2023 .
- ↑ "Tree-sitter: un nuevo sistema de análisis sintáctico para herramientas de programación" por Max Brunsfeld , 14 de octubre de 2018 , consultado el 30 de julio de 2023.Véase el minuto 22:30 para la influencia de Wagner y el minuto 29:27 para la implementación de GLR.
- ↑ Krill, Paul (16 de marzo de 2018). "Novedades del editor de texto Atom de GitHub" . InfoWorld . Consultado el 30 de octubre de 2023 .
Enlaces externos
- Sitio web oficial
- Tree-sitter en GitHub
- Herramientas de compilación
- generadores de analizadores sintácticos