This is based on an unpublished article I wrote 2022-01-23 titled “Many ways to skin a cat” in which I tried to describe various grammars that match the same strings as the official Jevko grammar
The standard Jevko grammar is defined something like this (ABNF):
Jevko = *Subjevko Suffix
Subjevko = Prefix "[" Jevko "]"
(consult the spec for details)
This produces Subjevkos which are pairs of Prefix + Jevko.
A Jevko in turn is a sequence of Subjevkos paired with a Suffix.
This grammar may be called “one suffix, many prefixes” to contrast it with the alternative I want to show here.
The alternative definition is this:
Jevko = Prefix *Subjevko
Subjevko = "[" Jevko "]" Suffix
This matches the same strings, but looks at them thru a different lens.
Here a Jevko is a Prefix + list of Subjevkos and a Subjevko is a pair of Jevko + Suffix.
This is generally less useful than the standard grammar, which models name-value structures (which are ubiquitous) very well. However it does come in handy sometimes, i.e. when value-name better fits our use case.
There are also other more or less interesting grammars that match the same strings, but that’s it for this article.