Bug 1760604 - fix bogus domain to be example.com which is part of our test PAC rules...
[gecko.git] / gfx / harfbuzz / src / hb-ot-shape-complex-indic-machine.hh
blob74bf3ca0faea6a6370e0c2b0d565b92f482bba57
2 #line 1 "hb-ot-shape-complex-indic-machine.rl"
3 /*
4 * Copyright © 2011,2012 Google, Inc.
6 * This is part of HarfBuzz, a text shaping library.
8 * Permission is hereby granted, without written agreement and without
9 * license or royalty fees, to use, copy, modify, and distribute this
10 * software and its documentation for any purpose, provided that the
11 * above copyright notice and the following two paragraphs appear in
12 * all copies of this software.
14 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
15 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
16 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
17 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
18 * DAMAGE.
20 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
21 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
22 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
23 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
24 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
26 * Google Author(s): Behdad Esfahbod
29 #ifndef HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
30 #define HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
32 #include "hb.hh"
34 enum indic_syllable_type_t {
35 indic_consonant_syllable,
36 indic_vowel_syllable,
37 indic_standalone_cluster,
38 indic_symbol_cluster,
39 indic_broken_cluster,
40 indic_non_indic_cluster,
44 #line 45 "hb-ot-shape-complex-indic-machine.hh"
45 #define indic_syllable_machine_ex_A 10u
46 #define indic_syllable_machine_ex_C 1u
47 #define indic_syllable_machine_ex_CM 17u
48 #define indic_syllable_machine_ex_CS 19u
49 #define indic_syllable_machine_ex_DOTTEDCIRCLE 12u
50 #define indic_syllable_machine_ex_H 4u
51 #define indic_syllable_machine_ex_M 7u
52 #define indic_syllable_machine_ex_N 3u
53 #define indic_syllable_machine_ex_PLACEHOLDER 11u
54 #define indic_syllable_machine_ex_RS 13u
55 #define indic_syllable_machine_ex_Ra 16u
56 #define indic_syllable_machine_ex_Repha 15u
57 #define indic_syllable_machine_ex_SM 8u
58 #define indic_syllable_machine_ex_Symbol 18u
59 #define indic_syllable_machine_ex_V 2u
60 #define indic_syllable_machine_ex_ZWJ 6u
61 #define indic_syllable_machine_ex_ZWNJ 5u
64 #line 65 "hb-ot-shape-complex-indic-machine.hh"
65 static const unsigned char _indic_syllable_machine_trans_keys[] = {
66 8u, 8u, 4u, 8u, 5u, 7u, 5u, 8u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u,
67 4u, 13u, 4u, 8u, 8u, 8u, 5u, 7u, 5u, 8u, 4u, 8u, 6u, 6u, 16u, 16u,
68 4u, 8u, 4u, 13u, 4u, 13u, 4u, 13u, 8u, 8u, 5u, 7u, 5u, 8u, 4u, 8u,
69 6u, 6u, 16u, 16u, 4u, 8u, 4u, 8u, 4u, 13u, 8u, 8u, 5u, 7u, 5u, 8u,
70 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 4u, 8u, 5u, 8u, 8u, 8u, 1u, 19u,
71 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 5u, 10u, 5u, 10u, 10u, 10u, 5u, 10u,
72 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 4u, 10u, 5u, 10u, 4u, 10u, 5u, 10u,
73 3u, 10u, 5u, 10u, 3u, 17u, 3u, 17u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
74 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 5u, 10u, 10u, 10u, 5u, 10u, 1u, 16u,
75 1u, 16u, 3u, 10u, 4u, 10u, 5u, 10u, 4u, 10u, 5u, 10u, 5u, 10u, 3u, 10u,
76 5u, 10u, 3u, 17u, 3u, 17u, 4u, 8u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
77 3u, 17u, 1u, 16u, 5u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 1u, 16u, 3u, 10u,
78 4u, 10u, 5u, 10u, 3u, 17u, 4u, 10u, 5u, 10u, 5u, 10u, 3u, 10u, 5u, 10u,
79 3u, 17u, 4u, 13u, 4u, 8u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
80 1u, 16u, 5u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 1u, 16u, 3u, 10u, 4u, 10u,
81 5u, 10u, 3u, 17u, 4u, 10u, 5u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 1u, 17u,
82 3u, 17u, 1u, 17u, 4u, 13u, 5u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 3u, 10u,
83 5u, 10u, 5u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 0
86 static const char _indic_syllable_machine_key_spans[] = {
87 1, 5, 3, 4, 5, 1, 1, 5,
88 10, 5, 1, 3, 4, 5, 1, 1,
89 5, 10, 10, 10, 1, 3, 4, 5,
90 1, 1, 5, 5, 10, 1, 3, 4,
91 5, 1, 1, 5, 5, 4, 1, 19,
92 15, 15, 14, 16, 6, 6, 1, 6,
93 16, 16, 16, 8, 7, 6, 7, 6,
94 8, 6, 15, 15, 15, 15, 14, 16,
95 15, 15, 14, 16, 6, 1, 6, 16,
96 16, 8, 7, 6, 7, 6, 6, 8,
97 6, 15, 15, 5, 15, 15, 14, 16,
98 15, 16, 6, 1, 6, 16, 16, 8,
99 7, 6, 15, 7, 6, 6, 8, 6,
100 15, 10, 5, 15, 15, 14, 16, 15,
101 16, 6, 1, 6, 16, 16, 8, 7,
102 6, 15, 7, 6, 6, 8, 6, 17,
103 15, 17, 10, 6, 1, 6, 16, 8,
104 6, 6, 1, 6, 16
107 static const short _indic_syllable_machine_index_offsets[] = {
108 0, 2, 8, 12, 17, 23, 25, 27,
109 33, 44, 50, 52, 56, 61, 67, 69,
110 71, 77, 88, 99, 110, 112, 116, 121,
111 127, 129, 131, 137, 143, 154, 156, 160,
112 165, 171, 173, 175, 181, 187, 192, 194,
113 214, 230, 246, 261, 278, 285, 292, 294,
114 301, 318, 335, 352, 361, 369, 376, 384,
115 391, 400, 407, 423, 439, 455, 471, 486,
116 503, 519, 535, 550, 567, 574, 576, 583,
117 600, 617, 626, 634, 641, 649, 656, 663,
118 672, 679, 695, 711, 717, 733, 749, 764,
119 781, 797, 814, 821, 823, 830, 847, 864,
120 873, 881, 888, 904, 912, 919, 926, 935,
121 942, 958, 969, 975, 991, 1007, 1022, 1039,
122 1055, 1072, 1079, 1081, 1088, 1105, 1122, 1131,
123 1139, 1146, 1162, 1170, 1177, 1184, 1193, 1200,
124 1218, 1234, 1252, 1263, 1270, 1272, 1279, 1296,
125 1305, 1312, 1319, 1321, 1328
128 static const unsigned char _indic_syllable_machine_indicies[] = {
129 1, 0, 2, 3, 3, 4, 1, 0,
130 3, 3, 4, 0, 3, 3, 4, 1,
131 0, 5, 3, 3, 4, 1, 0, 6,
132 0, 7, 0, 8, 3, 3, 4, 1,
133 0, 2, 3, 3, 4, 1, 0, 0,
134 0, 0, 9, 0, 11, 12, 12, 13,
135 14, 10, 14, 10, 12, 12, 13, 10,
136 12, 12, 13, 14, 10, 15, 12, 12,
137 13, 14, 10, 16, 10, 17, 10, 18,
138 12, 12, 13, 14, 10, 11, 12, 12,
139 13, 14, 10, 10, 10, 10, 19, 10,
140 11, 12, 12, 13, 14, 10, 10, 10,
141 10, 20, 10, 22, 23, 23, 24, 25,
142 21, 21, 21, 21, 26, 21, 25, 21,
143 23, 23, 24, 27, 23, 23, 24, 25,
144 21, 28, 23, 23, 24, 25, 21, 29,
145 21, 30, 21, 22, 23, 23, 24, 25,
146 21, 31, 23, 23, 24, 25, 21, 33,
147 34, 34, 35, 36, 32, 32, 32, 32,
148 37, 32, 36, 32, 34, 34, 35, 32,
149 34, 34, 35, 36, 32, 38, 34, 34,
150 35, 36, 32, 39, 32, 40, 32, 33,
151 34, 34, 35, 36, 32, 41, 34, 34,
152 35, 36, 32, 23, 23, 24, 1, 0,
153 43, 42, 45, 46, 47, 48, 49, 50,
154 24, 25, 44, 51, 52, 52, 26, 44,
155 53, 54, 55, 56, 57, 44, 59, 60,
156 61, 62, 4, 1, 58, 63, 58, 58,
157 9, 58, 58, 58, 64, 58, 65, 60,
158 66, 66, 4, 1, 58, 63, 58, 58,
159 58, 58, 58, 58, 64, 58, 60, 66,
160 66, 4, 1, 58, 63, 58, 58, 58,
161 58, 58, 58, 64, 58, 45, 58, 58,
162 58, 67, 68, 58, 1, 58, 63, 58,
163 58, 58, 58, 58, 45, 58, 69, 69,
164 58, 1, 58, 63, 58, 63, 58, 58,
165 70, 58, 63, 58, 63, 58, 63, 58,
166 58, 58, 58, 63, 58, 45, 58, 71,
167 58, 69, 69, 58, 1, 58, 63, 58,
168 58, 58, 58, 58, 45, 58, 45, 58,
169 58, 58, 69, 69, 58, 1, 58, 63,
170 58, 58, 58, 58, 58, 45, 58, 45,
171 58, 58, 58, 69, 68, 58, 1, 58,
172 63, 58, 58, 58, 58, 58, 45, 58,
173 72, 7, 73, 74, 4, 1, 58, 63,
174 58, 7, 73, 74, 4, 1, 58, 63,
175 58, 73, 73, 4, 1, 58, 63, 58,
176 75, 76, 76, 4, 1, 58, 63, 58,
177 67, 77, 58, 1, 58, 63, 58, 67,
178 58, 69, 69, 58, 1, 58, 63, 58,
179 69, 77, 58, 1, 58, 63, 58, 59,
180 60, 66, 66, 4, 1, 58, 63, 58,
181 58, 58, 58, 58, 58, 64, 58, 59,
182 60, 61, 66, 4, 1, 58, 63, 58,
183 58, 9, 58, 58, 58, 64, 58, 79,
184 80, 81, 82, 13, 14, 78, 83, 78,
185 78, 20, 78, 78, 78, 84, 78, 85,
186 80, 86, 82, 13, 14, 78, 83, 78,
187 78, 78, 78, 78, 78, 84, 78, 80,
188 86, 82, 13, 14, 78, 83, 78, 78,
189 78, 78, 78, 78, 84, 78, 87, 78,
190 78, 78, 88, 89, 78, 14, 78, 83,
191 78, 78, 78, 78, 78, 87, 78, 90,
192 80, 91, 92, 13, 14, 78, 83, 78,
193 78, 19, 78, 78, 78, 84, 78, 93,
194 80, 86, 86, 13, 14, 78, 83, 78,
195 78, 78, 78, 78, 78, 84, 78, 80,
196 86, 86, 13, 14, 78, 83, 78, 78,
197 78, 78, 78, 78, 84, 78, 87, 78,
198 78, 78, 94, 89, 78, 14, 78, 83,
199 78, 78, 78, 78, 78, 87, 78, 83,
200 78, 78, 95, 78, 83, 78, 83, 78,
201 83, 78, 78, 78, 78, 83, 78, 87,
202 78, 96, 78, 94, 94, 78, 14, 78,
203 83, 78, 78, 78, 78, 78, 87, 78,
204 87, 78, 78, 78, 94, 94, 78, 14,
205 78, 83, 78, 78, 78, 78, 78, 87,
206 78, 97, 17, 98, 99, 13, 14, 78,
207 83, 78, 17, 98, 99, 13, 14, 78,
208 83, 78, 98, 98, 13, 14, 78, 83,
209 78, 100, 101, 101, 13, 14, 78, 83,
210 78, 88, 102, 78, 14, 78, 83, 78,
211 94, 94, 78, 14, 78, 83, 78, 88,
212 78, 94, 94, 78, 14, 78, 83, 78,
213 94, 102, 78, 14, 78, 83, 78, 90,
214 80, 86, 86, 13, 14, 78, 83, 78,
215 78, 78, 78, 78, 78, 84, 78, 90,
216 80, 91, 86, 13, 14, 78, 83, 78,
217 78, 19, 78, 78, 78, 84, 78, 11,
218 12, 12, 13, 14, 78, 79, 80, 86,
219 82, 13, 14, 78, 83, 78, 78, 78,
220 78, 78, 78, 84, 78, 104, 48, 105,
221 105, 24, 25, 103, 51, 103, 103, 103,
222 103, 103, 103, 55, 103, 48, 105, 105,
223 24, 25, 103, 51, 103, 103, 103, 103,
224 103, 103, 55, 103, 106, 103, 103, 103,
225 107, 108, 103, 25, 103, 51, 103, 103,
226 103, 103, 103, 106, 103, 47, 48, 109,
227 110, 24, 25, 103, 51, 103, 103, 26,
228 103, 103, 103, 55, 103, 106, 103, 103,
229 103, 111, 108, 103, 25, 103, 51, 103,
230 103, 103, 103, 103, 106, 103, 51, 103,
231 103, 112, 103, 51, 103, 51, 103, 51,
232 103, 103, 103, 103, 51, 103, 106, 103,
233 113, 103, 111, 111, 103, 25, 103, 51,
234 103, 103, 103, 103, 103, 106, 103, 106,
235 103, 103, 103, 111, 111, 103, 25, 103,
236 51, 103, 103, 103, 103, 103, 106, 103,
237 114, 30, 115, 116, 24, 25, 103, 51,
238 103, 30, 115, 116, 24, 25, 103, 51,
239 103, 115, 115, 24, 25, 103, 51, 103,
240 47, 48, 105, 105, 24, 25, 103, 51,
241 103, 103, 103, 103, 103, 103, 55, 103,
242 117, 118, 118, 24, 25, 103, 51, 103,
243 107, 119, 103, 25, 103, 51, 103, 111,
244 111, 103, 25, 103, 51, 103, 107, 103,
245 111, 111, 103, 25, 103, 51, 103, 111,
246 119, 103, 25, 103, 51, 103, 47, 48,
247 109, 105, 24, 25, 103, 51, 103, 103,
248 26, 103, 103, 103, 55, 103, 22, 23,
249 23, 24, 25, 120, 120, 120, 120, 26,
250 120, 22, 23, 23, 24, 25, 120, 122,
251 123, 124, 125, 35, 36, 121, 126, 121,
252 121, 37, 121, 121, 121, 127, 121, 128,
253 123, 125, 125, 35, 36, 121, 126, 121,
254 121, 121, 121, 121, 121, 127, 121, 123,
255 125, 125, 35, 36, 121, 126, 121, 121,
256 121, 121, 121, 121, 127, 121, 129, 121,
257 121, 121, 130, 131, 121, 36, 121, 126,
258 121, 121, 121, 121, 121, 129, 121, 122,
259 123, 124, 52, 35, 36, 121, 126, 121,
260 121, 37, 121, 121, 121, 127, 121, 129,
261 121, 121, 121, 132, 131, 121, 36, 121,
262 126, 121, 121, 121, 121, 121, 129, 121,
263 126, 121, 121, 133, 121, 126, 121, 126,
264 121, 126, 121, 121, 121, 121, 126, 121,
265 129, 121, 134, 121, 132, 132, 121, 36,
266 121, 126, 121, 121, 121, 121, 121, 129,
267 121, 129, 121, 121, 121, 132, 132, 121,
268 36, 121, 126, 121, 121, 121, 121, 121,
269 129, 121, 135, 40, 136, 137, 35, 36,
270 121, 126, 121, 40, 136, 137, 35, 36,
271 121, 126, 121, 136, 136, 35, 36, 121,
272 126, 121, 122, 123, 125, 125, 35, 36,
273 121, 126, 121, 121, 121, 121, 121, 121,
274 127, 121, 138, 139, 139, 35, 36, 121,
275 126, 121, 130, 140, 121, 36, 121, 126,
276 121, 132, 132, 121, 36, 121, 126, 121,
277 130, 121, 132, 132, 121, 36, 121, 126,
278 121, 132, 140, 121, 36, 121, 126, 121,
279 45, 46, 47, 48, 109, 105, 24, 25,
280 103, 51, 52, 52, 26, 103, 103, 45,
281 55, 103, 59, 141, 61, 62, 4, 1,
282 58, 63, 58, 58, 9, 58, 58, 58,
283 64, 58, 45, 46, 47, 48, 142, 143,
284 24, 144, 58, 145, 58, 52, 26, 58,
285 58, 45, 55, 58, 22, 146, 146, 24,
286 144, 58, 63, 58, 58, 26, 58, 145,
287 58, 58, 147, 58, 145, 58, 145, 58,
288 145, 58, 58, 58, 58, 145, 58, 45,
289 58, 71, 22, 146, 146, 24, 144, 58,
290 63, 58, 58, 58, 58, 58, 45, 58,
291 149, 148, 150, 150, 148, 43, 148, 151,
292 148, 150, 150, 148, 43, 148, 151, 148,
293 151, 148, 148, 152, 148, 151, 148, 151,
294 148, 151, 148, 148, 148, 148, 151, 148,
295 45, 120, 120, 120, 120, 120, 120, 120,
296 120, 120, 52, 120, 120, 120, 120, 45,
297 120, 0
300 static const unsigned char _indic_syllable_machine_trans_targs[] = {
301 39, 45, 50, 2, 51, 5, 6, 53,
302 57, 58, 39, 67, 11, 73, 68, 14,
303 15, 75, 80, 81, 84, 39, 89, 21,
304 95, 90, 98, 39, 24, 25, 97, 103,
305 39, 112, 30, 118, 113, 121, 33, 34,
306 120, 126, 39, 137, 39, 40, 60, 85,
307 87, 105, 106, 91, 107, 127, 128, 99,
308 135, 140, 39, 41, 43, 8, 59, 46,
309 54, 42, 1, 44, 48, 0, 47, 49,
310 52, 3, 4, 55, 7, 56, 39, 61,
311 63, 18, 83, 69, 76, 62, 9, 64,
312 78, 71, 65, 17, 82, 66, 10, 70,
313 72, 74, 12, 13, 77, 16, 79, 39,
314 86, 26, 88, 101, 93, 19, 104, 20,
315 92, 94, 96, 22, 23, 100, 27, 102,
316 39, 39, 108, 110, 28, 35, 114, 122,
317 109, 111, 124, 116, 29, 115, 117, 119,
318 31, 32, 123, 36, 125, 129, 130, 134,
319 131, 132, 37, 133, 39, 136, 38, 138,
323 static const char _indic_syllable_machine_trans_actions[] = {
324 1, 0, 2, 0, 2, 0, 0, 2,
325 2, 2, 3, 2, 0, 2, 0, 0,
326 0, 2, 2, 2, 2, 4, 2, 0,
327 5, 0, 5, 6, 0, 0, 5, 2,
328 7, 2, 0, 2, 0, 2, 0, 0,
329 2, 2, 8, 0, 11, 2, 2, 5,
330 0, 12, 12, 0, 2, 5, 2, 5,
331 2, 0, 13, 2, 0, 0, 2, 0,
332 2, 2, 0, 2, 2, 0, 0, 2,
333 2, 0, 0, 0, 0, 2, 14, 2,
334 0, 0, 2, 0, 2, 2, 0, 2,
335 2, 2, 2, 0, 2, 2, 0, 0,
336 2, 2, 0, 0, 0, 0, 2, 15,
337 5, 0, 5, 2, 2, 0, 5, 0,
338 0, 2, 5, 0, 0, 0, 0, 2,
339 16, 17, 2, 0, 0, 0, 0, 2,
340 2, 2, 2, 2, 0, 0, 2, 2,
341 0, 0, 0, 0, 2, 0, 18, 18,
342 0, 0, 0, 0, 19, 2, 0, 0,
346 static const char _indic_syllable_machine_to_state_actions[] = {
347 0, 0, 0, 0, 0, 0, 0, 0,
348 0, 0, 0, 0, 0, 0, 0, 0,
349 0, 0, 0, 0, 0, 0, 0, 0,
350 0, 0, 0, 0, 0, 0, 0, 0,
351 0, 0, 0, 0, 0, 0, 0, 9,
352 0, 0, 0, 0, 0, 0, 0, 0,
353 0, 0, 0, 0, 0, 0, 0, 0,
354 0, 0, 0, 0, 0, 0, 0, 0,
355 0, 0, 0, 0, 0, 0, 0, 0,
356 0, 0, 0, 0, 0, 0, 0, 0,
357 0, 0, 0, 0, 0, 0, 0, 0,
358 0, 0, 0, 0, 0, 0, 0, 0,
359 0, 0, 0, 0, 0, 0, 0, 0,
360 0, 0, 0, 0, 0, 0, 0, 0,
361 0, 0, 0, 0, 0, 0, 0, 0,
362 0, 0, 0, 0, 0, 0, 0, 0,
363 0, 0, 0, 0, 0, 0, 0, 0,
364 0, 0, 0, 0, 0
367 static const char _indic_syllable_machine_from_state_actions[] = {
368 0, 0, 0, 0, 0, 0, 0, 0,
369 0, 0, 0, 0, 0, 0, 0, 0,
370 0, 0, 0, 0, 0, 0, 0, 0,
371 0, 0, 0, 0, 0, 0, 0, 0,
372 0, 0, 0, 0, 0, 0, 0, 10,
373 0, 0, 0, 0, 0, 0, 0, 0,
374 0, 0, 0, 0, 0, 0, 0, 0,
375 0, 0, 0, 0, 0, 0, 0, 0,
376 0, 0, 0, 0, 0, 0, 0, 0,
377 0, 0, 0, 0, 0, 0, 0, 0,
378 0, 0, 0, 0, 0, 0, 0, 0,
379 0, 0, 0, 0, 0, 0, 0, 0,
380 0, 0, 0, 0, 0, 0, 0, 0,
381 0, 0, 0, 0, 0, 0, 0, 0,
382 0, 0, 0, 0, 0, 0, 0, 0,
383 0, 0, 0, 0, 0, 0, 0, 0,
384 0, 0, 0, 0, 0, 0, 0, 0,
385 0, 0, 0, 0, 0
388 static const short _indic_syllable_machine_eof_trans[] = {
389 1, 1, 1, 1, 1, 1, 1, 1,
390 1, 11, 11, 11, 11, 11, 11, 11,
391 11, 11, 11, 22, 22, 28, 22, 22,
392 22, 22, 22, 22, 33, 33, 33, 33,
393 33, 33, 33, 33, 33, 1, 43, 0,
394 59, 59, 59, 59, 59, 59, 59, 59,
395 59, 59, 59, 59, 59, 59, 59, 59,
396 59, 59, 59, 59, 79, 79, 79, 79,
397 79, 79, 79, 79, 79, 79, 79, 79,
398 79, 79, 79, 79, 79, 79, 79, 79,
399 79, 79, 79, 79, 79, 104, 104, 104,
400 104, 104, 104, 104, 104, 104, 104, 104,
401 104, 104, 104, 104, 104, 104, 104, 104,
402 104, 121, 121, 122, 122, 122, 122, 122,
403 122, 122, 122, 122, 122, 122, 122, 122,
404 122, 122, 122, 122, 122, 122, 122, 104,
405 59, 59, 59, 59, 59, 59, 59, 149,
406 149, 149, 149, 149, 121
409 static const int indic_syllable_machine_start = 39;
410 static const int indic_syllable_machine_first_final = 39;
411 static const int indic_syllable_machine_error = -1;
413 static const int indic_syllable_machine_en_main = 39;
416 #line 46 "hb-ot-shape-complex-indic-machine.rl"
420 #line 102 "hb-ot-shape-complex-indic-machine.rl"
423 #define found_syllable(syllable_type) \
424 HB_STMT_START { \
425 if (0) fprintf (stderr, "syllable %d..%d %s\n", ts, te, #syllable_type); \
426 for (unsigned int i = ts; i < te; i++) \
427 info[i].syllable() = (syllable_serial << 4) | syllable_type; \
428 syllable_serial++; \
429 if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
430 } HB_STMT_END
432 static void
433 find_syllables_indic (hb_buffer_t *buffer)
435 unsigned int p, pe, eof, ts, te, act;
436 int cs;
437 hb_glyph_info_t *info = buffer->info;
439 #line 440 "hb-ot-shape-complex-indic-machine.hh"
441 cs = indic_syllable_machine_start;
442 ts = 0;
443 te = 0;
444 act = 0;
447 #line 122 "hb-ot-shape-complex-indic-machine.rl"
450 p = 0;
451 pe = eof = buffer->len;
453 unsigned int syllable_serial = 1;
455 #line 456 "hb-ot-shape-complex-indic-machine.hh"
457 int _slen;
458 int _trans;
459 const unsigned char *_keys;
460 const unsigned char *_inds;
461 if ( p == pe )
462 goto _test_eof;
463 _resume:
464 switch ( _indic_syllable_machine_from_state_actions[cs] ) {
465 case 10:
466 #line 1 "NONE"
467 {ts = p;}
468 break;
469 #line 470 "hb-ot-shape-complex-indic-machine.hh"
472 _keys = _indic_syllable_machine_trans_keys + (cs<<1);
473 _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
475 _slen = _indic_syllable_machine_key_spans[cs];
476 _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
477 ( info[p].indic_category()) <= _keys[1] ?
478 ( info[p].indic_category()) - _keys[0] : _slen ];
480 _eof_trans:
481 cs = _indic_syllable_machine_trans_targs[_trans];
483 if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
484 goto _again;
486 switch ( _indic_syllable_machine_trans_actions[_trans] ) {
487 case 2:
488 #line 1 "NONE"
489 {te = p+1;}
490 break;
491 case 11:
492 #line 98 "hb-ot-shape-complex-indic-machine.rl"
493 {te = p+1;{ found_syllable (indic_non_indic_cluster); }}
494 break;
495 case 13:
496 #line 93 "hb-ot-shape-complex-indic-machine.rl"
497 {te = p;p--;{ found_syllable (indic_consonant_syllable); }}
498 break;
499 case 14:
500 #line 94 "hb-ot-shape-complex-indic-machine.rl"
501 {te = p;p--;{ found_syllable (indic_vowel_syllable); }}
502 break;
503 case 17:
504 #line 95 "hb-ot-shape-complex-indic-machine.rl"
505 {te = p;p--;{ found_syllable (indic_standalone_cluster); }}
506 break;
507 case 19:
508 #line 96 "hb-ot-shape-complex-indic-machine.rl"
509 {te = p;p--;{ found_syllable (indic_symbol_cluster); }}
510 break;
511 case 15:
512 #line 97 "hb-ot-shape-complex-indic-machine.rl"
513 {te = p;p--;{ found_syllable (indic_broken_cluster); }}
514 break;
515 case 16:
516 #line 98 "hb-ot-shape-complex-indic-machine.rl"
517 {te = p;p--;{ found_syllable (indic_non_indic_cluster); }}
518 break;
519 case 1:
520 #line 93 "hb-ot-shape-complex-indic-machine.rl"
521 {{p = ((te))-1;}{ found_syllable (indic_consonant_syllable); }}
522 break;
523 case 3:
524 #line 94 "hb-ot-shape-complex-indic-machine.rl"
525 {{p = ((te))-1;}{ found_syllable (indic_vowel_syllable); }}
526 break;
527 case 7:
528 #line 95 "hb-ot-shape-complex-indic-machine.rl"
529 {{p = ((te))-1;}{ found_syllable (indic_standalone_cluster); }}
530 break;
531 case 8:
532 #line 96 "hb-ot-shape-complex-indic-machine.rl"
533 {{p = ((te))-1;}{ found_syllable (indic_symbol_cluster); }}
534 break;
535 case 4:
536 #line 97 "hb-ot-shape-complex-indic-machine.rl"
537 {{p = ((te))-1;}{ found_syllable (indic_broken_cluster); }}
538 break;
539 case 6:
540 #line 1 "NONE"
541 { switch( act ) {
542 case 1:
543 {{p = ((te))-1;} found_syllable (indic_consonant_syllable); }
544 break;
545 case 5:
546 {{p = ((te))-1;} found_syllable (indic_broken_cluster); }
547 break;
548 case 6:
549 {{p = ((te))-1;} found_syllable (indic_non_indic_cluster); }
550 break;
553 break;
554 case 18:
555 #line 1 "NONE"
556 {te = p+1;}
557 #line 93 "hb-ot-shape-complex-indic-machine.rl"
558 {act = 1;}
559 break;
560 case 5:
561 #line 1 "NONE"
562 {te = p+1;}
563 #line 97 "hb-ot-shape-complex-indic-machine.rl"
564 {act = 5;}
565 break;
566 case 12:
567 #line 1 "NONE"
568 {te = p+1;}
569 #line 98 "hb-ot-shape-complex-indic-machine.rl"
570 {act = 6;}
571 break;
572 #line 573 "hb-ot-shape-complex-indic-machine.hh"
575 _again:
576 switch ( _indic_syllable_machine_to_state_actions[cs] ) {
577 case 9:
578 #line 1 "NONE"
579 {ts = 0;}
580 break;
581 #line 582 "hb-ot-shape-complex-indic-machine.hh"
584 if ( ++p != pe )
585 goto _resume;
586 _test_eof: {}
587 if ( p == eof )
589 if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
590 _trans = _indic_syllable_machine_eof_trans[cs] - 1;
591 goto _eof_trans;
597 #line 130 "hb-ot-shape-complex-indic-machine.rl"
601 #undef found_syllable
603 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */