Subject: [Lager] [lager] #13 (): 2 syntax for ranges in draft-davies-idntables ?

From: "lager issue tracker" <[email-masked]>
Date: Mon, 27 Jul 2015 21:35:08 -0000

#13: 2 syntax for ranges in draft-davies-idntables ?

 Section 5.2.4 has this text :
 Code point ranges are represented by a start and end value separated by a
 hyphen.
 </quote>

 However, previously this case was specified with the range element,
 hence we have two syntax for ranges, depending on where they appear.
 Could this be simplified, in order to allow any syntax in both cases if we
 want
 to keep the two, or allow also range elements in the context of §5.2.4 ?

-- 
----------------------------+-----------------
Reporter:  [email-masked]  |      Owner:
    Type:  defect           |     Status:  new
Priority:  minor            |  Milestone:
 Version:                   |   Severity:  -
Keywords:                   |
----------------------------+-----------------

Ticket URL: <http://trac.tools.ietf.org/wg/lager/trac/ticket/13>
lager <http://tools.ietf.org/lager/>

---

From: Asmus Freytag <[email-masked]>
Date: Tue, 28 Jul 2015 00:15:12 -0700

>   to keep the two, or allow also range elements in the context of §5.2.4 ?

We had an alternate method for specifying classes that used <char 
cp="xxxx"/> and <range .... /> elements. We took it out because it added 
yet another subtype of "<char>" with different rules for allowed attributes.

A <char> element is not a code point, but it can be a sequence, but an 
element in a <class> may not be a sequence. The exception we made in the 
end was to allow the "literal" match operator contained in a <rule> or 
<choice> element to be named <char> as well, because here, it is again 
both a code point and a code point sequence.

Beyond not possibly being a sequence, an element of a <class> differs in 
other ways. For example, a <char> that is an element of the repertoire 
can be tagged and annotated, and can have variant mappings defined. An 
element of a class cannot be tagged, has no variants, etc.

Given that the re-use of <char> (and <range>) syntax for class 
membership proved misleading and confusing and we abandoned it. As it 
turns out, many implementations simply map a <class> into a regex 
character class  [ ] expression anyway, by wrapping it in "[ ]" and 
adding \u prefixes to the code points. The shorthand syntax has proven 
fairly well suited for that approach.

As I found out in my implementation it works pretty well even if you 
don't use the shortcut mapping to regexes.

A./