hb-ot-shape-complex-use-machine.hh revision 13240:8c09472c3de2
139136Snsouch 255939Snsouch#line 1 "hb-ot-shape-complex-use-machine.rl" 371633Snsouch/* 439136Snsouch * Copyright �� 2015 Mozilla Foundation. 539136Snsouch * Copyright �� 2015 Google, Inc. 639136Snsouch * 739136Snsouch * This is part of HarfBuzz, a text shaping library. 839136Snsouch * 939136Snsouch * Permission is hereby granted, without written agreement and without 1039136Snsouch * license or royalty fees, to use, copy, modify, and distribute this 1139136Snsouch * software and its documentation for any purpose, provided that the 1239136Snsouch * above copyright notice and the following two paragraphs appear in 1339136Snsouch * all copies of this software. 1439136Snsouch * 1539136Snsouch * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR 1639136Snsouch * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 1739136Snsouch * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN 1839136Snsouch * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 1939136Snsouch * DAMAGE. 2039136Snsouch * 2139136Snsouch * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 2239136Snsouch * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 2339136Snsouch * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 2439136Snsouch * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO 2539136Snsouch * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 2639136Snsouch * 2739136Snsouch * Mozilla Author(s): Jonathan Kew 2839136Snsouch * Google Author(s): Behdad Esfahbod 2939136Snsouch */ 30119418Sobrien 31119418Sobrien#ifndef HB_OT_SHAPE_COMPLEX_USE_MACHINE_HH 32119418Sobrien#define HB_OT_SHAPE_COMPLEX_USE_MACHINE_HH 3339136Snsouch 3439136Snsouch#include "hb-private.hh" 3539136Snsouch 3639136Snsouch 3739136Snsouch#line 38 "hb-ot-shape-complex-use-machine.hh" 3839136Snsouchstatic const unsigned char _use_syllable_machine_trans_keys[] = { 3955205Speter 0u, 0u, 4u, 4u, 1u, 1u, 0u, 39u, 21u, 21u, 8u, 39u, 8u, 39u, 1u, 1u, 4039136Snsouch 8u, 39u, 8u, 39u, 8u, 39u, 8u, 26u, 8u, 26u, 8u, 26u, 8u, 39u, 8u, 39u, 4139136Snsouch 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 4255939Snsouch 8u, 39u, 8u, 39u, 8u, 39u, 1u, 1u, 8u, 39u, 8u, 39u, 8u, 26u, 8u, 26u, 4355939Snsouch 8u, 26u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 4439136Snsouch 8u, 39u, 12u, 21u, 12u, 13u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 26u, 4539136Snsouch 8u, 26u, 8u, 26u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 4655205Speter 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 1u, 39u, 8u, 39u, 21u, 42u, 41u, 42u, 4739136Snsouch 42u, 42u, 0 4842475Snsouch}; 4942475Snsouch 5055939Snsouchstatic const char _use_syllable_machine_key_spans[] = { 5139136Snsouch 0, 1, 1, 40, 1, 32, 32, 1, 5239136Snsouch 32, 32, 32, 19, 19, 19, 32, 32, 5339136Snsouch 32, 32, 32, 32, 32, 32, 32, 32, 5439136Snsouch 32, 32, 32, 1, 32, 32, 19, 19, 5539136Snsouch 19, 32, 32, 32, 32, 32, 32, 32, 5655939Snsouch 32, 10, 2, 32, 32, 32, 32, 19, 5755939Snsouch 19, 19, 32, 32, 32, 32, 32, 32, 5839136Snsouch 32, 32, 32, 32, 39, 32, 22, 2, 5939136Snsouch 1 6039136Snsouch}; 6139136Snsouch 6239136Snsouchstatic const short _use_syllable_machine_index_offsets[] = { 6339136Snsouch 0, 0, 2, 4, 45, 47, 80, 113, 6439136Snsouch 115, 148, 181, 214, 234, 254, 274, 307, 6539136Snsouch 340, 373, 406, 439, 472, 505, 538, 571, 6639136Snsouch 604, 637, 670, 703, 705, 738, 771, 791, 6739136Snsouch 811, 831, 864, 897, 930, 963, 996, 1029, 6878645Snsouch 1062, 1095, 1106, 1109, 1142, 1175, 1208, 1241, 6978645Snsouch 1261, 1281, 1301, 1334, 1367, 1400, 1433, 1466, 7078645Snsouch 1499, 1532, 1565, 1598, 1631, 1671, 1704, 1727, 7178645Snsouch 1730 7278645Snsouch}; 7378645Snsouch 7478645Snsouchstatic const char _use_syllable_machine_indicies[] = { 7578645Snsouch 1, 0, 3, 2, 4, 5, 6, 7678645Snsouch 4, 1, 5, 8, 8, 7, 8, 8, 7778645Snsouch 3, 9, 8, 8, 8, 4, 4, 10, 7878645Snsouch 11, 8, 8, 12, 13, 14, 15, 16, 7978645Snsouch 17, 18, 12, 19, 20, 21, 22, 23, 8078645Snsouch 24, 8, 25, 26, 27, 8, 29, 28, 8178645Snsouch 31, 30, 30, 32, 33, 30, 30, 30, 8278645Snsouch 30, 30, 30, 30, 30, 34, 35, 36, 8378645Snsouch 37, 38, 39, 40, 41, 35, 42, 34, 8478645Snsouch 43, 44, 45, 46, 30, 47, 48, 49, 8578645Snsouch 30, 31, 30, 30, 32, 33, 30, 30, 8639136Snsouch 30, 30, 30, 30, 30, 30, 50, 35, 8739136Snsouch 36, 37, 38, 39, 40, 41, 35, 42, 8878645Snsouch 43, 43, 44, 45, 46, 30, 47, 48, 8939136Snsouch 49, 30, 32, 51, 31, 30, 30, 32, 9039136Snsouch 33, 30, 30, 30, 30, 30, 30, 30, 9139136Snsouch 30, 30, 35, 36, 37, 38, 39, 40, 9239136Snsouch 41, 35, 42, 43, 43, 44, 45, 46, 9339136Snsouch 30, 47, 48, 49, 30, 31, 30, 30, 9443433Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 9543433Snsouch 30, 30, 30, 35, 36, 37, 38, 39, 9639136Snsouch 30, 30, 30, 30, 30, 30, 44, 45, 9739136Snsouch 46, 30, 47, 48, 49, 30, 31, 30, 9839136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 9939136Snsouch 30, 30, 30, 30, 30, 36, 37, 38, 10039136Snsouch 39, 30, 30, 30, 30, 30, 30, 30, 10139136Snsouch 30, 30, 30, 47, 48, 49, 30, 31, 10239136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 10339136Snsouch 30, 30, 30, 30, 30, 30, 30, 37, 10439136Snsouch 38, 39, 30, 31, 30, 30, 30, 30, 10539136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 10643433Snsouch 30, 30, 30, 30, 38, 39, 30, 31, 10743433Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 10839136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 10939136Snsouch 30, 39, 30, 31, 30, 30, 30, 30, 11039136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 11139136Snsouch 30, 30, 30, 37, 38, 39, 30, 30, 11239136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 11339136Snsouch 47, 48, 49, 30, 31, 30, 30, 30, 11439136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 11539136Snsouch 30, 30, 30, 30, 37, 38, 39, 30, 11639136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 11739136Snsouch 30, 30, 48, 49, 30, 31, 30, 30, 11839136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 11939136Snsouch 30, 30, 30, 30, 30, 37, 38, 39, 12039136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 12139136Snsouch 30, 30, 30, 30, 49, 30, 31, 30, 12239136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 12339136Snsouch 30, 30, 30, 30, 30, 36, 37, 38, 12439136Snsouch 39, 30, 30, 30, 30, 30, 30, 44, 12539136Snsouch 45, 46, 30, 47, 48, 49, 30, 31, 12639136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 12739136Snsouch 30, 30, 30, 30, 30, 30, 36, 37, 12839136Snsouch 38, 39, 30, 30, 30, 30, 30, 30, 12939136Snsouch 30, 45, 46, 30, 47, 48, 49, 30, 13039136Snsouch 31, 30, 30, 30, 30, 30, 30, 30, 13139136Snsouch 30, 30, 30, 30, 30, 30, 30, 36, 13239136Snsouch 37, 38, 39, 30, 30, 30, 30, 30, 13339136Snsouch 30, 30, 30, 46, 30, 47, 48, 49, 13439136Snsouch 30, 31, 30, 30, 30, 30, 30, 30, 13539136Snsouch 30, 30, 30, 30, 30, 30, 30, 35, 13639136Snsouch 36, 37, 38, 39, 30, 41, 35, 30, 13739136Snsouch 30, 30, 44, 45, 46, 30, 47, 48, 13839136Snsouch 49, 30, 31, 30, 30, 30, 30, 30, 13939136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 14039136Snsouch 35, 36, 37, 38, 39, 30, 30, 35, 14139136Snsouch 30, 30, 30, 44, 45, 46, 30, 47, 14239136Snsouch 48, 49, 30, 31, 30, 30, 30, 30, 14339136Snsouch 30, 30, 30, 30, 30, 30, 30, 30, 14439136Snsouch 30, 35, 36, 37, 38, 39, 40, 41, 14539136Snsouch 35, 30, 30, 30, 44, 45, 46, 30, 14639136Snsouch 47, 48, 49, 30, 31, 30, 30, 32, 14739136Snsouch 33, 30, 30, 30, 30, 30, 30, 30, 14839136Snsouch 30, 30, 35, 36, 37, 38, 39, 40, 14939136Snsouch 41, 35, 42, 30, 43, 44, 45, 46, 15039136Snsouch 30, 47, 48, 49, 30, 31, 30, 30, 15139136Snsouch 32, 33, 30, 30, 30, 30, 30, 30, 15239136Snsouch 30, 30, 30, 35, 36, 37, 38, 39, 15378645Snsouch 40, 41, 35, 42, 34, 43, 44, 45, 15439136Snsouch 46, 30, 47, 48, 49, 30, 53, 52, 15539136Snsouch 52, 54, 55, 52, 52, 52, 52, 52, 15639136Snsouch 52, 52, 52, 56, 52, 57, 58, 59, 15739136Snsouch 60, 61, 62, 57, 63, 56, 64, 52, 15839136Snsouch 52, 52, 52, 65, 66, 67, 52, 53, 15939136Snsouch 52, 52, 54, 55, 52, 52, 52, 52, 16043433Snsouch 52, 52, 52, 52, 68, 52, 57, 58, 16139136Snsouch 59, 60, 61, 62, 57, 63, 64, 64, 16239136Snsouch 52, 52, 52, 52, 65, 66, 67, 52, 16339136Snsouch 54, 51, 53, 52, 52, 54, 55, 52, 16439136Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 16539136Snsouch 52, 57, 58, 59, 60, 61, 62, 57, 16639136Snsouch 63, 64, 64, 52, 52, 52, 52, 65, 16739136Snsouch 66, 67, 52, 53, 52, 52, 52, 52, 16839136Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 16939136Snsouch 52, 52, 57, 58, 59, 60, 52, 52, 17039136Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 17139136Snsouch 65, 66, 67, 52, 53, 52, 52, 52, 17239136Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 17339136Snsouch 52, 52, 52, 52, 58, 59, 60, 52, 17478645Snsouch 53, 52, 52, 52, 52, 52, 52, 52, 17578645Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 17678645Snsouch 52, 59, 60, 52, 53, 52, 52, 52, 17778645Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 17878645Snsouch 52, 52, 52, 52, 52, 52, 60, 52, 17978645Snsouch 53, 52, 52, 52, 52, 52, 52, 52, 18078645Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 18178645Snsouch 58, 59, 60, 52, 52, 52, 52, 52, 18278645Snsouch 52, 52, 52, 52, 52, 65, 66, 67, 18378645Snsouch 52, 53, 52, 52, 52, 52, 52, 52, 18478645Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 18578645Snsouch 52, 58, 59, 60, 52, 52, 52, 52, 18678645Snsouch 52, 52, 52, 52, 52, 52, 52, 66, 18778645Snsouch 67, 52, 53, 52, 52, 52, 52, 52, 18878645Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 18978645Snsouch 52, 52, 58, 59, 60, 52, 52, 52, 19078645Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 19178645Snsouch 52, 67, 52, 53, 52, 52, 52, 52, 19278645Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 19378645Snsouch 52, 52, 57, 58, 59, 60, 52, 62, 19478645Snsouch 57, 52, 52, 52, 52, 52, 52, 52, 19578645Snsouch 65, 66, 67, 52, 53, 52, 52, 52, 19678645Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 19778645Snsouch 52, 52, 52, 57, 58, 59, 60, 52, 19878645Snsouch 52, 57, 52, 52, 52, 52, 52, 52, 19978645Snsouch 52, 65, 66, 67, 52, 53, 52, 52, 20078645Snsouch 52, 52, 52, 52, 52, 52, 52, 52, 20178645Snsouch 52, 52, 52, 52, 57, 58, 59, 60, 20278645Snsouch 61, 62, 57, 52, 52, 52, 52, 52, 20339136Snsouch 52, 52, 65, 66, 67, 52, 53, 52, 20439136Snsouch 52, 54, 55, 52, 52, 52, 52, 52, 20539136Snsouch 52, 52, 52, 52, 52, 57, 58, 59, 20639136Snsouch 60, 61, 62, 57, 63, 52, 64, 52, 20739136Snsouch 52, 52, 52, 65, 66, 67, 52, 53, 20839136Snsouch 52, 52, 54, 55, 52, 52, 52, 52, 20939136Snsouch 52, 52, 52, 52, 52, 52, 57, 58, 21039136Snsouch 59, 60, 61, 62, 57, 63, 56, 64, 21139136Snsouch 52, 52, 52, 52, 65, 66, 67, 52, 21239136Snsouch 70, 71, 69, 69, 69, 69, 69, 69, 21339136Snsouch 69, 72, 69, 70, 71, 69, 7, 73, 21439136Snsouch 73, 3, 9, 73, 73, 73, 73, 73, 21539136Snsouch 73, 73, 73, 74, 12, 13, 14, 15, 21639136Snsouch 16, 17, 18, 12, 19, 21, 21, 22, 21739136Snsouch 23, 24, 73, 25, 26, 27, 73, 7, 21839136Snsouch 73, 73, 3, 9, 73, 73, 73, 73, 21939136Snsouch 73, 73, 73, 73, 73, 12, 13, 14, 22039136Snsouch 15, 16, 17, 18, 12, 19, 21, 21, 22139136Snsouch 22, 23, 24, 73, 25, 26, 27, 73, 22239136Snsouch 7, 73, 73, 73, 73, 73, 73, 73, 22339136Snsouch 73, 73, 73, 73, 73, 73, 12, 13, 22439136Snsouch 14, 15, 16, 73, 73, 73, 73, 73, 22539136Snsouch 73, 22, 23, 24, 73, 25, 26, 27, 22639136Snsouch 73, 7, 73, 73, 73, 73, 73, 73, 22739136Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 22839136Snsouch 13, 14, 15, 16, 73, 73, 73, 73, 22939136Snsouch 73, 73, 73, 73, 73, 73, 25, 26, 23039136Snsouch 27, 73, 7, 73, 73, 73, 73, 73, 23139136Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 23239136Snsouch 73, 73, 14, 15, 16, 73, 7, 73, 23339136Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 23439136Snsouch 73, 73, 73, 73, 73, 73, 73, 15, 23539136Snsouch 16, 73, 7, 73, 73, 73, 73, 73, 23639136Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 23739136Snsouch 73, 73, 73, 73, 16, 73, 7, 73, 23839136Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 23939136Snsouch 73, 73, 73, 73, 73, 73, 14, 15, 24039136Snsouch 16, 73, 73, 73, 73, 73, 73, 73, 24143433Snsouch 73, 73, 73, 25, 26, 27, 73, 7, 24239136Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 24339136Snsouch 73, 73, 73, 73, 73, 73, 73, 14, 24439136Snsouch 15, 16, 73, 73, 73, 73, 73, 73, 24539136Snsouch 73, 73, 73, 73, 73, 26, 27, 73, 24639136Snsouch 7, 73, 73, 73, 73, 73, 73, 73, 24739136Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 24839136Snsouch 14, 15, 16, 73, 73, 73, 73, 73, 24939136Snsouch 73, 73, 73, 73, 73, 73, 73, 27, 25039136Snsouch 73, 7, 73, 73, 73, 73, 73, 73, 25139136Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 25239136Snsouch 13, 14, 15, 16, 73, 73, 73, 73, 25339136Snsouch 73, 73, 22, 23, 24, 73, 25, 26, 25439136Snsouch 27, 73, 7, 73, 73, 73, 73, 73, 25543433Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 25639136Snsouch 73, 13, 14, 15, 16, 73, 73, 73, 25739136Snsouch 73, 73, 73, 73, 23, 24, 73, 25, 25843433Snsouch 26, 27, 73, 7, 73, 73, 73, 73, 25939136Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 26039136Snsouch 73, 73, 13, 14, 15, 16, 73, 73, 26139136Snsouch 73, 73, 73, 73, 73, 73, 24, 73, 26239136Snsouch 25, 26, 27, 73, 7, 73, 73, 73, 26339136Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 26439136Snsouch 73, 73, 12, 13, 14, 15, 16, 73, 26539136Snsouch 18, 12, 73, 73, 73, 22, 23, 24, 26639136Snsouch 73, 25, 26, 27, 73, 7, 73, 73, 26739136Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 26843433Snsouch 73, 73, 73, 12, 13, 14, 15, 16, 26939136Snsouch 73, 73, 12, 73, 73, 73, 22, 23, 27039136Snsouch 24, 73, 25, 26, 27, 73, 7, 73, 27139136Snsouch 73, 73, 73, 73, 73, 73, 73, 73, 27239136Snsouch 73, 73, 73, 73, 12, 13, 14, 15, 27339136Snsouch 16, 17, 18, 12, 73, 73, 73, 22, 27439136Snsouch 23, 24, 73, 25, 26, 27, 73, 7, 27543433Snsouch 73, 73, 3, 9, 73, 73, 73, 73, 27639136Snsouch 73, 73, 73, 73, 73, 12, 13, 14, 27739136Snsouch 15, 16, 17, 18, 12, 19, 73, 21, 27839136Snsouch 22, 23, 24, 73, 25, 26, 27, 73, 27939136Snsouch 5, 6, 73, 73, 5, 73, 73, 7, 28039136Snsouch 73, 73, 3, 9, 73, 73, 73, 73, 28139520Snsouch 73, 73, 73, 73, 73, 12, 13, 14, 28239136Snsouch 15, 16, 17, 18, 12, 19, 20, 21, 28339136Snsouch 22, 23, 24, 73, 25, 26, 27, 73, 28439136Snsouch 7, 73, 73, 3, 9, 73, 73, 73, 28555939Snsouch 73, 73, 73, 73, 73, 73, 12, 13, 28639136Snsouch 14, 15, 16, 17, 18, 12, 19, 20, 28739136Snsouch 21, 22, 23, 24, 73, 25, 26, 27, 28839136Snsouch 73, 76, 75, 75, 75, 75, 75, 75, 28939136Snsouch 75, 75, 75, 75, 75, 75, 75, 75, 29039520Snsouch 75, 75, 75, 75, 75, 76, 77, 75, 29139520Snsouch 76, 77, 75, 77, 75, 0 29239136Snsouch}; 29339136Snsouch 29439136Snsouchstatic const char _use_syllable_machine_trans_targs[] = { 29539136Snsouch 3, 41, 3, 43, 4, 5, 25, 3, 29639136Snsouch 0, 2, 60, 62, 45, 46, 47, 48, 29755939Snsouch 49, 56, 57, 58, 61, 59, 53, 54, 29839136Snsouch 55, 50, 51, 52, 3, 3, 3, 3, 29940783Snsouch 6, 7, 24, 9, 10, 11, 12, 13, 30040783Snsouch 20, 21, 22, 23, 17, 18, 19, 14, 301184130Sjhb 15, 16, 8, 3, 3, 3, 26, 27, 302184130Sjhb 40, 29, 30, 31, 32, 36, 37, 38, 303184130Sjhb 39, 33, 34, 35, 28, 3, 3, 1, 30440783Snsouch 42, 3, 44, 3, 63, 64 30540783Snsouch}; 30640783Snsouch 30739136Snsouchstatic const char _use_syllable_machine_trans_actions[] = { 30839520Snsouch 1, 2, 3, 4, 0, 0, 0, 7, 30955939Snsouch 0, 0, 4, 0, 0, 0, 0, 0, 31039520Snsouch 0, 0, 0, 0, 4, 4, 0, 0, 31139520Snsouch 0, 0, 0, 0, 8, 9, 10, 11, 31239136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 31339136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 31439136Snsouch 0, 0, 0, 12, 13, 14, 0, 0, 31539136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 31639136Snsouch 0, 0, 0, 0, 0, 15, 16, 0, 31739136Snsouch 2, 17, 4, 18, 0, 0 31839520Snsouch}; 31939136Snsouch 32039136Snsouchstatic const char _use_syllable_machine_to_state_actions[] = { 32139136Snsouch 0, 0, 0, 5, 0, 0, 0, 0, 32255939Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 32339136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 32439136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 32539136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 32639136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 32739136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 32839520Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 32939520Snsouch 0 33039136Snsouch}; 33139520Snsouch 33255939Snsouchstatic const char _use_syllable_machine_from_state_actions[] = { 33339520Snsouch 0, 0, 0, 6, 0, 0, 0, 0, 33439136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 33539136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 33639136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 33739136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 33839136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 33939136Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 34055939Snsouch 0, 0, 0, 0, 0, 0, 0, 0, 34139136Snsouch 0 34239136Snsouch}; 34339136Snsouch 34455939Snsouchstatic const short _use_syllable_machine_eof_trans[] = { 34539136Snsouch 0, 1, 3, 0, 29, 31, 31, 52, 34655939Snsouch 31, 31, 31, 31, 31, 31, 31, 31, 34739136Snsouch 31, 31, 31, 31, 31, 31, 31, 31, 34839136Snsouch 31, 53, 53, 52, 53, 53, 53, 53, 34939136Snsouch 53, 53, 53, 53, 53, 53, 53, 53, 35039136Snsouch 53, 70, 70, 74, 74, 74, 74, 74, 35155939Snsouch 74, 74, 74, 74, 74, 74, 74, 74, 35239136Snsouch 74, 74, 74, 74, 74, 74, 76, 76, 35340783Snsouch 76 35440783Snsouch}; 355184130Sjhb 356184130Sjhbstatic const int use_syllable_machine_start = 3; 357184130Sjhbstatic const int use_syllable_machine_first_final = 3; 35840783Snsouchstatic const int use_syllable_machine_error = 0; 35940783Snsouch 36040783Snsouchstatic const int use_syllable_machine_en_main = 3; 36139136Snsouch 36239136Snsouch 36339136Snsouch#line 38 "hb-ot-shape-complex-use-machine.rl" 36439136Snsouch 36539136Snsouch 36639136Snsouch 36739136Snsouch#line 145 "hb-ot-shape-complex-use-machine.rl" 36839136Snsouch 36939136Snsouch 37039136Snsouch#define found_syllable(syllable_type) \ 37139136Snsouch HB_STMT_START { \ 37239136Snsouch if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \ 37355939Snsouch for (unsigned int i = last; i < p+1; i++) \ 37439136Snsouch info[i].syllable() = (syllable_serial << 4) | syllable_type; \ 37539136Snsouch last = p+1; \ 37655939Snsouch syllable_serial++; \ 37739520Snsouch if (unlikely (syllable_serial == 16)) syllable_serial = 1; \ 37839136Snsouch } HB_STMT_END 37939520Snsouch 38039520Snsouchstatic void 38139136Snsouchfind_syllables (hb_buffer_t *buffer) 38270608Snsouch{ 38370608Snsouch unsigned int p, pe, eof, ts HB_UNUSED, te HB_UNUSED, act HB_UNUSED; 38439520Snsouch int cs; 38570608Snsouch hb_glyph_info_t *info = buffer->info; 38670608Snsouch 38770608Snsouch#line 388 "hb-ot-shape-complex-use-machine.hh" 38870608Snsouch { 38970608Snsouch cs = use_syllable_machine_start; 39070608Snsouch ts = 0; 39139520Snsouch te = 0; 39270608Snsouch act = 0; 39370608Snsouch } 39470608Snsouch 39570608Snsouch#line 166 "hb-ot-shape-complex-use-machine.rl" 39670608Snsouch 39770608Snsouch 39870608Snsouch p = 0; 39970608Snsouch pe = eof = buffer->len; 40070608Snsouch 40170608Snsouch unsigned int last = 0; 402184130Sjhb unsigned int syllable_serial = 1; 403184130Sjhb 40470608Snsouch#line 405 "hb-ot-shape-complex-use-machine.hh" 40570608Snsouch { 40670608Snsouch int _slen; 40770608Snsouch int _trans; 40870608Snsouch const unsigned char *_keys; 40970608Snsouch const char *_inds; 41070608Snsouch if ( p == pe ) 41139520Snsouch goto _test_eof; 41239520Snsouch if ( cs == 0 ) 41339136Snsouch goto _out; 41455939Snsouch_resume: 41539136Snsouch switch ( _use_syllable_machine_from_state_actions[cs] ) { 41639520Snsouch case 6: 41739520Snsouch#line 1 "NONE" 41839136Snsouch {ts = p;} 41939136Snsouch break; 42039136Snsouch#line 421 "hb-ot-shape-complex-use-machine.hh" 42139136Snsouch } 42239520Snsouch 42339520Snsouch _keys = _use_syllable_machine_trans_keys + (cs<<1); 424184130Sjhb _inds = _use_syllable_machine_indicies + _use_syllable_machine_index_offsets[cs]; 425184130Sjhb 42639900Snsouch _slen = _use_syllable_machine_key_spans[cs]; 42739520Snsouch _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].use_category()) && 42839136Snsouch ( info[p].use_category()) <= _keys[1] ? 42939136Snsouch ( info[p].use_category()) - _keys[0] : _slen ]; 43039520Snsouch 43139520Snsouch_eof_trans: 43255939Snsouch cs = _use_syllable_machine_trans_targs[_trans]; 43339520Snsouch 43439136Snsouch if ( _use_syllable_machine_trans_actions[_trans] == 0 ) 43539136Snsouch goto _again; 43639136Snsouch 43739136Snsouch switch ( _use_syllable_machine_trans_actions[_trans] ) { 43839136Snsouch case 2: 43939136Snsouch#line 1 "NONE" 44039136Snsouch {te = p+1;} 44139136Snsouch break; 44255939Snsouch case 9: 44339136Snsouch#line 134 "hb-ot-shape-complex-use-machine.rl" 44439136Snsouch {te = p+1;{ found_syllable (independent_cluster); }} 44555939Snsouch break; 44655939Snsouch case 11: 44739136Snsouch#line 136 "hb-ot-shape-complex-use-machine.rl" 44855939Snsouch {te = p+1;{ found_syllable (consonant_cluster); }} 44945342Speter break; 45039136Snsouch case 14: 45139136Snsouch#line 137 "hb-ot-shape-complex-use-machine.rl" 45239136Snsouch {te = p+1;{ found_syllable (vowel_cluster); }} 45339136Snsouch break; 45439136Snsouch case 16: 45539136Snsouch#line 138 "hb-ot-shape-complex-use-machine.rl" 45639136Snsouch {te = p+1;{ found_syllable (number_joiner_terminated_cluster); }} 45739136Snsouch break; 45839136Snsouch case 7: 45939136Snsouch#line 141 "hb-ot-shape-complex-use-machine.rl" 46055939Snsouch {te = p+1;{ found_syllable (broken_cluster); }} 46139136Snsouch break; 46239136Snsouch case 8: 46355939Snsouch#line 134 "hb-ot-shape-complex-use-machine.rl" 46455939Snsouch {te = p;p--;{ found_syllable (independent_cluster); }} 46539136Snsouch break; 46655939Snsouch case 12: 46745342Speter#line 135 "hb-ot-shape-complex-use-machine.rl" 46839136Snsouch {te = p;p--;{ found_syllable (virama_terminated_cluster); }} 46939136Snsouch break; 47039136Snsouch case 10: 47139136Snsouch#line 136 "hb-ot-shape-complex-use-machine.rl" 47239136Snsouch {te = p;p--;{ found_syllable (consonant_cluster); }} 47339136Snsouch break; 47439136Snsouch case 13: 47539136Snsouch#line 137 "hb-ot-shape-complex-use-machine.rl" 47655939Snsouch {te = p;p--;{ found_syllable (vowel_cluster); }} 47739136Snsouch break; 47839136Snsouch case 15: 47939136Snsouch#line 139 "hb-ot-shape-complex-use-machine.rl" 48039136Snsouch {te = p;p--;{ found_syllable (numeral_cluster); }} 48139136Snsouch break; 48239136Snsouch case 18: 48355939Snsouch#line 140 "hb-ot-shape-complex-use-machine.rl" 48439136Snsouch {te = p;p--;{ found_syllable (symbol_cluster); }} 48539136Snsouch break; 48639136Snsouch case 17: 48739136Snsouch#line 141 "hb-ot-shape-complex-use-machine.rl" 48839136Snsouch {te = p;p--;{ found_syllable (broken_cluster); }} 48939136Snsouch break; 49039136Snsouch case 1: 49139136Snsouch#line 139 "hb-ot-shape-complex-use-machine.rl" 49239136Snsouch {{p = ((te))-1;}{ found_syllable (numeral_cluster); }} 49339136Snsouch break; 49439136Snsouch case 3: 49539136Snsouch#line 1 "NONE" 49639136Snsouch { switch( act ) { 49778645Snsouch case 0: 49878645Snsouch {{cs = 0; goto _again;}} 49955939Snsouch break; 50078645Snsouch case 8: 50139136Snsouch {{p = ((te))-1;} found_syllable (broken_cluster); } 50239136Snsouch break; 50339136Snsouch } 50439136Snsouch } 50539136Snsouch break; 50639136Snsouch case 4: 50739136Snsouch#line 1 "NONE" 50839136Snsouch {te = p+1;} 50939136Snsouch#line 141 "hb-ot-shape-complex-use-machine.rl" 51078645Snsouch {act = 8;} 51178645Snsouch break; 51278645Snsouch#line 513 "hb-ot-shape-complex-use-machine.hh" 51378645Snsouch } 51478645Snsouch 51578645Snsouch_again: 51678645Snsouch switch ( _use_syllable_machine_to_state_actions[cs] ) { 51778645Snsouch case 5: 51878645Snsouch#line 1 "NONE" 51978645Snsouch {ts = 0;} 52039136Snsouch#line 1 "NONE" 52139136Snsouch {act = 0;} 52239136Snsouch break; 52339136Snsouch#line 524 "hb-ot-shape-complex-use-machine.hh" 52439136Snsouch } 52539136Snsouch 52655939Snsouch if ( cs == 0 ) 52739136Snsouch goto _out; 52839136Snsouch if ( ++p != pe ) 52939136Snsouch goto _resume; 53055939Snsouch _test_eof: {} 53139136Snsouch if ( p == eof ) 53255939Snsouch { 53339136Snsouch if ( _use_syllable_machine_eof_trans[cs] > 0 ) { 53439136Snsouch _trans = _use_syllable_machine_eof_trans[cs] - 1; 53539136Snsouch goto _eof_trans; 53639136Snsouch } 53739136Snsouch } 53855939Snsouch 53939136Snsouch _out: {} 54039136Snsouch } 54139136Snsouch 54239136Snsouch#line 175 "hb-ot-shape-complex-use-machine.rl" 54339136Snsouch 54455939Snsouch} 54555939Snsouch 54639136Snsouch#undef found_syllable 54755939Snsouch 54839136Snsouch#endif /* HB_OT_SHAPE_COMPLEX_USE_MACHINE_HH */ 54939136Snsouch