Jump to content

Tree-sitter (генератор парсера)

Сидящий на дереве
Оригинальный автор(ы) Макс Брунсфельд
Первоначальный выпуск 2018 ; 6 лет назад ( 2018 )
Стабильная версия
0.21.0 / 21 февраля 2024 г.
Репозиторий
Написано в Ржавчина , С
Платформа Кросс-платформенный
Тип Генератор парсера
Лицензия МОЯ лицензия
Веб-сайт сидящий на дереве .github .что / сидящий на дереве /

В вычислительной технике 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]

См. также

[ редактировать ]
  1. ^ «Введение в Treesitter» . Блог Технологии Умум . Проверено 30 июля 2023 г.
  2. ^ Петерсен, Микки. «Как начать работу с Tree-Sitter» . Освоение Emacs . Проверено 30 октября 2023 г.
  3. ^ «TreeSitter — Святой Грааль парсинга исходного кода» . symflower.com . Проверено 30 июля 2023 г.
  4. ^ Петерсен, Микки. «Tree Sitter и сложности синтаксического анализа языков» . Освоение Emacs . Проверено 30 июля 2023 г.
  5. ^ Jump up to: а б Брунсфельд, Макс (31 октября 2018 г.). «Atom понимает ваш код лучше, чем когда-либо прежде» . Блог GitHub . Проверено 30 июля 2023 г.
  6. ^ «НОВОСТИ GNU Emacs — история видимых пользователем изменений» .
  7. ^ "Treesitter - Документация Neovim" . neovim.io . Проверено 30 июля 2023 г.
  8. ^ "lapce/CHANGELOG.md по адресу f4747fbd306a4b8fda6927e37593bf23f4a1584b · lapce/lapce" . Гитхаб . Проверено 30 июля 2023 г.
  9. ^ «Зед — Кодируйте со скоростью мысли» . Зед . Проверено 30 июля 2023 г.
  10. ^ «Хеликс» . helix-editor.com . Проверено 30 июля 2023 г.
  11. ^ «Деревенка|Введение» . Tree-sitter.github.io . Проверено 30 июля 2023 г.
  12. ^ Jump up to: а б Клем, Тимоти; Томсон, Патрик (31 августа 2021 г.). «Статический анализ на GitHub: отчет об опыте» . Очередь . 19 (4): 42–67. дои : 10.1145/3487019.3487022 . ISSN   1542-7730 . S2CID   238412787 .
  13. ^ Надим, Айман (04 августа 2020 г.). «CodeGen: улучшенная система языковой поддержки Semantic» . Блог GitHub . Проверено 30 июля 2023 г.
  14. ^ «Tree-sitter — новая система синтаксического анализа инструментов программирования» Макса Брунсфельда , получено 30 июля 2023 г. См. 22:30 о влиянии Вагнера и 29:27 о реализации GLR.
  15. ^ Криль, Пол (16 марта 2018 г.). «Что нового в текстовом редакторе Atom на GitHub» . Инфомир . Проверено 30 октября 2023 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ebb5b38904f9985f125dbdc56172ca0b__1716748800
URL1:https://arc.ask3.ru/arc/aa/eb/0b/ebb5b38904f9985f125dbdc56172ca0b.html
Заголовок, (Title) документа по адресу, URL1:
Tree-sitter (parser generator) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)