tree-sitter
JavaScriptの内部DSLとして文法定義をする
生成されるパーサはC言語実装
いろんな言語のバインディングがある
パーサはCだが、それを各言語から扱う感じになる
付随して便利機能がいくつか
S式ライクなクエリ言語
シンタックスハイライト
nvimの設定とかしてると見る
エディタにどこまでの情報をどう伝えてるのか知らないのでどういう意味かはあんまりわかってない
テキストエディタの体験をこれで変えます的なことを言ってる
GitHubとAtom Editorでやってますよと
エラー回復が賢い?のと、コードの一部が変更されたときにすぐ木も作れるところが良いってこと?
シンタックスハイライトはtreeベース以外だと正規表現しかない
ドキュメントの気になったところを読んでいく
Nodeと文法定義のシンボル(終端・非終端記号)が対応していると解析しやすいぜって言ってる
当たり前に思えるかもしれないけど、Yaccはじめ他の文脈自由文法の定義の仕方とは違うんだよ とのこと
wip