Draft: initial BEVE description language BIDL #11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Here's my first proposal to what a description language would look like.
I chose BIDL as the name, which didn't seem to be anything yet after a quick search. If we were to put this in the REPE stack instead, I was imagining to call it RIDL instead (as in riddle, which I kind of dig, but has a CPU vulnerability with the same name)
There's no concrete spec yet, just an example with a lot of comments to convey my intent for you to shoot on.
It was loosely inspired by plant UML, but started to look more like rust as I was going. I mostly focused on just shoving all of BEVE's features in there, trying to give it some concise but somewhat clear and declarative syntax. I tried to fix a pet peeve of mine that IDLs are always so verbose and hard to read because of it.
Some things may not make sense on an IDL perspective though. Like the integer key types as field names, or any UTF-8 string as the key, though BEVE seems to be able to do it, I'm not going to limit it without at least considering it anyways. The issue may come in generation (glaze will need some hint and the values need some alias (ie 2 becomes key_u8_2 or something). I also believe integer-keys are not supported in json)
I'm in no rush to get this accepted or anything, so take your time and don't hold back.