Picon

Re: #1047 and #1132 - ABNF for USEFOR 3.1.6


--On tirsdag, september 13, 2005 12:24:53 +0200 Frank Ellermann 
<nobody <at> xyzzy.claranet.de> wrote:

>
> Harald Tveit Alvestrand wrote:
>
>> path-identity   =  ( ALPHA / DIGIT )
>>                    *( ALPHA / DIGIT / "-" / "." / "_" )
>
>> path-diagnostic = 1*( ALPHA / DIGIT / "-" / "." / ":" / "_" )
>
> Here you hae one problem:  Each <path-identity> is also a
> <path-diagnostic>.  If the latter doesn't start with ALPHA or
> DIGIT (and/or if it contains a colon) it's clear what it is.

That's right.
Used as a parsing grammar and looking for names, that's not a problem - you 
may have a few more tokens to match against your neighbour list that were 
intended as diagnostics.

I thought that making the grammar more complex, without anything resembling 
a group consensus on what a diagnostic "should" look like, was not worth 
the effort.

> Like Charles you also have an "_" in the <path-identity> for
> the non-<bareword> case.

Yep. Allowing _ in hostnames seems to be an old tradition for USEFOR 
drafts, and I didn't change it for this.

> Charles versions have it clear that there are one or more
> path-identities optionally followed by one "diagnostic"
> per site (= <path-entry> in his proposals).
>
> Your version skips this detail, in theory it allows adjacent
> <path-diagnostic>s or <path-keyword>s like...
>
> ..!MISMATCH!MISMATCH!.. or ..!MISMATCH!abc::def!MISMATCH!.. or
> ..!abc::def!abc::def!.. or ..!abc::def!MISMATCH!abc::def!..
>
> I'm not sure how bad that is.

Yes, it does. And it has to - by design, Charles' text for MISMATCH:

      If it does not match then it prepends instead two entries
      to that content; firstly the true established <path-identity> of
      the source followed by a '!', the <path-keyword> "MISMATCH" and a
      further '!', and then, to the left of that, its own <path-
      identity> followed by a '!!' <path-delimiter> as usual.

Given that the "true established path-identity" is likely to be a 
diagnostic (typically an IP address), not an identity, that will produce 
something that parses as

    <path-identity>!!<path-keyword>!!<path-diagnostic>

And given that Charles' examples showed no hard and fast rules for where 
these diagnostics pop up in Path, I think it's a stretch to mandate 
particular patterns of these beasts.

> Apparently you prefer the "let's not invent new stuff
> in addition to '!!'" approach, taking "!MISMATCH!" and
> "!POSTED!" as given.

I definitely tend to "less is more", yes - and not touching the previously 
established consensus for reserving MISMATCH and POSTED, and adding the !!.
I'd really like to get finished with this document.

No comments on the details of the alternate grammar.... it's definitely 
more specific, but I wonder if being more specific is good here.

                        Harald


Gmane