On 01/25/2015 05:14 AM, Philippe Verdy wrote:
This is not a contradiction.

At the very least it is too sloppy for a standard. Once there is a match in the list of rules, later rules shouldn't have to be looked at. I'll submit a formal feedback form.

But there is another issue as well. I do not see how the specified rules when applied to the sequence of code points:

    U+0041 U+200D U+0020

cause the ZWJ, an Extend, to not break with the "A", an ALetter.

Rule WB4 is

"Ignore Format and Extend characters, except when they appear at the beginning of a region of text.".

Not clearly stated, but it appears to me that the ZWJ must be considered here to be the beginning of a region of text, as we are looking at the boundary between it and the "A". No rule specifically mentions ALetter followed by an Extend, so by the default rule, WB14

"Otherwise, break everywhere (including around ideographs)"

this should be a word break position. But that is absurd, as the Extend is supposed to extend what precedes it. If I add a rule

"Don't break before Extend or Format"
                × (Extend | Format)

my implementation passes all tests.  I added this rule before WB4.



combine the two rules and they are equivalent to these two alternate rules:
WB56 can be read as these two:

  (WB56a) ALetter  ×  (MidLetter | MidNumLet | Single_Quote) (ALetter |
Hebrew_Letter)

  (WB56b) Hebrew_Letter  ×  (MidLetter | MidNumLet | Single_Quote)
(ALetter | Hebrew_Letter)


Then add :

   (WB57) Hebrew_Letter ×  Single_Quote

it just removes the condition of a letter following the quote  in WB56b.
So that WB56b and WB57 can be read as equivalent to these two:

  (WB56c) Hebrew_Letter  ×  (MidLetter | MidNumLet) (ALetter |
Hebrew_Letter)

  (WB57) Hebrew_Letter × Single_Quote

But you cannot merge any of these two last rules in a single rule for WB56.


2015-01-25 7:26 GMT+01:00 Karl Williamson <[email protected]
<mailto:[email protected]>>:

    I vaguely recall asking something like this before, but if so, I
    didn't save the answers, and a search of the archives didn't turn up
    anything.

    Some of the rules in UAX #29 don't make sense to me.

    For example, rule WB7a
       Hebrew_Letter         ×       Single_Quote

    seems to say that a Hebrew_Letter followed by a Single Quote
    shouldn't break.  (And Rule WB4 says that actually there can be
    Extend and Format characters between the two and those should be
    ignored).

    But the earlier rule, WB6

      (ALetter | Hebrew_Letter)      ×       (MidLetter | MidNumLet |
    Single_Quote) (ALetter | Hebrew_Letter)

    seems to me to say (among other things) that a Hebrew Letter
    followed by a Single Quote shouldn't break if and only if the latter
    is also followed by either an ALetter or another Hebrew Letter
    (again modulo ignored Format and Extend letters)

    This seems contradictory.  One rule says something unconditionally,
    and the other rule adds conditions.
    _________________________________________________
    Unicode mailing list
    [email protected] <mailto:[email protected]>
    http://unicode.org/mailman/__listinfo/unicode
    <http://unicode.org/mailman/listinfo/unicode>



_______________________________________________
Unicode mailing list
[email protected]
http://unicode.org/mailman/listinfo/unicode

Reply via email to