Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(407)

Side by Side Diff: third_party/harfbuzz-ng/src/hb-ot-shape-complex-indic-machine.hh

Issue 10510004: Roll harfbuzz-ng 3b8fd9c48f4bde368bf2d465c148b9743a9216ee (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 1
2 #line 1 "hb-ot-shape-complex-indic-machine.rl" 2 #line 1 "hb-ot-shape-complex-indic-machine.rl"
3 /* 3 /*
4 * Copyright © 2011 Google, Inc. 4 * Copyright © 2011,2012 Google, Inc.
5 * 5 *
6 * This is part of HarfBuzz, a text shaping library. 6 * This is part of HarfBuzz, a text shaping library.
7 * 7 *
8 * Permission is hereby granted, without written agreement and without 8 * Permission is hereby granted, without written agreement and without
9 * license or royalty fees, to use, copy, modify, and distribute this 9 * license or royalty fees, to use, copy, modify, and distribute this
10 * software and its documentation for any purpose, provided that the 10 * software and its documentation for any purpose, provided that the
11 * above copyright notice and the following two paragraphs appear in 11 * above copyright notice and the following two paragraphs appear in
12 * all copies of this software. 12 * all copies of this software.
13 * 13 *
14 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR 14 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
(...skipping 14 matching lines...) Expand all
29 #ifndef HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH 29 #ifndef HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
30 #define HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH 30 #define HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
31 31
32 #include "hb-private.hh" 32 #include "hb-private.hh"
33 33
34 HB_BEGIN_DECLS 34 HB_BEGIN_DECLS
35 35
36 36
37 #line 38 "hb-ot-shape-complex-indic-machine.hh.tmp" 37 #line 38 "hb-ot-shape-complex-indic-machine.hh.tmp"
38 static const unsigned char _indic_syllable_machine_trans_keys[] = { 38 static const unsigned char _indic_syllable_machine_trans_keys[] = {
39 » 0u, 0u, 5u, 5u, 1u, 2u, 1u, 2u, 5u, 5u, 1u, 5u, 5u, 5u, 1u, 2u, 39 » 5u, 5u, 1u, 2u, 1u, 2u, 5u, 5u, 1u, 5u, 1u, 2u, 5u, 5u, 1u, 13u,
40 » 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 40 » 4u, 11u, 4u, 11u, 5u, 11u, 1u, 10u, 1u, 10u, 10u, 10u, 10u, 10u, 4u, 10u ,
41 » 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 41 » 5u, 10u, 8u, 10u, 5u, 10u, 6u, 10u, 9u, 10u, 4u, 11u, 1u, 13u, 4u, 10u,
42 » 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 42 » 4u, 10u, 5u, 10u, 4u, 10u, 5u, 10u, 8u, 10u, 10u, 10u, 10u, 10u, 4u, 10u ,
43 » 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 0u, 12u, 43 » 4u, 10u, 5u, 10u, 4u, 10u, 5u, 10u, 8u, 10u, 10u, 10u, 10u, 10u, 0
44 » 0u, 12u, 0
45 }; 44 };
46 45
47 static const char _indic_syllable_machine_key_spans[] = { 46 static const char _indic_syllable_machine_key_spans[] = {
48 » 0, 1, 2, 2, 1, 5, 1, 2, 47 » 1, 2, 2, 1, 5, 2, 1, 13,
49 » 13, 13, 13, 13, 13, 13, 13, 13, 48 » 8, 8, 7, 10, 10, 1, 1, 7,
50 » 13, 13, 13, 13, 13, 13, 13, 13, 49 » 6, 3, 6, 5, 2, 8, 13, 7,
51 » 13, 13, 13, 13, 13, 13, 13, 13, 50 » 7, 6, 7, 6, 3, 1, 1, 7,
52 » 13, 13, 13, 13, 13, 13, 13, 13, 51 » 7, 6, 7, 6, 3, 1, 1
53 » 13
54 }; 52 };
55 53
56 static const short _indic_syllable_machine_index_offsets[] = { 54 static const unsigned char _indic_syllable_machine_index_offsets[] = {
57 » 0, 0, 2, 5, 8, 10, 16, 18, 55 » 0, 2, 5, 8, 10, 16, 19, 21,
58 » 21, 35, 49, 63, 77, 91, 105, 119, 56 » 35, 44, 53, 61, 72, 83, 85, 87,
59 » 133, 147, 161, 175, 189, 203, 217, 231, 57 » 95, 102, 106, 113, 119, 122, 131, 145,
60 » 245, 259, 273, 287, 301, 315, 329, 343, 58 » 153, 161, 168, 176, 183, 187, 189, 191,
61 » 357, 371, 385, 399, 413, 427, 441, 455, 59 » 199, 207, 214, 222, 229, 233, 235
62 » 469
63 }; 60 };
64 61
65 static const char _indic_syllable_machine_indicies[] = { 62 static const char _indic_syllable_machine_indicies[] = {
66 » 0, 1, 2, 2, 1, 3, 3, 63 » 1, 0, 2, 2, 0, 4, 4, 3,
67 » 1, 4, 1, 2, 2, 1, 1, 0, 64 » 5, 3, 4, 4, 3, 3, 5, 3,
68 » 1, 5, 1, 6, 6, 1, 7, 6, 65 » 7, 7, 6, 8, 6, 2, 10, 11,
69 » 8, 9, 1, 1, 1, 1, 1, 1, 66 » 9, 9, 9, 9, 9, 9, 9, 9,
70 » 1, 1, 10, 1, 11, 12, 13, 14, 67 » 12, 12, 9, 14, 15, 16, 16, 17,
71 » 1, 1, 1, 1, 1, 1, 1, 1, 68 » 18, 19, 20, 13, 21, 15, 16, 16,
72 » 15, 1, 16, 17, 18, 19, 20, 21, 69 » 17, 18, 19, 20, 13, 15, 16, 16,
73 » 22, 22, 23, 24, 25, 26, 27, 1, 70 » 17, 18, 19, 20, 13, 2, 2, 13,
74 » 16, 17, 18, 19, 20, 28, 22, 22, 71 » 13, 13, 22, 22, 13, 18, 19, 13,
75 » 23, 24, 25, 26, 27, 1, 29, 30, 72 » 2, 2, 13, 13, 13, 13, 13, 13,
76 » 31, 32, 33, 1, 34, 35, 36, 37, 73 » 18, 19, 13, 19, 13, 23, 13, 24,
77 » 38, 1, 39, 1, 29, 30, 31, 32, 74 » 25, 13, 13, 17, 18, 19, 13, 25,
78 » 1, 1, 34, 35, 36, 37, 38, 1, 75 » 13, 13, 17, 18, 19, 13, 17, 18,
79 » 39, 1, 29, 30, 31, 32, 1, 1, 76 » 19, 13, 26, 13, 13, 17, 18, 19,
80 » 1, 1, 36, 37, 38, 1, 39, 1, 77 » 13, 27, 27, 13, 18, 19, 13, 18,
81 » 29, 30, 31, 32, 40, 2, 1, 1, 78 » 19, 13, 14, 28, 16, 16, 17, 18,
82 » 36, 37, 38, 1, 39, 1, 29, 30, 79 » 19, 20, 13, 2, 2, 11, 13, 13,
83 » 31, 32, 1, 2, 1, 1, 36, 37, 80 » 22, 22, 13, 18, 19, 13, 12, 12,
84 » 38, 1, 39, 1, 29, 30, 31, 32, 81 » 13, 30, 5, 31, 32, 33, 34, 35,
85 » 1, 1, 1, 1, 1, 1, 38, 1, 82 » 29, 4, 5, 31, 32, 33, 34, 35,
86 » 39, 1, 29, 30, 31, 32, 1, 1, 83 » 29, 5, 31, 32, 33, 34, 35, 29,
87 » 1, 1, 1, 1, 41, 1, 39, 1, 84 » 36, 37, 29, 29, 33, 34, 35, 29,
88 » 29, 30, 31, 32, 1, 1, 1, 1, 85 » 37, 29, 29, 33, 34, 35, 29, 33,
89 » 1, 1, 1, 1, 39, 1, 42, 43, 86 » 34, 35, 29, 35, 29, 38, 29, 40,
90 » 44, 45, 46, 4, 47, 47, 48, 49, 87 » 8, 41, 41, 42, 43, 44, 39, 7,
91 » 50, 1, 51, 1, 42, 43, 44, 45, 88 » 8, 41, 41, 42, 43, 44, 39, 8,
92 » 1, 4, 47, 47, 48, 49, 50, 1, 89 » 41, 41, 42, 43, 44, 39, 45, 46,
93 » 51, 1, 42, 43, 44, 45, 1, 1, 90 » 39, 39, 42, 43, 44, 39, 46, 39,
94 » 1, 1, 48, 49, 50, 1, 51, 1, 91 » 39, 42, 43, 44, 39, 42, 43, 44,
95 » 42, 43, 44, 45, 52, 3, 1, 1, 92 » 39, 44, 39, 47, 39, 0
96 » 48, 49, 50, 1, 51, 1, 42, 43,
97 » 44, 45, 1, 3, 1, 1, 48, 49,
98 » 50, 1, 51, 1, 42, 43, 44, 45,
99 » 1, 1, 1, 1, 1, 1, 50, 1,
100 » 51, 1, 42, 43, 44, 45, 1, 1,
101 » 1, 1, 1, 1, 53, 1, 51, 1,
102 » 42, 43, 44, 45, 1, 1, 1, 1,
103 » 1, 1, 1, 1, 51, 1, 16, 17,
104 » 18, 19, 1, 21, 22, 22, 23, 24,
105 » 25, 26, 27, 1, 16, 6, 6, 19,
106 » 1, 1, 54, 54, 1, 24, 25, 1,
107 » 27, 1, 16, 6, 6, 19, 1, 1,
108 » 1, 1, 1, 24, 25, 1, 27, 1,
109 » 16, 17, 18, 19, 1, 1, 1, 1,
110 » 1, 1, 25, 1, 27, 1, 16, 17,
111 » 18, 19, 1, 1, 1, 1, 1, 1,
112 » 55, 1, 27, 1, 16, 17, 18, 19,
113 » 1, 1, 1, 1, 1, 1, 1, 1,
114 » 27, 1, 16, 17, 18, 19, 56, 57,
115 » 1, 1, 23, 24, 25, 1, 27, 1,
116 » 16, 17, 18, 19, 1, 57, 1, 1,
117 » 23, 24, 25, 1, 27, 1, 16, 17,
118 » 18, 19, 1, 1, 1, 1, 23, 24,
119 » 25, 1, 27, 1, 16, 17, 18, 19,
120 » 1, 58, 1, 1, 23, 24, 25, 1,
121 » 27, 1, 16, 17, 18, 19, 1, 1,
122 » 59, 59, 1, 24, 25, 1, 27, 1,
123 » 16, 17, 18, 19, 1, 1, 1, 1,
124 » 1, 24, 25, 1, 27, 1, 16, 6,
125 » 6, 9, 1, 1, 54, 54, 1, 24,
126 » 25, 1, 10, 1, 0
127 }; 93 };
128 94
129 static const char _indic_syllable_machine_trans_targs[] = { 95 static const char _indic_syllable_machine_trans_targs[] = {
130 » 2, 0, 14, 22, 3, 7, 10, 9, 96 » 7, 1, 8, 7, 25, 2, 7, 33,
131 » 11, 12, 20, 9, 10, 11, 12, 20, 97 » 5, 7, 21, 23, 31, 7, 9, 11,
132 » 9, 10, 11, 12, 28, 29, 6, 34, 98 » 0, 15, 13, 14, 18, 10, 12, 7,
133 » 31, 32, 37, 20, 40, 9, 10, 11, 99 » 16, 17, 19, 20, 22, 7, 24, 3,
134 » 12, 13, 1, 5, 15, 17, 18, 20, 100 » 4, 26, 29, 30, 27, 28, 7, 7,
135 » 16, 19, 9, 10, 11, 12, 21, 4, 101 » 32, 6, 34, 37, 38, 35, 36, 7
136 » 23, 25, 26, 20, 24, 27, 30, 33,
137 » 35, 36, 38, 39
138 }; 102 };
139 103
140 static const char _indic_syllable_machine_trans_actions[] = { 104 static const char _indic_syllable_machine_trans_actions[] = {
141 » 0, 0, 0, 0, 0, 0, 0, 0, 105 » 1, 0, 2, 3, 2, 0, 4, 2,
142 » 0, 0, 0, 1, 1, 1, 1, 1, 106 » 0, 7, 2, 2, 2, 8, 2, 0,
143 » 2, 2, 2, 2, 0, 0, 0, 0, 107 » 0, 0, 0, 0, 0, 2, 0, 9,
144 » 0, 0, 0, 2, 0, 3, 3, 3, 108 » 0, 0, 0, 0, 0, 10, 2, 0,
145 » 3, 0, 0, 0, 0, 0, 0, 3, 109 » 0, 0, 0, 0, 0, 0, 11, 12,
146 » 0, 0, 4, 4, 4, 4, 0, 0, 110 » 2, 0, 0, 0, 0, 0, 0, 13
147 » 0, 0, 0, 4, 0, 0, 0, 0,
148 » 0, 0, 0, 0
149 }; 111 };
150 112
151 static const char _indic_syllable_machine_eof_actions[] = { 113 static const char _indic_syllable_machine_to_state_actions[] = {
114 » 0, 0, 0, 0, 0, 0, 0, 5,
152 0, 0, 0, 0, 0, 0, 0, 0, 115 0, 0, 0, 0, 0, 0, 0, 0,
153 » 0, 1, 2, 2, 3, 3, 3, 3, 116 » 0, 0, 0, 0, 0, 0, 0, 0,
154 » 3, 3, 3, 3, 4, 4, 4, 4, 117 » 0, 0, 0, 0, 0, 0, 0, 0,
155 » 4, 4, 4, 4, 2, 2, 2, 2, 118 » 0, 0, 0, 0, 0, 0, 0
156 » 2, 2, 2, 2, 2, 2, 2, 2,
157 » 2
158 }; 119 };
159 120
160 static const int indic_syllable_machine_start = 8; 121 static const char _indic_syllable_machine_from_state_actions[] = {
161 static const int indic_syllable_machine_first_final = 8; 122 » 0, 0, 0, 0, 0, 0, 0, 6,
162 static const int indic_syllable_machine_error = 0; 123 » 0, 0, 0, 0, 0, 0, 0, 0,
124 » 0, 0, 0, 0, 0, 0, 0, 0,
125 » 0, 0, 0, 0, 0, 0, 0, 0,
126 » 0, 0, 0, 0, 0, 0, 0
127 };
163 128
164 static const int indic_syllable_machine_en_main = 8; 129 static const unsigned char _indic_syllable_machine_eof_trans[] = {
130 » 1, 1, 4, 4, 4, 7, 7, 0,
131 » 14, 14, 14, 14, 14, 14, 14, 14,
132 » 14, 14, 14, 14, 14, 14, 14, 30,
133 » 30, 30, 30, 30, 30, 30, 30, 40,
134 » 40, 40, 40, 40, 40, 40, 40
135 };
136
137 static const int indic_syllable_machine_start = 7;
138 static const int indic_syllable_machine_first_final = 7;
139 static const int indic_syllable_machine_error = -1;
140
141 static const int indic_syllable_machine_en_main = 7;
165 142
166 143
167 #line 38 "hb-ot-shape-complex-indic-machine.rl" 144 #line 38 "hb-ot-shape-complex-indic-machine.rl"
168 145
169 146
170 147
171 #line 83 "hb-ot-shape-complex-indic-machine.rl" 148 #line 79 "hb-ot-shape-complex-indic-machine.rl"
172 149
173 150
174 151 #define process_syllable(func) \
175 static void 152 HB_STMT_START { \
176 set_cluster (hb_buffer_t *buffer, 153 /* fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #func); */ \
177 » unsigned int start, unsigned int end) 154 for (unsigned int i = last; i < p+1; i++) \
178 { 155 info[i].syllable() = syllable_serial; \
179 unsigned int cluster = buffer->info[start].cluster; 156 PASTE (initial_reordering_, func) (map, buffer, mask_array, last, p+1); \
180 157 last = p+1; \
181 for (unsigned int i = start + 1; i < end; i++) 158 syllable_serial++; \
182 cluster = MIN (cluster, buffer->info[i].cluster); 159 if (unlikely (!syllable_serial)) syllable_serial++; \
183 for (unsigned int i = start; i < end; i++) 160 } HB_STMT_END
184 buffer->info[i].cluster = cluster;
185 }
186 161
187 static void 162 static void
188 find_syllables (const hb_ot_map_t *map, hb_buffer_t *buffer, hb_mask_t *mask_arr ay) 163 find_syllables (const hb_ot_map_t *map, hb_buffer_t *buffer, hb_mask_t *mask_arr ay)
189 { 164 {
190 unsigned int p, pe, eof; 165 unsigned int p, pe, eof, ts, te, act;
191 int cs; 166 int cs;
167 hb_glyph_info_t *info = buffer->info;
192 168
193 #line 194 "hb-ot-shape-complex-indic-machine.hh.tmp" 169 #line 170 "hb-ot-shape-complex-indic-machine.hh.tmp"
194 { 170 {
195 cs = indic_syllable_machine_start; 171 cs = indic_syllable_machine_start;
172 ts = 0;
173 te = 0;
174 act = 0;
196 } 175 }
197 176
198 #line 106 "hb-ot-shape-complex-indic-machine.rl" 177 #line 101 "hb-ot-shape-complex-indic-machine.rl"
199 178
200 179
201 p = 0; 180 p = 0;
202 pe = eof = buffer->len; 181 pe = eof = buffer->len;
203 182
204 unsigned int last = 0; 183 unsigned int last = 0;
184 uint8_t syllable_serial = 1;
205 185
206 #line 207 "hb-ot-shape-complex-indic-machine.hh.tmp" 186 #line 187 "hb-ot-shape-complex-indic-machine.hh.tmp"
207 { 187 {
208 int _slen; 188 int _slen;
209 int _trans; 189 int _trans;
210 const unsigned char *_keys; 190 const unsigned char *_keys;
211 const char *_inds; 191 const char *_inds;
212 if ( p == pe ) 192 if ( p == pe )
213 goto _test_eof; 193 goto _test_eof;
214 if ( cs == 0 )
215 goto _out;
216 _resume: 194 _resume:
195 switch ( _indic_syllable_machine_from_state_actions[cs] ) {
196 case 6:
197 #line 1 "hb-ot-shape-complex-indic-machine.rl"
198 {ts = p;}
199 break;
200 #line 201 "hb-ot-shape-complex-indic-machine.hh.tmp"
201 }
202
217 _keys = _indic_syllable_machine_trans_keys + (cs<<1); 203 _keys = _indic_syllable_machine_trans_keys + (cs<<1);
218 _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index _offsets[cs]; 204 _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index _offsets[cs];
219 205
220 _slen = _indic_syllable_machine_key_spans[cs]; 206 _slen = _indic_syllable_machine_key_spans[cs];
221 » _trans = _inds[ _slen > 0 && _keys[0] <=( buffer->info[p].indic_category ()) && 207 » _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
222 » » ( buffer->info[p].indic_category()) <= _keys[1] ? 208 » » ( info[p].indic_category()) <= _keys[1] ?
223 » » ( buffer->info[p].indic_category()) - _keys[0] : _slen ]; 209 » » ( info[p].indic_category()) - _keys[0] : _slen ];
224 210
211 _eof_trans:
225 cs = _indic_syllable_machine_trans_targs[_trans]; 212 cs = _indic_syllable_machine_trans_targs[_trans];
226 213
227 if ( _indic_syllable_machine_trans_actions[_trans] == 0 ) 214 if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
228 goto _again; 215 goto _again;
229 216
230 switch ( _indic_syllable_machine_trans_actions[_trans] ) { 217 switch ( _indic_syllable_machine_trans_actions[_trans] ) {
231 case 2: 218 case 2:
232 #line 62 "hb-ot-shape-complex-indic-machine.rl" 219 #line 1 "hb-ot-shape-complex-indic-machine.rl"
233 » { found_consonant_syllable (map, buffer, mask_array, last, p); } 220 » {te = p+1;}
234 #line 67 "hb-ot-shape-complex-indic-machine.rl" 221 » break;
235 » { set_cluster (buffer, p, last); last = p; } 222 » case 9:
223 #line 72 "hb-ot-shape-complex-indic-machine.rl"
224 » {te = p+1;{ process_syllable (consonant_syllable); }}
225 » break;
226 » case 11:
227 #line 73 "hb-ot-shape-complex-indic-machine.rl"
228 » {te = p+1;{ process_syllable (vowel_syllable); }}
229 » break;
230 » case 13:
231 #line 74 "hb-ot-shape-complex-indic-machine.rl"
232 » {te = p+1;{ process_syllable (standalone_cluster); }}
233 » break;
234 » case 7:
235 #line 75 "hb-ot-shape-complex-indic-machine.rl"
236 » {te = p+1;{ process_syllable (non_indic); }}
237 » break;
238 » case 8:
239 #line 72 "hb-ot-shape-complex-indic-machine.rl"
240 » {te = p;p--;{ process_syllable (consonant_syllable); }}
241 » break;
242 » case 10:
243 #line 73 "hb-ot-shape-complex-indic-machine.rl"
244 » {te = p;p--;{ process_syllable (vowel_syllable); }}
245 » break;
246 » case 12:
247 #line 74 "hb-ot-shape-complex-indic-machine.rl"
248 » {te = p;p--;{ process_syllable (standalone_cluster); }}
249 » break;
250 » case 1:
251 #line 72 "hb-ot-shape-complex-indic-machine.rl"
252 » {{p = ((te))-1;}{ process_syllable (consonant_syllable); }}
236 break; 253 break;
237 case 3: 254 case 3:
238 #line 63 "hb-ot-shape-complex-indic-machine.rl" 255 #line 73 "hb-ot-shape-complex-indic-machine.rl"
239 » { found_vowel_syllable (map, buffer, mask_array, last, p); } 256 » {{p = ((te))-1;}{ process_syllable (vowel_syllable); }}
240 #line 67 "hb-ot-shape-complex-indic-machine.rl"
241 » { set_cluster (buffer, p, last); last = p; }
242 break; 257 break;
243 case 4: 258 case 4:
244 #line 64 "hb-ot-shape-complex-indic-machine.rl" 259 #line 74 "hb-ot-shape-complex-indic-machine.rl"
245 » { found_standalone_cluster (map, buffer, mask_array, last, p); } 260 » {{p = ((te))-1;}{ process_syllable (standalone_cluster); }}
246 #line 67 "hb-ot-shape-complex-indic-machine.rl"
247 » { set_cluster (buffer, p, last); last = p; }
248 break; 261 break;
249 » case 1: 262 #line 263 "hb-ot-shape-complex-indic-machine.hh.tmp"
250 #line 65 "hb-ot-shape-complex-indic-machine.rl"
251 » { found_non_indic (map, buffer, mask_array, last, p); }
252 #line 67 "hb-ot-shape-complex-indic-machine.rl"
253 » { set_cluster (buffer, p, last); last = p; }
254 » break;
255 #line 256 "hb-ot-shape-complex-indic-machine.hh.tmp"
256 } 263 }
257 264
258 _again: 265 _again:
259 » if ( cs == 0 ) 266 » switch ( _indic_syllable_machine_to_state_actions[cs] ) {
260 » » goto _out; 267 » case 5:
268 #line 1 "hb-ot-shape-complex-indic-machine.rl"
269 » {ts = 0;}
270 » break;
271 #line 272 "hb-ot-shape-complex-indic-machine.hh.tmp"
272 » }
273
261 if ( ++p != pe ) 274 if ( ++p != pe )
262 goto _resume; 275 goto _resume;
263 _test_eof: {} 276 _test_eof: {}
264 if ( p == eof ) 277 if ( p == eof )
265 { 278 {
266 » switch ( _indic_syllable_machine_eof_actions[cs] ) { 279 » if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
267 » case 2: 280 » » _trans = _indic_syllable_machine_eof_trans[cs] - 1;
268 #line 62 "hb-ot-shape-complex-indic-machine.rl" 281 » » goto _eof_trans;
269 » { found_consonant_syllable (map, buffer, mask_array, last, p); }
270 #line 67 "hb-ot-shape-complex-indic-machine.rl"
271 » { set_cluster (buffer, p, last); last = p; }
272 » break;
273 » case 3:
274 #line 63 "hb-ot-shape-complex-indic-machine.rl"
275 » { found_vowel_syllable (map, buffer, mask_array, last, p); }
276 #line 67 "hb-ot-shape-complex-indic-machine.rl"
277 » { set_cluster (buffer, p, last); last = p; }
278 » break;
279 » case 4:
280 #line 64 "hb-ot-shape-complex-indic-machine.rl"
281 » { found_standalone_cluster (map, buffer, mask_array, last, p); }
282 #line 67 "hb-ot-shape-complex-indic-machine.rl"
283 » { set_cluster (buffer, p, last); last = p; }
284 » break;
285 » case 1:
286 #line 65 "hb-ot-shape-complex-indic-machine.rl"
287 » { found_non_indic (map, buffer, mask_array, last, p); }
288 #line 67 "hb-ot-shape-complex-indic-machine.rl"
289 » { set_cluster (buffer, p, last); last = p; }
290 » break;
291 #line 292 "hb-ot-shape-complex-indic-machine.hh.tmp"
292 } 282 }
293 } 283 }
294 284
295 _out: {}
296 } 285 }
297 286
298 #line 114 "hb-ot-shape-complex-indic-machine.rl" 287 #line 110 "hb-ot-shape-complex-indic-machine.rl"
299 288
300 } 289 }
301 290
302 HB_END_DECLS 291 HB_END_DECLS
303 292
304 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */ 293 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698