1 /* 2 * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 /* 27 */ 28 29 /* 30 * (C) Copyright IBM Corp. 1999 All Rights Reserved. 31 */ 32 33 /* 34 * Since JDK 1.5.0, this file no longer goes to runtime and is used at J2SE 35 * build phase in order to create [Word|Line]BreakIteratorData_th files which 36 * are used on runtime instead. 37 */ 38 39 package sun.text.resources.th; 40 41 import java.util.ListResourceBundle; 42 import java.util.MissingResourceException; 43 import java.net.URL; 44 45 public class BreakIteratorRules_th extends ListResourceBundle { 46 protected final Object[][] getContents() { 47 return new Object[][] { 48 { "WordBreakRules", 49 // this rule breaks the iterator with mixed Thai and English 50 "<dictionary>=[\u0e01-\u0e2e\u0e30-\u0e3a\u0e40-\u0e44\u0e47-\u0e4e];" 51 52 + "<ignore>=[:Mn::Me::Cf:^<dictionary>];" 53 + "<paiyannoi>=[\u0e2f];" 54 + "<maiyamok>=[\u0e46];" 55 + "<danda>=[\u0964\u0965];" 56 + "<kanji>=[\u3005\u4e00-\u9fa5\uf900-\ufa2d];" 57 + "<kata>=[\u30a1-\u30fa];" 58 + "<hira>=[\u3041-\u3094];" 59 + "<cjk-diacrit>=[\u3099-\u309c];" 60 + "<let>=[:L::Mc:^[<kanji><kata><hira><cjk-diacrit><dictionary>]];" 61 + "<dgt>=[:N:];" 62 + "<mid-word>=[:Pd:\u00ad\u2027\\\"\\\'\\.];" 63 + "<mid-num>=[\\\"\\\'\\,\u066b\\.];" 64 + "<pre-num>=[:Sc:\\#\\.^\u00a2];" 65 + "<post-num>=[\\%\\&\u00a2\u066a\u2030\u2031];" 66 + "<ls>=[\n\u000c\u2028\u2029];" 67 + "<ws>=[:Zs:\t];" 68 + "<word>=((<let><let>*(<mid-word><let><let>*)*){<danda>});" 69 + "<number>=(<dgt><dgt>*(<mid-num><dgt><dgt>*)*);" 70 + "<thai-etc>=<paiyannoi>\u0e25<paiyannoi>;" 71 + ".;" 72 + "{<word>}(<number><word>)*{<number>{<post-num>}};" 73 + "<pre-num>(<number><word>)*{<number>{<post-num>}};" 74 + "<dictionary><dictionary>*{{<paiyannoi>}<maiyamok>};" 75 + "<dictionary><dictionary>*<paiyannoi>/([^[\u0e25<ignore>]]" 76 + "|\u0e25[^[<paiyannoi><ignore>]]);" 77 + "<thai-etc>;" 78 + "<ws>*{\r}{<ls>};" 79 + "[<kata><cjk-diacrit>]*;" 80 + "[<hira><cjk-diacrit>]*;" 81 + "<kanji>*;" 82 }, 83 84 { "LineBreakRules", 85 "<dictionary>=[\u0e01-\u0e2e\u0e30-\u0e3a\u0e40-\u0e44\u0e47-\u0e4e];" // this rule breaks the iterator with mixed Thai and English 86 + "<ignore>=[:Mn::Me::Cf:^[<dictionary>]];" 87 + "<danda>=[\u0964\u0965];" 88 + "<break>=[\u0003\t\n\f\u2028\u2029];" 89 + "<nbsp>=[\u00a0\u0f0c\u2007\u2011\u202f\ufeff];" 90 + "<space>=[:Zs::Cc:^[<nbsp><break>\r]];" 91 + "<dash>=[:Pd:\u00ad^<nbsp>];" 92 + "<paiyannoi>=[\u0e2f];" 93 + "<maiyamok>=[\u0e46];" 94 + "<thai-etc>=(<paiyannoi>\u0e25<paiyannoi>);" 95 + "<pre-word>=[:Sc::Ps::Pi:^\u00a2\\\"];" 96 + "<post-word>=[:Pe::Pf:\\!\\%\\.\\,\\:\\;\\?\\\"\u00a2\u00b0\u066a\u2030-\u2034\u2103" 97 + "\u2105\u2109\u3001\u3002\u3005\u3041\u3043\u3045\u3047\u3049\u3063" 98 + "\u3083\u3085\u3087\u308e\u3099-\u309e\u30a1\u30a3\u30a5\u30a7\u30a9" 99 + "\u30c3\u30e3\u30e5\u30e7\u30ee\u30f5\u30f6\u30fc-\u30fe\uff01\uff0e" 100 + "\uff1f<maiyamok>];" 101 + "<kanji>=[\u4e00-\u9fa5\uf900-\ufa2d\u3041-\u3094\u30a1-\u30fa^[<post-word><ignore>]];" 102 + "<digit>=[:Nd::No:];" 103 + "<mid-num>=[\\.\\,];" 104 + "<char>=[^[<break><space><dash><kanji><nbsp><ignore><pre-word><post-word>" 105 + "<mid-num>\r<danda><dictionary><paiyannoi><maiyamok>]];" 106 + "<number>=([<pre-word><dash>]*<digit><digit>*(<mid-num><digit><digit>*)*);" 107 + "<word-core>=(<char>*|<kanji>|<number>|<dictionary><dictionary>*|<thai-etc>);" 108 + "<word-suffix>=((<dash><dash>*|<post-word>*)<space>*);" 109 + "<word>=(<pre-word>*<word-core><word-suffix>);" 110 + "<word>(<nbsp><nbsp>*<word>)*{({\r}{<break>}|<paiyannoi>\r{break}|<paiyannoi><break>)};" 111 + "<word>(<nbsp><nbsp>*<word>)*<paiyannoi>/([^[\u0e25<ignore>]]|" 112 + "\u0e25[^[<paiyannoi><ignore>]]);" 113 } 114 }; 115 } 116 }