Re: [url] Requests for Feedback (was Feedback from TPAC)

> On 23 Dec 2014, at 1:48 pm, Sam Ruby <rubys@intertwingly.net> wrote:
> 
> I believe I found a second problem with the following:
> 
>> #   IPv6address   =                            6( h16 ":" ) ls32
>> #                 /                       "::" 5( h16 ":" ) ls32
>> #                 / [               h16 ] "::" 4( h16 ":" ) ls32
>> #                 / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
>> #                 / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
>> #                 / [ *3( h16 ":" ) h16 ] "::"    h16 ":"   ls32
>> #                 / [ *4( h16 ":" ) h16 ] "::"              ls32
>> #                 / [ *5( h16 ":" ) h16 ] "::"              h16
>> #                 / [ *6( h16 ":" ) h16 ] "::"
>> IPv6address = r"""(?:                                  (?: %(h16)s : ){6} %(ls32)s |
>>                                                    :: (?: %(h16)s : ){5} %(ls32)s |
>>                                            %(h16)s :: (?: %(h16)s : ){4} %(ls32)s |
>>                         (?: %(h16)s : )    %(h16)s :: (?: %(h16)s : ){3} %(ls32)s |
>>                         (?: %(h16)s : ){2} %(h16)s :: (?: %(h16)s : ){2} %(ls32)s |
>>                         (?: %(h16)s : ){3} %(h16)s ::     %(h16)s :      %(ls32)s |
>>                         (?: %(h16)s : ){4} %(h16)s ::                    %(ls32)s |
>>                         (?: %(h16)s : ){5} %(h16)s ::                    %(h16)s  |
>>                         (?: %(h16)s : ){6} %(h16)s ::
>>                  )
>> """ % locals()
> 
> I believe the *n notation in ABNF corresponds to {0,n} in regular expressions.  A corrected version:
> 
>> IPv6address = r"""(?:                                    (?: %(h16)s : ){6} %(ls32)s |
>>                                                      :: (?: %(h16)s : ){5} %(ls32)s |
>>                                              %(h16)s :: (?: %(h16)s : ){4} %(ls32)s |
>>                         (?: %(h16)s : ){0,1} %(h16)s :: (?: %(h16)s : ){3} %(ls32)s |
>>                         (?: %(h16)s : ){0,2} %(h16)s :: (?: %(h16)s : ){2} %(ls32)s |
>>                         (?: %(h16)s : ){0,3} %(h16)s ::     %(h16)s :      %(ls32)s |
>>                         (?: %(h16)s : ){0,4} %(h16)s ::                    %(ls32)s |
>>                         (?: %(h16)s : ){0,5} %(h16)s ::                    %(h16)s  |
>>                         (?: %(h16)s : ){0,6} %(h16)s ::
>>                  )
>> """ % locals()

Yes, but it needs to go further to align with the ABNF:

IPv6address = r"""(?:                         (?: %(h16)s : ){6} %(ls32)s |
                                           :: (?: %(h16)s : ){5} %(ls32)s |
       (?:                      %(h16)s )? :: (?: %(h16)s : ){4} %(ls32)s |
       (?: (?: %(h16)s : ){0,1} %(h16)s )? :: (?: %(h16)s : ){3} %(ls32)s |
       (?: (?: %(h16)s : ){0,2} %(h16)s )? :: (?: %(h16)s : ){2} %(ls32)s |
       (?: (?: %(h16)s : ){0,3} %(h16)s )? ::     %(h16)s :      %(ls32)s |
       (?: (?: %(h16)s : ){0,4} %(h16)s )? ::                    %(ls32)s |
       (?: (?: %(h16)s : ){0,5} %(h16)s )? ::                    %(h16)s  |
       (?: (?: %(h16)s : ){0,6} %(h16)s )? ::
)
""" % locals()

I’ve updated the gist at <https://gist.github.com/mnot/138549> with this and the previous correction.

Thanks,

--
Mark Nottingham   http://www.mnot.net/

Received on Thursday, 25 December 2014 09:39:26 UTC