| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
|
|
|
|
|
|
package Regexp::CharClasses::Thai; |
|
2
|
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
# Regexp::CharClasses::Thai is designed to enable detailed |
|
4
|
|
|
|
|
|
|
# regular expressions, with the ability to identify important |
|
5
|
|
|
|
|
|
|
# characteristics of Thai alphabetic characters, digits and symbols. |
|
6
|
|
|
|
|
|
|
# |
|
7
|
|
|
|
|
|
|
# Copyright (C) 2023 Erik Mundall |
|
8
|
|
|
|
|
|
|
# |
|
9
|
|
|
|
|
|
|
# This program is free software: you can redistribute it and/or |
|
10
|
|
|
|
|
|
|
# modify it under the terms of the GNU General Public License as |
|
11
|
|
|
|
|
|
|
# published by the Free Software Foundation, either version 3 of |
|
12
|
|
|
|
|
|
|
# the License, or (at your option) any later version. |
|
13
|
|
|
|
|
|
|
# |
|
14
|
|
|
|
|
|
|
# This program is distributed in the hope that it will be useful, |
|
15
|
|
|
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
16
|
|
|
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
17
|
|
|
|
|
|
|
# GNU General Public License for more details. |
|
18
|
|
|
|
|
|
|
# |
|
19
|
|
|
|
|
|
|
# You should have received a copy of the GNU General Public License |
|
20
|
|
|
|
|
|
|
# along with this program. If not, see: https://www.gnu.org/licenses/. |
|
21
|
|
|
|
|
|
|
|
|
22
|
|
|
|
|
|
|
|
|
23
|
1
|
|
|
1
|
|
8186
|
use 5.008003; |
|
|
1
|
|
|
|
|
3
|
|
|
24
|
1
|
|
|
1
|
|
4
|
use strict; |
|
|
1
|
|
|
|
|
1
|
|
|
|
1
|
|
|
|
|
21
|
|
|
25
|
1
|
|
|
1
|
|
3
|
use warnings; |
|
|
1
|
|
|
|
|
1
|
|
|
|
1
|
|
|
|
|
81
|
|
|
26
|
1
|
|
|
1
|
|
5
|
use utf8; |
|
|
1
|
|
|
|
|
1
|
|
|
|
1
|
|
|
|
|
5
|
|
|
27
|
1
|
|
|
1
|
|
24
|
use Exporter; |
|
|
1
|
|
|
|
|
2
|
|
|
|
1
|
|
|
|
|
2805
|
|
|
28
|
|
|
|
|
|
|
|
|
29
|
|
|
|
|
|
|
our @ISA = qw(Exporter); |
|
30
|
|
|
|
|
|
|
|
|
31
|
|
|
|
|
|
|
our %EXPORT_TAGS = ( |
|
32
|
|
|
|
|
|
|
|
|
33
|
|
|
|
|
|
|
classes => |
|
34
|
|
|
|
|
|
|
[ qw(InThai InThaiAlpha InThaiWord InThaiCons InThaiHCons |
|
35
|
|
|
|
|
|
|
InThaiMCons InThaiLCons InThaiVowel InThaiPreVowel |
|
36
|
|
|
|
|
|
|
InThaiPostVowel InThaiCompVowel InThaiDigit InThaiTone |
|
37
|
|
|
|
|
|
|
InThaiMute InThaiPunct InThaiCurrency InThaiFinCons |
|
38
|
|
|
|
|
|
|
InThaiDualCons InThaiDualC1 InThaiDualC2 InThaiConsVowel |
|
39
|
|
|
|
|
|
|
|
|
40
|
|
|
|
|
|
|
IsThai IsThaiAlpha IsThaiWord IsThaiCons IsThaiHCons |
|
41
|
|
|
|
|
|
|
IsThaiMCons IsThaiLCons IsThaiVowel IsThaiPreVowel |
|
42
|
|
|
|
|
|
|
IsThaiPostVowel IsThaiCompVowel IsThaiDigit IsThaiTone |
|
43
|
|
|
|
|
|
|
IsThaiMute IsThaiPunct IsThaiCurrency IsThaiFinCons |
|
44
|
|
|
|
|
|
|
IsThaiDualCons IsThaiDualC1 IsThaiDualC2 IsThaiConsVowel) ], |
|
45
|
|
|
|
|
|
|
|
|
46
|
|
|
|
|
|
|
characters => |
|
47
|
|
|
|
|
|
|
[ qw(InKokai InKhokhai InKhokhuat InKhokhwai InKhokhon |
|
48
|
|
|
|
|
|
|
InKhorakhang InNgongu InChochan InChoching InChochang InSoso |
|
49
|
|
|
|
|
|
|
InShochoe InYoying InDochada InTopatak InThothan InThonangmontho |
|
50
|
|
|
|
|
|
|
InThophuthao InNonen InDodek InTotao InThothung InThothahan |
|
51
|
|
|
|
|
|
|
InThothong InNonu InBobaimai InPopla InPhophung InFofa InPhophan |
|
52
|
|
|
|
|
|
|
InFofan InPhosamphao InMoma InYoyak InRorua InRu InLoling InLu |
|
53
|
|
|
|
|
|
|
InWowaen InSosala InSorusi InSosua InHohip InLochula InOang |
|
54
|
|
|
|
|
|
|
InHonokhuk InPaiyannoi InSaraa InMaihanakat InSaraaa InSaraam |
|
55
|
|
|
|
|
|
|
InSarai InSaraii InSaraue InSarauee InSarau InSarauu InPhinthu |
|
56
|
|
|
|
|
|
|
InBaht InSarae InSaraae InSarao InSaraaimaimuan InSaraaimaimalai |
|
57
|
|
|
|
|
|
|
InLakkhangyao InMaiyamok InMaitaikhu InMaiek InMaitho InMaitri |
|
58
|
|
|
|
|
|
|
InMaichattawa InThanthakhat InGaran InNikhahit InYamakkan |
|
59
|
|
|
|
|
|
|
InFongman InThZero InThOne InThTwo InThThree InThFour InThFive |
|
60
|
|
|
|
|
|
|
InThSix InThSeven InThEight InThNine InAngkhankhu InKhomut |
|
61
|
|
|
|
|
|
|
|
|
62
|
|
|
|
|
|
|
IsKokai IsKhokhai IsKhokhuat IsKhokhwai IsKhokhon |
|
63
|
|
|
|
|
|
|
IsKhorakhang IsNgongu IsChochan IsChoching IsChochang IsSoso |
|
64
|
|
|
|
|
|
|
IsShochoe IsYoying IsDochada IsTopatak IsThothan IsThonangmontho |
|
65
|
|
|
|
|
|
|
IsThophuthao IsNonen IsDodek IsTotao IsThothung IsThothahan |
|
66
|
|
|
|
|
|
|
IsThothong IsNonu IsBobaimai IsPopla IsPhophung IsFofa IsPhophan |
|
67
|
|
|
|
|
|
|
IsFofan IsPhosamphao IsMoma IsYoyak IsRorua IsRu IsLoling IsLu |
|
68
|
|
|
|
|
|
|
IsWowaen IsSosala IsSorusi IsSosua IsHohip IsLochula IsOang |
|
69
|
|
|
|
|
|
|
IsHonokhuk IsPaiyannoi IsSaraa IsMaihanakat IsSaraaa IsSaraam |
|
70
|
|
|
|
|
|
|
IsSarai IsSaraii IsSaraue IsSarauee IsSarau IsSarauu IsPhinthu |
|
71
|
|
|
|
|
|
|
IsBaht IsSarae IsSaraae IsSarao IsSaraaimaimuan IsSaraaimaimalai |
|
72
|
|
|
|
|
|
|
IsLakkhangyao IsMaiyamok IsMaitaikhu IsMaiek IsMaitho IsMaitri |
|
73
|
|
|
|
|
|
|
IsMaichattawa IsThanthakhat IsGaran IsNikhahit IsYamakkan |
|
74
|
|
|
|
|
|
|
IsFongman IsThZero IsThOne IsThTwo IsThThree IsThFour IsThFive |
|
75
|
|
|
|
|
|
|
IsThSix IsThSeven IsThEight IsThNine IsAngkhankhu IsKhomut) ], |
|
76
|
|
|
|
|
|
|
|
|
77
|
|
|
|
|
|
|
); |
|
78
|
|
|
|
|
|
|
# add all the other tags to the ":all" class, |
|
79
|
|
|
|
|
|
|
# deleting duplicates |
|
80
|
|
|
|
|
|
|
{ |
|
81
|
|
|
|
|
|
|
my %seen; |
|
82
|
|
|
|
|
|
|
push @{$EXPORT_TAGS{all}}, |
|
83
|
|
|
|
|
|
|
grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} foreach keys %EXPORT_TAGS; |
|
84
|
|
|
|
|
|
|
} |
|
85
|
|
|
|
|
|
|
|
|
86
|
|
|
|
|
|
|
our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); |
|
87
|
|
|
|
|
|
|
|
|
88
|
|
|
|
|
|
|
our @EXPORT = ( @{ $EXPORT_TAGS{'classes'} } ); |
|
89
|
|
|
|
|
|
|
|
|
90
|
|
|
|
|
|
|
our $VERSION = '1.01'; |
|
91
|
|
|
|
|
|
|
|
|
92
|
|
|
|
|
|
|
#-------------------------------------------------------------- |
|
93
|
|
|
|
|
|
|
# ALL THAI UNICODE CHARACTERS IN THIS MODULE |
|
94
|
|
|
|
|
|
|
# FOLLOW THE UNICODE CODEPOINTS DETAILED HERE: |
|
95
|
|
|
|
|
|
|
# http://www.unicode.org/charts/PDF/U0E00.pdf |
|
96
|
|
|
|
|
|
|
#-------------------------------------------------------------- |
|
97
|
|
|
|
|
|
|
|
|
98
|
|
|
|
|
|
|
|
|
99
|
|
|
|
|
|
|
#-------------------------------------------------------------- |
|
100
|
|
|
|
|
|
|
# CREATE FUNCTIONALITY FOR SHOWING CONTENTS OF EACH CLASS |
|
101
|
|
|
|
|
|
|
#-------------------------------------------------------------- |
|
102
|
|
|
|
|
|
|
|
|
103
|
|
|
|
|
|
|
my %char_class_dispatch = ( |
|
104
|
|
|
|
|
|
|
InThai => \&InThai, |
|
105
|
|
|
|
|
|
|
InThaiCons => \&InThaiCons, |
|
106
|
|
|
|
|
|
|
InThaiHCons => \&InThaiHCons, |
|
107
|
|
|
|
|
|
|
InThaiMCons => \&InThaiMCons, |
|
108
|
|
|
|
|
|
|
InThaiLCons => \&InThaiLCons, |
|
109
|
|
|
|
|
|
|
InThaiFinCons => \&InThaiFinCons, |
|
110
|
|
|
|
|
|
|
InThaiDualCons => \&InThaiDualCons, |
|
111
|
|
|
|
|
|
|
InThaiDualC1 => \&InThaiDualC1, |
|
112
|
|
|
|
|
|
|
InThaiDualC2 => \&InThaiDualC2, |
|
113
|
|
|
|
|
|
|
InThaiConsVowel => \&InThaiConsVowel, |
|
114
|
|
|
|
|
|
|
InThaiAlpha => \&InThaiAlpha, |
|
115
|
|
|
|
|
|
|
InThaiWord => \&InThaiWord, |
|
116
|
|
|
|
|
|
|
InThaiTone => \&InThaiTone, |
|
117
|
|
|
|
|
|
|
InThaiMute => \&InThaiMute, |
|
118
|
|
|
|
|
|
|
InThaiPunct => \&InThaiPunct, |
|
119
|
|
|
|
|
|
|
InThaiCurrency => \&InThaiCurrency, |
|
120
|
|
|
|
|
|
|
InThaiDigit => \&InThaiDigit, |
|
121
|
|
|
|
|
|
|
InThaiVowel => \&InThaiVowel, |
|
122
|
|
|
|
|
|
|
InThaiCompVowel => \&InThaiCompVowel, |
|
123
|
|
|
|
|
|
|
InThaiPreVowel => \&InThaiPreVowel, |
|
124
|
|
|
|
|
|
|
InThaiPostVowel => \&InThaiPostVowel, |
|
125
|
|
|
|
|
|
|
); |
|
126
|
|
|
|
|
|
|
|
|
127
|
|
|
|
|
|
|
|
|
128
|
|
|
|
|
|
|
# IMPORTANT NOTE: ALL CHARACTER CLASSES IN THIS PACKAGE ARE |
|
129
|
|
|
|
|
|
|
# SPELLED OUT IN THEIR ENTIRETY, RATHER THAN |
|
130
|
|
|
|
|
|
|
# REPRESENTING EACH RANGE VIA OMISSION OF THE |
|
131
|
|
|
|
|
|
|
# INTERVENING CODEPOINTS. THIS IS BOTH FOR |
|
132
|
|
|
|
|
|
|
# EASIER READABILITY WHEN SEARCHING FOR A |
|
133
|
|
|
|
|
|
|
# PARTICULAR CODEPOINT TO SEE IN WHICH CLASSES |
|
134
|
|
|
|
|
|
|
# IT MAY BE FOUND, AND ALSO TO FACILITATE THE |
|
135
|
|
|
|
|
|
|
# ABILITY TO IDENTIFY ALL THE CHARACTERS |
|
136
|
|
|
|
|
|
|
# GROUPED IN A CLASS (MORE ON THIS IN POD). |
|
137
|
|
|
|
|
|
|
|
|
138
|
|
|
|
|
|
|
#-------------------------------------------------------------- |
|
139
|
|
|
|
|
|
|
# Start with the "Is..." versions |
|
140
|
|
|
|
|
|
|
#-------------------------------------------------------------- |
|
141
|
|
|
|
|
|
|
|
|
142
|
|
|
|
|
|
|
sub IsThai { #INCLUDES ENTIRE UNICODE CODEBLOCK FOR THAI |
|
143
|
1
|
|
|
1
|
1
|
5
|
return join "\n", |
|
144
|
|
|
|
|
|
|
'0E01', '0E02', '0E03', '0E04', '0E05', '0E06', '0E07', |
|
145
|
|
|
|
|
|
|
'0E08', '0E09', '0E0A', '0E0B', '0E0C', '0E0D', '0E0E', '0E0F', |
|
146
|
|
|
|
|
|
|
'0E10', '0E11', '0E12', '0E13', '0E14', '0E15', '0E16', '0E17', |
|
147
|
|
|
|
|
|
|
'0E18', '0E19', '0E1A', '0E1B', '0E1C', '0E1D', '0E1E', '0E1F', |
|
148
|
|
|
|
|
|
|
'0E20', '0E21', '0E22', '0E23', '0E24', '0E25', '0E26', '0E27', |
|
149
|
|
|
|
|
|
|
'0E28', '0E29', '0E2A', '0E2B', '0E2C', '0E2D', '0E2E', '0E2F', |
|
150
|
|
|
|
|
|
|
'0E30', '0E31', '0E32', '0E33', '0E34', '0E35', '0E36', '0E37', |
|
151
|
|
|
|
|
|
|
'0E38', '0E39', '0E3A', '0E3B', '0E3C', '0E3D', '0E3E', '0E3F', |
|
152
|
|
|
|
|
|
|
'0E40', '0E41', '0E42', '0E43', '0E44', '0E45', '0E46', '0E47', |
|
153
|
|
|
|
|
|
|
'0E48', '0E49', '0E4A', '0E4B', '0E4C', '0E4D', '0E4E', '0E4F', |
|
154
|
|
|
|
|
|
|
'0E50', '0E51', '0E52', '0E53', '0E54', '0E55', '0E56', '0E57', |
|
155
|
|
|
|
|
|
|
'0E58', '0E59', '0E5A', '0E5B', '0E5C', '0E5D', '0E5E', '0E5F', |
|
156
|
|
|
|
|
|
|
'0E60', '0E61', '0E62', '0E63', '0E64', '0E65', '0E66', '0E67', |
|
157
|
|
|
|
|
|
|
'0E68', '0E69', '0E6A', '0E6B', '0E6C', '0E6D', '0E6E', '0E6F', |
|
158
|
|
|
|
|
|
|
'0E70', '0E71', '0E72', '0E73', '0E74', '0E75', '0E76', '0E77', |
|
159
|
|
|
|
|
|
|
'0E78', '0E79', '0E7A', '0E7B', '0E7C', '0E7D', '0E7E', '0E7F', |
|
160
|
|
|
|
|
|
|
} |
|
161
|
|
|
|
|
|
|
|
|
162
|
|
|
|
|
|
|
sub IsThaiCons { #THAI CONSONANTS |
|
163
|
|
|
|
|
|
|
# ก ข ฃ ค ฅ ฆ ง จ ฉ ช ซ ฌ ญ ฎ ฏ ฐ ฑ ฒ ณ ด ต ถ ท |
|
164
|
|
|
|
|
|
|
# ธ น บ ป ผ ฝ พ ฟ ภ ม ย ร ฤ ล ฦ ว ศ ษ ส ห ฬ อ ฮ |
|
165
|
|
|
|
|
|
|
#NOTE: Most consider 0E24 and 0E26 (ฤ ฦ), included, |
|
166
|
|
|
|
|
|
|
# as vowels, but they act/function as consonants |
|
167
|
|
|
|
|
|
|
# and are listed among the consonants in the |
|
168
|
|
|
|
|
|
|
# official Unicode character chart for Thai. |
|
169
|
|
|
|
|
|
|
# See https://en.wiktionary.org/wiki/%E0%B8%A4 |
|
170
|
|
|
|
|
|
|
# Thai: https://th.wikipedia.org/wiki/%E0%B8%A4 |
|
171
|
1
|
|
|
1
|
1
|
7
|
return join "\n", |
|
172
|
|
|
|
|
|
|
'0E01', '0E02', '0E03', '0E04', '0E05', '0E06', '0E07', |
|
173
|
|
|
|
|
|
|
'0E08', '0E09', '0E0A', '0E0B', '0E0C', '0E0D', '0E0E', '0E0F', |
|
174
|
|
|
|
|
|
|
'0E10', '0E11', '0E12', '0E13', '0E14', '0E15', '0E16', '0E17', |
|
175
|
|
|
|
|
|
|
'0E18', '0E19', '0E1A', '0E1B', '0E1C', '0E1D', '0E1E', '0E1F', |
|
176
|
|
|
|
|
|
|
'0E20', '0E21', '0E22', '0E23', '0E24', '0E25', '0E26', '0E27', |
|
177
|
|
|
|
|
|
|
'0E28', '0E29', '0E2A', '0E2B', '0E2C', '0E2D', '0E2E', |
|
178
|
|
|
|
|
|
|
} |
|
179
|
|
|
|
|
|
|
|
|
180
|
|
|
|
|
|
|
sub IsThaiHCons { #THAI HIGH-CLASS CONSONANTS |
|
181
|
|
|
|
|
|
|
# ข ฃ ฉ ฐ ถ ผ ฝ ศ ษ ส ห |
|
182
|
1
|
|
|
1
|
1
|
5
|
return join "\n", |
|
183
|
|
|
|
|
|
|
'0E02', '0E03', '0E09', '0E10', '0E16', '0E1C', '0E1D', '0E28', |
|
184
|
|
|
|
|
|
|
'0E29', '0E2A', '0E2B', |
|
185
|
|
|
|
|
|
|
} |
|
186
|
|
|
|
|
|
|
|
|
187
|
|
|
|
|
|
|
sub IsThaiMCons { #THAI MID-CLASS CONSONANTS |
|
188
|
|
|
|
|
|
|
# ก จ ฎ ฏ ด ต บ ป อ |
|
189
|
1
|
|
|
1
|
1
|
6
|
return join "\n", |
|
190
|
|
|
|
|
|
|
'0E01', '0E08', '0E0E', '0E0F', '0E14', '0E15', '0E1A', '0E1B', |
|
191
|
|
|
|
|
|
|
'0E2D', |
|
192
|
|
|
|
|
|
|
} |
|
193
|
|
|
|
|
|
|
|
|
194
|
|
|
|
|
|
|
sub IsThaiLCons { #THAI LOW-CLASS CONSONANTS |
|
195
|
|
|
|
|
|
|
# ค ฅ ฆ ง ช ซ ฌ ญ ฑ ฒ ณ ท ธ น พ ฟ ภ ม ย ร ฤ ล ฦ ว ฬ ฮ |
|
196
|
|
|
|
|
|
|
#NOTE: The included ฤ and ฦ are usually classed as vowels, but |
|
197
|
|
|
|
|
|
|
#when they function as consonants they would be in this class. |
|
198
|
1
|
|
|
1
|
1
|
6
|
return join "\n", |
|
199
|
|
|
|
|
|
|
'0E04', '0E05', '0E06', '0E07', '0E0A', '0E0B', '0E0C', '0E0D', |
|
200
|
|
|
|
|
|
|
'0E11', '0E12', '0E13', '0E17', '0E18', '0E19', '0E1E', '0E1F', |
|
201
|
|
|
|
|
|
|
'0E20', '0E21', '0E22', '0E23', '0E24', '0E25', '0E26', '0E27', |
|
202
|
|
|
|
|
|
|
'0E2C', '0E2E', |
|
203
|
|
|
|
|
|
|
} |
|
204
|
|
|
|
|
|
|
|
|
205
|
|
|
|
|
|
|
sub IsThaiFinCons { #THAI SYLLABLE-ENDING CONSONANTS (FINAL) |
|
206
|
|
|
|
|
|
|
#ALL CONSONANTS EXCEPT THESE: ฉ ซ ผ ฝ ห ฮ ห อ ฮ |
|
207
|
|
|
|
|
|
|
#NOTE: Certain others (ย ว อ) may be at the end of a syllable, |
|
208
|
|
|
|
|
|
|
# but as a vowel; so are not included here. These consonants |
|
209
|
|
|
|
|
|
|
# may not, but can, be at the end of a syllable; useful for |
|
210
|
|
|
|
|
|
|
# some regular expressions. |
|
211
|
1
|
|
|
1
|
1
|
14
|
return join "\n", |
|
212
|
|
|
|
|
|
|
'0E01', '0E02', '0E03', '0E04', '0E05', '0E06', '0E07', '0E08', |
|
213
|
|
|
|
|
|
|
'0E0A', '0E0C', '0E0D', '0E0E', '0E0F', '0E10', '0E11', '0E12', |
|
214
|
|
|
|
|
|
|
'0E13', '0E14', '0E15', '0E16', '0E17', '0E18', '0E19', '0E1A', |
|
215
|
|
|
|
|
|
|
'0E1B', '0E1E', '0E1F', '0E20', '0E21', '0E23', '0E24', '0E25', |
|
216
|
|
|
|
|
|
|
'0E26', '0E28', '0E29', '0E2A', '0E2C', |
|
217
|
|
|
|
|
|
|
} |
|
218
|
|
|
|
|
|
|
|
|
219
|
|
|
|
|
|
|
sub IsThaiDualCons { |
|
220
|
|
|
|
|
|
|
# BECAUSE EACH \p{...} CHARACTER DEFINED CAN BE ONLY A SINGLE |
|
221
|
|
|
|
|
|
|
# CHARACTER, AND NOT A CHARACTER CLUSTER, THIS CHAR CLASS, AND |
|
222
|
|
|
|
|
|
|
# THE TWO WHICH FOLLOW IT, ARE CONSIDERED EXPERIMENTAL AND OF |
|
223
|
|
|
|
|
|
|
# LIMITED USEFULNESS. |
|
224
|
|
|
|
|
|
|
# |
|
225
|
|
|
|
|
|
|
# NON-EXHAUSTIVE LIST OF EXAMPLES (INITIAL CONSONANT CLUSTERS) |
|
226
|
|
|
|
|
|
|
# กว กล กร ขร ขล ขว คร คล คว ตร ปร ปล บร บล ดร ผล พร พล ทร สร จร ซร |
|
227
|
|
|
|
|
|
|
# [and with sonorant consonants] หม หน หล หย หง หว หญ อย |
|
228
|
1
|
|
|
1
|
1
|
5
|
return join "\n", |
|
229
|
|
|
|
|
|
|
'0E01', '0E02', '0E04', '0E07', '0E08', '0E0B', '0E0D', '0E14', |
|
230
|
|
|
|
|
|
|
'0E15', '0E17', '0E19', '0E1A', '0E1B', '0E1C', '0E1E', '0E21', |
|
231
|
|
|
|
|
|
|
'0E22', '0E23', '0E25', '0E27', '0E2A', '0E2B', '0E2D', |
|
232
|
|
|
|
|
|
|
} |
|
233
|
|
|
|
|
|
|
|
|
234
|
|
|
|
|
|
|
sub IsThaiDualC1 { #INITIAL CONSONANTS OF DUAL-CONSONANT LIST |
|
235
|
|
|
|
|
|
|
#ก ข ค จ ซ ด ต ท บ ป ผ พ ส ห อ |
|
236
|
1
|
|
|
1
|
1
|
5
|
return join "\n", |
|
237
|
|
|
|
|
|
|
'0E01', '0E02', '0E04', '0E08', '0E0B', '0E14', '0E15', '0E17', |
|
238
|
|
|
|
|
|
|
'0E1A', '0E1B', '0E1C', '0E1E', '0E2A', '0E2B', '0E2D', |
|
239
|
|
|
|
|
|
|
} |
|
240
|
|
|
|
|
|
|
|
|
241
|
|
|
|
|
|
|
sub IsThaiDualC2 { #SECOND CONSONANTS OF DUAL-CONSONANT LIST |
|
242
|
|
|
|
|
|
|
#ง ญ น ม ย ร ล ว |
|
243
|
1
|
|
|
1
|
1
|
5
|
return join "\n", |
|
244
|
|
|
|
|
|
|
'0E07', '0E0D', '0E19', '0E21', '0E22', '0E23', '0E25', '0E27', |
|
245
|
|
|
|
|
|
|
} |
|
246
|
|
|
|
|
|
|
|
|
247
|
|
|
|
|
|
|
sub IsThaiConsVowel { #THAI CONSONANTS WHICH CAN ALSO BE VOWELS |
|
248
|
|
|
|
|
|
|
#NOTE: Thais consider 0E33 to be only a vowel, and it can never |
|
249
|
|
|
|
|
|
|
# function as only a consonant (it must always have a |
|
250
|
|
|
|
|
|
|
# vowel component), so it is NOT included here: but it is |
|
251
|
|
|
|
|
|
|
# actually a vowel-consonant combination, phonetically, |
|
252
|
|
|
|
|
|
|
# finishing with the "m" sound. This class addresses only |
|
253
|
|
|
|
|
|
|
# Thai characters which can be either consonant or vowel, |
|
254
|
|
|
|
|
|
|
# but not both at the same time. The 0E23 is only a vowel if |
|
255
|
|
|
|
|
|
|
# it is doubled--but this doubling cannot be determined when |
|
256
|
|
|
|
|
|
|
# examining an individual code point, so it is included here |
|
257
|
|
|
|
|
|
|
# for thoroughness. |
|
258
|
|
|
|
|
|
|
# ย ร ฤ ฦ ว อ |
|
259
|
1
|
|
|
1
|
1
|
6
|
return join "\n", |
|
260
|
|
|
|
|
|
|
'0E22', '0E23', '0E24', '0E26', '0E27', '0E2D', |
|
261
|
|
|
|
|
|
|
} |
|
262
|
|
|
|
|
|
|
|
|
263
|
|
|
|
|
|
|
sub IsThaiAlpha { #THAI ALPHABETIC CHARACTERS |
|
264
|
|
|
|
|
|
|
#Thai consonants + vowels only |
|
265
|
1
|
|
|
1
|
1
|
8
|
return join "\n", |
|
266
|
|
|
|
|
|
|
'0E01', '0E02', '0E03', '0E04', '0E05', '0E06', '0E07', |
|
267
|
|
|
|
|
|
|
'0E08', '0E09', '0E0A', '0E0B', '0E0C', '0E0D', '0E0E', '0E0F', |
|
268
|
|
|
|
|
|
|
'0E10', '0E11', '0E12', '0E13', '0E14', '0E15', '0E16', '0E17', |
|
269
|
|
|
|
|
|
|
'0E18', '0E19', '0E1A', '0E1B', '0E1C', '0E1D', '0E1E', '0E1F', |
|
270
|
|
|
|
|
|
|
'0E20', '0E21', '0E22', '0E23', '0E24', '0E25', '0E26', '0E27', |
|
271
|
|
|
|
|
|
|
'0E28', '0E29', '0E2A', '0E2B', '0E2C', '0E2D', '0E2E', '0E30', |
|
272
|
|
|
|
|
|
|
'0E31', '0E32', '0E33', '0E34', '0E35', '0E36', '0E37', '0E38', |
|
273
|
|
|
|
|
|
|
'0E39', '0E3A', '0E40', '0E41', '0E42', '0E43', '0E44', '0E45', |
|
274
|
|
|
|
|
|
|
'0E47', '0E4D', |
|
275
|
|
|
|
|
|
|
} |
|
276
|
|
|
|
|
|
|
|
|
277
|
|
|
|
|
|
|
sub IsThaiWord { #THAI WORD CHARACTERS |
|
278
|
|
|
|
|
|
|
#Thai consonants + vowels + tone marks/diacritics |
|
279
|
|
|
|
|
|
|
#but not including punctuation, digits, etc., i.e. |
|
280
|
|
|
|
|
|
|
#specifically characters used in Thai words |
|
281
|
1
|
|
|
1
|
1
|
5
|
return join "\n", |
|
282
|
|
|
|
|
|
|
'0E01', '0E02', '0E03', '0E04', '0E05', '0E06', '0E07', |
|
283
|
|
|
|
|
|
|
'0E08', '0E09', '0E0A', '0E0B', '0E0C', '0E0D', '0E0E', '0E0F', |
|
284
|
|
|
|
|
|
|
'0E10', '0E11', '0E12', '0E13', '0E14', '0E15', '0E16', '0E17', |
|
285
|
|
|
|
|
|
|
'0E18', '0E19', '0E1A', '0E1B', '0E1C', '0E1D', '0E1E', '0E1F', |
|
286
|
|
|
|
|
|
|
'0E20', '0E21', '0E22', '0E23', '0E24', '0E25', '0E26', '0E27', |
|
287
|
|
|
|
|
|
|
'0E28', '0E29', '0E2A', '0E2B', '0E2C', '0E2D', '0E2E', '0E30', |
|
288
|
|
|
|
|
|
|
'0E31', '0E32', '0E33', '0E34', '0E35', '0E36', '0E37', '0E38', |
|
289
|
|
|
|
|
|
|
'0E39', '0E3A', '0E40', '0E41', '0E42', '0E43', '0E44', '0E45', |
|
290
|
|
|
|
|
|
|
'0E47', '0E48', '0E49', '0E4A', '0E4B', '0E4C', '0E4D', '0E4E', |
|
291
|
|
|
|
|
|
|
} |
|
292
|
|
|
|
|
|
|
|
|
293
|
|
|
|
|
|
|
sub IsThaiTone { #THAI TONE MARKS |
|
294
|
|
|
|
|
|
|
# ่ ้ ๊ ๋ |
|
295
|
1
|
|
|
1
|
1
|
6
|
return join "\n", |
|
296
|
|
|
|
|
|
|
'0E48', '0E49', '0E4A', '0E4B', |
|
297
|
|
|
|
|
|
|
} |
|
298
|
|
|
|
|
|
|
|
|
299
|
|
|
|
|
|
|
sub IsThaiMute { #THAI MUTE CHARACTER (THANTHAKHAT/GARAN) |
|
300
|
|
|
|
|
|
|
#A special tone mark which silences consonants: ์ |
|
301
|
1
|
|
|
1
|
1
|
5
|
return join "\n", |
|
302
|
|
|
|
|
|
|
'0E4C', |
|
303
|
|
|
|
|
|
|
} |
|
304
|
|
|
|
|
|
|
|
|
305
|
|
|
|
|
|
|
sub IsThaiPunct { #THAI PUNCTUATION |
|
306
|
|
|
|
|
|
|
# ฯ ๆ ๏ ๚ ๛ |
|
307
|
1
|
|
|
1
|
1
|
6
|
return join "\n", |
|
308
|
|
|
|
|
|
|
'0E2F', '0E46', '0E4F', '0E5A', '0E5B', |
|
309
|
|
|
|
|
|
|
} |
|
310
|
|
|
|
|
|
|
|
|
311
|
|
|
|
|
|
|
sub IsThaiCurrency { #BAHT SIGN |
|
312
|
|
|
|
|
|
|
# ฿ |
|
313
|
1
|
|
|
1
|
1
|
24
|
return join "\n", |
|
314
|
|
|
|
|
|
|
'0E3F', |
|
315
|
|
|
|
|
|
|
} |
|
316
|
|
|
|
|
|
|
|
|
317
|
|
|
|
|
|
|
sub IsThaiDigit { #THAI DIGITS |
|
318
|
|
|
|
|
|
|
# ๐ ๑ ๒ ๓ ๔ ๕ ๖ ๗ ๘ ๙ |
|
319
|
1
|
|
|
1
|
1
|
5
|
return join "\n", |
|
320
|
|
|
|
|
|
|
'0E50', '0E51', '0E52', '0E53', '0E54', |
|
321
|
|
|
|
|
|
|
'0E55', '0E56', '0E57', '0E58', '0E59', |
|
322
|
|
|
|
|
|
|
} |
|
323
|
|
|
|
|
|
|
|
|
324
|
|
|
|
|
|
|
sub IsThaiVowel { #THAI VOWELS |
|
325
|
|
|
|
|
|
|
#NOTE: 0E4D combines with a consonant but may not be considered a vowel |
|
326
|
|
|
|
|
|
|
# 0E47 looks/acts like a tone mark, but is actually a form of sara-a |
|
327
|
|
|
|
|
|
|
# which is used in place of sara-a (0E30) when the syllable terminates |
|
328
|
|
|
|
|
|
|
# in a consonant |
|
329
|
|
|
|
|
|
|
# ย ฤ ฦ ว อ ะ ั า ํา ิ ี ึ ื ุ ู ฺ เ แ โ ใ ไ ๅ ็ ํ |
|
330
|
2
|
|
|
2
|
1
|
11
|
return join "\n", |
|
331
|
|
|
|
|
|
|
'0E22', '0E24', '0E26', '0E27', '0E2D', '0E30', '0E31', '0E32', |
|
332
|
|
|
|
|
|
|
'0E33', '0E34', '0E35', '0E36', '0E37', '0E38', '0E39', '0E3A', |
|
333
|
|
|
|
|
|
|
'0E40', '0E41', '0E42', '0E43', '0E44', '0E45', '0E47', '0E4D', |
|
334
|
|
|
|
|
|
|
} |
|
335
|
|
|
|
|
|
|
|
|
336
|
|
|
|
|
|
|
sub IsThaiCompVowel { #VOWELS COMPOSITED/COMPILED VERTICALLY WITH CONSONANT |
|
337
|
|
|
|
|
|
|
#NOTE: 0E4D combines with a consonant but may not be considered a vowel |
|
338
|
|
|
|
|
|
|
#NOTE: 0E33 is a partially-combining vowel but also occupies its own space |
|
339
|
|
|
|
|
|
|
# ั ิ ี ึ ื ุ ู ็ ํ |
|
340
|
1
|
|
|
1
|
1
|
6
|
return join "\n", |
|
341
|
|
|
|
|
|
|
'0E31', '0E34', '0E35', '0E36', '0E37', '0E38', '0E39', '0E3A', |
|
342
|
|
|
|
|
|
|
'0E47', '0E4D', |
|
343
|
|
|
|
|
|
|
} |
|
344
|
|
|
|
|
|
|
|
|
345
|
|
|
|
|
|
|
sub IsThaiPreVowel { #VOWELS PRECEDING CONSONANT |
|
346
|
|
|
|
|
|
|
# เ แ โ ใ ไ |
|
347
|
1
|
|
|
1
|
1
|
5
|
return join "\n", |
|
348
|
|
|
|
|
|
|
'0E40', '0E41', '0E42', '0E43', '0E44', |
|
349
|
|
|
|
|
|
|
} |
|
350
|
|
|
|
|
|
|
|
|
351
|
|
|
|
|
|
|
sub IsThaiPostVowel { #VOWELS AFTER CONSONANT |
|
352
|
|
|
|
|
|
|
#NOTE: Consonants which act as vowels also appear after their |
|
353
|
|
|
|
|
|
|
# consonants but are not included here. |
|
354
|
|
|
|
|
|
|
#NOTE: Thais consider 0E33 to be only a vowel, so it is included |
|
355
|
|
|
|
|
|
|
# here, but it is actually a vowel-consonant combination, |
|
356
|
|
|
|
|
|
|
# phonetically, finishing with the "m" sound. |
|
357
|
|
|
|
|
|
|
# ะ า ํา ๅ |
|
358
|
1
|
|
|
1
|
1
|
10
|
return join "\n", |
|
359
|
|
|
|
|
|
|
'0E30', '0E32', '0E33', '0E45', |
|
360
|
|
|
|
|
|
|
} |
|
361
|
|
|
|
|
|
|
|
|
362
|
|
|
|
|
|
|
#-------------------------------------------------------------- |
|
363
|
|
|
|
|
|
|
# Alias the "In..." forms (same as above) |
|
364
|
|
|
|
|
|
|
#-------------------------------------------------------------- |
|
365
|
|
|
|
|
|
|
|
|
366
|
1
|
|
|
1
|
1
|
366943
|
sub InThai { &IsThai } |
|
367
|
1
|
|
|
1
|
1
|
893
|
sub InThaiCons { &IsThaiCons } |
|
368
|
1
|
|
|
1
|
1
|
1020
|
sub InThaiHCons { &IsThaiHCons } |
|
369
|
1
|
|
|
1
|
1
|
1089
|
sub InThaiMCons { &IsThaiMCons } |
|
370
|
1
|
|
|
1
|
1
|
913
|
sub InThaiLCons { &IsThaiLCons } |
|
371
|
1
|
|
|
1
|
1
|
979
|
sub InThaiFinCons { &IsThaiFinCons } |
|
372
|
1
|
|
|
1
|
1
|
985
|
sub InThaiDualCons { &IsThaiDualCons } |
|
373
|
1
|
|
|
1
|
1
|
933
|
sub InThaiDualC1 { &IsThaiDualC1 } |
|
374
|
1
|
|
|
1
|
1
|
937
|
sub InThaiDualC2 { &IsThaiDualC2 } |
|
375
|
1
|
|
|
1
|
1
|
968
|
sub InThaiConsVowel { &IsThaiConsVowel } |
|
376
|
1
|
|
|
1
|
1
|
960
|
sub InThaiAlpha { &IsThaiAlpha } |
|
377
|
1
|
|
|
1
|
1
|
1054
|
sub InThaiWord { &IsThaiWord } |
|
378
|
1
|
|
|
1
|
1
|
1021
|
sub InThaiTone { &IsThaiTone } |
|
379
|
1
|
|
|
1
|
1
|
958
|
sub InThaiMute { &IsThaiMute } |
|
380
|
1
|
|
|
1
|
1
|
961
|
sub InThaiPunct { &IsThaiPunct } |
|
381
|
1
|
|
|
1
|
1
|
956
|
sub InThaiCurrency { &IsThaiCurrency } |
|
382
|
1
|
|
|
1
|
1
|
968
|
sub InThaiDigit { &IsThaiDigit } |
|
383
|
2
|
|
|
2
|
1
|
10705
|
sub InThaiVowel { &IsThaiVowel } |
|
384
|
1
|
|
|
1
|
1
|
2763
|
sub InThaiCompVowel { &IsThaiCompVowel } |
|
385
|
1
|
|
|
1
|
1
|
4019
|
sub InThaiPreVowel { &IsThaiPreVowel } |
|
386
|
1
|
|
|
1
|
1
|
2800
|
sub InThaiPostVowel { &IsThaiPostVowel } |
|
387
|
|
|
|
|
|
|
|
|
388
|
|
|
|
|
|
|
|
|
389
|
|
|
|
|
|
|
#-------------------------------------------------------------- |
|
390
|
|
|
|
|
|
|
# Provide spelled-out forms of the individual characters |
|
391
|
|
|
|
|
|
|
#-------------------------------------------------------------- |
|
392
|
2
|
|
|
2
|
0
|
10007
|
sub IsKokai { return '0E01' } # ก - THAI CHARACTER KO KAI |
|
393
|
2
|
|
|
2
|
0
|
996
|
sub IsKhokhai { return '0E02' } # ข - THAI CHARACTER KHO KHAI |
|
394
|
2
|
|
|
2
|
0
|
943
|
sub IsKhokhuat { return '0E03' } # ฃ - THAI CHARACTER KHO KHUAT |
|
395
|
2
|
|
|
2
|
0
|
912
|
sub IsKhokhwai { return '0E04' } # ค - THAI CHARACTER KHO KHWAI |
|
396
|
2
|
|
|
2
|
0
|
943
|
sub IsKhokhon { return '0E05' } # ฅ - THAI CHARACTER KHO KHON |
|
397
|
2
|
|
|
2
|
0
|
965
|
sub IsKhorakhang { return '0E06' } # ฆ - THAI CHARACTER KHO RAKHANG |
|
398
|
2
|
|
|
2
|
0
|
1217
|
sub IsNgongu { return '0E07' } # ง - THAI CHARACTER NGO NGU |
|
399
|
2
|
|
|
2
|
0
|
906
|
sub IsChochan { return '0E08' } # จ - THAI CHARACTER CHO CHAN |
|
400
|
2
|
|
|
2
|
0
|
935
|
sub IsChoching { return '0E09' } # ฉ - THAI CHARACTER CHO CHING |
|
401
|
2
|
|
|
2
|
0
|
929
|
sub IsChochang { return '0E0A' } # ช - THAI CHARACTER CHO CHANG |
|
402
|
2
|
|
|
2
|
0
|
924
|
sub IsSoso { return '0E0B' } # ซ - THAI CHARACTER SO SO |
|
403
|
2
|
|
|
2
|
0
|
983
|
sub IsShochoe { return '0E0C' } # ฌ - THAI CHARACTER CHO CHOE |
|
404
|
2
|
|
|
2
|
0
|
955
|
sub IsYoying { return '0E0D' } # ญ - THAI CHARACTER YO YING |
|
405
|
2
|
|
|
2
|
0
|
955
|
sub IsDochada { return '0E0E' } # ฎ - THAI CHARACTER DO CHADA |
|
406
|
2
|
|
|
2
|
0
|
931
|
sub IsTopatak { return '0E0F' } # ฏ - THAI CHARACTER TO PATAK |
|
407
|
2
|
|
|
2
|
0
|
962
|
sub IsThothan { return '0E10' } # ฐ - THAI CHARACTER THO THAN |
|
408
|
2
|
|
|
2
|
0
|
945
|
sub IsThonangmontho { return '0E11' } # ฑ - THAI CHARACTER THO NANGMONTHO |
|
409
|
2
|
|
|
2
|
0
|
943
|
sub IsThophuthao { return '0E12' } # ฒ - THAI CHARACTER THO PHUTHAO |
|
410
|
2
|
|
|
2
|
0
|
938
|
sub IsNonen { return '0E13' } # ณ - THAI CHARACTER NO NEN |
|
411
|
2
|
|
|
2
|
0
|
962
|
sub IsDodek { return '0E14' } # ด - THAI CHARACTER DO DEK |
|
412
|
2
|
|
|
2
|
0
|
915
|
sub IsTotao { return '0E15' } # ต - THAI CHARACTER TO TAO |
|
413
|
2
|
|
|
2
|
0
|
945
|
sub IsThothung { return '0E16' } # ถ - THAI CHARACTER THO THUNG |
|
414
|
2
|
|
|
2
|
0
|
934
|
sub IsThothahan { return '0E17' } # ท - THAI CHARACTER THO THAHAN |
|
415
|
2
|
|
|
2
|
0
|
944
|
sub IsThothong { return '0E18' } # ธ - THAI CHARACTER THO THONG |
|
416
|
2
|
|
|
2
|
0
|
942
|
sub IsNonu { return '0E19' } # น - THAI CHARACTER NO NU |
|
417
|
2
|
|
|
2
|
0
|
861
|
sub IsBobaimai { return '0E1A' } # บ - THAI CHARACTER BO BAIMAI |
|
418
|
2
|
|
|
2
|
0
|
944
|
sub IsPopla { return '0E1B' } # ป - THAI CHARACTER PO PLA |
|
419
|
2
|
|
|
2
|
0
|
964
|
sub IsPhophung { return '0E1C' } # ผ - THAI CHARACTER PHO PHUNG |
|
420
|
2
|
|
|
2
|
0
|
895
|
sub IsFofa { return '0E1D' } # ฝ - THAI CHARACTER FO FA |
|
421
|
2
|
|
|
2
|
0
|
938
|
sub IsPhophan { return '0E1E' } # พ - THAI CHARACTER PHO PHAN |
|
422
|
2
|
|
|
2
|
0
|
942
|
sub IsFofan { return '0E1F' } # ฟ - THAI CHARACTER FO FAN |
|
423
|
2
|
|
|
2
|
0
|
931
|
sub IsPhosamphao { return '0E20' } # ภ - THAI CHARACTER PHO SAMPHAO |
|
424
|
2
|
|
|
2
|
0
|
962
|
sub IsMoma { return '0E21' } # ม - THAI CHARACTER MO MA |
|
425
|
2
|
|
|
2
|
0
|
961
|
sub IsYoyak { return '0E22' } # ย - THAI CHARACTER YO YAK |
|
426
|
2
|
|
|
2
|
0
|
954
|
sub IsRorua { return '0E23' } # ร - THAI CHARACTER RO RUA |
|
427
|
2
|
|
|
2
|
0
|
946
|
sub IsRu { return '0E24' } # ฤ - THAI CHARACTER RU |
|
428
|
2
|
|
|
2
|
0
|
931
|
sub IsLoling { return '0E25' } # ล - THAI CHARACTER LO LING |
|
429
|
2
|
|
|
2
|
0
|
936
|
sub IsLu { return '0E26' } # ฦ - THAI CHARACTER LU |
|
430
|
2
|
|
|
2
|
0
|
932
|
sub IsWowaen { return '0E27' } # ว - THAI CHARACTER WO WAEN |
|
431
|
2
|
|
|
2
|
0
|
957
|
sub IsSosala { return '0E28' } # ศ - THAI CHARACTER SO SALA |
|
432
|
2
|
|
|
2
|
0
|
944
|
sub IsSorusi { return '0E29' } # ษ - THAI CHARACTER SO RUSI |
|
433
|
2
|
|
|
2
|
0
|
905
|
sub IsSosua { return '0E2A' } # ส - THAI CHARACTER SO SUA |
|
434
|
2
|
|
|
2
|
0
|
948
|
sub IsHohip { return '0E2B' } # ห - THAI CHARACTER HO HIP |
|
435
|
2
|
|
|
2
|
0
|
948
|
sub IsLochula { return '0E2C' } # ฬ - THAI CHARACTER LO CHULA |
|
436
|
2
|
|
|
2
|
0
|
969
|
sub IsOang { return '0E2D' } # อ - THAI CHARACTER O ANG |
|
437
|
2
|
|
|
2
|
0
|
922
|
sub IsHonokhuk { return '0E2E' } # ฮ - THAI CHARACTER HO NOKHUK |
|
438
|
2
|
|
|
2
|
0
|
930
|
sub IsPaiyannoi { return '0E2F' } # ฯ - THAI CHARACTER PAIYANNOI |
|
439
|
2
|
|
|
2
|
0
|
944
|
sub IsSaraa { return '0E30' } # ะ - THAI CHARACTER SARA A |
|
440
|
2
|
|
|
2
|
0
|
924
|
sub IsMaihanakat { return '0E31' } # ั - THAI CHARACTER MAI HAN-AKAT |
|
441
|
2
|
|
|
2
|
0
|
868
|
sub IsSaraaa { return '0E32' } # า - THAI CHARACTER SARA AA |
|
442
|
2
|
|
|
2
|
0
|
956
|
sub IsSaraam { return '0E33' } # ำ - THAI CHARACTER SARA AM |
|
443
|
2
|
|
|
2
|
0
|
942
|
sub IsSarai { return '0E34' } # ิ - THAI CHARACTER SARA I |
|
444
|
2
|
|
|
2
|
0
|
899
|
sub IsSaraii { return '0E35' } # ี - THAI CHARACTER SARA II |
|
445
|
2
|
|
|
2
|
0
|
1051
|
sub IsSaraue { return '0E36' } # ึ - THAI CHARACTER SARA UE |
|
446
|
2
|
|
|
2
|
0
|
908
|
sub IsSarauee { return '0E37' } # ื - THAI CHARACTER SARA UEE |
|
447
|
2
|
|
|
2
|
0
|
913
|
sub IsSarau { return '0E38' } # ุ - THAI CHARACTER SARA U |
|
448
|
2
|
|
|
2
|
0
|
892
|
sub IsSarauu { return '0E39' } # ู - THAI CHARACTER SARA UU |
|
449
|
2
|
|
|
2
|
0
|
901
|
sub IsPhinthu { return '0E3A' } # ฺ - THAI CHARACTER PHINTHU |
|
450
|
2
|
|
|
2
|
0
|
920
|
sub IsBaht { return '0E3F' } # ฿ - THAI CURRENCY SYMBOL BAHT |
|
451
|
2
|
|
|
2
|
0
|
911
|
sub IsSarae { return '0E40' } # เ - THAI CHARACTER SARA E |
|
452
|
2
|
|
|
2
|
0
|
926
|
sub IsSaraae { return '0E41' } # แ - THAI CHARACTER SARA AE |
|
453
|
2
|
|
|
2
|
0
|
902
|
sub IsSarao { return '0E42' } # โ - THAI CHARACTER SARA O |
|
454
|
2
|
|
|
2
|
0
|
893
|
sub IsSaraaimaimuan { return '0E43' } # ใ - THAI CHARACTER SARA AI MAIMUAN |
|
455
|
2
|
|
|
2
|
0
|
903
|
sub IsSaraaimaimalai { return '0E44' } # ไ - THAI CHARACTER SARA AI MAIMALAI |
|
456
|
2
|
|
|
2
|
0
|
851
|
sub IsLakkhangyao { return '0E45' } # ๅ - THAI CHARACTER LAKKHANGYAO |
|
457
|
2
|
|
|
2
|
0
|
908
|
sub IsMaiyamok { return '0E46' } # ๆ - THAI CHARACTER MAIYAMOK |
|
458
|
2
|
|
|
2
|
0
|
886
|
sub IsMaitaikhu { return '0E47' } # ็ - THAI CHARACTER MAITAIKHU |
|
459
|
2
|
|
|
2
|
0
|
889
|
sub IsMaiek { return '0E48' } # ่ - THAI CHARACTER MAI EK |
|
460
|
2
|
|
|
2
|
0
|
875
|
sub IsMaitho { return '0E49' } # ้ - THAI CHARACTER MAI THO |
|
461
|
2
|
|
|
2
|
0
|
903
|
sub IsMaitri { return '0E4A' } # ๊ - THAI CHARACTER MAI TRI |
|
462
|
2
|
|
|
2
|
0
|
1026
|
sub IsMaichattawa { return '0E4B' } # ๋ - THAI CHARACTER MAI CHATTAWA |
|
463
|
2
|
|
|
2
|
0
|
908
|
sub IsThanthakhat { return '0E4C' } # ์ - THAI CHARACTER THANTHAKHAT/GARAN |
|
464
|
2
|
|
|
2
|
0
|
917
|
sub IsGaran { return '0E4C' } # ์ - THAI CHARACTER THANTHAKHAT/GARAN |
|
465
|
2
|
|
|
2
|
0
|
908
|
sub IsNikhahit { return '0E4D' } # ํ - THAI CHARACTER NIKHAHIT |
|
466
|
2
|
|
|
2
|
0
|
874
|
sub IsYamakkan { return '0E4E' } # ๎ - THAI CHARACTER YAMAKKAN |
|
467
|
2
|
|
|
2
|
0
|
870
|
sub IsFongman { return '0E4F' } # ๏ - THAI CHARACTER FONGMAN |
|
468
|
2
|
|
|
2
|
0
|
882
|
sub IsThZero { return '0E50' } # ๐ - THAI DIGIT ZERO |
|
469
|
2
|
|
|
2
|
0
|
926
|
sub IsThOne { return '0E51' } # ๑ - THAI DIGIT ONE |
|
470
|
2
|
|
|
2
|
0
|
929
|
sub IsThTwo { return '0E52' } # ๒ - THAI DIGIT TWO |
|
471
|
2
|
|
|
2
|
0
|
897
|
sub IsThThree { return '0E53' } # ๓ - THAI DIGIT THREE |
|
472
|
2
|
|
|
2
|
0
|
917
|
sub IsThFour { return '0E54' } # ๔ - THAI DIGIT FOUR |
|
473
|
2
|
|
|
2
|
0
|
912
|
sub IsThFive { return '0E55' } # ๕ - THAI DIGIT FIVE |
|
474
|
2
|
|
|
2
|
0
|
4027
|
sub IsThSix { return '0E56' } # ๖ - THAI DIGIT SIX |
|
475
|
2
|
|
|
2
|
0
|
939
|
sub IsThSeven { return '0E57' } # ๗ - THAI DIGIT SEVEN |
|
476
|
2
|
|
|
2
|
0
|
4960
|
sub IsThEight { return '0E58' } # ๘ - THAI DIGIT EIGHT |
|
477
|
2
|
|
|
2
|
0
|
951
|
sub IsThNine { return '0E59' } # ๙ - THAI DIGIT NINE |
|
478
|
2
|
|
|
2
|
0
|
944
|
sub IsAngkhankhu { return '0E5A' } # ๚ - THAI CHARACTER ANGKHANKHU |
|
479
|
2
|
|
|
2
|
0
|
907
|
sub IsKhomut { return '0E5B' } # ๛ - THAI CHARACTER KHOMUT |
|
480
|
|
|
|
|
|
|
|
|
481
|
|
|
|
|
|
|
#-------------------------------------------------------------- |
|
482
|
|
|
|
|
|
|
# Alias the spelled-out individual characters |
|
483
|
|
|
|
|
|
|
#-------------------------------------------------------------- |
|
484
|
|
|
|
|
|
|
|
|
485
|
1
|
|
|
1
|
0
|
928
|
sub InKokai { &IsKokai } |
|
486
|
1
|
|
|
1
|
0
|
7860
|
sub InKhokhai { &IsKhokhai } |
|
487
|
1
|
|
|
1
|
0
|
915
|
sub InKhokhuat { &IsKhokhuat } |
|
488
|
1
|
|
|
1
|
0
|
938
|
sub InKhokhwai { &IsKhokhwai } |
|
489
|
1
|
|
|
1
|
0
|
968
|
sub InKhokhon { &IsKhokhon } |
|
490
|
1
|
|
|
1
|
0
|
903
|
sub InKhorakhang { &IsKhorakhang } |
|
491
|
1
|
|
|
1
|
0
|
922
|
sub InNgongu { &IsNgongu } |
|
492
|
1
|
|
|
1
|
0
|
906
|
sub InChochan { &IsChochan } |
|
493
|
1
|
|
|
1
|
0
|
910
|
sub InChoching { &IsChoching } |
|
494
|
1
|
|
|
1
|
0
|
876
|
sub InChochang { &IsChochang } |
|
495
|
1
|
|
|
1
|
0
|
935
|
sub InSoso { &IsSoso } |
|
496
|
1
|
|
|
1
|
0
|
887
|
sub InShochoe { &IsShochoe } |
|
497
|
1
|
|
|
1
|
0
|
856
|
sub InYoying { &IsYoying } |
|
498
|
1
|
|
|
1
|
0
|
883
|
sub InDochada { &IsDochada } |
|
499
|
1
|
|
|
1
|
0
|
885
|
sub InTopatak { &IsTopatak } |
|
500
|
1
|
|
|
1
|
0
|
910
|
sub InThothan { &IsThothan } |
|
501
|
1
|
|
|
1
|
0
|
890
|
sub InThonangmontho { &IsThonangmontho } |
|
502
|
1
|
|
|
1
|
0
|
873
|
sub InThophuthao { &IsThophuthao } |
|
503
|
1
|
|
|
1
|
0
|
888
|
sub InNonen { &IsNonen } |
|
504
|
1
|
|
|
1
|
0
|
900
|
sub InDodek { &IsDodek } |
|
505
|
1
|
|
|
1
|
0
|
894
|
sub InTotao { &IsTotao } |
|
506
|
1
|
|
|
1
|
0
|
866
|
sub InThothung { &IsThothung } |
|
507
|
1
|
|
|
1
|
0
|
874
|
sub InThothahan { &IsThothahan } |
|
508
|
1
|
|
|
1
|
0
|
917
|
sub InThothong { &IsThothong } |
|
509
|
1
|
|
|
1
|
0
|
901
|
sub InNonu { &IsNonu } |
|
510
|
1
|
|
|
1
|
0
|
926
|
sub InBobaimai { &IsBobaimai } |
|
511
|
1
|
|
|
1
|
0
|
936
|
sub InPopla { &IsPopla } |
|
512
|
1
|
|
|
1
|
0
|
991
|
sub InPhophung { &IsPhophung } |
|
513
|
1
|
|
|
1
|
0
|
898
|
sub InFofa { &IsFofa } |
|
514
|
1
|
|
|
1
|
0
|
930
|
sub InPhophan { &IsPhophan } |
|
515
|
1
|
|
|
1
|
0
|
938
|
sub InFofan { &IsFofan } |
|
516
|
1
|
|
|
1
|
0
|
957
|
sub InPhosamphao { &IsPhosamphao } |
|
517
|
1
|
|
|
1
|
0
|
930
|
sub InMoma { &IsMoma } |
|
518
|
1
|
|
|
1
|
0
|
963
|
sub InYoyak { &IsYoyak } |
|
519
|
1
|
|
|
1
|
0
|
921
|
sub InRorua { &IsRorua } |
|
520
|
1
|
|
|
1
|
0
|
891
|
sub InRu { &IsRu } |
|
521
|
1
|
|
|
1
|
0
|
1100
|
sub InLoling { &IsLoling } |
|
522
|
1
|
|
|
1
|
0
|
1179
|
sub InLu { &IsLu } |
|
523
|
1
|
|
|
1
|
0
|
1124
|
sub InWowaen { &IsWowaen } |
|
524
|
1
|
|
|
1
|
0
|
1068
|
sub InSosala { &IsSosala } |
|
525
|
1
|
|
|
1
|
0
|
1058
|
sub InSorusi { &IsSorusi } |
|
526
|
1
|
|
|
1
|
0
|
1080
|
sub InSosua { &IsSosua } |
|
527
|
1
|
|
|
1
|
0
|
1074
|
sub InHohip { &IsHohip } |
|
528
|
1
|
|
|
1
|
0
|
1113
|
sub InLochula { &IsLochula } |
|
529
|
1
|
|
|
1
|
0
|
1096
|
sub InOang { &IsOang } |
|
530
|
1
|
|
|
1
|
0
|
1077
|
sub InHonokhuk { &IsHonokhuk } |
|
531
|
1
|
|
|
1
|
0
|
1239
|
sub InPaiyannoi { &IsPaiyannoi } |
|
532
|
1
|
|
|
1
|
0
|
1097
|
sub InSaraa { &IsSaraa } |
|
533
|
1
|
|
|
1
|
0
|
1124
|
sub InMaihanakat { &IsMaihanakat } |
|
534
|
1
|
|
|
1
|
0
|
1144
|
sub InSaraaa { &IsSaraaa } |
|
535
|
1
|
|
|
1
|
0
|
1089
|
sub InSaraam { &IsSaraam } |
|
536
|
1
|
|
|
1
|
0
|
1113
|
sub InSarai { &IsSarai } |
|
537
|
1
|
|
|
1
|
0
|
7613
|
sub InSaraii { &IsSaraii } |
|
538
|
1
|
|
|
1
|
0
|
1171
|
sub InSaraue { &IsSaraue } |
|
539
|
1
|
|
|
1
|
0
|
2200
|
sub InSarauee { &IsSarauee } |
|
540
|
1
|
|
|
1
|
0
|
1146
|
sub InSarau { &IsSarau } |
|
541
|
1
|
|
|
1
|
0
|
1050
|
sub InSarauu { &IsSarauu } |
|
542
|
1
|
|
|
1
|
0
|
1080
|
sub InPhinthu { &IsPhinthu } |
|
543
|
1
|
|
|
1
|
0
|
1079
|
sub InBaht { &IsBaht } |
|
544
|
1
|
|
|
1
|
0
|
1075
|
sub InSarae { &IsSarae } |
|
545
|
1
|
|
|
1
|
0
|
2886
|
sub InSaraae { &IsSaraae } |
|
546
|
1
|
|
|
1
|
0
|
3789
|
sub InSarao { &IsSarao } |
|
547
|
1
|
|
|
1
|
0
|
1095
|
sub InSaraaimaimuan { &IsSaraaimaimuan } |
|
548
|
1
|
|
|
1
|
0
|
1199
|
sub InSaraaimaimalai { &IsSaraaimaimalai } |
|
549
|
1
|
|
|
1
|
0
|
1116
|
sub InLakkhangyao { &IsLakkhangyao } |
|
550
|
1
|
|
|
1
|
0
|
1106
|
sub InMaiyamok { &IsMaiyamok } |
|
551
|
1
|
|
|
1
|
0
|
1080
|
sub InMaitaikhu { &IsMaitaikhu } |
|
552
|
1
|
|
|
1
|
0
|
1060
|
sub InMaiek { &IsMaiek } |
|
553
|
1
|
|
|
1
|
0
|
1087
|
sub InMaitho { &IsMaitho } |
|
554
|
1
|
|
|
1
|
0
|
1051
|
sub InMaitri { &IsMaitri } |
|
555
|
1
|
|
|
1
|
0
|
1139
|
sub InMaichattawa { &IsMaichattawa } |
|
556
|
1
|
|
|
1
|
0
|
1086
|
sub InThanthakhat { &IsThanthakhat } |
|
557
|
1
|
|
|
1
|
0
|
978
|
sub InGaran { &IsGaran } |
|
558
|
1
|
|
|
1
|
0
|
934
|
sub InNikhahit { &IsNikhahit } |
|
559
|
1
|
|
|
1
|
0
|
882
|
sub InYamakkan { &IsYamakkan } |
|
560
|
1
|
|
|
1
|
0
|
923
|
sub InFongman { &IsFongman } |
|
561
|
1
|
|
|
1
|
0
|
929
|
sub InThZero { &IsThZero } |
|
562
|
1
|
|
|
1
|
0
|
935
|
sub InThOne { &IsThOne } |
|
563
|
1
|
|
|
1
|
0
|
894
|
sub InThTwo { &IsThTwo } |
|
564
|
1
|
|
|
1
|
0
|
938
|
sub InThThree { &IsThThree } |
|
565
|
1
|
|
|
1
|
0
|
969
|
sub InThFour { &IsThFour } |
|
566
|
1
|
|
|
1
|
0
|
924
|
sub InThFive { &IsThFive } |
|
567
|
1
|
|
|
1
|
0
|
965
|
sub InThSix { &IsThSix } |
|
568
|
1
|
|
|
1
|
0
|
943
|
sub InThSeven { &IsThSeven } |
|
569
|
1
|
|
|
1
|
0
|
2523
|
sub InThEight { &IsThEight } |
|
570
|
1
|
|
|
1
|
0
|
964
|
sub InThNine { &IsThNine } |
|
571
|
1
|
|
|
1
|
0
|
931
|
sub InAngkhankhu { &IsAngkhankhu } |
|
572
|
1
|
|
|
1
|
0
|
1024
|
sub InKhomut { &IsKhomut } |
|
573
|
|
|
|
|
|
|
|
|
574
|
|
|
|
|
|
|
|
|
575
|
|
|
|
|
|
|
|
|
576
|
|
|
|
|
|
|
|
|
577
|
|
|
|
|
|
|
1; |
|
578
|
|
|
|
|
|
|
|
|
579
|
|
|
|
|
|
|
__END__ |