-------------- preliminary

In this e-mail, I rename


with the following


for short.

-------------- level one

The BNF excludes dates such as


at level one.

At 102, such a date is not present in the "Examples" column, but it is not 
excluded as of the "Syntax/rules" column. In such a date, no "u" is 
"internal" and therefore, I consider that such a date is "level one".

Therefore, I suggest to reformulate the productions defining 
monthUnspecified and dayAndMonthUnspecified as:

monthUnspecified = ( year | yud ) "-uu'

dayAndMonthUnspecified = ( year | yud ) "-uu-uu'

Furthermore, the examples and the BNF exclude dates such as:


with more than two unspecified digits in the year. Therefore, we could 
need to rewrite the production defining yud as:

yud = "uuuu" | ( digit ( "uuu" | ( digit ( digit | "u" ) "u" ) ) )

It would also be useful to note in the "Syntax/rules" column of both 102 
and 202, that months and days can not have ONE specified digit and ONE 
unspecified digit. Both digits should be either "specified" or 

-------------- level two

> We have ensured that months and days match up for basic dates.
> To ensure this for the whacky dates is going to impose extreme
> complexity and I don't see why it's needed.
I consider it is needed, because its absence annihilates the work achieved 
for basic dates when it comes to dates with matching months and days.

Furthermore, I can not find where this "extreme complexity" resides.

I suggest to concisely rewrite the four productions defining "Internal 
Unspecified" as the following unique production:

internalUnspecified = ( year "-uu-" day ) | ( yud "-" ( monthDay | ( month "-uu" ) | ( "uu-" day ) ) )