1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
static const gchar * const
puncts[] = {
"", "·", ",", "。", "「", "」", "、", ":", ";", "?", "!", NULL,
"!", "!", "﹗", "‼", "⁉", NULL,
"\"", "“", "”", """, NULL,
"#", "#", "﹟", "♯", NULL,
"$", "$", "€", "﹩", "¢", "£", "¥", NULL,
"%", "%", "﹪", "‰", "‱", "㏙", "㏗", NULL,
"&", "&", "﹠", NULL,
"'", "、", "‘", "’", NULL,
"(", "(", "︵", "﹙", NULL,
")", ")", "︶", "﹚", NULL,
"*", "*", "×", "※", "╳", "﹡", "⁎", "⁑", "⁂", "⌘", NULL,
"+", "+", "±", "﹢", NULL,
",", ",", "、", "﹐", "﹑", NULL,
"-", "…", "—", "-", "¯", "﹉", " ̄", "﹊", "ˍ", "–", "‥", NULL,
".", "。", "·", "‧", "﹒", ".", NULL,
"/", "/", "÷", "↗", "↙", "∕", NULL,
"0", "0", "0", NULL,
"1", "1", "1", NULL,
"2", "2", "2", NULL,
"3", "3", "3", NULL,
"4", "4", "4", NULL,
"5", "5", "5", NULL,
"6", "6", "6", NULL,
"7", "7", "7", NULL,
"8", "8", "8", NULL,
"9", "9", "9", NULL,
":", ":", "︰", "﹕", NULL,
";", ";", "﹔", NULL,
"<", "<", "〈", "《", "︽", "︿", "﹤", NULL,
"=", "=", "≒", "≠", "≡", "≦", "≧", "﹦", NULL,
">", ">", "〉", "》", "︾", "﹀", "﹥", NULL,
"?", "?", "﹖", "⁇", "⁈", NULL,
"@", "@", "⊕", "⊙", "㊣", "﹫", "◉", "◎", NULL,
"A", "A", "A", NULL,
"B", "B", "B", NULL,
"C", "C", "C", NULL,
"D", "D", "D", NULL,
"E", "E", "E", NULL,
"F", "F", "F", NULL,
"G", "G", "G", NULL,
"H", "H", "H", NULL,
"I", "I", "I", NULL,
"J", "J", "J", NULL,
"K", "K", "K", NULL,
"L", "L", "L", NULL,
"M", "M", "M", NULL,
"N", "N", "N", NULL,
"O", "O", "O", NULL,
"P", "P", "P", NULL,
"Q", "Q", "Q", NULL,
"R", "R", "R", NULL,
"S", "S", "S", NULL,
"T", "T", "T", NULL,
"U", "U", "U", NULL,
"V", "V", "V", NULL,
"W", "W", "W", NULL,
"X", "X", "X", NULL,
"Y", "Y", "Y", NULL,
"Z", "Z", "Z", NULL,
"[", "「", "[", "『", "【", "「", "︻", "﹁", "﹃", NULL,
"\\", "\", "↖", "↘", "﹨", NULL,
"]", "」", "]", "』", "】", "」", "︼", "﹂", "﹄", NULL,
"^", "︿", "〈", "《", "︽", "﹤", "<", NULL,
"_", "_", "╴", "←", "→", NULL,
"`", "‵", "′", NULL,
"a", "a", "a", NULL,
"b", "b", "b", NULL,
"c", "c", "c", NULL,
"d", "d", "d", NULL,
"e", "e", "e", NULL,
"f", "f", "f", NULL,
"g", "g", "g", NULL,
"h", "h", "h", NULL,
"i", "i", "i", NULL,
"j", "j", "j", NULL,
"k", "k", "k", NULL,
"l", "l", "l", NULL,
"m", "m", "m", NULL,
"n", "n", "n", NULL,
"o", "o", "o", NULL,
"p", "p", "p", NULL,
"q", "q", "q", NULL,
"r", "r", "r", NULL,
"s", "s", "s", NULL,
"t", "t", "t", NULL,
"u", "u", "u", NULL,
"v", "v", "v", NULL,
"w", "w", "w", NULL,
"x", "x", "x", NULL,
"y", "y", "y", NULL,
"z", "z", "z", NULL,
"{", "{", "︷", "﹛", "〔", "﹝", "︹", NULL,
"|", "|", "↑", "↓", "∣", "∥", "︱", "︳", "︴", "¦", NULL,
"}", "}", "︸", "﹜", "〕", "﹞", "︺", NULL,
"~", "~", "﹋", "﹌", NULL,
};
static const gchar * const * const
punct_table[] = {
&puncts[0], // ""
&puncts[12], // "!"
&puncts[18], // "\""
&puncts[23], // "#"
&puncts[28], // "$"
&puncts[36], // "%"
&puncts[44], // "&"
&puncts[48], // "'"
&puncts[53], // "("
&puncts[58], // ")"
&puncts[63], // "*"
&puncts[74], // "+"
&puncts[79], // ","
&puncts[85], // "-"
&puncts[97], // "."
&puncts[104], // "/"
&puncts[111], // "0"
&puncts[115], // "1"
&puncts[119], // "2"
&puncts[123], // "3"
&puncts[127], // "4"
&puncts[131], // "5"
&puncts[135], // "6"
&puncts[139], // "7"
&puncts[143], // "8"
&puncts[147], // "9"
&puncts[151], // ":"
&puncts[156], // ";"
&puncts[160], // "<"
&puncts[168], // "="
&puncts[177], // ">"
&puncts[185], // "?"
&puncts[191], // "@"
&puncts[200], // "A"
&puncts[204], // "B"
&puncts[208], // "C"
&puncts[212], // "D"
&puncts[216], // "E"
&puncts[220], // "F"
&puncts[224], // "G"
&puncts[228], // "H"
&puncts[232], // "I"
&puncts[236], // "J"
&puncts[240], // "K"
&puncts[244], // "L"
&puncts[248], // "M"
&puncts[252], // "N"
&puncts[256], // "O"
&puncts[260], // "P"
&puncts[264], // "Q"
&puncts[268], // "R"
&puncts[272], // "S"
&puncts[276], // "T"
&puncts[280], // "U"
&puncts[284], // "V"
&puncts[288], // "W"
&puncts[292], // "X"
&puncts[296], // "Y"
&puncts[300], // "Z"
&puncts[304], // "["
&puncts[314], // "\\"
&puncts[320], // "]"
&puncts[330], // "^"
&puncts[338], // "_"
&puncts[344], // "`"
&puncts[348], // "a"
&puncts[352], // "b"
&puncts[356], // "c"
&puncts[360], // "d"
&puncts[364], // "e"
&puncts[368], // "f"
&puncts[372], // "g"
&puncts[376], // "h"
&puncts[380], // "i"
&puncts[384], // "j"
&puncts[388], // "k"
&puncts[392], // "l"
&puncts[396], // "m"
&puncts[400], // "n"
&puncts[404], // "o"
&puncts[408], // "p"
&puncts[412], // "q"
&puncts[416], // "r"
&puncts[420], // "s"
&puncts[424], // "t"
&puncts[428], // "u"
&puncts[432], // "v"
&puncts[436], // "w"
&puncts[440], // "x"
&puncts[444], // "y"
&puncts[448], // "z"
&puncts[452], // "{"
&puncts[460], // "|"
&puncts[471], // "}"
&puncts[479], // "~"
};
|