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.
This PR adds the ability to set values for enums, so this type of C code can be generated:
The syntax I went with is the following:
The only real alternative I could think of would be something like this:
I don't like this, since it's nonsensical in normal Elixir.
I originally thought a list would be okay, something like this:
But this doesn't allow for partially explicit definitions, unless all the explicit definitions are at the end (to make it a valid keyword list), so the above definition isn't possible:
I think the desugared pseudo-keyword list is a decent option. It seems less weird than writing
:a = 1
to me, anyway. It could also be defined as a list (e.g.,[:a, 1] | :b
), but that seems confusing since[type]
is meaningful elsewhere.