JSPM

  • Created
  • Published
  • Downloads 239992
  • Score
    100M100P100Q185910F
  • License MIT

Rust grammar for tree-sitter

Package Exports

  • tree-sitter-rust
  • tree-sitter-rust/bindings/node/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tree-sitter-rust) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

tree-sitter-rust

Build/test

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.
  • Syntax Index - This appendix from The Book contains examples of all syntax in Rust cross-referenced with the section of The Book that describes it.