A tree-sitter code parser for SC

mail-7db+uFJyHB4PRnmXVbbcgVpr/1R2p/[email protected] Wed, 27 Jan 2021 14:59:15 +0100
Newsgroups gmane.comp.audio.supercollider.devel
Message-ID <[email protected]>
Hello all

Just wanted to let you know I started work on a grammar for 
SuperCollider mapping out the language for use with the tree-sitter code 
parser (https://tree-sitter.github.io).

It's in an early experimental stage but most of the language has been 
mapped in the grammar (phew!) so it can handle simple code examples now. 
I mostly made this to be used in neovim where I do all my coding (and 
have become addicted to using tree-sitter for c++ and lua projects) but 
it should be possible to implement in scide aswell if interested.

There are basically three features in tree-sitter that inspired me to do 
this:

- Scoped syntax highlighting - this makes it possible to easily see if a 
variable is local, an environment variable, class variable, builtin or 
an argument and thus makes code a heck of a lot easier to read and 
understand.

- Very precise syntax error messages. Because tree-sitter structures 
code in node trees, once the whole grammar is done, it should be easy to 
very to get super precise syntax errors. As it is now, if you omit a ; 
it tells you exactly where in the code in expected it to be (because 
that one node in the tree failed to parse)

- It's fast

You can see a screenshot, some examples and follow/help with the 
progress here for now:

https://github.com/madskjeldgaard/tree-sitter-supercollider

Best!


_______________________________________________
sc-dev mailing list

info (subscription, etc.): http://www.birmingham.ac.uk/facilities/ea-studios/research/supercollider/mailinglist.aspx
archive: http://www.listarc.bham.ac.uk/marchives/sc-dev/
search: http://www.listarc.bham.ac.uk/lists/sc-dev/search/