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
-
cfgrammarhas Optional deserialization support, so if we deserialized that way%grammar-kindwould 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_declarationstoast.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.