gfx/harfbuzz/src/hb-ot-shape-complex-myanmar-machine.hh

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     2 #line 1 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
     3 /*
     4  * Copyright © 2011,2012  Google, Inc.
     5  *
     6  *  This is part of HarfBuzz, a text shaping library.
     7  *
     8  * Permission is hereby granted, without written agreement and without
     9  * license or royalty fees, to use, copy, modify, and distribute this
    10  * software and its documentation for any purpose, provided that the
    11  * above copyright notice and the following two paragraphs appear in
    12  * all copies of this software.
    13  *
    14  * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
    15  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
    16  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
    17  * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
    18  * DAMAGE.
    19  *
    20  * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
    21  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    22  * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
    23  * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
    24  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
    25  *
    26  * Google Author(s): Behdad Esfahbod
    27  */
    29 #ifndef HB_OT_SHAPE_COMPLEX_MYANMAR_MACHINE_HH
    30 #define HB_OT_SHAPE_COMPLEX_MYANMAR_MACHINE_HH
    32 #include "hb-private.hh"
    35 #line 36 "hb-ot-shape-complex-myanmar-machine.hh.tmp"
    36 static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
    37 	1u, 31u, 3u, 30u, 5u, 29u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u, 
    38 	3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 1u, 16u, 3u, 29u, 3u, 29u, 3u, 29u, 
    39 	3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 5u, 29u, 5u, 8u, 
    40 	5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 
    41 	3u, 30u, 3u, 29u, 1u, 30u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 
    42 	3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 8u, 8u, 0
    43 };
    45 static const char _myanmar_syllable_machine_key_spans[] = {
    46 	31, 28, 25, 4, 25, 23, 21, 21, 
    47 	27, 27, 27, 27, 16, 27, 27, 27, 
    48 	27, 27, 27, 27, 27, 27, 25, 4, 
    49 	25, 23, 21, 21, 27, 27, 27, 27, 
    50 	28, 27, 30, 27, 27, 27, 27, 27, 
    51 	27, 27, 27, 27, 1
    52 };
    54 static const short _myanmar_syllable_machine_index_offsets[] = {
    55 	0, 32, 61, 87, 92, 118, 142, 164, 
    56 	186, 214, 242, 270, 298, 315, 343, 371, 
    57 	399, 427, 455, 483, 511, 539, 567, 593, 
    58 	598, 624, 648, 670, 692, 720, 748, 776, 
    59 	804, 833, 861, 892, 920, 948, 976, 1004, 
    60 	1032, 1060, 1088, 1116, 1144
    61 };
    63 static const char _myanmar_syllable_machine_indicies[] = {
    64 	1, 1, 2, 3, 4, 4, 0, 5, 
    65 	0, 6, 0, 1, 0, 0, 0, 7, 
    66 	0, 8, 1, 0, 9, 10, 11, 12, 
    67 	13, 14, 15, 16, 17, 18, 19, 0, 
    68 	21, 22, 23, 23, 20, 24, 20, 25, 
    69 	20, 20, 20, 20, 20, 20, 20, 26, 
    70 	20, 20, 27, 28, 29, 30, 31, 32, 
    71 	33, 34, 35, 36, 20, 23, 23, 20, 
    72 	24, 20, 20, 20, 20, 20, 20, 20, 
    73 	20, 20, 37, 20, 20, 20, 20, 20, 
    74 	20, 31, 20, 20, 20, 35, 20, 23, 
    75 	23, 20, 24, 20, 23, 23, 20, 24, 
    76 	20, 20, 20, 20, 20, 20, 20, 20, 
    77 	20, 20, 20, 20, 20, 20, 20, 20, 
    78 	31, 20, 20, 20, 35, 20, 38, 20, 
    79 	23, 23, 20, 24, 20, 31, 20, 20, 
    80 	20, 20, 20, 20, 20, 39, 20, 20, 
    81 	20, 20, 20, 20, 31, 20, 23, 23, 
    82 	20, 24, 20, 20, 20, 20, 20, 20, 
    83 	20, 20, 20, 39, 20, 20, 20, 20, 
    84 	20, 20, 31, 20, 23, 23, 20, 24, 
    85 	20, 20, 20, 20, 20, 20, 20, 20, 
    86 	20, 20, 20, 20, 20, 20, 20, 20, 
    87 	31, 20, 21, 20, 23, 23, 20, 24, 
    88 	20, 25, 20, 20, 20, 20, 20, 20, 
    89 	20, 40, 20, 20, 40, 20, 20, 20, 
    90 	31, 41, 20, 20, 35, 20, 21, 20, 
    91 	23, 23, 20, 24, 20, 25, 20, 20, 
    92 	20, 20, 20, 20, 20, 20, 20, 20, 
    93 	20, 20, 20, 20, 31, 20, 20, 20, 
    94 	35, 20, 21, 20, 23, 23, 20, 24, 
    95 	20, 25, 20, 20, 20, 20, 20, 20, 
    96 	20, 40, 20, 20, 20, 20, 20, 20, 
    97 	31, 41, 20, 20, 35, 20, 21, 20, 
    98 	23, 23, 20, 24, 20, 25, 20, 20, 
    99 	20, 20, 20, 20, 20, 20, 20, 20, 
   100 	20, 20, 20, 20, 31, 41, 20, 20, 
   101 	35, 20, 1, 1, 20, 20, 20, 20, 
   102 	20, 20, 20, 20, 20, 20, 20, 20, 
   103 	20, 1, 20, 21, 20, 23, 23, 20, 
   104 	24, 20, 25, 20, 20, 20, 20, 20, 
   105 	20, 20, 26, 20, 20, 27, 28, 29, 
   106 	30, 31, 32, 33, 34, 35, 20, 21, 
   107 	20, 23, 23, 20, 24, 20, 25, 20, 
   108 	20, 20, 20, 20, 20, 20, 34, 20, 
   109 	20, 20, 20, 20, 20, 31, 32, 33, 
   110 	34, 35, 20, 21, 20, 23, 23, 20, 
   111 	24, 20, 25, 20, 20, 20, 20, 20, 
   112 	20, 20, 20, 20, 20, 20, 20, 20, 
   113 	20, 31, 32, 33, 34, 35, 20, 21, 
   114 	20, 23, 23, 20, 24, 20, 25, 20, 
   115 	20, 20, 20, 20, 20, 20, 20, 20, 
   116 	20, 20, 20, 20, 20, 31, 32, 33, 
   117 	20, 35, 20, 21, 20, 23, 23, 20, 
   118 	24, 20, 25, 20, 20, 20, 20, 20, 
   119 	20, 20, 20, 20, 20, 20, 20, 20, 
   120 	20, 31, 20, 33, 20, 35, 20, 21, 
   121 	20, 23, 23, 20, 24, 20, 25, 20, 
   122 	20, 20, 20, 20, 20, 20, 20, 20, 
   123 	20, 27, 20, 29, 20, 31, 32, 33, 
   124 	34, 35, 20, 21, 20, 23, 23, 20, 
   125 	24, 20, 25, 20, 20, 20, 20, 20, 
   126 	20, 20, 34, 20, 20, 27, 20, 20, 
   127 	20, 31, 32, 33, 34, 35, 20, 21, 
   128 	20, 23, 23, 20, 24, 20, 25, 20, 
   129 	20, 20, 20, 20, 20, 20, 20, 20, 
   130 	20, 27, 28, 29, 20, 31, 32, 33, 
   131 	34, 35, 20, 21, 22, 23, 23, 20, 
   132 	24, 20, 25, 20, 20, 20, 20, 20, 
   133 	20, 20, 26, 20, 20, 27, 28, 29, 
   134 	30, 31, 32, 33, 34, 35, 20, 3, 
   135 	3, 42, 5, 42, 42, 42, 42, 42, 
   136 	42, 42, 42, 42, 43, 42, 42, 42, 
   137 	42, 42, 42, 13, 42, 42, 42, 17, 
   138 	42, 3, 3, 42, 5, 42, 3, 3, 
   139 	42, 5, 42, 42, 42, 42, 42, 42, 
   140 	42, 42, 42, 42, 42, 42, 42, 42, 
   141 	42, 42, 13, 42, 42, 42, 17, 42, 
   142 	44, 42, 3, 3, 42, 5, 42, 13, 
   143 	42, 42, 42, 42, 42, 42, 42, 45, 
   144 	42, 42, 42, 42, 42, 42, 13, 42, 
   145 	3, 3, 42, 5, 42, 42, 42, 42, 
   146 	42, 42, 42, 42, 42, 45, 42, 42, 
   147 	42, 42, 42, 42, 13, 42, 3, 3, 
   148 	42, 5, 42, 42, 42, 42, 42, 42, 
   149 	42, 42, 42, 42, 42, 42, 42, 42, 
   150 	42, 42, 13, 42, 2, 42, 3, 3, 
   151 	42, 5, 42, 6, 42, 42, 42, 42, 
   152 	42, 42, 42, 46, 42, 42, 46, 42, 
   153 	42, 42, 13, 47, 42, 42, 17, 42, 
   154 	2, 42, 3, 3, 42, 5, 42, 6, 
   155 	42, 42, 42, 42, 42, 42, 42, 42, 
   156 	42, 42, 42, 42, 42, 42, 13, 42, 
   157 	42, 42, 17, 42, 2, 42, 3, 3, 
   158 	42, 5, 42, 6, 42, 42, 42, 42, 
   159 	42, 42, 42, 46, 42, 42, 42, 42, 
   160 	42, 42, 13, 47, 42, 42, 17, 42, 
   161 	2, 42, 3, 3, 42, 5, 42, 6, 
   162 	42, 42, 42, 42, 42, 42, 42, 42, 
   163 	42, 42, 42, 42, 42, 42, 13, 47, 
   164 	42, 42, 17, 42, 21, 22, 23, 23, 
   165 	20, 24, 20, 25, 20, 20, 20, 20, 
   166 	20, 20, 20, 48, 20, 20, 27, 28, 
   167 	29, 30, 31, 32, 33, 34, 35, 36, 
   168 	20, 21, 49, 23, 23, 20, 24, 20, 
   169 	25, 20, 20, 20, 20, 20, 20, 20, 
   170 	26, 20, 20, 27, 28, 29, 30, 31, 
   171 	32, 33, 34, 35, 20, 1, 1, 2, 
   172 	3, 3, 3, 42, 5, 42, 6, 42, 
   173 	1, 42, 42, 42, 1, 42, 8, 1, 
   174 	42, 9, 10, 11, 12, 13, 14, 15, 
   175 	16, 17, 18, 42, 2, 42, 3, 3, 
   176 	42, 5, 42, 6, 42, 42, 42, 42, 
   177 	42, 42, 42, 8, 42, 42, 9, 10, 
   178 	11, 12, 13, 14, 15, 16, 17, 42, 
   179 	2, 42, 3, 3, 42, 5, 42, 6, 
   180 	42, 42, 42, 42, 42, 42, 42, 16, 
   181 	42, 42, 42, 42, 42, 42, 13, 14, 
   182 	15, 16, 17, 42, 2, 42, 3, 3, 
   183 	42, 5, 42, 6, 42, 42, 42, 42, 
   184 	42, 42, 42, 42, 42, 42, 42, 42, 
   185 	42, 42, 13, 14, 15, 16, 17, 42, 
   186 	2, 42, 3, 3, 42, 5, 42, 6, 
   187 	42, 42, 42, 42, 42, 42, 42, 42, 
   188 	42, 42, 42, 42, 42, 42, 13, 14, 
   189 	15, 42, 17, 42, 2, 42, 3, 3, 
   190 	42, 5, 42, 6, 42, 42, 42, 42, 
   191 	42, 42, 42, 42, 42, 42, 42, 42, 
   192 	42, 42, 13, 42, 15, 42, 17, 42, 
   193 	2, 42, 3, 3, 42, 5, 42, 6, 
   194 	42, 42, 42, 42, 42, 42, 42, 42, 
   195 	42, 42, 9, 42, 11, 42, 13, 14, 
   196 	15, 16, 17, 42, 2, 42, 3, 3, 
   197 	42, 5, 42, 6, 42, 42, 42, 42, 
   198 	42, 42, 42, 16, 42, 42, 9, 42, 
   199 	42, 42, 13, 14, 15, 16, 17, 42, 
   200 	2, 42, 3, 3, 42, 5, 42, 6, 
   201 	42, 42, 42, 42, 42, 42, 42, 42, 
   202 	42, 42, 9, 10, 11, 42, 13, 14, 
   203 	15, 16, 17, 42, 2, 3, 3, 3, 
   204 	42, 5, 42, 6, 42, 42, 42, 42, 
   205 	42, 42, 42, 8, 42, 42, 9, 10, 
   206 	11, 12, 13, 14, 15, 16, 17, 42, 
   207 	51, 50, 0
   208 };
   210 static const char _myanmar_syllable_machine_trans_targs[] = {
   211 	0, 1, 22, 0, 0, 23, 29, 32, 
   212 	35, 36, 40, 41, 42, 25, 38, 39, 
   213 	37, 28, 43, 44, 0, 2, 12, 0, 
   214 	3, 9, 13, 14, 18, 19, 20, 5, 
   215 	16, 17, 15, 8, 21, 4, 6, 7, 
   216 	10, 11, 0, 24, 26, 27, 30, 31, 
   217 	33, 34, 0, 0
   218 };
   220 static const char _myanmar_syllable_machine_trans_actions[] = {
   221 	3, 0, 0, 4, 5, 0, 0, 0, 
   222 	0, 0, 0, 0, 0, 0, 0, 0, 
   223 	0, 0, 0, 0, 6, 0, 0, 7, 
   224 	0, 0, 0, 0, 0, 0, 0, 0, 
   225 	0, 0, 0, 0, 0, 0, 0, 0, 
   226 	0, 0, 8, 0, 0, 0, 0, 0, 
   227 	0, 0, 9, 10
   228 };
   230 static const char _myanmar_syllable_machine_to_state_actions[] = {
   231 	1, 0, 0, 0, 0, 0, 0, 0, 
   232 	0, 0, 0, 0, 0, 0, 0, 0, 
   233 	0, 0, 0, 0, 0, 0, 0, 0, 
   234 	0, 0, 0, 0, 0, 0, 0, 0, 
   235 	0, 0, 0, 0, 0, 0, 0, 0, 
   236 	0, 0, 0, 0, 0
   237 };
   239 static const char _myanmar_syllable_machine_from_state_actions[] = {
   240 	2, 0, 0, 0, 0, 0, 0, 0, 
   241 	0, 0, 0, 0, 0, 0, 0, 0, 
   242 	0, 0, 0, 0, 0, 0, 0, 0, 
   243 	0, 0, 0, 0, 0, 0, 0, 0, 
   244 	0, 0, 0, 0, 0, 0, 0, 0, 
   245 	0, 0, 0, 0, 0
   246 };
   248 static const short _myanmar_syllable_machine_eof_trans[] = {
   249 	0, 21, 21, 21, 21, 21, 21, 21, 
   250 	21, 21, 21, 21, 21, 21, 21, 21, 
   251 	21, 21, 21, 21, 21, 21, 43, 43, 
   252 	43, 43, 43, 43, 43, 43, 43, 43, 
   253 	21, 21, 43, 43, 43, 43, 43, 43, 
   254 	43, 43, 43, 43, 51
   255 };
   257 static const int myanmar_syllable_machine_start = 0;
   258 static const int myanmar_syllable_machine_first_final = 0;
   259 static const int myanmar_syllable_machine_error = -1;
   261 static const int myanmar_syllable_machine_en_main = 0;
   264 #line 36 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
   268 #line 93 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
   271 #define found_syllable(syllable_type) \
   272   HB_STMT_START { \
   273     if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \
   274     for (unsigned int i = last; i < p+1; i++) \
   275       info[i].syllable() = (syllable_serial << 4) | syllable_type; \
   276     last = p+1; \
   277     syllable_serial++; \
   278     if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
   279   } HB_STMT_END
   281 static void
   282 find_syllables (hb_buffer_t *buffer)
   283 {
   284   unsigned int p, pe, eof, ts HB_UNUSED, te HB_UNUSED, act HB_UNUSED;
   285   int cs;
   286   hb_glyph_info_t *info = buffer->info;
   288 #line 289 "hb-ot-shape-complex-myanmar-machine.hh.tmp"
   289 	{
   290 	cs = myanmar_syllable_machine_start;
   291 	ts = 0;
   292 	te = 0;
   293 	act = 0;
   294 	}
   296 #line 114 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
   299   p = 0;
   300   pe = eof = buffer->len;
   302   unsigned int last = 0;
   303   unsigned int syllable_serial = 1;
   305 #line 306 "hb-ot-shape-complex-myanmar-machine.hh.tmp"
   306 	{
   307 	int _slen;
   308 	int _trans;
   309 	const unsigned char *_keys;
   310 	const char *_inds;
   311 	if ( p == pe )
   312 		goto _test_eof;
   313 _resume:
   314 	switch ( _myanmar_syllable_machine_from_state_actions[cs] ) {
   315 	case 2:
   316 #line 1 "NONE"
   317 	{ts = p;}
   318 	break;
   319 #line 320 "hb-ot-shape-complex-myanmar-machine.hh.tmp"
   320 	}
   322 	_keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
   323 	_inds = _myanmar_syllable_machine_indicies + _myanmar_syllable_machine_index_offsets[cs];
   325 	_slen = _myanmar_syllable_machine_key_spans[cs];
   326 	_trans = _inds[ _slen > 0 && _keys[0] <=( info[p].myanmar_category()) &&
   327 		( info[p].myanmar_category()) <= _keys[1] ?
   328 		( info[p].myanmar_category()) - _keys[0] : _slen ];
   330 _eof_trans:
   331 	cs = _myanmar_syllable_machine_trans_targs[_trans];
   333 	if ( _myanmar_syllable_machine_trans_actions[_trans] == 0 )
   334 		goto _again;
   336 	switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
   337 	case 7:
   338 #line 85 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
   339 	{te = p+1;{ found_syllable (consonant_syllable); }}
   340 	break;
   341 	case 5:
   342 #line 86 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
   343 	{te = p+1;{ found_syllable (non_myanmar_cluster); }}
   344 	break;
   345 	case 10:
   346 #line 87 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
   347 	{te = p+1;{ found_syllable (punctuation_cluster); }}
   348 	break;
   349 	case 4:
   350 #line 88 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
   351 	{te = p+1;{ found_syllable (broken_cluster); }}
   352 	break;
   353 	case 3:
   354 #line 89 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
   355 	{te = p+1;{ found_syllable (non_myanmar_cluster); }}
   356 	break;
   357 	case 6:
   358 #line 85 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
   359 	{te = p;p--;{ found_syllable (consonant_syllable); }}
   360 	break;
   361 	case 8:
   362 #line 88 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
   363 	{te = p;p--;{ found_syllable (broken_cluster); }}
   364 	break;
   365 	case 9:
   366 #line 89 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
   367 	{te = p;p--;{ found_syllable (non_myanmar_cluster); }}
   368 	break;
   369 #line 370 "hb-ot-shape-complex-myanmar-machine.hh.tmp"
   370 	}
   372 _again:
   373 	switch ( _myanmar_syllable_machine_to_state_actions[cs] ) {
   374 	case 1:
   375 #line 1 "NONE"
   376 	{ts = 0;}
   377 	break;
   378 #line 379 "hb-ot-shape-complex-myanmar-machine.hh.tmp"
   379 	}
   381 	if ( ++p != pe )
   382 		goto _resume;
   383 	_test_eof: {}
   384 	if ( p == eof )
   385 	{
   386 	if ( _myanmar_syllable_machine_eof_trans[cs] > 0 ) {
   387 		_trans = _myanmar_syllable_machine_eof_trans[cs] - 1;
   388 		goto _eof_trans;
   389 	}
   390 	}
   392 	}
   394 #line 123 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
   396 }
   398 #undef found_syllable
   400 #endif /* HB_OT_SHAPE_COMPLEX_MYANMAR_MACHINE_HH */

mercurial