Tree-sitter
パーサジェネレータ・増分解析ライブラリ
Tree-sitterはパーサジェネレータ、増分解析ライブラリである。
![]() | |
作者 | Max Brunsfeld |
---|---|
初版 | 2018年 |
最新版 | |
リポジトリ | |
プログラミング 言語 | Rust, C言語 |
プラットフォーム | クロスプラットフォーム |
種別 | パーサジェネレータ |
ライセンス | MIT License |
公式サイト |
tree-sitter |
概要
編集Tree-sitterは、ソースコードをコンパイラ、インタプリタ、テキストエディタ、静的アナライザで使用できる構文木に解析するために使用される[2][3]。コードをリアルタイムで編集しながら解析木を更新するための増分解析をサポートしており、コードを解析するための組み込みのS式クエリシステムを提供するため[4]、テキストエディタでの使用に特化している[5]。
Tree-sitterと公式に統合されているテキストエディタには、Atom[6]、GNU Emacs[7]、Neovim[8]、Lapce[9]、Zed[10]、Helix[11]などがある。言語バインディングにより、Go、Haskell、Java、JavaScript(Node.jsおよびWASMを使用)、Kotlin、Lua、OCaml、Perl、Python、Ruby、Rust、Swiftなどのプログラミング言語で使用できる。Tree-sitterパーサは、これらの言語やその他の多くの言語用に開発されている[12]。GitHubは、Gitリポジトリでのブラウザ内シンボリックコードナビゲーションをサポートするためにTree-sitterを使用している[13]。
Tree-sitterは、LR法の一種であるGLR法を使用している[14][15][13]。
Tree-sitterはもともとGitHubによってAtomで使用するために開発され、2018年に初めてリリースされた[16][6]。
関連項目
編集脚注
編集- ^ "Release 0.24.7"; 閲覧日: 2025年1月30日; 出版日: 2025年1月12日.
- ^ “Introductory to Treesitter”. Blog Teknologi Umum. 2023年7月30日閲覧。
- ^ Petersen, Mickey. “How to Get Started with Tree-Sitter”. Mastering Emacs. 2023年10月30日閲覧。
- ^ Petersen, Mickey. “Tree Sitter and the Complications of Parsing Languages” (英語). Mastering Emacs. 2023年7月30日閲覧。
- ^ “TreeSitter - the holy grail of parsing source code” (英語). symflower.com. 2023年7月30日閲覧。
- ^ a b Brunsfeld, Max (2018年10月31日). “Atom understands your code better than ever before” (英語). The GitHub Blog. 2023年7月30日閲覧。
- ^ “GNU Emacs NEWS -- history of user-visible changes.”. 2025年2月20日閲覧。
- ^ “Treesitter - Neovim docs”. neovim.io. 2023年7月30日閲覧。
- ^ “lapce/CHANGELOG.md at f4747fbd306a4b8fda6927e37593bf23f4a1584b · lapce/lapce” (英語). GitHub. 2023年7月30日閲覧。
- ^ “Zed - Code at the speed of thought”. Zed. 2023年7月30日閲覧。
- ^ “Helix”. helix-editor.com. 2023年7月30日閲覧。
- ^ “Tree-sitter|Introduction”. tree-sitter.github.io. 2023年7月30日閲覧。
- ^ a b Clem, Timothy; Thomson, Patrick (2021-08-31). “Static Analysis at GitHub: An experience report” (英語). Queue 19 (4): 42–67. doi:10.1145/3487019.3487022. ISSN 1542-7730.
- ^ Nadeem, Ayman (2020年8月4日). “CodeGen: Semantic's improved language support system” (英語). The GitHub Blog. 2023年7月30日閲覧。
- ^ (英語) "Tree-sitter - a new parsing system for programming tools" by Max Brunsfeld, (14 October 2018) 2023年7月30日閲覧。. See 22:30 for Wagner influence and 29:27 for GLR implementation.
- ^ Krill, Paul (2018年3月16日). “What's new in GitHub's Atom text editor”. InfoWorld. 2023年10月30日閲覧。