Home | History | Annotate | Download | only in rules
      1 # Copyright (C) 2016 and later: Unicode, Inc. and others.
      2 # License & terms of use: http://www.unicode.org/copyright.html
      3 #
      4 # Copyright (c) 2002-2015, International Business Machines Corporation and
      5 # others. All Rights Reserved.
      6 #
      7 #  Title Casing Break Rules
      8 #
      9 
     10 !!quoted_literals_only;
     11 
     12 $CaseIgnorable   = [[:Mn:][:Me:][:Cf:][:Lm:][:Sk:] \u0027 \u00AD \u2019];
     13 $Cased           = [[:Upper_Case:][:Lower_Case:][:Lt:]  - $CaseIgnorable];
     14 $NotCased        = [[^ $Cased] - $CaseIgnorable];
     15 
     16 !!forward;
     17 
     18 #  If the iterator begins on a CaseIgnorable, advance it past it/them.
     19 #  This can occur at the start-of-text, or after application of the
     20 #  safe-reverse rule.
     21 
     22 ($CaseIgnorable | $NotCased)*;
     23 
     24 #   Normal exact forward rule: beginning at the start of a word
     25 #         (at a cased character), advance through the word and through
     26 #         the uncased characters following the word.
     27 
     28 $Cased ($Cased | $CaseIgnorable)* ($NotCased | $CaseIgnorable)*;
     29 
     30 
     31 !!safe_reverse;
     32 
     33 # Safe Reverse: the exact forward rule must not start in the middle
     34 #  of a word, so the safe reverse skips over any Cased characters,
     35 #  leaving it just before the start of a word.
     36 
     37 ($Cased | $CaseIgnorable)*;
     38