1 /* Generated by re2c */
2 #line 1 "encodings/unicode_group_Pe_8_encoding_policy_ignore.re"
3 // re2c $INPUT -o $OUTPUT -8 --encoding-policy ignore
4 #include <stdio.h>
5 #include "utf8.h"
6 #define YYCTYPE unsigned char
scan(const YYCTYPE * start,const YYCTYPE * const limit)7 bool scan(const YYCTYPE * start, const YYCTYPE * const limit)
8 {
9 __attribute__((unused)) const YYCTYPE * YYMARKER; // silence compiler warnings when YYMARKER is not used
10 # define YYCURSOR start
11 Pe:
12
13 #line 14 "encodings/unicode_group_Pe_8_encoding_policy_ignore.c"
14 {
15 YYCTYPE yych;
16 yych = *YYCURSOR;
17 switch (yych) {
18 case ')':
19 case ']':
20 case '}': goto yy4;
21 case 0xE0: goto yy6;
22 case 0xE1: goto yy7;
23 case 0xE2: goto yy8;
24 case 0xE3: goto yy9;
25 case 0xEF: goto yy10;
26 default: goto yy2;
27 }
28 yy2:
29 ++YYCURSOR;
30 yy3:
31 #line 14 "encodings/unicode_group_Pe_8_encoding_policy_ignore.re"
32 { return YYCURSOR == limit; }
33 #line 34 "encodings/unicode_group_Pe_8_encoding_policy_ignore.c"
34 yy4:
35 ++YYCURSOR;
36 #line 13 "encodings/unicode_group_Pe_8_encoding_policy_ignore.re"
37 { goto Pe; }
38 #line 39 "encodings/unicode_group_Pe_8_encoding_policy_ignore.c"
39 yy6:
40 yych = *(YYMARKER = ++YYCURSOR);
41 switch (yych) {
42 case 0xBC: goto yy11;
43 default: goto yy3;
44 }
45 yy7:
46 yych = *(YYMARKER = ++YYCURSOR);
47 switch (yych) {
48 case 0x9A: goto yy13;
49 default: goto yy3;
50 }
51 yy8:
52 yych = *(YYMARKER = ++YYCURSOR);
53 switch (yych) {
54 case 0x81: goto yy14;
55 case 0x82: goto yy15;
56 case 0x8C: goto yy16;
57 case 0x9D: goto yy17;
58 case 0x9F: goto yy18;
59 case 0xA6: goto yy19;
60 case 0xA7: goto yy20;
61 case 0xB8: goto yy21;
62 default: goto yy3;
63 }
64 yy9:
65 yych = *(YYMARKER = ++YYCURSOR);
66 switch (yych) {
67 case 0x80: goto yy22;
68 default: goto yy3;
69 }
70 yy10:
71 yych = *(YYMARKER = ++YYCURSOR);
72 switch (yych) {
73 case 0xB4: goto yy23;
74 case 0xB8: goto yy24;
75 case 0xB9: goto yy25;
76 case 0xBC: goto yy26;
77 case 0xBD: goto yy27;
78 default: goto yy3;
79 }
80 yy11:
81 yych = *++YYCURSOR;
82 switch (yych) {
83 case 0xBB:
84 case 0xBD: goto yy4;
85 default: goto yy12;
86 }
87 yy12:
88 YYCURSOR = YYMARKER;
89 goto yy3;
90 yy13:
91 yych = *++YYCURSOR;
92 switch (yych) {
93 case 0x9C: goto yy4;
94 default: goto yy12;
95 }
96 yy14:
97 yych = *++YYCURSOR;
98 switch (yych) {
99 case 0x86:
100 case 0xBE: goto yy4;
101 default: goto yy12;
102 }
103 yy15:
104 yych = *++YYCURSOR;
105 switch (yych) {
106 case 0x8E: goto yy4;
107 default: goto yy12;
108 }
109 yy16:
110 yych = *++YYCURSOR;
111 switch (yych) {
112 case 0x89:
113 case 0x8B:
114 case 0xAA: goto yy4;
115 default: goto yy12;
116 }
117 yy17:
118 yych = *++YYCURSOR;
119 switch (yych) {
120 case 0xA9:
121 case 0xAB:
122 case 0xAD:
123 case 0xAF:
124 case 0xB1:
125 case 0xB3:
126 case 0xB5: goto yy4;
127 default: goto yy12;
128 }
129 yy18:
130 yych = *++YYCURSOR;
131 switch (yych) {
132 case 0x86:
133 case 0xA7:
134 case 0xA9:
135 case 0xAB:
136 case 0xAD:
137 case 0xAF: goto yy4;
138 default: goto yy12;
139 }
140 yy19:
141 yych = *++YYCURSOR;
142 switch (yych) {
143 case 0x84:
144 case 0x86:
145 case 0x88:
146 case 0x8A:
147 case 0x8C:
148 case 0x8E:
149 case 0x90:
150 case 0x92:
151 case 0x94:
152 case 0x96:
153 case 0x98: goto yy4;
154 default: goto yy12;
155 }
156 yy20:
157 yych = *++YYCURSOR;
158 switch (yych) {
159 case 0x99:
160 case 0x9B:
161 case 0xBD: goto yy4;
162 default: goto yy12;
163 }
164 yy21:
165 yych = *++YYCURSOR;
166 switch (yych) {
167 case 0xA3:
168 case 0xA5:
169 case 0xA7:
170 case 0xA9: goto yy4;
171 default: goto yy12;
172 }
173 yy22:
174 yych = *++YYCURSOR;
175 switch (yych) {
176 case 0x89:
177 case 0x8B:
178 case 0x8D:
179 case 0x8F:
180 case 0x91:
181 case 0x95:
182 case 0x97:
183 case 0x99:
184 case 0x9B:
185 case 0x9E:
186 case 0x9F: goto yy4;
187 default: goto yy12;
188 }
189 yy23:
190 yych = *++YYCURSOR;
191 switch (yych) {
192 case 0xBE: goto yy4;
193 default: goto yy12;
194 }
195 yy24:
196 yych = *++YYCURSOR;
197 switch (yych) {
198 case 0x98:
199 case 0xB6:
200 case 0xB8:
201 case 0xBA:
202 case 0xBC:
203 case 0xBE: goto yy4;
204 default: goto yy12;
205 }
206 yy25:
207 yych = *++YYCURSOR;
208 switch (yych) {
209 case 0x80:
210 case 0x82:
211 case 0x84:
212 case 0x88:
213 case 0x9A:
214 case 0x9C:
215 case 0x9E: goto yy4;
216 default: goto yy12;
217 }
218 yy26:
219 yych = *++YYCURSOR;
220 switch (yych) {
221 case 0x89:
222 case 0xBD: goto yy4;
223 default: goto yy12;
224 }
225 yy27:
226 yych = *++YYCURSOR;
227 switch (yych) {
228 case 0x9D:
229 case 0xA0:
230 case 0xA3: goto yy4;
231 default: goto yy12;
232 }
233 }
234 #line 15 "encodings/unicode_group_Pe_8_encoding_policy_ignore.re"
235
236 }
237 static const unsigned int chars_Pe [] = {0x29,0x29, 0x5d,0x5d, 0x7d,0x7d, 0xf3b,0xf3b, 0xf3d,0xf3d, 0x169c,0x169c, 0x2046,0x2046, 0x207e,0x207e, 0x208e,0x208e, 0x2309,0x2309, 0x230b,0x230b, 0x232a,0x232a, 0x2769,0x2769, 0x276b,0x276b, 0x276d,0x276d, 0x276f,0x276f, 0x2771,0x2771, 0x2773,0x2773, 0x2775,0x2775, 0x27c6,0x27c6, 0x27e7,0x27e7, 0x27e9,0x27e9, 0x27eb,0x27eb, 0x27ed,0x27ed, 0x27ef,0x27ef, 0x2984,0x2984, 0x2986,0x2986, 0x2988,0x2988, 0x298a,0x298a, 0x298c,0x298c, 0x298e,0x298e, 0x2990,0x2990, 0x2992,0x2992, 0x2994,0x2994, 0x2996,0x2996, 0x2998,0x2998, 0x29d9,0x29d9, 0x29db,0x29db, 0x29fd,0x29fd, 0x2e23,0x2e23, 0x2e25,0x2e25, 0x2e27,0x2e27, 0x2e29,0x2e29, 0x3009,0x3009, 0x300b,0x300b, 0x300d,0x300d, 0x300f,0x300f, 0x3011,0x3011, 0x3015,0x3015, 0x3017,0x3017, 0x3019,0x3019, 0x301b,0x301b, 0x301e,0x301f, 0xfd3e,0xfd3e, 0xfe18,0xfe18, 0xfe36,0xfe36, 0xfe38,0xfe38, 0xfe3a,0xfe3a, 0xfe3c,0xfe3c, 0xfe3e,0xfe3e, 0xfe40,0xfe40, 0xfe42,0xfe42, 0xfe44,0xfe44, 0xfe48,0xfe48, 0xfe5a,0xfe5a, 0xfe5c,0xfe5c, 0xfe5e,0xfe5e, 0xff09,0xff09, 0xff3d,0xff3d, 0xff5d,0xff5d, 0xff60,0xff60, 0xff63,0xff63, 0x0,0x0};
encode_utf8(const unsigned int * ranges,unsigned int ranges_count,unsigned int * s)238 static unsigned int encode_utf8 (const unsigned int * ranges, unsigned int ranges_count, unsigned int * s)
239 {
240 unsigned int * const s_start = s;
241 for (unsigned int i = 0; i < ranges_count - 2; i += 2)
242 for (unsigned int j = ranges[i]; j <= ranges[i + 1]; ++j)
243 s += re2c::utf8::rune_to_bytes (s, j);
244 re2c::utf8::rune_to_bytes (s, ranges[ranges_count - 1]);
245 return s - s_start + 1;
246 }
247
main()248 int main ()
249 {
250 unsigned int * buffer_Pe = new unsigned int [296];
251 YYCTYPE * s = (YYCTYPE *) buffer_Pe;
252 unsigned int buffer_len = encode_utf8 (chars_Pe, sizeof (chars_Pe) / sizeof (unsigned int), buffer_Pe);
253 /* convert 32-bit code units to YYCTYPE; reuse the same buffer */
254 for (unsigned int i = 0; i < buffer_len; ++i) s[i] = buffer_Pe[i];
255 if (!scan (s, s + buffer_len))
256 printf("test 'Pe' failed\n");
257 delete [] buffer_Pe;
258 return 0;
259 }
260