If there is no data attached to any of the variants of an enumeration, then the discriminant can be directly chosen and accessed.
These enumerations can be cast to integer types with the as operator by a numeric cast. The enumeration can optionally specify which integer each discriminant gets by following the variant name with = followed by a constant expression. If the first variant in the declaration is unspecified, then it is set to zero. For every other unspecified discriminant, it is set to one higher than the previous variant in the declaration.
While I agree this should be the definition, and I also agree this was the intention, the current text slightly leans toward the second interpretation so it needs to be fixed.
Personally, I thought the passage was relatively clear: the last three sentences all refer to whether each particular variant has a specified value. Perhaps a better fix would be to clarify the first of the three sentences:
For each variant in the enumeration, the corresponding integer can be optionally specified by following the variant name with = followed by a constant expression. If the first variant in the declaration is unspecified, then it is set to zero. For every other unspecified discriminant, it is set to one higher than the previous variant in the declaration.