// This is compiled from Ruby, in phonetics/lib/phonetics/code_generator.rb:163 #include int next_phoneme_length(int *string, int cursor, int length) { int max_length; max_length = length - cursor; switch(string[cursor + 0]) { case 105: // Phoneme: 'i', bytes: [105] // vowel features: {"F1":240,"F2":2400,"rounded":false} return 1; break; case 121: // Phoneme: 'y', bytes: [121] // vowel features: {"F1":235,"F2":2100,"rounded":false} return 1; break; case 201: if (max_length > 1) { switch(string[cursor + 1]) { case 170: // Phoneme: 'ɪ', bytes: [201, 170] // vowel features: {"F1":300,"F2":2100,"rounded":false} return 2; break; case 155: // Phoneme: 'ɛ', bytes: [201, 155] // vowel features: {"F1":610,"F2":1900,"rounded":false} return 2; break; case 182: // Phoneme: 'ɶ', bytes: [201, 182] // vowel features: {"F1":820,"F2":1530,"rounded":true} return 2; break; case 145: // Phoneme: 'ɑ', bytes: [201, 145] // vowel features: {"F1":750,"F2":940,"rounded":false} return 2; break; case 146: // Phoneme: 'ɒ', bytes: [201, 146] // vowel features: {"F1":700,"F2":760,"rounded":true} return 2; break; case 153: // Phoneme: 'ə', bytes: [201, 153] // vowel features: {"F1":600,"F2":1170,"rounded":false} return 2; break; case 157: // Phoneme: 'ɝ', bytes: [201, 157] // vowel features: {"F1":600,"F2":1170,"rounded":false,"rhotic":true} return 2; break; case 148: // Phoneme: 'ɔ', bytes: [201, 148] // vowel features: {"F1":500,"F2":700,"rounded":true} return 2; break; case 164: // Phoneme: 'ɤ', bytes: [201, 164] // vowel features: {"F1":460,"F2":1310,"rounded":false} return 2; break; case 175: // Phoneme: 'ɯ', bytes: [201, 175] // vowel features: {"F1":300,"F2":1390,"rounded":false} return 2; break; case 177: // Phoneme: 'ɱ', bytes: [201, 177] // consonant features: {"position":"Labio-dental","position_index":2,"manner":"Nasal","voiced":true} return 2; break; case 179: // Phoneme: 'ɳ', bytes: [201, 179] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Nasal","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 138: // Phoneme: 'ɳ̊', bytes: [201, 179, 204, 138] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Nasal","voiced":false} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 178: // Phoneme: 'ɲ', bytes: [201, 178] // consonant features: {"position":"Palatal","position_index":8,"manner":"Nasal","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 138: // Phoneme: 'ɲ̊', bytes: [201, 178, 204, 138] // consonant features: {"position":"Palatal","position_index":8,"manner":"Nasal","voiced":false} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 180: // Phoneme: 'ɴ', bytes: [201, 180] // consonant features: {"position":"Uvular","position_index":10,"manner":"Nasal","voiced":true} return 2; break; case 150: // Phoneme: 'ɖ', bytes: [201, 150] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Stop","voiced":true} return 2; break; case 159: // Phoneme: 'ɟ', bytes: [201, 159] // consonant features: {"position":"Palatal","position_index":8,"manner":"Stop","voiced":true} return 2; break; case 162: // Phoneme: 'ɢ', bytes: [201, 162] // consonant features: {"position":"Uvular","position_index":10,"manner":"Stop","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 134: // Phoneme: 'ɢ̆', bytes: [201, 162, 204, 134] // consonant features: {"position":"Uvular","position_index":10,"manner":"Tap/flap","voiced":true} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 149: // Phoneme: 'ɕ', bytes: [201, 149] // consonant features: {"position":"Palatal","position_index":8,"manner":"Sibilant fricative","voiced":false} return 2; break; case 184: // Phoneme: 'ɸ', bytes: [201, 184] // consonant features: {"position":"Bi-labial","position_index":1,"manner":"Non-sibilant fricative","voiced":false} return 2; break; case 185: // Phoneme: 'ɹ', bytes: [201, 185] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Approximant","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 160: if (max_length > 4) { switch(string[cursor + 4]) { case 204: if (max_length > 5) { switch(string[cursor + 5]) { case 138: if (max_length > 6) { switch(string[cursor + 6]) { case 203: if (max_length > 7) { switch(string[cursor + 7]) { case 148: // Phoneme: 'ɹ̠̊˔', bytes: [201, 185, 204, 160, 204, 138, 203, 148] // consonant features: {"position":"Post-alveolar","position_index":6,"manner":"Non-sibilant fricative","voiced":false} return 8; break; } } else { return 7; } break; } } else { return 6; } break; } } else { return 5; } break; case 203: if (max_length > 5) { switch(string[cursor + 5]) { case 148: // Phoneme: 'ɹ̠˔', bytes: [201, 185, 204, 160, 203, 148] // consonant features: {"position":"Post-alveolar","position_index":6,"manner":"Non-sibilant fricative","voiced":true} return 6; break; } } else { return 5; } break; } } else { return 4; } break; case 165: // Phoneme: 'ɹ̥', bytes: [201, 185, 204, 165] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Approximant","voiced":false} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 187: // Phoneme: 'ɻ', bytes: [201, 187] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Approximant","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 203: if (max_length > 3) { switch(string[cursor + 3]) { case 148: // Phoneme: 'ɻ˔', bytes: [201, 187, 203, 148] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Non-sibilant fricative","voiced":true} return 4; break; } } else { return 3; } break; case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 138: // Phoneme: 'ɻ̊', bytes: [201, 187, 204, 138] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Approximant","voiced":false} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 163: // Phoneme: 'ɣ', bytes: [201, 163] // consonant features: {"position":"Velar","position_index":9,"manner":"Non-sibilant fricative","voiced":true} return 2; break; case 166: // Phoneme: 'ɦ', bytes: [201, 166] // consonant features: {"position":"Glottal","position_index":12,"manner":"Non-sibilant fricative","voiced":true} return 2; break; case 176: // Phoneme: 'ɰ', bytes: [201, 176] // consonant features: {"position":"Velar","position_index":9,"manner":"Approximant","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 138: // Phoneme: 'ɰ̊', bytes: [201, 176, 204, 138] // consonant features: {"position":"Velar","position_index":9,"manner":"Approximant","voiced":false} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 190: // Phoneme: 'ɾ', bytes: [201, 190] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Tap/flap","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 188: // Phoneme: 'ɾ̼', bytes: [201, 190, 204, 188] // consonant features: {"position":"Linguo-labial","position_index":3,"manner":"Tap/flap","voiced":true} return 4; break; case 165: // Phoneme: 'ɾ̥', bytes: [201, 190, 204, 165] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Tap/flap","voiced":false} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 189: // Phoneme: 'ɽ', bytes: [201, 189] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Tap/flap","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 138: // Phoneme: 'ɽ̊', bytes: [201, 189, 204, 138] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Tap/flap","voiced":false} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 172: // Phoneme: 'ɬ', bytes: [201, 172] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Lateral fricative","voiced":false} return 2; break; case 174: // Phoneme: 'ɮ', bytes: [201, 174] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Lateral fricative","voiced":true} return 2; break; case 173: // Phoneme: 'ɭ', bytes: [201, 173] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Lateral approximant","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 138: // Phoneme: 'ɭ̊', bytes: [201, 173, 204, 138] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Lateral approximant","voiced":false} if (max_length > 4) { switch(string[cursor + 4]) { case 203: if (max_length > 5) { switch(string[cursor + 5]) { case 148: // Phoneme: 'ɭ̊˔', bytes: [201, 173, 204, 138, 203, 148] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Lateral fricative","voiced":false} return 6; break; } } else { return 5; } break; default: return 4; } } else { return 4; } break; case 134: // Phoneme: 'ɭ̆', bytes: [201, 173, 204, 134] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Lateral tap/flap","voiced":true} return 4; break; } } else { return 3; } break; case 203: if (max_length > 3) { switch(string[cursor + 3]) { case 148: // Phoneme: 'ɭ˔', bytes: [201, 173, 203, 148] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Lateral fricative","voiced":true} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 186: // Phoneme: 'ɺ', bytes: [201, 186] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Lateral tap/flap","voiced":true} return 2; break; } } else { return 1; } break; case 101: // Phoneme: 'e', bytes: [101] // vowel features: {"F1":390,"F2":2300,"rounded":false} return 1; break; case 195: if (max_length > 1) { switch(string[cursor + 1]) { case 184: // Phoneme: 'ø', bytes: [195, 184] // vowel features: {"F1":370,"F2":1900,"rounded":true} return 2; break; case 166: // Phoneme: 'æ', bytes: [195, 166] // vowel features: {"F1":800,"F2":1900,"rounded":false} return 2; break; case 176: // Phoneme: 'ð', bytes: [195, 176] // consonant features: {"position":"Dental","position_index":4,"manner":"Non-sibilant fricative","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 188: // Phoneme: 'ð̼', bytes: [195, 176, 204, 188] // consonant features: {"position":"Linguo-labial","position_index":3,"manner":"Non-sibilant fricative","voiced":true} return 4; break; case 160: // Phoneme: 'ð̠', bytes: [195, 176, 204, 160] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Non-sibilant fricative","voiced":true} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 167: // Phoneme: 'ç', bytes: [195, 167] // consonant features: {"position":"Palatal","position_index":8,"manner":"Non-sibilant fricative","voiced":false} return 2; break; } } else { return 1; } break; case 197: if (max_length > 1) { switch(string[cursor + 1]) { case 147: // Phoneme: 'œ', bytes: [197, 147] // vowel features: {"F1":585,"F2":1710,"rounded":true} return 2; break; case 139: // Phoneme: 'ŋ', bytes: [197, 139] // consonant features: {"position":"Velar","position_index":9,"manner":"Nasal","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 138: // Phoneme: 'ŋ̊', bytes: [197, 139, 204, 138] // consonant features: {"position":"Velar","position_index":9,"manner":"Nasal","voiced":false} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; } } else { return 1; } break; case 97: // Phoneme: 'a', bytes: [97] // vowel features: {"F1":850,"F2":1610,"rounded":false} return 1; break; case 202: if (max_length > 1) { switch(string[cursor + 1]) { case 140: // Phoneme: 'ʌ', bytes: [202, 140] // vowel features: {"F1":600,"F2":1170,"rounded":false} return 2; break; case 138: // Phoneme: 'ʊ', bytes: [202, 138] // vowel features: {"F1":350,"F2":650,"rounded":true} return 2; break; case 136: // Phoneme: 'ʈ', bytes: [202, 136] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Stop","voiced":false} return 2; break; case 161: // Phoneme: 'ʡ', bytes: [202, 161] // consonant features: {"position":"Pharyngeal","position_index":11,"manner":"Stop","voiced":false} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 134: // Phoneme: 'ʡ̆', bytes: [202, 161, 204, 134] // consonant features: {"position":"Pharyngeal","position_index":11,"manner":"Tap/flap","voiced":true} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 148: // Phoneme: 'ʔ', bytes: [202, 148] // consonant features: {"position":"Glottal","position_index":12,"manner":"Stop","voiced":false} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 158: // Phoneme: 'ʔ̞', bytes: [202, 148, 204, 158] // consonant features: {"position":"Glottal","position_index":12,"manner":"Approximant","voiced":true} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 131: // Phoneme: 'ʃ', bytes: [202, 131] // consonant features: {"position":"Post-alveolar","position_index":6,"manner":"Sibilant fricative","voiced":false} return 2; break; case 146: // Phoneme: 'ʒ', bytes: [202, 146] // consonant features: {"position":"Post-alveolar","position_index":6,"manner":"Sibilant fricative","voiced":true} return 2; break; case 130: // Phoneme: 'ʂ', bytes: [202, 130] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Sibilant fricative","voiced":false} return 2; break; case 144: // Phoneme: 'ʐ', bytes: [202, 144] // consonant features: {"position":"Retro-flex","position_index":7,"manner":"Sibilant fricative","voiced":true} return 2; break; case 145: // Phoneme: 'ʑ', bytes: [202, 145] // consonant features: {"position":"Palatal","position_index":8,"manner":"Sibilant fricative","voiced":true} return 2; break; case 157: // Phoneme: 'ʝ', bytes: [202, 157] // consonant features: {"position":"Palatal","position_index":8,"manner":"Non-sibilant fricative","voiced":true} return 2; break; case 129: // Phoneme: 'ʁ', bytes: [202, 129] // consonant features: {"position":"Uvular","position_index":10,"manner":"Non-sibilant fricative","voiced":true} return 2; break; case 149: // Phoneme: 'ʕ', bytes: [202, 149] // consonant features: {"position":"Pharyngeal","position_index":11,"manner":"Non-sibilant fricative","voiced":true} return 2; break; case 139: // Phoneme: 'ʋ', bytes: [202, 139] // consonant features: {"position":"Labio-dental","position_index":2,"manner":"Approximant","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 165: // Phoneme: 'ʋ̥', bytes: [202, 139, 204, 165] // consonant features: {"position":"Labio-dental","position_index":2,"manner":"Approximant","voiced":false} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 153: // Phoneme: 'ʙ', bytes: [202, 153] // consonant features: {"position":"Bi-labial","position_index":1,"manner":"Trill","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 165: // Phoneme: 'ʙ̥', bytes: [202, 153, 204, 165] // consonant features: {"position":"Bi-labial","position_index":1,"manner":"Trill","voiced":false} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 128: // Phoneme: 'ʀ', bytes: [202, 128] // consonant features: {"position":"Uvular","position_index":10,"manner":"Trill","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 165: // Phoneme: 'ʀ̥', bytes: [202, 128, 204, 165] // consonant features: {"position":"Uvular","position_index":10,"manner":"Trill","voiced":false} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 156: // Phoneme: 'ʜ', bytes: [202, 156] // consonant features: {"position":"Pharyngeal","position_index":11,"manner":"Trill","voiced":false} return 2; break; case 162: // Phoneme: 'ʢ', bytes: [202, 162] // consonant features: {"position":"Pharyngeal","position_index":11,"manner":"Trill","voiced":true} return 2; break; case 142: // Phoneme: 'ʎ', bytes: [202, 142] // consonant features: {"position":"Palatal","position_index":8,"manner":"Lateral approximant","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 157: // Phoneme: 'ʎ̝', bytes: [202, 142, 204, 157] // consonant features: {"position":"Palatal","position_index":8,"manner":"Lateral fricative","voiced":true} if (max_length > 4) { switch(string[cursor + 4]) { case 204: if (max_length > 5) { switch(string[cursor + 5]) { case 138: // Phoneme: 'ʎ̝̊', bytes: [202, 142, 204, 157, 204, 138] // consonant features: {"position":"Palatal","position_index":8,"manner":"Lateral fricative","voiced":false} return 6; break; } } else { return 5; } break; default: return 4; } } else { return 4; } break; case 165: // Phoneme: 'ʎ̥', bytes: [202, 142, 204, 165] // consonant features: {"position":"Palatal","position_index":8,"manner":"Lateral approximant","voiced":false} return 4; break; case 134: // Phoneme: 'ʎ̆', bytes: [202, 142, 204, 134] // consonant features: {"position":"Palatal","position_index":8,"manner":"Lateral tap/flap","voiced":true} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; case 159: // Phoneme: 'ʟ', bytes: [202, 159] // consonant features: {"position":"Velar","position_index":9,"manner":"Lateral approximant","voiced":true} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 157: // Phoneme: 'ʟ̝', bytes: [202, 159, 204, 157] // consonant features: {"position":"Velar","position_index":9,"manner":"Lateral fricative","voiced":true} if (max_length > 4) { switch(string[cursor + 4]) { case 204: if (max_length > 5) { switch(string[cursor + 5]) { case 138: // Phoneme: 'ʟ̝̊', bytes: [202, 159, 204, 157, 204, 138] // consonant features: {"position":"Velar","position_index":9,"manner":"Lateral fricative","voiced":false} return 6; break; } } else { return 5; } break; default: return 4; } } else { return 4; } break; case 165: // Phoneme: 'ʟ̥', bytes: [202, 159, 204, 165] // consonant features: {"position":"Velar","position_index":9,"manner":"Lateral approximant","voiced":false} return 4; break; case 160: // Phoneme: 'ʟ̠', bytes: [202, 159, 204, 160] // consonant features: {"position":"Uvular","position_index":10,"manner":"Lateral approximant","voiced":true} return 4; break; case 134: // Phoneme: 'ʟ̆', bytes: [202, 159, 204, 134] // consonant features: {"position":"Velar","position_index":9,"manner":"Lateral tap/flap","voiced":true} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; } } else { return 1; } break; case 111: // Phoneme: 'o', bytes: [111] // vowel features: {"F1":360,"F2":640,"rounded":true} return 1; break; case 117: // Phoneme: 'u', bytes: [117] // vowel features: {"F1":350,"F2":650,"rounded":true} return 1; break; case 109: // Phoneme: 'm', bytes: [109] // consonant features: {"position":"Bi-labial","position_index":1,"manner":"Nasal","voiced":true} if (max_length > 1) { switch(string[cursor + 1]) { case 204: if (max_length > 2) { switch(string[cursor + 2]) { case 165: // Phoneme: 'm̥', bytes: [109, 204, 165] // consonant features: {"position":"Bi-labial","position_index":1,"manner":"Nasal","voiced":false} return 3; break; } } else { return 2; } break; default: return 1; } } else { return 1; } break; case 110: // Phoneme: 'n', bytes: [110] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Nasal","voiced":true} if (max_length > 1) { switch(string[cursor + 1]) { case 204: if (max_length > 2) { switch(string[cursor + 2]) { case 188: // Phoneme: 'n̼', bytes: [110, 204, 188] // consonant features: {"position":"Linguo-labial","position_index":3,"manner":"Nasal","voiced":true} return 3; break; case 165: // Phoneme: 'n̥', bytes: [110, 204, 165] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Nasal","voiced":false} return 3; break; } } else { return 2; } break; default: return 1; } } else { return 1; } break; case 112: // Phoneme: 'p', bytes: [112] // consonant features: {"position":"Bi-labial","position_index":1,"manner":"Stop","voiced":false} if (max_length > 1) { switch(string[cursor + 1]) { case 204: if (max_length > 2) { switch(string[cursor + 2]) { case 170: // Phoneme: 'p̪', bytes: [112, 204, 170] // consonant features: {"position":"Labio-dental","position_index":2,"manner":"Stop","voiced":false} return 3; break; } } else { return 2; } break; default: return 1; } } else { return 1; } break; case 98: // Phoneme: 'b', bytes: [98] // consonant features: {"position":"Bi-labial","position_index":1,"manner":"Stop","voiced":true} if (max_length > 1) { switch(string[cursor + 1]) { case 204: if (max_length > 2) { switch(string[cursor + 2]) { case 170: // Phoneme: 'b̪', bytes: [98, 204, 170] // consonant features: {"position":"Labio-dental","position_index":2,"manner":"Stop","voiced":true} return 3; break; } } else { return 2; } break; default: return 1; } } else { return 1; } break; case 116: // Phoneme: 't', bytes: [116] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Stop","voiced":false} if (max_length > 1) { switch(string[cursor + 1]) { case 204: if (max_length > 2) { switch(string[cursor + 2]) { case 188: // Phoneme: 't̼', bytes: [116, 204, 188] // consonant features: {"position":"Linguo-labial","position_index":3,"manner":"Stop","voiced":false} return 3; break; } } else { return 2; } break; default: return 1; } } else { return 1; } break; case 100: // Phoneme: 'd', bytes: [100] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Stop","voiced":true} if (max_length > 1) { switch(string[cursor + 1]) { case 204: if (max_length > 2) { switch(string[cursor + 2]) { case 188: // Phoneme: 'd̼', bytes: [100, 204, 188] // consonant features: {"position":"Linguo-labial","position_index":3,"manner":"Stop","voiced":true} return 3; break; } } else { return 2; } break; default: return 1; } } else { return 1; } break; case 99: // Phoneme: 'c', bytes: [99] // consonant features: {"position":"Palatal","position_index":8,"manner":"Stop","voiced":false} return 1; break; case 107: // Phoneme: 'k', bytes: [107] // consonant features: {"position":"Velar","position_index":9,"manner":"Stop","voiced":false} return 1; break; case 103: // Phoneme: 'g', bytes: [103] // consonant features: {"position":"Velar","position_index":9,"manner":"Stop","voiced":true} return 1; break; case 113: // Phoneme: 'q', bytes: [113] // consonant features: {"position":"Uvular","position_index":10,"manner":"Stop","voiced":false} return 1; break; case 115: // Phoneme: 's', bytes: [115] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Sibilant fricative","voiced":false} return 1; break; case 122: // Phoneme: 'z', bytes: [122] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Sibilant fricative","voiced":true} return 1; break; case 206: if (max_length > 1) { switch(string[cursor + 1]) { case 178: // Phoneme: 'β', bytes: [206, 178] // consonant features: {"position":"Bi-labial","position_index":1,"manner":"Non-sibilant fricative","voiced":true} return 2; break; case 184: // Phoneme: 'θ', bytes: [206, 184] // consonant features: {"position":"Dental","position_index":4,"manner":"Non-sibilant fricative","voiced":false} if (max_length > 2) { switch(string[cursor + 2]) { case 204: if (max_length > 3) { switch(string[cursor + 3]) { case 188: // Phoneme: 'θ̼', bytes: [206, 184, 204, 188] // consonant features: {"position":"Linguo-labial","position_index":3,"manner":"Non-sibilant fricative","voiced":false} return 4; break; case 160: // Phoneme: 'θ̠', bytes: [206, 184, 204, 160] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Non-sibilant fricative","voiced":false} return 4; break; } } else { return 3; } break; default: return 2; } } else { return 2; } break; } } else { return 1; } break; case 102: // Phoneme: 'f', bytes: [102] // consonant features: {"position":"Labio-dental","position_index":2,"manner":"Non-sibilant fricative","voiced":false} return 1; break; case 118: // Phoneme: 'v', bytes: [118] // consonant features: {"position":"Labio-dental","position_index":2,"manner":"Non-sibilant fricative","voiced":true} return 1; break; case 120: // Phoneme: 'x', bytes: [120] // consonant features: {"position":"Velar","position_index":9,"manner":"Non-sibilant fricative","voiced":false} return 1; break; case 207: if (max_length > 1) { switch(string[cursor + 1]) { case 135: // Phoneme: 'χ', bytes: [207, 135] // consonant features: {"position":"Uvular","position_index":10,"manner":"Non-sibilant fricative","voiced":false} return 2; break; } } else { return 1; } break; case 196: if (max_length > 1) { switch(string[cursor + 1]) { case 167: // Phoneme: 'ħ', bytes: [196, 167] // consonant features: {"position":"Pharyngeal","position_index":11,"manner":"Non-sibilant fricative","voiced":false} return 2; break; } } else { return 1; } break; case 104: // Phoneme: 'h', bytes: [104] // consonant features: {"position":"Glottal","position_index":12,"manner":"Non-sibilant fricative","voiced":false} return 1; break; case 119: // Phoneme: 'w', bytes: [119] // consonant features: {"position":"Labio-velar","position_index":0,"manner":"Approximant","voiced":true} return 1; break; case 106: // Phoneme: 'j', bytes: [106] // consonant features: {"position":"Palatal","position_index":8,"manner":"Approximant","voiced":true} if (max_length > 1) { switch(string[cursor + 1]) { case 204: if (max_length > 2) { switch(string[cursor + 2]) { case 138: // Phoneme: 'j̊', bytes: [106, 204, 138] // consonant features: {"position":"Palatal","position_index":8,"manner":"Approximant","voiced":false} return 3; break; } } else { return 2; } break; default: return 1; } } else { return 1; } break; case 226: if (max_length > 1) { switch(string[cursor + 1]) { case 177: if (max_length > 2) { switch(string[cursor + 2]) { case 177: // Phoneme: 'ⱱ', bytes: [226, 177, 177] // consonant features: {"position":"Labio-dental","position_index":2,"manner":"Tap/flap","voiced":true} if (max_length > 3) { switch(string[cursor + 3]) { case 204: if (max_length > 4) { switch(string[cursor + 4]) { case 159: // Phoneme: 'ⱱ̟', bytes: [226, 177, 177, 204, 159] // consonant features: {"position":"Bi-labial","position_index":1,"manner":"Tap/flap","voiced":true} return 5; break; } } else { return 4; } break; default: return 3; } } else { return 3; } break; } } else { return 2; } break; } } else { return 1; } break; case 114: // Phoneme: 'r', bytes: [114] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Trill","voiced":true} if (max_length > 1) { switch(string[cursor + 1]) { case 204: if (max_length > 2) { switch(string[cursor + 2]) { case 165: // Phoneme: 'r̥', bytes: [114, 204, 165] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Trill","voiced":false} return 3; break; } } else { return 2; } break; default: return 1; } } else { return 1; } break; case 108: // Phoneme: 'l', bytes: [108] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Lateral approximant","voiced":true} if (max_length > 1) { switch(string[cursor + 1]) { case 204: if (max_length > 2) { switch(string[cursor + 2]) { case 165: // Phoneme: 'l̥', bytes: [108, 204, 165] // consonant features: {"position":"Alveolar","position_index":5,"manner":"Lateral approximant","voiced":false} return 3; break; } } else { return 2; } break; default: return 1; } } else { return 1; } break; } return 0; }