Earlier quoted context omitted.
Great project! I'm curious about the set of available parser annotations. I went through the list but I didn't see anything which allows for optional elements. One example would be dangling commas. Did I miss it or are there plans to support such constructs?
We support optional elements by wrapping them in `Option ` (other annotations are applied to the contents of the option)! So you can define struct ... { ... #[rust_sitter::leaf(text = ",") _dangling_comma: Option }
Rust-sitter: Define your entire tree-sitter grammar in Rust code
11–16 of 16 posts
Re: Rust-sitter: Define your entire tree-sitter grammar in Rust code
#12Hi! Rust Sitter creator here, happy to answer any questions about the project and where it's going!
Re: Rust-sitter: Define your entire tree-sitter grammar in Rust code
#13Re: Rust-sitter: Define your entire tree-sitter grammar in Rust code
#14I'm super excited about the ability to get good quality bindings to tree-sitter! Tree-sitter is a very cool project but it needs a little love in a few regards. A better WebAssembly story, good bindings, and the ability to construct trees synthetically (to facilitate code generation) would make it a really remarkable tool. As for rust-sitter, it's a very promising direction. The error story needs a little work. I fou…
Re: Rust-sitter: Define your entire tree-sitter grammar in Rust code
#15does it support callbacks to handle semantic space languages like haskell and python?
Re: Rust-sitter: Define your entire tree-sitter grammar in Rust code
#16Earlier quoted context omitted.
Yes! Right now, the main benefits are the ability to write grammar definitions that are quite close to the ideal AST structure (made possible by Tree Sitter's grammar format), and being able to embed the parser in many different applications (including WASM via https://github.com/shadaj/tree-sitter-c2rust ). Rust Sitter also gives quite nice error diagnostics with spans thanks to Tree Sitter's recovery logic. Fallibl…
I would like to delve into the compatibility with tree-sitter, since in other features tree-sitter being under the hood is mostly an implementation detail: If I were to write my parser using rust-sitter, would I be able to still generate the final standalone tree-sitter parser as a `.so`? That way I could integrate with tools supporting tree-sitter parsers (for instance https://github.com/nvim-treesitter/nvim-treesit…