rustybuzz/hb/
ot_shaper_myanmar_machine.rs

1#![allow(
2    dead_code,
3    non_upper_case_globals,
4    unused_assignments,
5    unused_parens,
6    while_true,
7    clippy::assign_op_pattern,
8    clippy::collapsible_if,
9    clippy::comparison_chain,
10    clippy::double_parens,
11    clippy::unnecessary_cast,
12    clippy::single_match,
13    clippy::never_loop
14)]
15
16use super::buffer::{hb_buffer_t, HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE};
17
18static _myanmar_syllable_machine_actions: [i8; 21] = [
19    0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 0, 0,
20];
21static _myanmar_syllable_machine_key_offsets: [i16; 57] = [
22    0, 24, 42, 48, 51, 62, 69, 76, 81, 85, 93, 102, 112, 117, 120, 129, 137, 148, 158, 174, 186,
23    197, 210, 223, 238, 252, 269, 275, 278, 289, 296, 303, 308, 312, 320, 329, 339, 344, 347, 365,
24    374, 382, 393, 403, 419, 431, 442, 455, 468, 483, 497, 514, 532, 549, 572, 0, 0,
25];
26static _myanmar_syllable_machine_trans_keys: [u8; 579] = [
27    3, 4, 8, 9, 15, 18, 20, 21, 22, 23, 32, 35, 36, 37, 38, 39, 40, 41, 1, 2, 5, 6, 10, 11, 3, 4,
28    8, 9, 20, 21, 22, 23, 32, 35, 36, 37, 38, 39, 40, 41, 5, 6, 8, 23, 32, 39, 5, 6, 8, 5, 6, 3, 8,
29    9, 20, 23, 32, 35, 39, 41, 5, 6, 3, 8, 9, 23, 39, 5, 6, 3, 8, 9, 32, 39, 5, 6, 8, 32, 39, 5, 6,
30    8, 39, 5, 6, 3, 8, 9, 20, 23, 39, 5, 6, 3, 8, 9, 20, 23, 32, 39, 5, 6, 3, 8, 9, 20, 23, 32, 39,
31    41, 5, 6, 8, 23, 39, 5, 6, 15, 1, 2, 3, 8, 9, 20, 21, 23, 39, 5, 6, 3, 8, 9, 21, 23, 39, 5, 6,
32    3, 8, 9, 20, 21, 22, 23, 39, 40, 5, 6, 3, 8, 9, 20, 21, 22, 23, 39, 5, 6, 3, 8, 9, 20, 21, 22,
33    23, 32, 35, 36, 37, 38, 39, 41, 5, 6, 3, 8, 9, 20, 21, 22, 23, 32, 39, 41, 5, 6, 3, 8, 9, 20,
34    21, 22, 23, 32, 39, 5, 6, 3, 8, 9, 20, 21, 22, 23, 35, 37, 39, 41, 5, 6, 3, 8, 9, 20, 21, 22,
35    23, 32, 35, 39, 41, 5, 6, 3, 8, 9, 20, 21, 22, 23, 32, 35, 36, 37, 39, 41, 5, 6, 3, 8, 9, 20,
36    21, 22, 23, 35, 36, 37, 39, 41, 5, 6, 3, 4, 8, 9, 20, 21, 22, 23, 32, 35, 36, 37, 38, 39, 41,
37    5, 6, 8, 23, 32, 39, 5, 6, 8, 5, 6, 3, 8, 9, 20, 23, 32, 35, 39, 41, 5, 6, 3, 8, 9, 23, 39, 5,
38    6, 3, 8, 9, 32, 39, 5, 6, 8, 32, 39, 5, 6, 8, 39, 5, 6, 3, 8, 9, 20, 23, 39, 5, 6, 3, 8, 9, 20,
39    23, 32, 39, 5, 6, 3, 8, 9, 20, 23, 32, 39, 41, 5, 6, 8, 23, 39, 5, 6, 15, 1, 2, 3, 4, 8, 9, 20,
40    21, 22, 23, 32, 35, 36, 37, 38, 39, 40, 41, 5, 6, 3, 8, 9, 20, 21, 23, 39, 5, 6, 3, 8, 9, 21,
41    23, 39, 5, 6, 3, 8, 9, 20, 21, 22, 23, 39, 40, 5, 6, 3, 8, 9, 20, 21, 22, 23, 39, 5, 6, 3, 8,
42    9, 20, 21, 22, 23, 32, 35, 36, 37, 38, 39, 41, 5, 6, 3, 8, 9, 20, 21, 22, 23, 32, 39, 41, 5, 6,
43    3, 8, 9, 20, 21, 22, 23, 32, 39, 5, 6, 3, 8, 9, 20, 21, 22, 23, 35, 37, 39, 41, 5, 6, 3, 8, 9,
44    20, 21, 22, 23, 32, 35, 39, 41, 5, 6, 3, 8, 9, 20, 21, 22, 23, 32, 35, 36, 37, 39, 41, 5, 6, 3,
45    8, 9, 20, 21, 22, 23, 35, 36, 37, 39, 41, 5, 6, 3, 4, 8, 9, 20, 21, 22, 23, 32, 35, 36, 37, 38,
46    39, 41, 5, 6, 3, 4, 8, 9, 20, 21, 22, 23, 32, 35, 36, 37, 38, 39, 40, 41, 5, 6, 3, 4, 8, 9, 20,
47    21, 22, 23, 32, 35, 36, 37, 38, 39, 41, 5, 6, 3, 4, 8, 9, 15, 20, 21, 22, 23, 32, 35, 36, 37,
48    38, 39, 40, 41, 1, 2, 5, 6, 10, 11, 15, 1, 2, 10, 11, 0, 0,
49];
50static _myanmar_syllable_machine_single_lengths: [i8; 57] = [
51    18, 16, 4, 1, 9, 5, 5, 3, 2, 6, 7, 8, 3, 1, 7, 6, 9, 8, 14, 10, 9, 11, 11, 13, 12, 15, 4, 1, 9,
52    5, 5, 3, 2, 6, 7, 8, 3, 1, 16, 7, 6, 9, 8, 14, 10, 9, 11, 11, 13, 12, 15, 16, 15, 17, 1, 0, 0,
53];
54static _myanmar_syllable_machine_range_lengths: [i8; 57] = [
55    3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
56    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 0, 0,
57];
58static _myanmar_syllable_machine_index_offsets: [i16; 57] = [
59    0, 22, 40, 46, 49, 60, 67, 74, 79, 83, 91, 100, 110, 115, 118, 127, 135, 146, 156, 172, 184,
60    195, 208, 221, 236, 250, 267, 273, 276, 287, 294, 301, 306, 310, 318, 327, 337, 342, 345, 363,
61    372, 380, 391, 401, 417, 429, 440, 453, 466, 481, 495, 512, 530, 547, 568, 0, 0,
62];
63static _myanmar_syllable_machine_cond_targs: [i8; 629] = [
64    26, 37, 27, 29, 51, 54, 39, 40, 41, 28, 43, 44, 46, 47, 48, 30, 50, 45, 1, 0, 1, 0, 2, 13, 3,
65    5, 14, 15, 16, 4, 18, 19, 21, 22, 23, 6, 25, 20, 0, 0, 3, 4, 12, 6, 0, 0, 3, 0, 0, 2, 3, 5, 9,
66    4, 10, 11, 6, 10, 0, 0, 2, 3, 5, 4, 6, 0, 0, 7, 3, 6, 8, 6, 0, 0, 3, 8, 6, 0, 0, 3, 6, 0, 0, 2,
67    3, 5, 9, 4, 6, 0, 0, 2, 3, 5, 9, 4, 10, 6, 0, 0, 2, 3, 5, 9, 4, 10, 6, 10, 0, 0, 3, 4, 6, 0, 0,
68    1, 1, 0, 2, 3, 5, 14, 15, 4, 6, 0, 0, 2, 3, 5, 15, 4, 6, 0, 0, 2, 3, 5, 14, 15, 16, 4, 6, 17,
69    0, 0, 2, 3, 5, 14, 15, 16, 4, 6, 0, 0, 2, 3, 5, 14, 15, 16, 4, 18, 19, 21, 22, 23, 6, 20, 0, 0,
70    2, 3, 5, 14, 15, 16, 4, 17, 6, 20, 0, 0, 2, 3, 5, 14, 15, 16, 4, 17, 6, 0, 0, 2, 3, 5, 14, 15,
71    16, 4, 19, 22, 6, 20, 0, 0, 2, 3, 5, 14, 15, 16, 4, 17, 19, 6, 20, 0, 0, 2, 3, 5, 14, 15, 16,
72    4, 24, 19, 21, 22, 6, 20, 0, 0, 2, 3, 5, 14, 15, 16, 4, 19, 21, 22, 6, 20, 0, 0, 2, 13, 3, 5,
73    14, 15, 16, 4, 18, 19, 21, 22, 23, 6, 20, 0, 0, 27, 28, 36, 30, 0, 0, 27, 0, 0, 26, 27, 29, 33,
74    28, 34, 35, 30, 34, 0, 0, 26, 27, 29, 28, 30, 0, 0, 31, 27, 30, 32, 30, 0, 0, 27, 32, 30, 0, 0,
75    27, 30, 0, 0, 26, 27, 29, 33, 28, 30, 0, 0, 26, 27, 29, 33, 28, 34, 30, 0, 0, 26, 27, 29, 33,
76    28, 34, 30, 34, 0, 0, 27, 28, 30, 0, 0, 38, 38, 0, 26, 37, 27, 29, 39, 40, 41, 28, 43, 44, 46,
77    47, 48, 30, 50, 45, 0, 0, 26, 27, 29, 39, 40, 28, 30, 0, 0, 26, 27, 29, 40, 28, 30, 0, 0, 26,
78    27, 29, 39, 40, 41, 28, 30, 42, 0, 0, 26, 27, 29, 39, 40, 41, 28, 30, 0, 0, 26, 27, 29, 39, 40,
79    41, 28, 43, 44, 46, 47, 48, 30, 45, 0, 0, 26, 27, 29, 39, 40, 41, 28, 42, 30, 45, 0, 0, 26, 27,
80    29, 39, 40, 41, 28, 42, 30, 0, 0, 26, 27, 29, 39, 40, 41, 28, 44, 47, 30, 45, 0, 0, 26, 27, 29,
81    39, 40, 41, 28, 42, 44, 30, 45, 0, 0, 26, 27, 29, 39, 40, 41, 28, 49, 44, 46, 47, 30, 45, 0, 0,
82    26, 27, 29, 39, 40, 41, 28, 44, 46, 47, 30, 45, 0, 0, 26, 37, 27, 29, 39, 40, 41, 28, 43, 44,
83    46, 47, 48, 30, 45, 0, 0, 2, 13, 3, 5, 14, 15, 16, 4, 52, 19, 21, 22, 23, 6, 25, 20, 0, 0, 2,
84    53, 3, 5, 14, 15, 16, 4, 18, 19, 21, 22, 23, 6, 20, 0, 0, 26, 37, 27, 29, 1, 39, 40, 41, 28,
85    43, 44, 46, 47, 48, 30, 50, 45, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
86    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
87    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
88];
89static _myanmar_syllable_machine_cond_actions: [i8; 629] = [
90    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0,
91    0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 5, 13, 0, 5, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0,
92    0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 5, 13, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 13,
93    0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 5, 13, 0, 0, 13, 0, 0, 0,
94    0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0,
95    0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
96    13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0,
97    0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
98    0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 9, 15, 0, 9,
99    15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 9,
100    15, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 0, 0,
101    9, 15, 0, 0, 0, 9, 15, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 15, 0, 0,
102    0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0,
103    0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
104    9, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0,
105    0, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 0, 0,
106    0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 15, 0, 0, 0, 0, 0, 0, 0, 0,
107    0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 13, 0, 0, 0, 0,
108    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 15, 0, 0, 0, 17, 0, 13, 13, 13, 13, 13, 13, 13,
109    13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 15, 15, 15, 15, 15, 15,
110    15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 13, 13, 15, 17, 0,
111    0,
112];
113static _myanmar_syllable_machine_to_state_actions: [i8; 57] = [
114    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
115    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
116];
117static _myanmar_syllable_machine_from_state_actions: [i8; 57] = [
118    3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
119    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
120];
121static _myanmar_syllable_machine_eof_trans: [i16; 57] = [
122    573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591,
123    592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610,
124    611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 0, 0,
125];
126static myanmar_syllable_machine_start: i32 = 0;
127static myanmar_syllable_machine_first_final: i32 = 0;
128static myanmar_syllable_machine_error: i32 = -1;
129static myanmar_syllable_machine_en_main: i32 = 0;
130#[derive(Clone, Copy)]
131pub enum SyllableType {
132    ConsonantSyllable = 0,
133    PunctuationCluster,
134    BrokenCluster,
135    NonMyanmarCluster,
136}
137
138pub fn find_syllables_myanmar(buffer: &mut hb_buffer_t) {
139    let mut cs = 0;
140    let mut ts = 0;
141    let mut te;
142    let mut p = 0;
143    let pe = buffer.len;
144    let eof = buffer.len;
145    let mut syllable_serial = 1u8;
146
147    macro_rules! found_syllable {
148        ($kind:expr) => {{
149            found_syllable(ts, te, &mut syllable_serial, $kind, buffer);
150        }};
151    }
152
153    {
154        cs = (myanmar_syllable_machine_start) as i32;
155        ts = 0;
156        te = 0;
157    }
158
159    {
160        let mut _klen = 0;
161        let mut _trans = 0;
162        let mut _keys: i32 = 0;
163        let mut _acts: i32 = 0;
164        let mut _nacts = 0;
165        let mut __have = 0;
166        '_resume: while (p != pe || p == eof) {
167            '_again: while (true) {
168                _acts = (_myanmar_syllable_machine_from_state_actions[(cs) as usize]) as i32;
169                _nacts = (_myanmar_syllable_machine_actions[(_acts) as usize]) as u32;
170                _acts += 1;
171                while (_nacts > 0) {
172                    match (_myanmar_syllable_machine_actions[(_acts) as usize]) {
173                        1 => {
174                            ts = p;
175                        }
176
177                        _ => {}
178                    }
179                    _nacts -= 1;
180                    _acts += 1;
181                }
182                if (p == eof) {
183                    {
184                        if (_myanmar_syllable_machine_eof_trans[(cs) as usize] > 0) {
185                            {
186                                _trans =
187                                    (_myanmar_syllable_machine_eof_trans[(cs) as usize]) as u32 - 1;
188                            }
189                        }
190                    }
191                } else {
192                    {
193                        _keys = (_myanmar_syllable_machine_key_offsets[(cs) as usize]) as i32;
194                        _trans = (_myanmar_syllable_machine_index_offsets[(cs) as usize]) as u32;
195                        _klen = (_myanmar_syllable_machine_single_lengths[(cs) as usize]) as i32;
196                        __have = 0;
197                        if (_klen > 0) {
198                            {
199                                let mut _lower: i32 = _keys;
200                                let mut _upper: i32 = _keys + _klen - 1;
201                                let mut _mid: i32 = 0;
202                                while (true) {
203                                    if (_upper < _lower) {
204                                        {
205                                            _keys += _klen;
206                                            _trans += (_klen) as u32;
207                                            break;
208                                        }
209                                    }
210                                    _mid = _lower + ((_upper - _lower) >> 1);
211                                    if ((buffer.info[p].myanmar_category() as u8)
212                                        < _myanmar_syllable_machine_trans_keys[(_mid) as usize])
213                                    {
214                                        _upper = _mid - 1;
215                                    } else if ((buffer.info[p].myanmar_category() as u8)
216                                        > _myanmar_syllable_machine_trans_keys[(_mid) as usize])
217                                    {
218                                        _lower = _mid + 1;
219                                    } else {
220                                        {
221                                            __have = 1;
222                                            _trans += (_mid - _keys) as u32;
223                                            break;
224                                        }
225                                    }
226                                }
227                            }
228                        }
229                        _klen = (_myanmar_syllable_machine_range_lengths[(cs) as usize]) as i32;
230                        if (__have == 0 && _klen > 0) {
231                            {
232                                let mut _lower: i32 = _keys;
233                                let mut _upper: i32 = _keys + (_klen << 1) - 2;
234                                let mut _mid: i32 = 0;
235                                while (true) {
236                                    if (_upper < _lower) {
237                                        {
238                                            _trans += (_klen) as u32;
239                                            break;
240                                        }
241                                    }
242                                    _mid = _lower + (((_upper - _lower) >> 1) & !1);
243                                    if ((buffer.info[p].myanmar_category() as u8)
244                                        < _myanmar_syllable_machine_trans_keys[(_mid) as usize])
245                                    {
246                                        _upper = _mid - 2;
247                                    } else if ((buffer.info[p].myanmar_category() as u8)
248                                        > _myanmar_syllable_machine_trans_keys[(_mid + 1) as usize])
249                                    {
250                                        _lower = _mid + 2;
251                                    } else {
252                                        {
253                                            _trans += ((_mid - _keys) >> 1) as u32;
254                                            break;
255                                        }
256                                    }
257                                }
258                            }
259                        }
260                    }
261                }
262                cs = (_myanmar_syllable_machine_cond_targs[(_trans) as usize]) as i32;
263                if (_myanmar_syllable_machine_cond_actions[(_trans) as usize] != 0) {
264                    {
265                        _acts = (_myanmar_syllable_machine_cond_actions[(_trans) as usize]) as i32;
266                        _nacts = (_myanmar_syllable_machine_actions[(_acts) as usize]) as u32;
267                        _acts += 1;
268                        while (_nacts > 0) {
269                            match (_myanmar_syllable_machine_actions[(_acts) as usize]) {
270                                2 => {
271                                    te = p + 1;
272                                    {
273                                        found_syllable!(SyllableType::ConsonantSyllable);
274                                    }
275                                }
276                                3 => {
277                                    te = p + 1;
278                                    {
279                                        found_syllable!(SyllableType::NonMyanmarCluster);
280                                    }
281                                }
282                                4 => {
283                                    te = p + 1;
284                                    {
285                                        found_syllable!(SyllableType::BrokenCluster);
286                                        buffer.scratch_flags |=
287                                            HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE;
288                                    }
289                                }
290                                5 => {
291                                    te = p + 1;
292                                    {
293                                        found_syllable!(SyllableType::NonMyanmarCluster);
294                                    }
295                                }
296                                6 => {
297                                    te = p;
298                                    p = p - 1;
299                                    {
300                                        found_syllable!(SyllableType::ConsonantSyllable);
301                                    }
302                                }
303                                7 => {
304                                    te = p;
305                                    p = p - 1;
306                                    {
307                                        found_syllable!(SyllableType::BrokenCluster);
308                                        buffer.scratch_flags |=
309                                            HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE;
310                                    }
311                                }
312                                8 => {
313                                    te = p;
314                                    p = p - 1;
315                                    {
316                                        found_syllable!(SyllableType::NonMyanmarCluster);
317                                    }
318                                }
319
320                                _ => {}
321                            }
322                            _nacts -= 1;
323                            _acts += 1;
324                        }
325                    }
326                }
327                break '_again;
328            }
329            if (p == eof) {
330                {
331                    if (cs >= 0) {
332                        break '_resume;
333                    }
334                }
335            } else {
336                {
337                    _acts = (_myanmar_syllable_machine_to_state_actions[(cs) as usize]) as i32;
338                    _nacts = (_myanmar_syllable_machine_actions[(_acts) as usize]) as u32;
339                    _acts += 1;
340                    while (_nacts > 0) {
341                        match (_myanmar_syllable_machine_actions[(_acts) as usize]) {
342                            0 => {
343                                ts = 0;
344                            }
345
346                            _ => {}
347                        }
348                        _nacts -= 1;
349                        _acts += 1;
350                    }
351                    p += 1;
352                    continue '_resume;
353                }
354            }
355            break '_resume;
356        }
357    }
358}
359
360#[inline]
361fn found_syllable(
362    start: usize,
363    end: usize,
364    syllable_serial: &mut u8,
365    kind: SyllableType,
366    buffer: &mut hb_buffer_t,
367) {
368    for i in start..end {
369        buffer.info[i].set_syllable((*syllable_serial << 4) | kind as u8);
370    }
371
372    *syllable_serial += 1;
373
374    if *syllable_serial == 16 {
375        *syllable_serial = 1;
376    }
377}