In this e-mail, I rename
with the following
-------------- 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 ) ) )