summaryrefslogtreecommitdiff
path: root/src/thcoll/cweight.c
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2012-11-04 07:14:38 -0800
committerAnas Nashif <anas.nashif@intel.com>2012-11-04 07:14:38 -0800
commite28c3fb0c3efaee49f10d1aa87e5eb9170cdf17a (patch)
tree87c37522bc6462b73c5f327716e8063f8387ec34 /src/thcoll/cweight.c
downloadlibthai-e28c3fb0c3efaee49f10d1aa87e5eb9170cdf17a.tar.gz
libthai-e28c3fb0c3efaee49f10d1aa87e5eb9170cdf17a.tar.bz2
libthai-e28c3fb0c3efaee49f10d1aa87e5eb9170cdf17a.zip
Imported Upstream version 0.1.18upstream/0.1.18upstream
Diffstat (limited to 'src/thcoll/cweight.c')
-rw-r--r--src/thcoll/cweight.c485
1 files changed, 485 insertions, 0 deletions
diff --git a/src/thcoll/cweight.c b/src/thcoll/cweight.c
new file mode 100644
index 0000000..09dc054
--- /dev/null
+++ b/src/thcoll/cweight.c
@@ -0,0 +1,485 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * libthai - Thai Language Support Library
+ * Copyright (C) 2001 Theppitak Karoonboonyanan <thep@linux.thai.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * cweight.c - Thai Character Weight Table for TIS-620/2533 Collating
+ * Created: 9 Nov 1998
+ * Author: Theppitak Karoonboonyanan <thep@linux.thai.net>
+ */
+
+/*
+ * The ordering algorithm is in accordance
+ * with the Thai Royal Institute Dictionary
+ * 2525 B.E. Edition
+ */
+
+#include <assert.h>
+#include "cweight.h"
+
+#define TOT_CHARS 256
+
+/* level 1 symbols & order */
+enum l1_symbols {
+ L1_08 = TOT_LEVELS,
+ L1_18,
+ L1_28,
+ L1_38,
+ L1_48,
+ L1_58,
+ L1_68,
+ L1_78,
+ L1_88,
+ L1_98,
+ L1_A8,
+ L1_B8,
+ L1_C8,
+ L1_D8,
+ L1_E8,
+ L1_F8,
+ L1_G8,
+ L1_H8,
+ L1_I8,
+ L1_J8,
+ L1_K8,
+ L1_L8,
+ L1_M8,
+ L1_N8,
+ L1_O8,
+ L1_P8,
+ L1_Q8,
+ L1_R8,
+ L1_S8,
+ L1_T8,
+ L1_U8,
+ L1_V8,
+ L1_W8,
+ L1_X8,
+ L1_Y8,
+ L1_Z8,
+ L1_KO_KAI,
+ L1_KHO_KHAI,
+ L1_KHO_KHUAT,
+ L1_KHO_KHWAI,
+ L1_KHO_KHON,
+ L1_KHO_RAKHANG,
+ L1_NGO_NGU,
+ L1_CHO_CHAN,
+ L1_CHO_CHING,
+ L1_CHO_CHANG,
+ L1_SO_SO,
+ L1_CHO_CHOE,
+ L1_YO_YING,
+ L1_DO_CHADA,
+ L1_TO_PATAK,
+ L1_THO_THAN,
+ L1_THO_NANGMONTHO,
+ L1_THO_PHUTHAO,
+ L1_NO_NEN,
+ L1_DO_DEK,
+ L1_TO_TAO,
+ L1_THO_THUNG,
+ L1_THO_THAHAN,
+ L1_THO_THONG,
+ L1_NO_NU,
+ L1_BO_BAIMAI,
+ L1_PO_PLA,
+ L1_PHO_PHUNG,
+ L1_FO_FA,
+ L1_PHO_PHAN,
+ L1_FO_FAN,
+ L1_PHO_SAMPHAO,
+ L1_MO_MA,
+ L1_YO_YAK,
+ L1_RO_RUA,
+ L1_RU,
+ L1_LO_LING,
+ L1_LU,
+ L1_WO_WAEN,
+ L1_SO_SALA,
+ L1_SO_RUSI,
+ L1_SO_SUA,
+ L1_HO_HIP,
+ L1_LO_CHULA,
+ L1_O_ANG,
+ L1_HO_NOKHUK,
+ L1_NKHIT,
+ L1_SARA_A,
+ L1_MAI_HAN_AKAT,
+ L1_SARA_AA,
+ L1_SARA_AM,
+ L1_SARA_I,
+ L1_SARA_II,
+ L1_SARA_UE,
+ L1_SARA_UEE,
+ L1_SARA_U,
+ L1_SARA_UU,
+ L1_SARA_E,
+ L1_SARA_AE,
+ L1_SARA_O,
+ L1_SARA_AI_MAIMUAN,
+ L1_SARA_AI_MAIMALAI
+};
+
+/* level 2 symbols & order */
+enum l2_symbols {
+ L2_BLANK = TOT_LEVELS,
+ L2_THAII,
+ L2_YAMAK,
+ L2_PINTU,
+ L2_GARAN,
+ L2_TYKHU,
+ L2_TONE1,
+ L2_TONE2,
+ L2_TONE3,
+ L2_TONE4
+};
+
+/* level 3 symbols & order */
+enum l3_symbols {
+ L3_BLANK = TOT_LEVELS,
+ L3_SPACE,
+ L3_NB_SACE,
+ L3_LOW_LINE,
+ L3_HYPHEN,
+ L3_COMMA,
+ L3_SEMICOLON,
+ L3_COLON,
+ L3_EXCLAMATION,
+ L3_QUESTION,
+ L3_SOLIDUS,
+ L3_FULL_STOP,
+ L3_PAIYAN_NOI,
+ L3_MAI_YAMOK,
+ L3_GRAVE,
+ L3_CIRCUMFLEX,
+ L3_TILDE,
+ L3_APOSTROPHE,
+ L3_QUOTATION,
+ L3_L_PARANTHESIS,
+ L3_L_BRACKET,
+ L3_L_BRACE,
+ L3_R_BRACE,
+ L3_R_BRACKET,
+ L3_R_PARENTHESIS,
+ L3_AT,
+ L3_BAHT,
+ L3_DOLLAR,
+ L3_FONGMAN,
+ L3_ANGKHANKHU,
+ L3_KHOMUT,
+ L3_ASTERISK,
+ L3_BK_SOLIDUS,
+ L3_AMPERSAND,
+ L3_NUMBER,
+ L3_PERCENT,
+ L3_PLUS,
+ L3_LESS_THAN,
+ L3_EQUAL,
+ L3_GREATER_THAN,
+ L3_V_LINE
+};
+
+/* level 4 symbols & order */
+enum l4_symbols {
+ L4_BLK = TOT_LEVELS,
+ L4_MIN,
+ L4_CAP,
+ L4_EXT
+};
+
+
+static thchar_t char_weight_tbl_[TOT_CHARS][TOT_LEVELS] = {
+ /*0x00*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x01*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x02*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x03*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x04*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x05*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x06*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x07*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x08*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x09*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x0A*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x0B*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x0C*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x0D*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x0E*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x0F*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x10*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x11*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x12*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x13*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x14*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x15*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x16*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x17*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x18*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x19*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x1A*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x1B*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x1C*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x1D*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x1E*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x1F*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x20*/ { IGNORE, IGNORE, L3_SPACE, IGNORE }, /* */
+ /*0x21*/ { IGNORE, IGNORE, L3_EXCLAMATION, IGNORE }, /* ! */
+ /*0x22*/ { IGNORE, IGNORE, L3_QUOTATION, IGNORE }, /* " */
+ /*0x23*/ { IGNORE, IGNORE, L3_NUMBER, IGNORE }, /* # */
+ /*0x24*/ { IGNORE, IGNORE, L3_DOLLAR, IGNORE }, /* $ */
+ /*0x25*/ { IGNORE, IGNORE, L3_PERCENT, IGNORE }, /* % */
+ /*0x26*/ { IGNORE, IGNORE, L3_AMPERSAND, IGNORE }, /* & */
+ /*0x27*/ { IGNORE, IGNORE, L3_APOSTROPHE, IGNORE }, /* ' */
+ /*0x28*/ { IGNORE, IGNORE, L3_L_PARANTHESIS, IGNORE }, /* ( */
+ /*0x29*/ { IGNORE, IGNORE, L3_R_PARENTHESIS, IGNORE }, /* ) */
+ /*0x2A*/ { IGNORE, IGNORE, L3_ASTERISK, IGNORE }, /* * */
+ /*0x2B*/ { IGNORE, IGNORE, L3_PLUS, IGNORE }, /* + */
+ /*0x2C*/ { IGNORE, IGNORE, L3_COMMA, IGNORE }, /* , */
+ /*0x2D*/ { IGNORE, IGNORE, L3_HYPHEN, IGNORE }, /* _ */
+ /*0x2E*/ { IGNORE, IGNORE, L3_FULL_STOP, IGNORE }, /* . */
+ /*0x2F*/ { IGNORE, IGNORE, L3_SOLIDUS, IGNORE }, /* / */
+ /*0x30*/ { L1_08, L2_BLANK, L3_BLANK, L4_BLK }, /* 0 */
+ /*0x31*/ { L1_18, L2_BLANK, L3_BLANK, L4_BLK }, /* 1 */
+ /*0x32*/ { L1_28, L2_BLANK, L3_BLANK, L4_BLK }, /* 2 */
+ /*0x33*/ { L1_38, L2_BLANK, L3_BLANK, L4_BLK }, /* 3 */
+ /*0x34*/ { L1_48, L2_BLANK, L3_BLANK, L4_BLK }, /* 4 */
+ /*0x35*/ { L1_58, L2_BLANK, L3_BLANK, L4_BLK }, /* 5 */
+ /*0x36*/ { L1_68, L2_BLANK, L3_BLANK, L4_BLK }, /* 6 */
+ /*0x37*/ { L1_78, L2_BLANK, L3_BLANK, L4_BLK }, /* 7 */
+ /*0x38*/ { L1_88, L2_BLANK, L3_BLANK, L4_BLK }, /* 8 */
+ /*0x39*/ { L1_98, L2_BLANK, L3_BLANK, L4_BLK }, /* 9 */
+ /*0x3A*/ { IGNORE, IGNORE, L3_COLON, IGNORE }, /* : */
+ /*0x3B*/ { IGNORE, IGNORE, L3_SEMICOLON, IGNORE }, /* ; */
+ /*0x3C*/ { IGNORE, IGNORE, L3_LESS_THAN, IGNORE }, /* < */
+ /*0x3D*/ { IGNORE, IGNORE, L3_EQUAL, IGNORE }, /* = */
+ /*0x3E*/ { IGNORE, IGNORE, L3_GREATER_THAN, IGNORE }, /* > */
+ /*0x3F*/ { IGNORE, IGNORE, L3_QUESTION, IGNORE }, /* ? */
+ /*0x40*/ { IGNORE, IGNORE, L3_AT, IGNORE }, /* @ */
+ /*0x41*/ { L1_A8, L2_BLANK, L3_BLANK, L4_CAP }, /* A */
+ /*0x42*/ { L1_B8, L2_BLANK, L3_BLANK, L4_CAP }, /* B */
+ /*0x43*/ { L1_C8, L2_BLANK, L3_BLANK, L4_CAP }, /* C */
+ /*0x44*/ { L1_D8, L2_BLANK, L3_BLANK, L4_CAP }, /* D */
+ /*0x45*/ { L1_E8, L2_BLANK, L3_BLANK, L4_CAP }, /* E */
+ /*0x46*/ { L1_F8, L2_BLANK, L3_BLANK, L4_CAP }, /* F */
+ /*0x47*/ { L1_G8, L2_BLANK, L3_BLANK, L4_CAP }, /* G */
+ /*0x48*/ { L1_H8, L2_BLANK, L3_BLANK, L4_CAP }, /* H */
+ /*0x49*/ { L1_I8, L2_BLANK, L3_BLANK, L4_CAP }, /* I */
+ /*0x4A*/ { L1_J8, L2_BLANK, L3_BLANK, L4_CAP }, /* J */
+ /*0x4B*/ { L1_K8, L2_BLANK, L3_BLANK, L4_CAP }, /* K */
+ /*0x4C*/ { L1_L8, L2_BLANK, L3_BLANK, L4_CAP }, /* L */
+ /*0x4D*/ { L1_M8, L2_BLANK, L3_BLANK, L4_CAP }, /* M */
+ /*0x4E*/ { L1_N8, L2_BLANK, L3_BLANK, L4_CAP }, /* N */
+ /*0x4F*/ { L1_O8, L2_BLANK, L3_BLANK, L4_CAP }, /* O */
+ /*0x50*/ { L1_P8, L2_BLANK, L3_BLANK, L4_CAP }, /* P */
+ /*0x51*/ { L1_Q8, L2_BLANK, L3_BLANK, L4_CAP }, /* Q */
+ /*0x52*/ { L1_R8, L2_BLANK, L3_BLANK, L4_CAP }, /* R */
+ /*0x53*/ { L1_S8, L2_BLANK, L3_BLANK, L4_CAP }, /* S */
+ /*0x54*/ { L1_T8, L2_BLANK, L3_BLANK, L4_CAP }, /* T */
+ /*0x55*/ { L1_U8, L2_BLANK, L3_BLANK, L4_CAP }, /* U */
+ /*0x56*/ { L1_V8, L2_BLANK, L3_BLANK, L4_CAP }, /* V */
+ /*0x57*/ { L1_W8, L2_BLANK, L3_BLANK, L4_CAP }, /* W */
+ /*0x58*/ { L1_X8, L2_BLANK, L3_BLANK, L4_CAP }, /* X */
+ /*0x59*/ { L1_Y8, L2_BLANK, L3_BLANK, L4_CAP }, /* Y */
+ /*0x5A*/ { L1_Z8, L2_BLANK, L3_BLANK, L4_CAP }, /* Z */
+ /*0x5B*/ { IGNORE, IGNORE, L3_L_BRACKET, IGNORE }, /* [ */
+ /*0x5C*/ { IGNORE, IGNORE, L3_BK_SOLIDUS, IGNORE }, /* '\' */
+ /*0x5D*/ { IGNORE, IGNORE, L3_R_BRACKET, IGNORE }, /* ] */
+ /*0x5E*/ { IGNORE, IGNORE, L3_CIRCUMFLEX, IGNORE }, /* ^ */
+ /*0x5F*/ { IGNORE, IGNORE, L3_LOW_LINE, IGNORE }, /* _ */
+ /*0x60*/ { IGNORE, IGNORE, L3_GRAVE, IGNORE }, /* ` */
+ /*0x61*/ { L1_A8, L2_BLANK, L3_BLANK, L4_MIN }, /* a */
+ /*0x62*/ { L1_B8, L2_BLANK, L3_BLANK, L4_MIN }, /* b */
+ /*0x63*/ { L1_C8, L2_BLANK, L3_BLANK, L4_MIN }, /* c */
+ /*0x64*/ { L1_D8, L2_BLANK, L3_BLANK, L4_MIN }, /* d */
+ /*0x65*/ { L1_E8, L2_BLANK, L3_BLANK, L4_MIN }, /* e */
+ /*0x66*/ { L1_F8, L2_BLANK, L3_BLANK, L4_MIN }, /* f */
+ /*0x67*/ { L1_G8, L2_BLANK, L3_BLANK, L4_MIN }, /* g */
+ /*0x68*/ { L1_H8, L2_BLANK, L3_BLANK, L4_MIN }, /* h */
+ /*0x69*/ { L1_I8, L2_BLANK, L3_BLANK, L4_MIN }, /* i */
+ /*0x6A*/ { L1_J8, L2_BLANK, L3_BLANK, L4_MIN }, /* j */
+ /*0x6B*/ { L1_K8, L2_BLANK, L3_BLANK, L4_MIN }, /* k */
+ /*0x6C*/ { L1_L8, L2_BLANK, L3_BLANK, L4_MIN }, /* l */
+ /*0x6D*/ { L1_M8, L2_BLANK, L3_BLANK, L4_MIN }, /* m */
+ /*0x6E*/ { L1_N8, L2_BLANK, L3_BLANK, L4_MIN }, /* n */
+ /*0x6F*/ { L1_O8, L2_BLANK, L3_BLANK, L4_MIN }, /* o */
+ /*0x70*/ { L1_P8, L2_BLANK, L3_BLANK, L4_MIN }, /* p */
+ /*0x71*/ { L1_Q8, L2_BLANK, L3_BLANK, L4_MIN }, /* q */
+ /*0x72*/ { L1_R8, L2_BLANK, L3_BLANK, L4_MIN }, /* r */
+ /*0x73*/ { L1_S8, L2_BLANK, L3_BLANK, L4_MIN }, /* s */
+ /*0x74*/ { L1_T8, L2_BLANK, L3_BLANK, L4_MIN }, /* t */
+ /*0x75*/ { L1_U8, L2_BLANK, L3_BLANK, L4_MIN }, /* u */
+ /*0x76*/ { L1_V8, L2_BLANK, L3_BLANK, L4_MIN }, /* v */
+ /*0x77*/ { L1_W8, L2_BLANK, L3_BLANK, L4_MIN }, /* w */
+ /*0x78*/ { L1_X8, L2_BLANK, L3_BLANK, L4_MIN }, /* x */
+ /*0x79*/ { L1_Y8, L2_BLANK, L3_BLANK, L4_MIN }, /* y */
+ /*0x7A*/ { L1_Z8, L2_BLANK, L3_BLANK, L4_MIN }, /* z */
+ /*0x7B*/ { IGNORE, IGNORE, L3_L_BRACE, IGNORE }, /* { */
+ /*0x7C*/ { IGNORE, IGNORE, L3_V_LINE, IGNORE }, /* | */
+ /*0x7D*/ { IGNORE, IGNORE, L3_R_BRACE, IGNORE }, /* } */
+ /*0x7E*/ { IGNORE, IGNORE, L3_TILDE, IGNORE }, /* ~ */
+ /*0x7F*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x80*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x81*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x82*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x83*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x84*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x85*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x86*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x87*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x88*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x89*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x8A*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x8B*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x8C*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x8D*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x8E*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x8F*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x90*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x91*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x92*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x93*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x94*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x95*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x96*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x97*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x98*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x99*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x9A*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x9B*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x9C*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x9D*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x9E*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0x9F*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0xA0*/ { IGNORE, IGNORE, L3_NB_SACE, IGNORE }, /* NBSP */
+ /*0xA1*/ { L1_KO_KAI, L2_BLANK, L3_BLANK, L4_BLK }, /* KO KAI */
+ /*0xA2*/ { L1_KHO_KHAI, L2_BLANK, L3_BLANK, L4_BLK }, /* KHO KHAI */
+ /*0xA3*/ { L1_KHO_KHUAT, L2_BLANK, L3_BLANK, L4_BLK }, /* KHO KHUAT */
+ /*0xA4*/ { L1_KHO_KHWAI, L2_BLANK, L3_BLANK, L4_BLK }, /* KHO KHWAI */
+ /*0xA5*/ { L1_KHO_KHON, L2_BLANK, L3_BLANK, L4_BLK }, /* KHO KHON */
+ /*0xA6*/ { L1_KHO_RAKHANG, L2_BLANK, L3_BLANK, L4_BLK }, /* KHO RAKHANG */
+ /*0xA7*/ { L1_NGO_NGU, L2_BLANK, L3_BLANK, L4_BLK }, /* NGO NGU */
+ /*0xA8*/ { L1_CHO_CHAN, L2_BLANK, L3_BLANK, L4_BLK }, /* CHO CHAN */
+ /*0xA9*/ { L1_CHO_CHING, L2_BLANK, L3_BLANK, L4_BLK }, /* CHO CHING */
+ /*0xAA*/ { L1_CHO_CHANG, L2_BLANK, L3_BLANK, L4_BLK }, /* CHO CHANG */
+ /*0xAB*/ { L1_SO_SO, L2_BLANK, L3_BLANK, L4_BLK }, /* SO SO */
+ /*0xAC*/ { L1_CHO_CHOE, L2_BLANK, L3_BLANK, L4_BLK }, /* CHO CHOE */
+ /*0xAD*/ { L1_YO_YING, L2_BLANK, L3_BLANK, L4_BLK }, /* YO YING */
+ /*0xAE*/ { L1_DO_CHADA, L2_BLANK, L3_BLANK, L4_BLK }, /* DO CHADA */
+ /*0xAF*/ { L1_TO_PATAK, L2_BLANK, L3_BLANK, L4_BLK }, /* TO PATAK */
+ /*0xB0*/ { L1_THO_THAN, L2_BLANK, L3_BLANK, L4_BLK }, /* THO THAN */
+ /*0xB1*/ { L1_THO_NANGMONTHO, L2_BLANK, L3_BLANK, L4_BLK }, /* THO NANGMONTHO */
+ /*0xB2*/ { L1_THO_PHUTHAO, L2_BLANK, L3_BLANK, L4_BLK }, /* THO PHUTHAO */
+ /*0xB3*/ { L1_NO_NEN, L2_BLANK, L3_BLANK, L4_BLK }, /* NO NEN */
+ /*0xB4*/ { L1_DO_DEK, L2_BLANK, L3_BLANK, L4_BLK }, /* DO DEK */
+ /*0xB5*/ { L1_TO_TAO, L2_BLANK, L3_BLANK, L4_BLK }, /* TO TAO */
+ /*0xB6*/ { L1_THO_THUNG, L2_BLANK, L3_BLANK, L4_BLK }, /* THO THUNG */
+ /*0xB7*/ { L1_THO_THAHAN, L2_BLANK, L3_BLANK, L4_BLK }, /* THO THAHAN */
+ /*0xB8*/ { L1_THO_THONG, L2_BLANK, L3_BLANK, L4_BLK }, /* THO THONG */
+ /*0xB9*/ { L1_NO_NU, L2_BLANK, L3_BLANK, L4_BLK }, /* NO NU */
+ /*0xBA*/ { L1_BO_BAIMAI, L2_BLANK, L3_BLANK, L4_BLK }, /* BO BAIMAI */
+ /*0xBB*/ { L1_PO_PLA, L2_BLANK, L3_BLANK, L4_BLK }, /* PO PLA */
+ /*0xBC*/ { L1_PHO_PHUNG, L2_BLANK, L3_BLANK, L4_BLK }, /* PHO PHUNG */
+ /*0xBD*/ { L1_FO_FA, L2_BLANK, L3_BLANK, L4_BLK }, /* FO FA */
+ /*0xBE*/ { L1_PHO_PHAN, L2_BLANK, L3_BLANK, L4_BLK }, /* PHO PHAN */
+ /*0xBF*/ { L1_FO_FAN, L2_BLANK, L3_BLANK, L4_BLK }, /* FO FAN */
+ /*0xC0*/ { L1_PHO_SAMPHAO, L2_BLANK, L3_BLANK, L4_BLK }, /* PHO SAMPHAO */
+ /*0xC1*/ { L1_MO_MA, L2_BLANK, L3_BLANK, L4_BLK }, /* MO MA */
+ /*0xC2*/ { L1_YO_YAK, L2_BLANK, L3_BLANK, L4_BLK }, /* YO YAK */
+ /*0xC3*/ { L1_RO_RUA, L2_BLANK, L3_BLANK, L4_BLK }, /* RO RUA */
+ /*0xC4*/ { L1_RU, L2_BLANK, L3_BLANK, L4_BLK }, /* RU */
+ /*0xC5*/ { L1_LO_LING, L2_BLANK, L3_BLANK, L4_BLK }, /* LO LING */
+ /*0xC6*/ { L1_LU, L2_BLANK, L3_BLANK, L4_BLK }, /* LU */
+ /*0xC7*/ { L1_WO_WAEN, L2_BLANK, L3_BLANK, L4_BLK }, /* WO WAEN */
+ /*0xC8*/ { L1_SO_SALA, L2_BLANK, L3_BLANK, L4_BLK }, /* SO SALA */
+ /*0xC9*/ { L1_SO_RUSI, L2_BLANK, L3_BLANK, L4_BLK }, /* SO RUSI */
+ /*0xCA*/ { L1_SO_SUA, L2_BLANK, L3_BLANK, L4_BLK }, /* SO SUA */
+ /*0xCB*/ { L1_HO_HIP, L2_BLANK, L3_BLANK, L4_BLK }, /* HO HIP */
+ /*0xCC*/ { L1_LO_CHULA, L2_BLANK, L3_BLANK, L4_BLK }, /* LO CHULA */
+ /*0xCD*/ { L1_O_ANG, L2_BLANK, L3_BLANK, L4_BLK }, /* O ANG */
+ /*0xCE*/ { L1_HO_NOKHUK, L2_BLANK, L3_BLANK, L4_BLK }, /* HO NOKHUK */
+ /*0xCF*/ { IGNORE, IGNORE, L3_PAIYAN_NOI, IGNORE }, /* PAIYANNOI */
+ /*0xD0*/ { L1_SARA_A, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA A */
+ /*0xD1*/ { L1_MAI_HAN_AKAT, L2_BLANK, L3_BLANK, L4_BLK }, /* MAI HAN-AKAT */
+ /*0xD2*/ { L1_SARA_AA, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA AA */
+ /*0xD3*/ { L1_SARA_AM, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA AM */
+ /*0xD4*/ { L1_SARA_I, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA I */
+ /*0xD5*/ { L1_SARA_II, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA II */
+ /*0xD6*/ { L1_SARA_UE, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA UE */
+ /*0xD7*/ { L1_SARA_UEE, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA UEE */
+ /*0xD8*/ { L1_SARA_U, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA U */
+ /*0xD9*/ { L1_SARA_UU, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA UU */
+ /*0xDA*/ { IGNORE, L2_PINTU, L3_BLANK, L4_BLK }, /* PHINTHU */
+ /*0xDB*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0xDC*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0xDD*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0xDE*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0xDF*/ { IGNORE, IGNORE, L3_BAHT, IGNORE }, /* BAHT */
+ /*0xE0*/ { L1_SARA_E, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA E */
+ /*0xE1*/ { L1_SARA_AE, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA AE */
+ /*0xE2*/ { L1_SARA_O, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA O */
+ /*0xE3*/ { L1_SARA_AI_MAIMUAN, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA AI MAIMUAN */
+ /*0xE4*/ { L1_SARA_AI_MAIMALAI, L2_BLANK, L3_BLANK, L4_BLK }, /* SARA AI MAIMALAI */
+ /*0xE5*/ { L1_SARA_AA, L2_BLANK, L3_BLANK, L4_EXT }, /* LAKKHANG YAO */
+ /*0xE6*/ { IGNORE, IGNORE, L3_MAI_YAMOK, IGNORE }, /* MAIYAMOK */
+ /*0xE7*/ { IGNORE, L2_TYKHU, L3_BLANK, L4_BLK }, /* MAITAIKHU */
+ /*0xE8*/ { IGNORE, L2_TONE1, L3_BLANK, L4_BLK }, /* MAI EK */
+ /*0xE9*/ { IGNORE, L2_TONE2, L3_BLANK, L4_BLK }, /* MAI THO */
+ /*0xEA*/ { IGNORE, L2_TONE3, L3_BLANK, L4_BLK }, /* MAI TRI */
+ /*0xEB*/ { IGNORE, L2_TONE4, L3_BLANK, L4_BLK }, /* MAI CHATTAWA */
+ /*0xEC*/ { IGNORE, L2_GARAN, L3_BLANK, L4_BLK }, /* THANTHAKHAT */
+ /*0xED*/ { L1_NKHIT, L2_BLANK, L3_BLANK, L4_BLK }, /* NIKHAHIT */
+ /*0xEE*/ { IGNORE, L2_YAMAK, L3_BLANK, L4_BLK }, /* YAMAKKAN */
+ /*0xEF*/ { IGNORE, IGNORE, L3_FONGMAN, IGNORE }, /* FONGMAN */
+ /*0xF0*/ { L1_08, L2_THAII, L3_BLANK, L4_BLK }, /* THAI DIGIT ZERO */
+ /*0xF1*/ { L1_18, L2_THAII, L3_BLANK, L4_BLK }, /* THAI DIGIT ONE */
+ /*0xF2*/ { L1_28, L2_THAII, L3_BLANK, L4_BLK }, /* THAI DIGIT TWO */
+ /*0xF3*/ { L1_38, L2_THAII, L3_BLANK, L4_BLK }, /* THAI DIGIT THREE */
+ /*0xF4*/ { L1_48, L2_THAII, L3_BLANK, L4_BLK }, /* THAI DIGIT FOUR */
+ /*0xF5*/ { L1_58, L2_THAII, L3_BLANK, L4_BLK }, /* THAI DIGIT FIVE */
+ /*0xF6*/ { L1_68, L2_THAII, L3_BLANK, L4_BLK }, /* THAI DIGIT SIX */
+ /*0xF7*/ { L1_78, L2_THAII, L3_BLANK, L4_BLK }, /* THAI DIGIT SEVEN */
+ /*0xF8*/ { L1_88, L2_THAII, L3_BLANK, L4_BLK }, /* THAI DIGIT EIGHT */
+ /*0xF9*/ { L1_98, L2_THAII, L3_BLANK, L4_BLK }, /* THAI DIGIT NINE */
+ /*0xFA*/ { IGNORE, IGNORE, L3_ANGKHANKHU, IGNORE }, /* ANGKHANKHU */
+ /*0xFB*/ { IGNORE, IGNORE, L3_KHOMUT, IGNORE }, /* KHOMUT */
+ /*0xFC*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0xFD*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0xFE*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+ /*0xFF*/ { IGNORE, IGNORE, IGNORE, IGNORE }, /* ***IGNORED*** */
+};
+
+
+thchar_t
+th_char_weight_(thchar_t c, int level)
+{
+ if (0 <= level && level < TOT_LEVELS)
+ return char_weight_tbl_[c][level];
+ return IGNORE;
+}
+
+thchar_t
+th_char_weight_delim_(int level)
+{
+ assert(0 <= level && level < TOT_LEVELS);
+ return (thchar_t)(TOT_LEVELS - level);
+}
+
+/*
+vi:ts=4:ai:expandtab
+*/