Spiiin's blog

Tree sitter

Tree-sitter — библиотека на rust, в которой можно с помощью javascript описать грамматику любого языка. Она скомпилится в парсер на C и привязки к ещё пачке языков.

Кроме большого количества парсеров для разных языков имеет lisp-like язык запросов к AST-дереву.

С ним можно поиграться онлайн — подсвечивает в реальном времени блоки кода, соотвествующие описанным ast-запросам.

Может использоваться для очень умной подсветки (включая файлы на нескольких языках, вроде встроенных языков), умного грепания кода (для рефактора, составления Table of Contents кода на github, структурного редактирования или копилотирования с ИИ).

Вообще выглядит как будто им можно попробовать генерировать байндинги с сишного кода вместо clang-а (или с других форматов описания)