ICU-4157 Word Break, TR29 proposed changes for Unicode 4.1
X-SVN-Rev: 16623
This commit is contained in:
parent
fd0d950183
commit
d6a3a3e9f5
@ -17,7 +17,6 @@
|
||||
##############################################################################
|
||||
|
||||
!!chain;
|
||||
!!LBCMNoChain;
|
||||
|
||||
$Katakana = [[:Script = KATAKANA:]
|
||||
[:name = KATAKANA-HIRAGANA PROLONGED SOUND MARK:]
|
||||
@ -29,20 +28,23 @@ $Katakana = [[:Script = KATAKANA:]
|
||||
$ALetter = [[:Alphabetic:] [:name= HEBREW PUNCTUATION GERESH:]
|
||||
- [:Ideographic:]
|
||||
- $Katakana
|
||||
- [:Script = Hiragana:]
|
||||
- [:Script = Thai:]
|
||||
- [:Script = Lao:]
|
||||
- [:Script = Hiragana:]];
|
||||
|
||||
- [:Grapheme_Extend = TRUE:]];
|
||||
|
||||
$ABaseLetter = [$ALetter - [:Grapheme_Extend = TRUE:]];
|
||||
$ACMLetter = [$ALetter & [:Grapheme_Extend = TRUE:]];
|
||||
|
||||
$MidLetter = [[:name = APOSTROPHE:] [:name = MIDDLE DOT:]
|
||||
[:name = HEBREW PUNCTUATION GERSHAYIM:]
|
||||
[:name = RIGHT SINGLE QUOTATION MARK:]
|
||||
[:name = HYPHENATION POINT:]];
|
||||
|
||||
$MidNumLet = [[:name = FULL STOP:] [:name = COLON:]];
|
||||
|
||||
#$MidNumLet = [[:name = FULL STOP:] [:name = COLON:]];
|
||||
$MidNumLet = [[:name = COLON:]];
|
||||
$ExtendNumLet = [[:Pc:] - [:name = KATAKANA MIDDLE DOT:]
|
||||
- [:name = HALFWIDTH KATAKANA MIDDLE DOT:]];
|
||||
|
||||
$MidNum = [[:LineBreak = Infix_Numeric:] - $MidNumLet];
|
||||
$Numeric = [:LineBreak = Numeric:];
|
||||
|
||||
@ -51,89 +53,86 @@ $Numeric = [:LineBreak = Numeric:];
|
||||
# The names are those from TR29.
|
||||
#
|
||||
|
||||
$CR = \u000d;
|
||||
$LF = \u000a;
|
||||
$Extend = [[:Grapheme_Extend = TRUE:]];
|
||||
$Control = [[:Zl:] [:Zp:] [:Cc:] [:Cf:] - $Extend];
|
||||
$Format = [[:Cf:] - $Extend];
|
||||
$Hiragana = [:Hiragana:];
|
||||
$Ideographic = [:IDEOGRAPHIC:];
|
||||
$CR = \u000d;
|
||||
$LF = \u000a;
|
||||
$Extend = [[:Grapheme_Extend = TRUE:]];
|
||||
$Control = [[:Zl:] [:Zp:] [:Cc:] [:Cf:] - $Extend];
|
||||
$Format = [[:Cf:] - $Extend];
|
||||
$Hiragana = [:Hiragana:];
|
||||
$Ideographic = [:IDEOGRAPHIC:];
|
||||
|
||||
$ALetterEx = $ALetter $Extend*;
|
||||
$NumericEx = $Numeric $Extend*;
|
||||
$MidNumEx = $MidNum $Extend*;
|
||||
$MidNumLetEx = $MidNumLet $Extend*;
|
||||
$MidLetterEx = $MidLetter $Extend*;
|
||||
$KatakanaEx = $Katakana $Extend*;
|
||||
$ExtendNumLetEx = $ExtendNumLet $Extend*;
|
||||
|
||||
## -------------------------------------------------
|
||||
|
||||
!!forward;
|
||||
|
||||
$CR $LF;
|
||||
|
||||
# rule 3 and 4
|
||||
|
||||
$ALetterEx = $ALetter $Extend*;
|
||||
$ABaseLetterEx = $ABaseLetter $Extend*;
|
||||
$ACMLetterEx = $ACMLetter $Extend*;
|
||||
$NumericEx = $Numeric $Extend*;
|
||||
$MidNumEx = $MidNum $Extend*;
|
||||
$MidNumLetEx = $MidNumLet $Extend*;
|
||||
$MidLetterEx = $MidLetter $Extend*;
|
||||
$KatakanaEx = $Katakana $Extend*;
|
||||
|
||||
# Rule 3 - don't break grapheme clusters.
|
||||
# see character breaks
|
||||
|
||||
$CR $LF;
|
||||
[^$Control] $Extend*;
|
||||
$NumericEx $Extend* {100};
|
||||
$ALetterEx $Extend* {200};
|
||||
|
||||
# rule 5
|
||||
|
||||
$ALetterEx ($Format* $ALetterEx)* {200};
|
||||
$ALetterEx $Format* $ALetterEx {200};
|
||||
|
||||
# rule 6 and 7
|
||||
|
||||
$MidALetterEx = ($ABaseLetterEx | $Format $ACMLetterEx);
|
||||
|
||||
$ALetterSeq =
|
||||
$ALetterEx
|
||||
(
|
||||
$Format* ($MidLetterEx | $MidNumLetEx) $Format* $MidALetterEx
|
||||
)*;
|
||||
|
||||
$MidALetterSeq =
|
||||
$MidALetterEx
|
||||
(
|
||||
$Format* ($MidLetterEx | $MidNumLetEx) $Format* $MidALetterEx
|
||||
)*;
|
||||
$ALetterEx $Format* ($MidLetterEx | $MidNumLetEx) $Format* $ALetterEx {200};
|
||||
|
||||
# rule 8
|
||||
|
||||
$NumericEx ($Format* $NumericEx)* {100};
|
||||
$NumericEx $Format* $NumericEx {100};
|
||||
|
||||
# rule 9
|
||||
|
||||
$ALetterSeq ($Format* ($NumericEx | $MidALetterSeq))* {200};
|
||||
$ALetterEx $Format* $NumericEx {200};
|
||||
|
||||
# rule 10
|
||||
|
||||
$NumericEx ($Format* $MidALetterSeq)+ ($Format* $NumericEx)* {200};
|
||||
$NumericEx $Format* $ALetterEx {200};
|
||||
|
||||
# rule 11 and 12
|
||||
|
||||
$NumericEx ($Format* ($MidNumEx | $MidNumLetEx) $Format* $NumericEx)+ {100};
|
||||
$NumericEx $Format* ($MidNumEx | $MidNumLetEx) $Format* $NumericEx {100};
|
||||
|
||||
# rule 13
|
||||
|
||||
$KatakanaEx ($Format* $KatakanaEx)* {300};
|
||||
$Hiragana $Extend* {300};
|
||||
$KatakanaEx $Format* $KatakanaEx {300};
|
||||
$Hiragana $Extend* {300};
|
||||
$Ideographic $Extend* {400};
|
||||
|
||||
# New Rules X Y
|
||||
$ALetterEx $Format* $ExtendNumLetEx {200}; # (X)
|
||||
$NumericEx $Format* $ExtendNumLetEx {100}; # (X)
|
||||
$KatakanaEx $Format* $ExtendNumLetEx {300}; # (X)
|
||||
|
||||
$ExtendNumLetEx $Format* $ALetterEx {200}; # (Y)
|
||||
$ExtendNumLetEx $Format* $NumericEx {100}; # (Y)
|
||||
$ExtendNumLetEx $Format* $KatakanaEx {300}; # (Y)
|
||||
|
||||
|
||||
|
||||
## -------------------------------------------------
|
||||
|
||||
!!reverse;
|
||||
|
||||
$BackALetterEx = $Extend* $ALetter;
|
||||
$BackABaseLetterEx = $Extend* $ABaseLetter;
|
||||
$BackACMLetterEx = $Extend* $ACMLetter;
|
||||
$BackNumericEx = $Extend* $Numeric;
|
||||
$BackMidNumEx = $Extend* $MidNum;
|
||||
$BackMidNumLetEx = $Extend* $MidNumLet;
|
||||
$BackMidLetterEx = $Extend* $MidLetter;
|
||||
$BackKatakanaEx = $Extend* $Katakana;
|
||||
$BackExtendNumLetEx= $Extend* $ExtendNumLet;
|
||||
|
||||
$LF $CR;
|
||||
|
||||
@ -143,43 +142,24 @@ $Extend* [^$Control];
|
||||
|
||||
# rule 5
|
||||
|
||||
($BackALetterEx $Format*)* $BackABaseLetterEx;
|
||||
($BackALetterEx $Format*)* $BackACMLetterEx / $Control;
|
||||
$BackALetterEx $Format* $BackALetterEx;
|
||||
|
||||
# rule 6 and 7
|
||||
|
||||
$BackMidALetterEx = ($BackABaseLetterEx | $BackACMLetterEx $Format);
|
||||
$BackALetterEx $Format* ($BackMidLetterEx | $BackMidNumLetEx) $Format* $BackALetterEx;
|
||||
|
||||
$BackALetterSeq =
|
||||
(
|
||||
$BackMidALetterEx $Format* ($BackMidLetterEx | $BackMidNumLetEx) $Format*
|
||||
)*
|
||||
$BackABaseLetterEx;
|
||||
|
||||
$BackMidALetterSeq =
|
||||
(
|
||||
$BackMidALetterEx $Format* ($BackMidLetterEx | $BackMidNumLetEx) $Format*
|
||||
)*
|
||||
$BackMidALetterEx;
|
||||
|
||||
# rule 8
|
||||
|
||||
$BackNumericEx $Format* $BackNumericEx;
|
||||
|
||||
# rule 10
|
||||
# rule 9
|
||||
|
||||
(($BackNumericEx | $BackMidALetterSeq) $Format*)* $BackALetterSeq;
|
||||
|
||||
# to handle letter sequences ending with a combining mark
|
||||
(($BackNumericEx | $BackMidALetterSeq) $Format*)*
|
||||
(
|
||||
$BackMidALetterEx $Format* ($BackMidLetterEx | $BackMidNumLetEx) $Format*
|
||||
)*
|
||||
$BackACMLetterEx / $Control;
|
||||
$BackNumericEx $Format* $BackALetterEx;
|
||||
|
||||
# rule 10
|
||||
|
||||
($BackNumericEx $Format*)* ($BackMidALetterSeq $Format*)* $BackNumericEx;
|
||||
$BackALetterEx $Format* $BackNumericEx;
|
||||
|
||||
# rule 11 and 12
|
||||
|
||||
@ -189,6 +169,11 @@ $BackNumericEx $Format* ($BackMidNumEx | $BackMidNumLetEx) $Format* $BackNumeric
|
||||
|
||||
$BackKatakanaEx $Format* $BackKatakanaEx;
|
||||
|
||||
# New Rules X and Y
|
||||
#
|
||||
($BackALetterEx | $BackNumericEx | $BackKatakanaEx) $Format* $BackExtendNumLetEx;
|
||||
$BackExtendNumLetEx $Format* ($BackALetterEx | $BackNumericEx | $BackKatakanaEx);
|
||||
|
||||
## -------------------------------------------------
|
||||
|
||||
!!safe_reverse;
|
||||
@ -198,18 +183,17 @@ $Extend+ [^$Extend];
|
||||
$Extend+; # comes into play when buffer _begins_ with an $Extend+.
|
||||
|
||||
# rule 4
|
||||
$Format+ $BackABaseLetterEx;
|
||||
$Format+ $BackACMLetterEx / $Control;
|
||||
$Format+ $BackALetterEx;
|
||||
$Format+ $BackNumericEx;
|
||||
$Format+ $BackMidLetterEx;
|
||||
$Format+ $BackMidNumLetEx;
|
||||
$Format+ $BackMidNumEx;
|
||||
$Format+ $BackKatakanaEx;
|
||||
$Format+ $BackExtendNumLetEx;
|
||||
|
||||
|
||||
# rule 6
|
||||
($MidLetter | $MidNumLet) $Format* $BackABaseLetterEx;
|
||||
($MidLetter | $MidNumLet) $Format* $BackACMLetterEx / $Control;
|
||||
($MidLetter | $MidNumLet) $Format* $BackALetterEx;
|
||||
|
||||
# rule 11
|
||||
($MidNum | $MidNumLet) $Format* $BackNumericEx;
|
||||
@ -228,6 +212,7 @@ $Extend* $Format+ $MidLetterEx;
|
||||
$Extend* $Format+ $MidNumLetEx;
|
||||
$Extend* $Format+ $MidNumEx;
|
||||
$Extend* $Format+ $KatakanaEx;
|
||||
$Extend* $Format+ $ExtendNumLetEx;
|
||||
|
||||
$Extend+ $Format* $ALetterEx;
|
||||
$Extend+ $Format* $NumericEx;
|
||||
@ -235,9 +220,11 @@ $Extend+ $Format* $MidLetterEx;
|
||||
$Extend+ $Format* $MidNumLetEx;
|
||||
$Extend+ $Format* $MidNumEx;
|
||||
$Extend+ $Format* $KatakanaEx;
|
||||
$Extend+ $Format* $ExtendNumLetEx;
|
||||
|
||||
# rule 6
|
||||
($MidLetterEx | $MidNumLetEx) $Format* $ALetterEx;
|
||||
|
||||
# rule 11
|
||||
($MidNumEx | $MidNumLetEx) $Format* $NumericEx;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user