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