Tree-sitter
Tree-sitter は、パーサー生成ツールであり、インクリメンタル解析ライブラリです。 ソース ファイルの具体的な構文ツリーを構築し、ソース ファイルの編集時に構文ツリーを効率的に更新できます。 ツリーシッターは次のことを目指しています。
汎用性 プログラミング言語を解析するのに十分な
速さ テキスト エディタでのすべてのキーストロークを解析するのに十分な
堅牢性 構文エラーが存在する場合でも有用な結果を提供するのに十分な
依存関係がない ため、ランタイム ライブラリ (ピュア C で記述) を任意のアプリケーションに組み込むことができます。
tree-sitterは文法からパーサ(構文解析器)を自動生成するパーサジェネレータツールであり、生成されたパーサで構文解析を行うライブラリでもあります。特徴として、一般的なパーサライブラリでは抽象構文木(AST)を構築するのに対し、tree-sitterで生成されたパーサは具象構文木(CST)を構築するという点があげられます。CSTについてはインターンの記事で取り上げています。 構築されるCSTにはコメントトークンも含まれてるため、シンタックスハイライトに用いられているようです。
参考:
Vimのすゝめ改 - Tree-sitter について | 株式会社創夢 — SOUM/misc
EmacsでTree-sitterを利用してシンタックスハイライトできるようにする
Tree-sitterのパーサを使うことで高速かつ正確なシンタックスハイライトができるらしい。
treesit-install-language-grammar
確認用
Q. Tree-sitter
参考
2021/07/21
2021/08/12
2022/12/15
関連