[obsidian] vault backup: 2025-09-17 10:36:49[

This commit is contained in:
2025-09-17 10:36:49 +09:00
parent f44611faf5
commit 3567f1f224
4 changed files with 47 additions and 0 deletions

29
content/Tree-Sitter.md Normal file
View File

@@ -0,0 +1,29 @@
---
date: 2025-09-17 09:53
---
#programming-language
[Introduction - Tree-sitter](https://tree-sitter.github.io/tree-sitter/)
モダンな[[パーサジェネレータ]]。
[[Rust]]で実装されているが、Cライブラリを経由して様々な言語のバインディングが用意されている。
ただ、言語の文法定義は[[JavaScript]]で行うなどちょっと複雑な作りをしている。
インクリメンタルな構文解析に対応していることが特徴。
---
### 実際に使おうとしてみての感想
カスタムの構文解析エラーメッセージの定義とかが難しい。これは長年問題になっているみたい
[Helpful parser error messages · Issue #255 · tree-sitter/tree-sitter · GitHub](https://github.com/tree-sitter/tree-sitter/issues/255)
---
Rustのバインディングの問題。
`kind_id`など多くのAPIがu16でのIDを返す