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 }