grmtools
grmtools copied to clipboard
Adding a %grammar-kind declaration?
Before I try and come up with a patch, I figured it would be good to discuss this in an issue,
I was considering potentially adding a declaration %grammar-kind Original(NoAction)
, etc
One of the problems with this is that it is likely that we want to parse the value by just using Deserialize
on the YaccGrammarKind
,
this would at least be the easiest way. But it brings about a few issues
-
cfgrammar
has Optional deserialization support, so if we deserialized that way%grammar-kind
would only work with serde feature enabled. Alternately we could just implement this by hand instead of serde? - Some declarations depend upon a specific
%grammar-kind
, we may have to move some checks fromparse_declarations
toast.complete_and_validate
.
But it could potentially reduce the number of places that YaccGrammarKind
needs to be specified (build.rs, nimbleparse command line, etc). So it seemed like it might be worth considering.
Oops, I missed this one entirely! I think I'm broadly in favour of this, though we'd have to define what happens if a user specifies YaccGrammarKind
and the grammar specifices %grammar-kind
. Probably "specifying YaccGrammarKind
overrides %grammar-kind
" is reasonable?
Yeah, that seems like the logical/reasonable choice to me, I'll look into an exploratory patch for it.