• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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