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