Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Side by Side Diff: icu46/source/data/brkitr/line.txt

Issue 6349014: ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « icu46/source/data/brkitr/brklocal.mk ('k') | icu46/source/data/brkitr/word.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2002-2010 International Business Machines Corporation and 1 # Copyright (c) 2002-2010 International Business Machines Corporation and
2 # others. All Rights Reserved. 2 # others. All Rights Reserved.
3 # 3 #
4 # file: line.txt 4 # file: line.txt
5 # 5 #
6 # Line Breaking Rules 6 # Line Breaking Rules
7 # Implement default line breaking as defined by 7 # Implement default line breaking as defined by
8 # Unicode Standard Annex #14 Revision 24 for Unicode 6.0 8 # Unicode Standard Annex #14 Revision 24 for Unicode 6.0
9 # http://www.unicode.org/reports/tr14/ 9 # http://www.unicode.org/reports/tr14/
10 # 10 #
11 # TODO: Rule LB 8 remains as it was in Unicode 5.2 11 # TODO: Rule LB 8 remains as it was in Unicode 5.2
12 # This is only because of a limitation of ICU break engine implementatio n, 12 # This is only because of a limitation of ICU break engine implementatio n,
13 # not because the older behavior is desirable. 13 # not because the older behavior is desirable.
14 #
15 # CHROME: Hebrew tailoring was incorporatd as well as some
16 # other minor changes (CL, OP, ID).
14 17
15 # 18 #
16 # Character Classes defined by TR 14. 19 # Character Classes defined by TR 14.
17 # 20 #
18 21
19 !!chain; 22 !!chain;
20 !!LBCMNoChain; 23 !!LBCMNoChain;
21 24
22 25
23 !!lookAheadHardBreak; 26 !!lookAheadHardBreak;
(...skipping 26 matching lines...) Expand all
50 # 53 #
51 # !!lookAheadHardBreak forces the run time state machine to 54 # !!lookAheadHardBreak forces the run time state machine to
52 # stop immediately when a look ahead rule ( '/' operator) matches, 55 # stop immediately when a look ahead rule ( '/' operator) matches,
53 # and set the match position to that of the look-ahead operator, 56 # and set the match position to that of the look-ahead operator,
54 # no matter what other rules may be in play at the time. 57 # no matter what other rules may be in play at the time.
55 # 58 #
56 # See rule LB 19 for an example. 59 # See rule LB 19 for an example.
57 # 60 #
58 61
59 $AI = [:LineBreak = Ambiguous:]; 62 $AI = [:LineBreak = Ambiguous:];
60 $AL = [:LineBreak = Alphabetic:]; 63 $AL = [[:LineBreak = Alphabetic:] - [[:Hebrew:] & [:Letter:]] - [\u23B4\u23B5]] ;
61 $BA = [:LineBreak = Break_After:]; 64 $HL = [[:Hebrew:] & [:Letter:]];
65 $BA = [[:LineBreak = Break_After:] - [\u2010]];
66 $HH = [\u2010];
62 $BB = [:LineBreak = Break_Before:]; 67 $BB = [:LineBreak = Break_Before:];
63 $BK = [:LineBreak = Mandatory_Break:]; 68 $BK = [:LineBreak = Mandatory_Break:];
64 $B2 = [:LineBreak = Break_Both:]; 69 $B2 = [:LineBreak = Break_Both:];
65 $CB = [:LineBreak = Contingent_Break:]; 70 $CB = [:LineBreak = Contingent_Break:];
66 $CL = [:LineBreak = Close_Punctuation:]; 71 $CL = [[:LineBreak = Close_Punctuation:] [\uFE51\uFE10\u23B5]];
67 $CM = [:LineBreak = Combining_Mark:]; 72 $CM = [:LineBreak = Combining_Mark:];
68 $CP = [:LineBreak = Close_Parenthesis:]; 73 $CP = [:LineBreak = Close_Parenthesis:];
69 $CR = [:LineBreak = Carriage_Return:]; 74 $CR = [:LineBreak = Carriage_Return:];
70 $EX = [:LineBreak = Exclamation:]; 75 $EX = [:LineBreak = Exclamation:];
71 $GL = [:LineBreak = Glue:]; 76 $GL = [:LineBreak = Glue:];
72 $HY = [:LineBreak = Hyphen:]; 77 $HY = [:LineBreak = Hyphen:];
73 $H2 = [:LineBreak = H2:]; 78 $H2 = [:LineBreak = H2:];
74 $H3 = [:LineBreak = H3:]; 79 $H3 = [:LineBreak = H3:];
75 $ID = [:LineBreak = Ideographic:]; 80 $ID = [[:LineBreak = Ideographic:] - [\uFE51]];
76 $IN = [:LineBreak = Inseperable:]; 81 $IN = [:LineBreak = Inseperable:];
77 $IS = [:LineBreak = Infix_Numeric:]; 82 $IS = [[:LineBreak = Infix_Numeric:] - [\uFE10]];
78 $JL = [:LineBreak = JL:]; 83 $JL = [:LineBreak = JL:];
79 $JV = [:LineBreak = JV:]; 84 $JV = [:LineBreak = JV:];
80 $JT = [:LineBreak = JT:]; 85 $JT = [:LineBreak = JT:];
81 $LF = [:LineBreak = Line_Feed:]; 86 $LF = [:LineBreak = Line_Feed:];
82 $NL = [:LineBreak = Next_Line:]; 87 $NL = [:LineBreak = Next_Line:];
83 $NS = [:LineBreak = Nonstarter:]; 88 $NS = [:LineBreak = Nonstarter:];
84 $NU = [:LineBreak = Numeric:]; 89 $NU = [:LineBreak = Numeric:];
85 $OP = [:LineBreak = Open_Punctuation:]; 90 $OP = [[:LineBreak = Open_Punctuation:] \u23B4];
86 $PO = [:LineBreak = Postfix_Numeric:]; 91 $PO = [:LineBreak = Postfix_Numeric:];
87 $PR = [:LineBreak = Prefix_Numeric:]; 92 $PR = [:LineBreak = Prefix_Numeric:];
88 $QU = [:LineBreak = Quotation:]; 93 $QU = [:LineBreak = Quotation:];
89 $SA = [:LineBreak = Complex_Context:]; 94 $SA = [:LineBreak = Complex_Context:];
90 $SG = [:LineBreak = Surrogate:]; 95 $SG = [:LineBreak = Surrogate:];
91 $SP = [:LineBreak = Space:]; 96 $SP = [:LineBreak = Space:];
92 $SY = [:LineBreak = Break_Symbols:]; 97 $SY = [:LineBreak = Break_Symbols:];
93 $WJ = [:LineBreak = Word_Joiner:]; 98 $WJ = [:LineBreak = Word_Joiner:];
94 $XX = [:LineBreak = Unknown:]; 99 $XX = [:LineBreak = Unknown:];
95 $ZW = [:LineBreak = ZWSpace:]; 100 $ZW = [:LineBreak = ZWSpace:];
96 101
97 # Dictionary character set, for triggering language-based break engines. Curre ntly 102 # Dictionary character set, for triggering language-based break engines. Curre ntly
98 # limited to LineBreak=Complex_Context. Note that this set only works in Unico de 103 # limited to LineBreak=Complex_Context. Note that this set only works in Unico de
99 # 5.0 or later as the definition of Complex_Context was corrected to include a ll 104 # 5.0 or later as the definition of Complex_Context was corrected to include a ll
100 # characters requiring dictionary break. 105 # characters requiring dictionary break.
101 106
102 $dictionary = [:LineBreak = Complex_Context:]; 107 $dictionary = [:LineBreak = Complex_Context:];
103 108
104 # 109 #
105 # Rule LB1. By default, treat AI (characters with ambiguous east Asian width) , 110 # Rule LB1. By default, treat AI (characters with ambiguous east Asian width) ,
106 # SA (South East Asian: Thai, Lao, Khmer) 111 # SA (South East Asian: Thai, Lao, Khmer)
107 # SG (Unpaired Surrogates) 112 # SG (Unpaired Surrogates)
108 # XX (Unknown, unassigned) 113 # XX (Unknown, unassigned)
109 # as $AL (Alphabetic) 114 # as $AL (Alphabetic)
110 # 115 #
111 $ALPlus = [$AL $AI $SA $SG $XX]; 116 $ALPlus = [$AL $HL $AI $SA $SG $XX];
112 117
113 # 118 #
114 # Combining Marks. X $CM* behaves as if it were X. Rule LB6. 119 # Combining Marks. X $CM* behaves as if it were X. Rule LB6.
115 # 120 #
116 $ALcm = $ALPlus $CM*; 121 $ALcm = $ALPlus $CM*;
122 $HLcm = $HL $CM*;
117 $BAcm = $BA $CM*; 123 $BAcm = $BA $CM*;
124 $HHcm = $HH $CM*;
118 $BBcm = $BB $CM*; 125 $BBcm = $BB $CM*;
119 $B2cm = $B2 $CM*; 126 $B2cm = $B2 $CM*;
120 $CLcm = $CL $CM*; 127 $CLcm = $CL $CM*;
121 $CPcm = $CP $CM*; 128 $CPcm = $CP $CM*;
122 $EXcm = $EX $CM*; 129 $EXcm = $EX $CM*;
123 $GLcm = $GL $CM*; 130 $GLcm = $GL $CM*;
124 $HYcm = $HY $CM*; 131 $HYcm = $HY $CM*;
125 $H2cm = $H2 $CM*; 132 $H2cm = $H2 $CM*;
126 $H3cm = $H3 $CM*; 133 $H3cm = $H3 $CM*;
127 $IDcm = $ID $CM*; 134 $IDcm = $ID $CM*;
(...skipping 13 matching lines...) Expand all
141 148
142 ## ------------------------------------------------- 149 ## -------------------------------------------------
143 150
144 !!forward; 151 !!forward;
145 152
146 # 153 #
147 # Each class of character can stand by itself as an unbroken token, with traili ng combining stuff 154 # Each class of character can stand by itself as an unbroken token, with traili ng combining stuff
148 # 155 #
149 $ALPlus $CM+; 156 $ALPlus $CM+;
150 $BA $CM+; 157 $BA $CM+;
158 $HH $CM+;
151 $BB $CM+; 159 $BB $CM+;
152 $B2 $CM+; 160 $B2 $CM+;
153 $CL $CM+; 161 $CL $CM+;
154 $CP $CM+; 162 $CP $CM+;
155 $EX $CM+; 163 $EX $CM+;
156 $GL $CM+; 164 $GL $CM+;
157 $HY $CM+; 165 $HY $CM+;
158 $H2 $CM+; 166 $H2 $CM+;
159 $H3 $CM+; 167 $H3 $CM+;
160 $ID $CM+; 168 $ID $CM+;
(...skipping 22 matching lines...) Expand all
183 $CAN_CM = [^$SP $BK $CR $LF $NL $ZW $CM]; # Bases that can take CMs 191 $CAN_CM = [^$SP $BK $CR $LF $NL $ZW $CM]; # Bases that can take CMs
184 $CANT_CM = [ $SP $BK $CR $LF $NL $ZW $CM]; # Bases that can't take CMs 192 $CANT_CM = [ $SP $BK $CR $LF $NL $ZW $CM]; # Bases that can't take CMs
185 193
186 # 194 #
187 # AL_FOLLOW set of chars that can unconditionally follow an AL 195 # AL_FOLLOW set of chars that can unconditionally follow an AL
188 # Needed in rules where stand-alone $CM s are treated as AL. 196 # Needed in rules where stand-alone $CM s are treated as AL.
189 # Chaining is disabled with CM because it causes other failures, 197 # Chaining is disabled with CM because it causes other failures,
190 # so for this one case we need to manually list out longer sequences. 198 # so for this one case we need to manually list out longer sequences.
191 # 199 #
192 $AL_FOLLOW_NOCM = [$BK $CR $LF $NL $ZW $SP]; 200 $AL_FOLLOW_NOCM = [$BK $CR $LF $NL $ZW $SP];
193 $AL_FOLLOW_CM = [$CL $CP $EX $IS $SY $WJ $GL $OP $QU $BA $HY $NS $IN $NU $ALPl us]; 201 $AL_FOLLOW_CM = [$CL $CP $EX $IS $SY $WJ $GL $OP $QU $BA $HH $HY $NS $IN $NU $ ALPlus];
194 $AL_FOLLOW = [$AL_FOLLOW_NOCM $AL_FOLLOW_CM]; 202 $AL_FOLLOW = [$AL_FOLLOW_NOCM $AL_FOLLOW_CM];
195 203
196 204
197 # 205 #
198 # Rule LB 4, 5 Mandatory (Hard) breaks. 206 # Rule LB 4, 5 Mandatory (Hard) breaks.
199 # 207 #
200 $LB4Breaks = [$BK $CR $LF $NL]; 208 $LB4Breaks = [$BK $CR $LF $NL];
201 $LB4NonBreaks = [^$BK $CR $LF $NL]; 209 $LB4NonBreaks = [^$BK $CR $LF $NL];
202 $CR $LF {100}; 210 $CR $LF {100};
203 211
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 # LB 12 Do not break after NBSP and related characters. 253 # LB 12 Do not break after NBSP and related characters.
246 # GL x 254 # GL x
247 # 255 #
248 $GLcm $CAN_CM $CM*; 256 $GLcm $CAN_CM $CM*;
249 $GLcm $CANT_CM; 257 $GLcm $CANT_CM;
250 258
251 # 259 #
252 # LB 12a Do not break before NBSP and related characters ... 260 # LB 12a Do not break before NBSP and related characters ...
253 # [^SP BA HY] x GL 261 # [^SP BA HY] x GL
254 # 262 #
255 [[$LB8NonBreaks] - [$SP $BA $HY]] $CM* $GLcm; 263 [[$LB8NonBreaks] - [$SP $BA $HH $HY]] $CM* $GLcm;
256 $CM+ GLcm; 264 $CM+ GLcm;
257 265
258 266
259 267
260 # 268 #
261 # LB 13 Don't break before ']' or '!' or ';' or '/', even after spaces. 269 # LB 13 Don't break before ']' or '!' or ';' or '/', even after spaces.
262 # 270 #
263 $LB8NonBreaks $CL; 271 $LB8NonBreaks $CL;
264 $CAN_CM $CM* $CL; 272 $CAN_CM $CM* $CL;
265 $CM+ $CL; # by rule 10, stand-alone CM behaves as AL 273 $CM+ $CL; # by rule 10, stand-alone CM behaves as AL
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 326
319 # LB 20 327 # LB 20
320 # <break> $CB 328 # <break> $CB
321 # $CB <break> 329 # $CB <break>
322 330
323 $LB20NonBreaks = [$LB18NonBreaks - $CB]; 331 $LB20NonBreaks = [$LB18NonBreaks - $CB];
324 332
325 # LB 21 x (BA | HY | NS) 333 # LB 21 x (BA | HY | NS)
326 # BB x 334 # BB x
327 # 335 #
328 $LB20NonBreaks $CM* ($BAcm | $HYcm | $NScm); 336 $LB20NonBreaks $CM* ($BAcm | $HHcm | $HYcm | $NScm);
329 337
330 $BBcm [^$CB]; # $BB x 338 $BBcm [^$CB]; # $BB x
331 $BBcm $LB20NonBreaks $CM*; 339 $BBcm $LB20NonBreaks $CM*;
332 340
333 # LB 22 341 # LB 22
334 $ALcm $INcm; 342 $ALcm $INcm;
335 $CM+ $INcm; # by rule 10, any otherwise unattached CM behaves as AL 343 $CM+ $INcm; # by rule 10, any otherwise unattached CM behaves as AL
336 $IDcm $INcm; 344 $IDcm $INcm;
337 $INcm $INcm; 345 $INcm $INcm;
338 $NUcm $INcm; 346 $NUcm $INcm;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 $CM+ $ALcm; # The $CM+ is from rule 10, an unattached CM is treated as AL 382 $CM+ $ALcm; # The $CM+ is from rule 10, an unattached CM is treated as AL
375 383
376 # LB 29 384 # LB 29
377 $IScm $ALcm; 385 $IScm $ALcm;
378 386
379 # LB 30 387 # LB 30
380 ($ALcm | $NUcm) $OPcm; 388 ($ALcm | $NUcm) $OPcm;
381 $CM+ $OPcm; # The $CM+ is from rule 10, an unattached CM is treated as A L. 389 $CM+ $OPcm; # The $CM+ is from rule 10, an unattached CM is treated as A L.
382 $CPcm ($ALcm | $NUcm); 390 $CPcm ($ALcm | $NUcm);
383 391
392 # (LB 31) Add new rule to prevent the break we do not want, this is the behavior change
393 $HLcm ($HY | $HH) $ALcm;
384 394
385 # 395 #
386 # Reverse Rules. 396 # Reverse Rules.
387 # 397 #
388 ## ------------------------------------------------- 398 ## -------------------------------------------------
389 399
390 !!reverse; 400 !!reverse;
391 401
392 $CM+ $ALPlus; 402 $CM+ $ALPlus;
393 $CM+ $BA; 403 $CM+ $BA;
404 $CM+ $HH;
394 $CM+ $BB; 405 $CM+ $BB;
395 $CM+ $B2; 406 $CM+ $B2;
396 $CM+ $CL; 407 $CM+ $CL;
397 $CM+ $CP; 408 $CM+ $CP;
398 $CM+ $EX; 409 $CM+ $EX;
399 $CM+ $GL; 410 $CM+ $GL;
400 $CM+ $HY; 411 $CM+ $HY;
401 $CM+ $H2; 412 $CM+ $H2;
402 $CM+ $H3; 413 $CM+ $H3;
403 $CM+ $ID; 414 $CM+ $ID;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 # LB 11 483 # LB 11
473 $CM* $WJ $CM* $CAN_CM; 484 $CM* $WJ $CM* $CAN_CM;
474 $CM* $WJ [$LB8NonBreaks-$CM]; 485 $CM* $WJ [$LB8NonBreaks-$CM];
475 486
476 $CANT_CM $CM* $WJ; 487 $CANT_CM $CM* $WJ;
477 $CM* $CAN_CM $CM* $WJ; 488 $CM* $CAN_CM $CM* $WJ;
478 489
479 # LB 12a 490 # LB 12a
480 # [^SP BA HY] x GL 491 # [^SP BA HY] x GL
481 # 492 #
482 $CM* $GL $CM* [$LB8NonBreaks-[$CM $SP $BA $HY]]; 493 $CM* $GL $CM* [$LB8NonBreaks-[$CM $SP $BA $HH $HY]];
483 494
484 # LB 12 495 # LB 12
485 # GL x 496 # GL x
486 # 497 #
487 $CANT_CM $CM* $GL; 498 $CANT_CM $CM* $GL;
488 $CM* $CAN_CM $CM* $GL; 499 $CM* $CAN_CM $CM* $GL;
489 500
490 501
491 # LB 13 502 # LB 13
492 $CL $CM+ $CAN_CM; 503 $CL $CM+ $CAN_CM;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 553
543 $CM* $CAN_CM $CM* $QU; # QU x . 554 $CM* $CAN_CM $CM* $QU; # QU x .
544 $CANT_CM $CM* $QU; 555 $CANT_CM $CM* $QU;
545 556
546 # 557 #
547 # LB 20 Break before and after CB. 558 # LB 20 Break before and after CB.
548 # nothing needed here. 559 # nothing needed here.
549 # 560 #
550 561
551 # LB 21 562 # LB 21
552 $CM* ($BA | $HY | $NS) $CM* [$LB20NonBreaks-$CM]; # . x (BA | HY | NS) 563 $CM* ($BA | $HH | $HY | $NS) $CM* [$LB20NonBreaks-$CM]; # . x (BA | HY | NS )
553 564
554 $CM* [$LB20NonBreaks-$CM] $CM* $BB; # BB x . 565 $CM* [$LB20NonBreaks-$CM] $CM* $BB; # BB x .
555 [^$CB] $CM* $BB; # 566 [^$CB] $CM* $BB; #
556 567
557 568
558 569
559 # LB 22 570 # LB 22
560 $CM* $IN $CM* $ALPlus; 571 $CM* $IN $CM* $ALPlus;
561 $CM* $IN $CM* $ID; 572 $CM* $IN $CM* $ID;
562 $CM* $IN $CM* $IN; 573 $CM* $IN $CM* $IN;
(...skipping 27 matching lines...) Expand all
590 $CM* $ALPlus $CM* $ALPlus; 601 $CM* $ALPlus $CM* $ALPlus;
591 602
592 603
593 # LB 29 604 # LB 29
594 $CM* $ALPlus $CM* $IS; 605 $CM* $ALPlus $CM* $IS;
595 606
596 # LB 30 607 # LB 30
597 $CM* $OP $CM* ($ALPlus | $NU); 608 $CM* $OP $CM* ($ALPlus | $NU);
598 $CM* ($ALPlus | $NU) $CM* $CP; 609 $CM* ($ALPlus | $NU) $CM* $CP;
599 610
611 # (LB 31) Add new rule to prevent the break we do not want, this is the behavior change
612 $CM* $ALPlus ($HY | $HH) $CM* $HL;
600 613
601 ## ------------------------------------------------- 614 ## -------------------------------------------------
602 615
603 !!safe_reverse; 616 !!safe_reverse;
604 617
605 # LB 9 618 # LB 9
606 $CM+ [^$CM $BK $CR $LF $NL $ZW $SP]; 619 $CM+ [^$CM $BK $CR $LF $NL $ZW $SP];
607 $CM+ $SP / .; 620 $CM+ $SP / .;
608 621
609 # LB 14 622 # LB 14
(...skipping 24 matching lines...) Expand all
634 # of context. 647 # of context.
635 # 648 #
636 # It might be slightly more efficient to have specific rules 649 # It might be slightly more efficient to have specific rules
637 # instead of one generic one, but only if we could 650 # instead of one generic one, but only if we could
638 # turn off rule chaining. We don't want to move more 651 # turn off rule chaining. We don't want to move more
639 # than necessary. 652 # than necessary.
640 # 653 #
641 [$CM $OP $QU $CL $CP $B2 $PR $HY $SP $dictionary]+ [^$CM $OP $QU $CL $CP $B2 $PR $HY $dictionary]; 654 [$CM $OP $QU $CL $CP $B2 $PR $HY $SP $dictionary]+ [^$CM $OP $QU $CL $CP $B2 $PR $HY $dictionary];
642 $dictionary $dictionary; 655 $dictionary $dictionary;
643 656
OLDNEW
« no previous file with comments | « icu46/source/data/brkitr/brklocal.mk ('k') | icu46/source/data/brkitr/word.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698