1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 1 "hb-ot-shape-complex-sea-machine.rl" 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Copyright © 2011,2012,2013 Google, Inc. 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * This is part of HarfBuzz, a text shaping library. 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Permission is hereby granted, without written agreement and without 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * license or royalty fees, to use, copy, modify, and distribute this 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * software and its documentation for any purpose, provided that the 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * above copyright notice and the following two paragraphs appear in 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * all copies of this software. 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * DAMAGE. 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Google Author(s): Behdad Esfahbod 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#ifndef HB_OT_SHAPE_COMPLEX_SEA_MACHINE_HH 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define HB_OT_SHAPE_COMPLEX_SEA_MACHINE_HH 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "hb-private.hh" 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 36 "hb-ot-shape-complex-sea-machine.hh.tmp" 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const unsigned char _sea_syllable_machine_trans_keys[] = { 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1u, 1u, 1u, 1u, 1u, 29u, 3u, 29u, 3u, 29u, 1u, 1u, 0 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const char _sea_syllable_machine_key_spans[] = { 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1, 1, 29, 27, 27, 1 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const char _sea_syllable_machine_index_offsets[] = { 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 0, 2, 4, 34, 62, 90 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const char _sea_syllable_machine_indicies[] = { 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1, 0, 3, 2, 1, 1, 3, 5, 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 4, 4, 4, 4, 4, 3, 4, 1, 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 4, 4, 4, 4, 3, 4, 4, 4, 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 4, 3, 4, 4, 4, 3, 3, 3, 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 3, 4, 1, 7, 6, 6, 6, 6, 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 6, 1, 6, 6, 6, 6, 6, 6, 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1, 6, 6, 6, 6, 1, 6, 6, 56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 6, 1, 1, 1, 1, 6, 3, 9, 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8, 8, 8, 8, 8, 3, 8, 8, 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8, 8, 8, 8, 3, 8, 8, 8, 59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8, 3, 8, 8, 8, 3, 3, 3, 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 3, 8, 3, 10, 0 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const char _sea_syllable_machine_trans_targs[] = { 64c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 2, 3, 2, 4, 2, 5, 2, 0, 65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 2, 1, 2 66c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const char _sea_syllable_machine_trans_actions[] = { 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1, 2, 3, 2, 6, 0, 7, 0, 70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8, 0, 9 71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const char _sea_syllable_machine_to_state_actions[] = { 74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 0, 0, 4, 0, 0, 0 75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const char _sea_syllable_machine_from_state_actions[] = { 78c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 0, 0, 5, 0, 0, 0 79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 81c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const char _sea_syllable_machine_eof_trans[] = { 82c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1, 3, 0, 7, 9, 11 83c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 84c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 85c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const int sea_syllable_machine_start = 2; 86c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const int sea_syllable_machine_first_final = 2; 87c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const int sea_syllable_machine_error = -1; 88c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 89c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static const int sea_syllable_machine_en_main = 2; 90c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 91c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 92c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 36 "hb-ot-shape-complex-sea-machine.rl" 93c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 95c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 96c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 67 "hb-ot-shape-complex-sea-machine.rl" 97c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 98c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 99c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define found_syllable(syllable_type) \ 100c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) HB_STMT_START { \ 101c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \ 102c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) for (unsigned int i = last; i < p+1; i++) \ 103c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) info[i].syllable() = (syllable_serial << 4) | syllable_type; \ 104c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) last = p+1; \ 105c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) syllable_serial++; \ 106c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (unlikely (syllable_serial == 16)) syllable_serial = 1; \ 107c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } HB_STMT_END 108c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 109c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)static void 110c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)find_syllables (hb_buffer_t *buffer) 111c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles){ 112c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) unsigned int p, pe, eof, ts HB_UNUSED, te HB_UNUSED, act HB_UNUSED; 113c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int cs; 114c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) hb_glyph_info_t *info = buffer->info; 115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 116c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 117 "hb-ot-shape-complex-sea-machine.hh.tmp" 117c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) { 118c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) cs = sea_syllable_machine_start; 119c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ts = 0; 120c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) te = 0; 121c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) act = 0; 122c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 123c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 124c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 88 "hb-ot-shape-complex-sea-machine.rl" 125c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 126c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 127c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) p = 0; 128c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) pe = eof = buffer->len; 129c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 130c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) unsigned int last = 0; 131c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) unsigned int syllable_serial = 1; 132c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 133c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 134 "hb-ot-shape-complex-sea-machine.hh.tmp" 134c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) { 135c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int _slen; 136c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int _trans; 137c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const unsigned char *_keys; 138c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const char *_inds; 139c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if ( p == pe ) 140c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) goto _test_eof; 141c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)_resume: 142c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) switch ( _sea_syllable_machine_from_state_actions[cs] ) { 143c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case 5: 144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 1 "NONE" 145c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {ts = p;} 146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) break; 147c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 148 "hb-ot-shape-complex-sea-machine.hh.tmp" 148c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 149c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 150c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) _keys = _sea_syllable_machine_trans_keys + (cs<<1); 151c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) _inds = _sea_syllable_machine_indicies + _sea_syllable_machine_index_offsets[cs]; 152c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 153c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) _slen = _sea_syllable_machine_key_spans[cs]; 154c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].sea_category()) && 155c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ( info[p].sea_category()) <= _keys[1] ? 156c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ( info[p].sea_category()) - _keys[0] : _slen ]; 157c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 158c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)_eof_trans: 159c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) cs = _sea_syllable_machine_trans_targs[_trans]; 160c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 161c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if ( _sea_syllable_machine_trans_actions[_trans] == 0 ) 162c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) goto _again; 163c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 164c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) switch ( _sea_syllable_machine_trans_actions[_trans] ) { 165c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case 2: 166c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 1 "NONE" 167c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {te = p+1;} 168c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) break; 169c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case 6: 170c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 63 "hb-ot-shape-complex-sea-machine.rl" 171c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {te = p+1;{ found_syllable (non_sea_cluster); }} 172c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) break; 173c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case 7: 174c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 61 "hb-ot-shape-complex-sea-machine.rl" 175c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {te = p;p--;{ found_syllable (consonant_syllable); }} 176c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) break; 177c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case 8: 178c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 62 "hb-ot-shape-complex-sea-machine.rl" 179c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {te = p;p--;{ found_syllable (broken_cluster); }} 180c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) break; 181c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case 9: 182c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 63 "hb-ot-shape-complex-sea-machine.rl" 183c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {te = p;p--;{ found_syllable (non_sea_cluster); }} 184c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) break; 185c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case 1: 186c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 61 "hb-ot-shape-complex-sea-machine.rl" 187c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {{p = ((te))-1;}{ found_syllable (consonant_syllable); }} 188c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) break; 189c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case 3: 190c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 62 "hb-ot-shape-complex-sea-machine.rl" 191c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {{p = ((te))-1;}{ found_syllable (broken_cluster); }} 192c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) break; 193c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 194 "hb-ot-shape-complex-sea-machine.hh.tmp" 194c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 195c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 196c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)_again: 197c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) switch ( _sea_syllable_machine_to_state_actions[cs] ) { 198c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) case 4: 199c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 1 "NONE" 200c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) {ts = 0;} 201c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) break; 202c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 203 "hb-ot-shape-complex-sea-machine.hh.tmp" 203c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 204c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 205c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if ( ++p != pe ) 206c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) goto _resume; 207c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) _test_eof: {} 208c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if ( p == eof ) 209c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) { 210c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if ( _sea_syllable_machine_eof_trans[cs] > 0 ) { 211c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) _trans = _sea_syllable_machine_eof_trans[cs] - 1; 212c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) goto _eof_trans; 213c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 214c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 215c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 216c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 217c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 218c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#line 97 "hb-ot-shape-complex-sea-machine.rl" 219c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 220c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 221c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 222c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#undef found_syllable 223c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 224c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif /* HB_OT_SHAPE_COMPLEX_SEA_MACHINE_HH */ 225