Implementation in another language?

What are plans to support parsing in another language and not just Kotlin? Like JavaScript? Or Rust?

How would you suggest I should tackle this if I would like to implement it? So a parser from PartiQL into AST in JavaScript or Rust?

I was searching for a machine readable grammar but I could not find it. Is it available already somewhere?

Is the some conformance suite available? A test suite with various queries and expected ASTs for them? Or even expected resulting objects from known underlying data? So that I could test even how then this AST maps to a database query?

We do plan to add more languages and we have an issue for it that you could upvote/comment
https://github.com/partiql/partiql-lang-kotlin/issues/110. We do not have any immediate plans though.

Unfortunately we do not have a full BNF grammar defined anywhere. What we have is the Kotlin implementation of the parser.

We did start a test suite that you can find as part of the kotlin repo here: https://github.com/partiql/partiql-lang-kotlin/tree/master/testscript
The test suite uses our own test framework (also in the kotlin repo https://github.com/partiql/partiql-lang-kotlin/tree/master/pts) and was designed to allow pluggable implementations from other language.

Feel free to open GitHub issues to reach out for help or PRs.

Which language would you be interested in using to implement PartiQL?

Because I saw it in the spec. So I was assuming there is some machine readable version of the grammar instead of me having to copy-paste it out. How have you then verified that the grammar in the spec is correct without having it and using it?

Which language would you be interested in using to implement PartiQL?

Probably first Rust, but also TypeScript/JavaScript.

So is there any timeline for providing machine readable grammar? Maybe Kotlin implementation could be augmented to output it? If the output would be lemon compatible that would be a huge win for me (because I hope to support both Sqlite and PartiQL).

Because I saw it in the spec. So I was assuming there is some machine readable version of the grammar instead of me having to copy-paste it out. How have you then verified that the grammar in the spec is correct without having it and using it?

The spec has a good start, but it is also incomplete and work in progress to the best of my knowledge. At the moment there is no proof (or systematic validation) other than the test suite that we have in the implementation.

Probably first Rust, but also TypeScript/JavaScript.

There has been a few people that asked for a language that is not on the JVM and specifically easier to integrate with existing DBs. What is also interesting is the ability to compile to Web Assembly with Rust that could give us a leg up with JS and TS.

So is there any timeline for providing machine readable grammar? Maybe Kotlin implementation could be augmented to output it? If the output would be lemon compatible that would be a huge win for me (because I hope to support both Sqlite and PartiQL).

I was not aware of Lemon, thanks for the pointer. I do not have any information on a timeline for the Grammar. Could I ask you to create an issue on our GitHub repo. That way we can schedule and triage the work.

It seems there is already an issue for the grammar. And another one for Rust/other languages.