kaby76 / Trash

Toolkit for grammars
MIT License
75 stars 5 forks source link

Treesitter #235

Open ShalokShalom opened 1 year ago

ShalokShalom commented 1 year ago

Hi 😄

Wonderful project. I am about to create a ANTLR for this project

I am a F# dev, and we are having everything in Yacc. That in itself wouldnt be that problem, but we describe the significant whitespace in normal fs files so there is nothing we can generate from.

There is an upcoming Treesitter implementation coming.

I like to use that, to generate an ANTLR file.

Your repository looks like the most comprehensive one for this file format, and by a long shot I add.

Your Readme seems a little outdated, since there is zero mention of Treesitter support Meanwhile, there are two different implementations in the repo, and I kinda stumble about the use

Can you help me?

kaby76 commented 1 year ago

The treesitter converter isn't working right now, and yes, there's a lot that out of date. I've started rewriting all the basic-level code that passes Antlr parse trees from app to app, but I haven't started working on trconvert. I'll be working on this code sometime in the next few weeks after I finish working on fixing the grammars-v4 build.

ShalokShalom commented 1 year ago

Thanks a lot 🥳

Can I keep this open?

kaby76 commented 1 year ago

Thanks a lot 🥳

Can I keep this open?

Please keep it open. It helps me to keep a "to do" list of things I need to fix. Will return to this soon.

ShalokShalom commented 1 year ago

Is this still in the making?

kaby76 commented 1 year ago

Yes, still in the making. I keep on getting pulled in different directions.

The plan is to add XQuery to the toolset. This is important for basic CRUD on a parse tree that is currently only supported by separate tools trinsert, trreplace, trdelete, etc. When this is fixed (the XQuery grammar isn't easy), trquery (or trxquery?) will add support in a xquery script, so operations will be faster. Then, I can worry about conversions with a little more ease. For example, this script converts Bison, but is kind of slow. Likewise, this script computes the transitive closure over parser rules in a grammar, but is pretty slow because of the for-loop around trxgrep.