Since I7 primarily uses parse_name instead of dictionary words, the I6 approach to noun cases given in the DM4 (making a separate dative_name property) would be difficult to use. My current thought is using conditional Understand lines (“Understand [something in the dative] as the banana when the current noun case is dative”), and a global variable set by the parser. Is there a more elegant method? Are there significant drawbacks to this, other than writing all the lines?
So is the idea that the grammar tokens would encode case like:
Verb 'da' 'dona' * accusative dative -> Give * dative accusative -> Give reverse;
and the parser would set the expected noun case as it looks for matches with each token?
One drawback I see there is the flexibility of word order in inflected languages leading to extra grammar lines. Although, from what I recall of non-English I6 parsing, the verb has to come first, so that should bring it at least somewhat under control.
It also seems like there would need to be some way for these case-based tokens to encode the other attributes that the current tokens encode, which could lead to a proliferation of token types: accusative-held, dative-held, accusative-creature, dative-creature, etc.
As for more elegant method, it would be cool to say “this noun is a standard Latin first declension noun” and not have to manually decline it in the source code.