Closed fictorial closed 8 months ago
Can you provide a minimal regex/snippet that causes the error?
Oh, this is the JS from the grammar itself, did it start failing when you updated the TS version?
Thanks for getting back to me so quickly. It's happening with Dart and R as well. This is the first I've used TS so there has not been an upgrade.
$ cd /tmp
$ git clone https://github.com/elixir-lang/tree-sitter-elixir --depth=1
Cloning into 'tree-sitter-elixir'...
remote: Enumerating objects: 100, done.
remote: Counting objects: 100% (100/100), done.
remote: Compressing objects: 100% (92/92), done.
remote: Total 100 (delta 20), reused 48 (delta 5), pack-reused 0
Receiving objects: 100% (100/100), 589.04 KiB | 1.43 MiB/s, done.
Resolving deltas: 100% (20/20), done.
$ cd tree-sitter-elixir
$ tree-sitter generate
Error processing rule escape_sequence
Caused by:
regex parse error:
x{[0-9a-fA-F]+}
^
error: repetition quantifier expects a valid decimal
$ tree-sitter --version
tree-sitter 0.22.2 (fc15f621334a262039ffaded5937e2844f88da61)
Ahh I see. You have tree-sitter installed globally and you are re-generating the grammar with that global version. You generally shouldn't need to generate the grammar, the generated version is a part of the repo (in our case automatically done on CI).
Is there a reason you need to generate explicitly?
I see the official packages still use the older version of tree-sitter-cli, so I am hesitant to upgrade until it's more adopted.
As for the specific error, I think we need to escape the curly brace in the regexp. TS compiles regexps and perhaps that logic changed to be more strict.
With that you should be able to build with newer tree-sitter.
I'm creating a single TS Library containing about 45 languages/parsers by cloning the repos and generating the grammars, then building the TS Library.
OK, so it's just a latest-version issue. I tried older versions and it started working at 0.20.8.
$ cd /tmp
$ git clone https://github.com/elixir-lang/tree-sitter-elixir --depth=1
$ cd tree-sitter-elixir
$ npx tree-sitter@0.20.8 generate
Thanks!
FWIW here is a list of dependencies used in the Zed editor.
This is a valid js regex yet tree-sitter doesn't care for it. Any ideas?