Skip to content

itsnauman/tree-sitter-rust

 
 

Repository files navigation

tree-sitter-rust

CI Discord Rust Crate Node Package

Rust grammar for tree-sitter

Features

  • Speed — When initially parsing a file, tree-sitter-rust takes around twice as long as Rustc's hand-coded parser.

    $ wc -l examples/ast.rs
      2157 examples/ast.rs
    
    $ rustc -Z ast-json-noexpand -Z time-passes examples/ast.rs | head -n1
      time: 0.007    parsing # (7 ms)
    
    $ tree-sitter parse examples/ast.rs --quiet --time
      examples/ast.rs    16 ms

    But if you edit the file after parsing it, this parser can generally update the previous existing syntax tree to reflect your edit in less than a millisecond, thanks to Tree-sitter's incremental parsing system.

References

  • The Rust Grammar Reference — The grammar reference provides chapters that formally define the language grammar.
  • The Rust Reference — While Rust does not have a specification, the reference tries to describe its working in detail. It tends to be out of date.
  • Keywords and Operators and Symbols.
  • Archive of the outdated Syntax Index that contains examples of all syntax in Rust cross-referenced with the section of The Book that describes it.

About

Rust grammar for tree-sitter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 75.1%
  • Scheme 10.2%
  • Rust 6.6%
  • Shell 2.7%
  • Swift 2.4%
  • C++ 1.8%
  • Other 1.2%