Tree-sitter (генератор парсера)
Оригинальный автор(ы) | Макс Брунсфельд |
---|---|
Первоначальный выпуск | 2018 |
Стабильная версия | 0.21.0 / 21 февраля 2024 г. |
Репозиторий | |
Написано в | Ржавчина , С |
Платформа | Кросс-платформенный |
Тип | Генератор парсера |
Лицензия | МОЯ лицензия |
Веб-сайт | сидящий на дереве |
В вычислительной технике Tree-sitter — это генератор синтаксического анализатора инкрементального синтаксического анализа и библиотека .
Подробности
[ редактировать ]Он используется для анализа исходного кода в конкретные синтаксические деревья, которые можно использовать в компиляторах , интерпретаторах , текстовых редакторах и статических анализаторах . [1] [2] Он специализирован для использования в текстовых редакторах, поскольку поддерживает инкрементальный анализ для обновления деревьев синтаксического анализа, пока код редактируется в реальном времени. [3] и предоставляет встроенную систему запросов S-выражений для анализа кода. [4]
Текстовые редакторы, официально интегрированные с Tree-sitter, включают Atom , [5] ГНУ Эмакс , [6] Нео , [7] Лапце, [8] Зед , [9] и Хеликс. [10] Привязки языков позволяют использовать его из языков программирования, включая Go , Haskell , Java , JavaScript (с Node.js и WASM ), Kotlin , Lua , OCaml , Perl , Python , Ruby , Rust и Swift . Для этих и многих других языков были написаны парсеры Tree-sitter. [11] GitHub использует Tree-sitter для поддержки навигации по символьному коду в браузере в репозиториях Git . [12]
Tree-sitter использует парсер GLR , разновидность парсера LR . [13] [14] [12]
Tree-sitter изначально был разработан GitHub для использования в текстовом редакторе Atom , где он впервые был выпущен в 2018 году. [15] [5]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Введение в Treesitter» . Блог Технологии Умум . Проверено 30 июля 2023 г.
- ^ Петерсен, Микки. «Как начать работу с Tree-Sitter» . Освоение Emacs . Проверено 30 октября 2023 г.
- ^ «TreeSitter — Святой Грааль парсинга исходного кода» . symflower.com . Проверено 30 июля 2023 г.
- ^ Петерсен, Микки. «Tree Sitter и сложности синтаксического анализа языков» . Освоение Emacs . Проверено 30 июля 2023 г.
- ^ Jump up to: а б Брунсфельд, Макс (31 октября 2018 г.). «Atom понимает ваш код лучше, чем когда-либо прежде» . Блог GitHub . Проверено 30 июля 2023 г.
- ^ «НОВОСТИ GNU Emacs — история видимых пользователем изменений» .
- ^ "Treesitter - Документация Neovim" . neovim.io . Проверено 30 июля 2023 г.
- ^ "lapce/CHANGELOG.md по адресу f4747fbd306a4b8fda6927e37593bf23f4a1584b · lapce/lapce" . Гитхаб . Проверено 30 июля 2023 г.
- ^ «Зед — Кодируйте со скоростью мысли» . Зед . Проверено 30 июля 2023 г.
- ^ «Хеликс» . helix-editor.com . Проверено 30 июля 2023 г.
- ^ «Деревенка|Введение» . Tree-sitter.github.io . Проверено 30 июля 2023 г.
- ^ Jump up to: а б Клем, Тимоти; Томсон, Патрик (31 августа 2021 г.). «Статический анализ на GitHub: отчет об опыте» . Очередь . 19 (4): 42–67. дои : 10.1145/3487019.3487022 . ISSN 1542-7730 . S2CID 238412787 .
- ^ Надим, Айман (04 августа 2020 г.). «CodeGen: улучшенная система языковой поддержки Semantic» . Блог GitHub . Проверено 30 июля 2023 г.
- ^ «Tree-sitter — новая система синтаксического анализа инструментов программирования» Макса Брунсфельда , получено 30 июля 2023 г. См. 22:30 о влиянии Вагнера и 29:27 о реализации GLR.
- ^ Криль, Пол (16 марта 2018 г.). «Что нового в текстовом редакторе Atom на GitHub» . Инфомир . Проверено 30 октября 2023 г.