// Copyright 2026 International Digital Economy Academy
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
///|
/// Generated from refs/harfbuzz/src/hb-ot-shaper-myanmar-machine.hh.
///
let myanmar_syllable_type_consonant : Int = 0
let myanmar_syllable_type_broken : Int = 1
let myanmar_syllable_type_non_myanmar : Int = 2
let myanmar_machine_start : Int = 0
let myanmar_machine_trans_keys : Array[Int] = [
1, 57, 3, 57, 5, 57, 5, 57, 3, 57, 5, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 5, 57, 1, 15, 3, 57,
3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 5, 57, 5, 57, 3, 57,
5, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 5, 57, 1, 15, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57,
3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 1, 57, 1, 15, 0,
]
let myanmar_machine_key_spans : Array[Int] = [
57, 55, 53, 53, 55, 53, 55, 55, 55, 55, 55, 53, 15, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 53, 53, 55, 53, 55, 55, 55, 55, 55, 53, 15, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 57, 15,
]
let myanmar_machine_index_offsets : Array[Int] = [
0, 58, 114, 168, 222, 278, 332, 388, 444, 500, 556, 612, 666, 682, 738, 794, 850, 906, 962, 1018,
1074, 1130, 1186, 1242, 1298, 1354, 1408, 1462, 1518, 1572, 1628, 1684, 1740, 1796, 1852, 1906,
1922, 1978, 2034, 2090, 2146, 2202, 2258, 2314, 2370, 2426, 2482, 2538, 2594, 2650, 2706, 2762,
2820,
]
let myanmar_machine_indicies : Array[Int] = [
1, 1, 2, 3, 4, 4, 0, 5, 6, 1, 1, 0, 0, 0, 7, 0, 0, 8, 0, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0,
13, 0, 0, 14, 15, 16, 17, 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 23, 24,
25, 25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 28, 29, 30, 31, 22, 22, 22, 22, 22,
22, 22, 22, 32, 22, 22, 33, 34, 35, 36, 37, 38, 39, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 26, 22, 25, 25, 22, 26, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
31, 22, 22, 22, 22, 22, 22, 22, 22, 40, 22, 22, 22, 22, 22, 22, 37, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 25, 25, 22, 26, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 37, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 41, 22, 25, 25, 22, 26,
37, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26,
22, 22, 22, 22, 22, 22, 37, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
26, 22, 25, 25, 22, 26, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 26, 22, 22, 22, 22, 22, 22, 37, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 26, 22, 23, 22, 25, 25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 42, 22, 22, 31, 22, 22, 22, 22, 22, 22, 22, 22, 43, 22, 22, 44, 22, 22, 22, 37, 22, 43, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 23, 22, 25, 25, 22, 26, 27, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 31, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 37, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22,
23, 22, 25, 25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 42, 22, 22, 31, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 37, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 26, 22, 23, 22, 25, 25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 42, 22, 22, 31, 22, 22, 22, 22, 22, 22, 22, 22, 43, 22, 22, 22, 22, 22, 22, 37, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 23, 22, 25, 25, 22, 26, 27, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 42, 22, 22, 31, 22, 22, 22, 22, 22, 22, 22, 22, 43, 22, 22,
22, 22, 22, 22, 37, 22, 43, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22,
25, 25, 22, 26, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 31, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 37, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 26, 22, 1, 1, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 1, 22, 23, 22, 25,
25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 28, 29, 22, 31, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 37, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 26, 22, 23, 22, 25, 25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 29,
22, 31, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 37, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 23, 22, 25, 25, 22, 26, 27, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 28, 29, 30, 31, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 37, 45, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 23, 22, 25,
25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 28, 29, 30, 31, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 37, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 26, 22, 23, 22, 25, 25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 28, 29,
30, 31, 22, 22, 22, 22, 22, 22, 22, 22, 32, 22, 22, 33, 34, 35, 36, 37, 22, 39, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 23, 22, 25, 25, 22, 26, 27, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 28, 29, 30, 31, 22, 22, 22, 22, 22, 22, 22, 22, 45, 22, 22, 22, 22, 22,
22, 37, 22, 39, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 23, 22, 25,
25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 28, 29, 30, 31, 22, 22, 22, 22, 22, 22,
22, 22, 45, 22, 22, 22, 22, 22, 22, 37, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 26, 22, 23, 22, 25, 25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 28, 29,
30, 31, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 33, 22, 35, 22, 37, 22, 39, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 23, 22, 25, 25, 22, 26, 27, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 28, 29, 30, 31, 22, 22, 22, 22, 22, 22, 22, 22, 45, 22, 22, 33, 22, 22,
22, 37, 22, 39, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 23, 22, 25,
25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 28, 29, 30, 31, 22, 22, 22, 22, 22, 22,
22, 22, 46, 22, 22, 33, 34, 35, 22, 37, 22, 39, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 26, 22, 23, 22, 25, 25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 28, 29,
30, 31, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 33, 34, 35, 22, 37, 22, 39, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 23, 24, 25, 25, 22, 26, 27, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 28, 29, 30, 31, 22, 22, 22, 22, 22, 22, 22, 22, 32, 22, 22, 33, 34, 35,
36, 37, 22, 39, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 48, 48, 47,
5, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 12, 47, 47, 47, 47, 47, 47, 47, 47,
49, 47, 47, 47, 47, 47, 47, 18, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 5, 47, 48, 48, 50, 5, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 18, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
50, 50, 50, 50, 50, 50, 5, 50, 51, 47, 48, 48, 47, 5, 18, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 47, 47, 47, 47, 47, 18, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 48, 48, 47, 5, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 47, 47, 47, 47, 47,
18, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 2, 47, 48, 48, 47,
5, 6, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 52, 47, 47, 12, 47, 47, 47, 47, 47, 47, 47, 47, 53,
47, 47, 54, 47, 47, 47, 18, 47, 53, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
5, 47, 2, 47, 48, 48, 47, 5, 6, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 12, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 18, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 5, 47, 2, 47, 48, 48, 47, 5, 6, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 52, 47, 47, 12, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 18, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 2, 47, 48, 48, 47, 5, 6, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 52, 47, 47, 12, 47, 47, 47, 47, 47, 47, 47, 47, 53, 47, 47, 47,
47, 47, 47, 18, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 2, 47,
48, 48, 47, 5, 6, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 52, 47, 47, 12, 47, 47, 47, 47, 47, 47,
47, 47, 53, 47, 47, 47, 47, 47, 47, 18, 47, 53, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 5, 47, 48, 48, 47, 5, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 12, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 18, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 55, 55, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
55, 47, 2, 3, 48, 48, 47, 5, 6, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 9, 10, 11, 12, 47, 47,
47, 47, 47, 47, 47, 47, 13, 47, 47, 14, 15, 16, 17, 18, 19, 20, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 5, 47, 2, 47, 48, 48, 47, 5, 6, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 9, 10, 47, 12, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 18, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 2, 47, 48, 48, 47, 5, 6, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 10, 47, 12, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 18, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 2, 47,
48, 48, 47, 5, 6, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 9, 10, 11, 12, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 18, 56, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 5, 47, 2, 47, 48, 48, 47, 5, 6, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 9, 10, 11,
12, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 18, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 2, 47, 48, 48, 47, 5, 6, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 9, 10, 11, 12, 47, 47, 47, 47, 47, 47, 47, 47, 13, 47, 47, 14, 15, 16, 17, 18,
47, 20, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 2, 47, 48, 48, 47, 5,
6, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 9, 10, 11, 12, 47, 47, 47, 47, 47, 47, 47, 47, 56, 47,
47, 47, 47, 47, 47, 18, 47, 20, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5,
47, 2, 47, 48, 48, 47, 5, 6, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 9, 10, 11, 12, 47, 47, 47,
47, 47, 47, 47, 47, 56, 47, 47, 47, 47, 47, 47, 18, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 5, 47, 2, 47, 48, 48, 47, 5, 6, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
9, 10, 11, 12, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 14, 47, 16, 47, 18, 47, 20, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 2, 47, 48, 48, 47, 5, 6, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 9, 10, 11, 12, 47, 47, 47, 47, 47, 47, 47, 47, 56, 47, 47, 14, 47,
47, 47, 18, 47, 20, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 2, 47, 48,
48, 47, 5, 6, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 9, 10, 11, 12, 47, 47, 47, 47, 47, 47, 47,
47, 57, 47, 47, 14, 15, 16, 47, 18, 47, 20, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
47, 47, 5, 47, 2, 47, 48, 48, 47, 5, 6, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 9, 10, 11, 12,
47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 14, 15, 16, 47, 18, 47, 20, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 2, 3, 48, 48, 47, 5, 6, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 9, 10, 11, 12, 47, 47, 47, 47, 47, 47, 47, 47, 13, 47, 47, 14, 15, 16, 17, 18, 47,
20, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 23, 24, 25, 25, 22, 26,
27, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 28, 29, 30, 31, 22, 22, 22, 22, 22, 22, 22, 22, 58,
22, 22, 33, 34, 35, 36, 37, 38, 39, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
26, 22, 23, 59, 25, 25, 22, 26, 27, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 28, 29, 30, 31, 22,
22, 22, 22, 22, 22, 22, 22, 32, 22, 22, 33, 34, 35, 36, 37, 22, 39, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 26, 22, 1, 1, 2, 3, 48, 48, 47, 5, 6, 1, 1, 47, 47, 47, 1, 47,
47, 47, 47, 9, 10, 11, 12, 47, 47, 47, 47, 47, 47, 47, 47, 13, 47, 47, 14, 15, 16, 17, 18, 19,
20, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 5, 47, 1, 1, 60, 60, 60, 60, 60,
60, 60, 1, 1, 60, 60, 60, 1, 60, 0,
]
let myanmar_machine_trans_targs : Array[Int] = [
0, 1, 25, 35, 0, 26, 30, 49, 52, 37, 38, 39, 29, 41, 42, 44, 45, 46, 27, 48, 43, 26, 0, 2, 12, 0,
3, 7, 13, 14, 15, 6, 17, 18, 20, 21, 22, 4, 24, 19, 11, 5, 8, 9, 10, 16, 23, 0, 0, 34, 0, 28, 31,
32, 33, 36, 40, 47, 50, 51, 0,
]
let myanmar_machine_trans_actions : Array[Int] = [
3, 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 8, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
]
let myanmar_machine_to_state_actions : Array[Int] = [
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,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
]
let myanmar_machine_from_state_actions : Array[Int] = [
2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
]
let myanmar_machine_eof_trans : Array[Int] = [
0, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
23, 48, 51, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
48, 23, 23, 48, 61,
]
fn find_syllables_myanmar(categories : Array[UInt]) -> Array[Int] {
let len = categories.length()
let syllables : Array[Int] = Array::make(len, 0)
let mut cs = myanmar_machine_start
let mut ts = 0
let mut te = 0
let mut act = 0
let mut p = 0
let pe = len
let eof = len
let mut syllable_serial = 1
fn found_syllable(start : Int, end : Int, syllable_type : Int) -> Unit {
if start < 0 || end > len || start >= end {
return ()
}
for i in start.. 0 && myanmar_machine_trans_keys[keys_index] <= category && category <= myanmar_machine_trans_keys[keys_index + 1] {
trans = myanmar_machine_indicies[inds_index + (category - myanmar_machine_trans_keys[keys_index])]
} else {
trans = myanmar_machine_indicies[inds_index + slen]
}
cs = myanmar_machine_trans_targs[trans]
let action = myanmar_machine_trans_actions[trans]
if action != 0 {
match action {
8 => { te = p + 1; found_syllable(ts, te, myanmar_syllable_type_consonant) }
4 => { te = p + 1; found_syllable(ts, te, myanmar_syllable_type_non_myanmar) }
10 => { te = p + 1; found_syllable(ts, te, myanmar_syllable_type_broken) }
3 => { te = p + 1; found_syllable(ts, te, myanmar_syllable_type_non_myanmar) }
7 => { te = p; p = p - 1; found_syllable(ts, te, myanmar_syllable_type_consonant) }
9 => { te = p; p = p - 1; found_syllable(ts, te, myanmar_syllable_type_broken) }
12 => { te = p; p = p - 1; found_syllable(ts, te, myanmar_syllable_type_non_myanmar) }
11 => {
match act {
2 => { p = te - 1; found_syllable(ts, te, myanmar_syllable_type_non_myanmar) }
3 => { p = te - 1; found_syllable(ts, te, myanmar_syllable_type_broken) }
_ => ()
}
}
6 => { te = p + 1; act = 2 }
5 => { te = p + 1; act = 3 }
_ => ()
}
}
if myanmar_machine_to_state_actions[cs] == 1 {
ts = 0
}
p = p + 1
}
if p == eof {
let eof_trans = myanmar_machine_eof_trans[cs]
if eof_trans > 0 {
let trans = eof_trans - 1
cs = myanmar_machine_trans_targs[trans]
let action = myanmar_machine_trans_actions[trans]
if action != 0 {
match action {
8 => { te = p + 1; found_syllable(ts, te, myanmar_syllable_type_consonant) }
4 => { te = p + 1; found_syllable(ts, te, myanmar_syllable_type_non_myanmar) }
10 => { te = p + 1; found_syllable(ts, te, myanmar_syllable_type_broken) }
3 => { te = p + 1; found_syllable(ts, te, myanmar_syllable_type_non_myanmar) }
7 => { te = p; p = p - 1; found_syllable(ts, te, myanmar_syllable_type_consonant) }
9 => { te = p; p = p - 1; found_syllable(ts, te, myanmar_syllable_type_broken) }
12 => { te = p; p = p - 1; found_syllable(ts, te, myanmar_syllable_type_non_myanmar) }
11 => {
match act {
2 => { p = te - 1; found_syllable(ts, te, myanmar_syllable_type_non_myanmar) }
3 => { p = te - 1; found_syllable(ts, te, myanmar_syllable_type_broken) }
_ => ()
}
}
6 => { te = p + 1; act = 2 }
5 => { te = p + 1; act = 3 }
_ => ()
}
}
if myanmar_machine_to_state_actions[cs] == 1 {
ts = 0
}
}
}
syllables
}