2021-12-10 12:45
Starting with the disambiguated Jevko grammar from the previous article1:
Value = *Subvalue Label
Subvalue = Label "[" Value "]"
Label = *Symbol
Symbol = Escape / %x0-5a / %x5e-d7ff / %xe000-10ffff
Escape = "\" ("\" / "[" / "]")
We can define Data Jevko descriptively as Jevko with the following
restrictions placed on Value
:
Label
is nonblank2
then it must have zero Subvalue
s. Such a Value
is called a primitive. IfSubvalue
must go with a
Label
which is either:
Value
is called a
list.Value
is called a keyed
list. The part of the Label
from the first
nonblank symbol to the last nonblank symbol is called the
key of the Subvalue
.Value
has a zero-length Label
and
zero Subvalue
s, it is called an
emptiness.Any other shape is invalid Data Jevko.
The above description is expanded and formalized in this article.