From Wikipedia, the free encyclopedia
Tree-sitter
Original author(s)Max Brunsfeld
Initial release2018; 6 years ago (2018)
Stable release
0.21.0 / 21 February 2024
Repository
Written in Rust, C
Platform Cross-platform
Type Parser generator
License MIT License
Website tree-sitter.github.io/tree-sitter/

In computing, Tree-sitter is a parser generator and incremental parsing library.

Details

It is used to parse source code into concrete syntax trees usable in compilers, interpreters, text editors, and static analyzers. [1] [2] It is specialized for use in text editors, as it supports incremental parsing for updating parse trees while code is edited in real time, [3] and provides a built-in S-expression query system for analyzing code. [4]

Text editors which have official integrations with Tree-sitter include Atom, [5] GNU Emacs, [6] Neovim, [7] Lapce, [8] Zed, [9] and Helix. [10] Language bindings allow it to be used from programming languages including Go, Haskell, Java, JavaScript (with Node.js and WASM), Kotlin, Lua, OCaml, Perl, Python, Ruby, Rust, and Swift. Tree-sitter parsers have been written for these languages and many others. [11] GitHub uses Tree-sitter to support in-browser symbolic code navigation in Git repositories. [12]

Tree-sitter uses a GLR parser, a type of LR parser. [13] [14] [12]

Tree-sitter was originally developed by GitHub for use in the Atom text editor, where it was first released in 2018. [15] [5]

See also

References

  1. ^ "Introductory to Treesitter". Blog Teknologi Umum. Retrieved 2023-07-30.
  2. ^ Petersen, Mickey. "How to Get Started with Tree-Sitter". Mastering Emacs. Retrieved 2023-10-30.
  3. ^ "TreeSitter - the holy grail of parsing source code". symflower.com. Retrieved 2023-07-30.
  4. ^ Petersen, Mickey. "Tree Sitter and the Complications of Parsing Languages". Mastering Emacs. Retrieved 2023-07-30.
  5. ^ a b Brunsfeld, Max (2018-10-31). "Atom understands your code better than ever before". The GitHub Blog. Retrieved 2023-07-30.
  6. ^ "GNU Emacs NEWS -- history of user-visible changes".
  7. ^ "Treesitter - Neovim docs". neovim.io. Retrieved 2023-07-30.
  8. ^ "lapce/CHANGELOG.md at f4747fbd306a4b8fda6927e37593bf23f4a1584b · lapce/lapce". GitHub. Retrieved 2023-07-30.
  9. ^ "Zed - Code at the speed of thought". Zed. Retrieved 2023-07-30.
  10. ^ "Helix". helix-editor.com. Retrieved 2023-07-30.
  11. ^ "Tree-sitter|Introduction". tree-sitter.github.io. Retrieved 2023-07-30.
  12. ^ 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. S2CID  238412787.
  13. ^ Nadeem, Ayman (2020-08-04). "CodeGen: Semantic's improved language support system". The GitHub Blog. Retrieved 2023-07-30.
  14. ^ "Tree-sitter - a new parsing system for programming tools" by Max Brunsfeld, retrieved 2023-07-30. See 22:30 for Wagner influence and 29:27 for GLR implementation.
  15. ^ Krill, Paul (2018-03-16). "What's new in GitHub's Atom text editor". InfoWorld. Retrieved 2023-10-30.

External links

From Wikipedia, the free encyclopedia
Tree-sitter
Original author(s)Max Brunsfeld
Initial release2018; 6 years ago (2018)
Stable release
0.21.0 / 21 February 2024
Repository
Written in Rust, C
Platform Cross-platform
Type Parser generator
License MIT License
Website tree-sitter.github.io/tree-sitter/

In computing, Tree-sitter is a parser generator and incremental parsing library.

Details

It is used to parse source code into concrete syntax trees usable in compilers, interpreters, text editors, and static analyzers. [1] [2] It is specialized for use in text editors, as it supports incremental parsing for updating parse trees while code is edited in real time, [3] and provides a built-in S-expression query system for analyzing code. [4]

Text editors which have official integrations with Tree-sitter include Atom, [5] GNU Emacs, [6] Neovim, [7] Lapce, [8] Zed, [9] and Helix. [10] Language bindings allow it to be used from programming languages including Go, Haskell, Java, JavaScript (with Node.js and WASM), Kotlin, Lua, OCaml, Perl, Python, Ruby, Rust, and Swift. Tree-sitter parsers have been written for these languages and many others. [11] GitHub uses Tree-sitter to support in-browser symbolic code navigation in Git repositories. [12]

Tree-sitter uses a GLR parser, a type of LR parser. [13] [14] [12]

Tree-sitter was originally developed by GitHub for use in the Atom text editor, where it was first released in 2018. [15] [5]

See also

References

  1. ^ "Introductory to Treesitter". Blog Teknologi Umum. Retrieved 2023-07-30.
  2. ^ Petersen, Mickey. "How to Get Started with Tree-Sitter". Mastering Emacs. Retrieved 2023-10-30.
  3. ^ "TreeSitter - the holy grail of parsing source code". symflower.com. Retrieved 2023-07-30.
  4. ^ Petersen, Mickey. "Tree Sitter and the Complications of Parsing Languages". Mastering Emacs. Retrieved 2023-07-30.
  5. ^ a b Brunsfeld, Max (2018-10-31). "Atom understands your code better than ever before". The GitHub Blog. Retrieved 2023-07-30.
  6. ^ "GNU Emacs NEWS -- history of user-visible changes".
  7. ^ "Treesitter - Neovim docs". neovim.io. Retrieved 2023-07-30.
  8. ^ "lapce/CHANGELOG.md at f4747fbd306a4b8fda6927e37593bf23f4a1584b · lapce/lapce". GitHub. Retrieved 2023-07-30.
  9. ^ "Zed - Code at the speed of thought". Zed. Retrieved 2023-07-30.
  10. ^ "Helix". helix-editor.com. Retrieved 2023-07-30.
  11. ^ "Tree-sitter|Introduction". tree-sitter.github.io. Retrieved 2023-07-30.
  12. ^ 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. S2CID  238412787.
  13. ^ Nadeem, Ayman (2020-08-04). "CodeGen: Semantic's improved language support system". The GitHub Blog. Retrieved 2023-07-30.
  14. ^ "Tree-sitter - a new parsing system for programming tools" by Max Brunsfeld, retrieved 2023-07-30. See 22:30 for Wagner influence and 29:27 for GLR implementation.
  15. ^ Krill, Paul (2018-03-16). "What's new in GitHub's Atom text editor". InfoWorld. Retrieved 2023-10-30.

External links


Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook