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

Side by Side Diff: third_party/wds/gen/messagescanner.cpp

Issue 1498473010: third_party: Add WDS library (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@wds
Patch Set: Created 5 years 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
(Empty)
1
2 #line 3 "gen/messagescanner.cpp"
3
4 #define YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 35
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
15
16 /* First, we deal with platform-specific or compiler-specific issues. */
17
18 /* begin standard C headers. */
19 #include <stdio.h>
20 #include <string.h>
21 #include <errno.h>
22 #include <stdlib.h>
23
24 /* end standard C headers. */
25
26 /* flex integer type definitions */
27
28 #ifndef FLEXINT_H
29 #define FLEXINT_H
30
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36 * if you want the limit (max/min) macros for int types.
37 */
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
40 #endif
41
42 #include <inttypes.h>
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
49 #else
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t;
54 typedef unsigned short int flex_uint16_t;
55 typedef unsigned int flex_uint32_t;
56
57 /* Limits of integral types. */
58 #ifndef INT8_MIN
59 #define INT8_MIN (-128)
60 #endif
61 #ifndef INT16_MIN
62 #define INT16_MIN (-32767-1)
63 #endif
64 #ifndef INT32_MIN
65 #define INT32_MIN (-2147483647-1)
66 #endif
67 #ifndef INT8_MAX
68 #define INT8_MAX (127)
69 #endif
70 #ifndef INT16_MAX
71 #define INT16_MAX (32767)
72 #endif
73 #ifndef INT32_MAX
74 #define INT32_MAX (2147483647)
75 #endif
76 #ifndef UINT8_MAX
77 #define UINT8_MAX (255U)
78 #endif
79 #ifndef UINT16_MAX
80 #define UINT16_MAX (65535U)
81 #endif
82 #ifndef UINT32_MAX
83 #define UINT32_MAX (4294967295U)
84 #endif
85
86 #endif /* ! C99 */
87
88 #endif /* ! FLEXINT_H */
89
90 #ifdef __cplusplus
91
92 /* The "const" storage-class-modifier is valid. */
93 #define YY_USE_CONST
94
95 #else /* ! __cplusplus */
96
97 /* C99 requires __STDC__ to be defined as 1. */
98 #if defined (__STDC__)
99
100 #define YY_USE_CONST
101
102 #endif /* defined (__STDC__) */
103 #endif /* ! __cplusplus */
104
105 #ifdef YY_USE_CONST
106 #define yyconst const
107 #else
108 #define yyconst
109 #endif
110
111 /* Returned upon end-of-file. */
112 #define YY_NULL 0
113
114 /* Promotes a possibly negative, possibly signed char to an unsigned
115 * integer for use as an array index. If the signed char is negative,
116 * we want to instead treat it as an 8-bit unsigned char, hence the
117 * double cast.
118 */
119 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
120
121 /* An opaque pointer. */
122 #ifndef YY_TYPEDEF_YY_SCANNER_T
123 #define YY_TYPEDEF_YY_SCANNER_T
124 typedef void* yyscan_t;
125 #endif
126
127 /* For convenience, these vars (plus the bison vars far below)
128 are macros in the reentrant scanner. */
129 #define yyin yyg->yyin_r
130 #define yyout yyg->yyout_r
131 #define yyextra yyg->yyextra_r
132 #define yyleng yyg->yyleng_r
133 #define yytext yyg->yytext_r
134 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
135 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
136 #define yy_flex_debug yyg->yy_flex_debug_r
137
138 /* Enter a start condition. This macro really ought to take a parameter,
139 * but we do it the disgusting crufty way forced on us by the ()-less
140 * definition of BEGIN.
141 */
142 #define BEGIN yyg->yy_start = 1 + 2 *
143
144 /* Translate the current start state into a value that can be later handed
145 * to BEGIN to return to the state. The YYSTATE alias is for lex
146 * compatibility.
147 */
148 #define YY_START ((yyg->yy_start - 1) / 2)
149 #define YYSTATE YY_START
150
151 /* Action number for EOF rule of a given start state. */
152 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
153
154 /* Special action meaning "start processing a new file". */
155 #define YY_NEW_FILE message_restart(yyin ,yyscanner )
156
157 #define YY_END_OF_BUFFER_CHAR 0
158
159 /* Size of default input buffer. */
160 #ifndef YY_BUF_SIZE
161 #ifdef __ia64__
162 /* On IA-64, the buffer size is 16k, not 8k.
163 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
164 * Ditto for the __ia64__ case accordingly.
165 */
166 #define YY_BUF_SIZE 32768
167 #else
168 #define YY_BUF_SIZE 16384
169 #endif /* __ia64__ */
170 #endif
171
172 /* The state buf must be large enough to hold one state per character in the mai n buffer.
173 */
174 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
175
176 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
177 #define YY_TYPEDEF_YY_BUFFER_STATE
178 typedef struct yy_buffer_state *YY_BUFFER_STATE;
179 #endif
180
181 #define EOB_ACT_CONTINUE_SCAN 0
182 #define EOB_ACT_END_OF_FILE 1
183 #define EOB_ACT_LAST_MATCH 2
184
185 #define YY_LESS_LINENO(n)
186
187 /* Return all but the first "n" matched characters back to the input stream. */
188 #define yyless(n) \
189 do \
190 { \
191 /* Undo effects of setting up yytext. */ \
192 int yyless_macro_arg = (n); \
193 YY_LESS_LINENO(yyless_macro_arg);\
194 *yy_cp = yyg->yy_hold_char; \
195 YY_RESTORE_YY_MORE_OFFSET \
196 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ ; \
197 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
198 } \
199 while ( 0 )
200
201 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
202
203 #ifndef YY_TYPEDEF_YY_SIZE_T
204 #define YY_TYPEDEF_YY_SIZE_T
205 typedef size_t yy_size_t;
206 #endif
207
208 #ifndef YY_STRUCT_YY_BUFFER_STATE
209 #define YY_STRUCT_YY_BUFFER_STATE
210 struct yy_buffer_state
211 {
212 FILE *yy_input_file;
213
214 char *yy_ch_buf; /* input buffer */
215 char *yy_buf_pos; /* current position in input buffer */
216
217 /* Size of input buffer in bytes, not including room for EOB
218 * characters.
219 */
220 yy_size_t yy_buf_size;
221
222 /* Number of characters read into yy_ch_buf, not including EOB
223 * characters.
224 */
225 int yy_n_chars;
226
227 /* Whether we "own" the buffer - i.e., we know we created it,
228 * and can realloc() it to grow it, and should free() it to
229 * delete it.
230 */
231 int yy_is_our_buffer;
232
233 /* Whether this is an "interactive" input source; if so, and
234 * if we're using stdio for input, then we want to use getc()
235 * instead of fread(), to make sure we stop fetching input after
236 * each newline.
237 */
238 int yy_is_interactive;
239
240 /* Whether we're considered to be at the beginning of a line.
241 * If so, '^' rules will be active on the next match, otherwise
242 * not.
243 */
244 int yy_at_bol;
245
246 int yy_bs_lineno; /**< The line count. */
247 int yy_bs_column; /**< The column count. */
248
249 /* Whether to try to fill the input buffer when we reach the
250 * end of it.
251 */
252 int yy_fill_buffer;
253
254 int yy_buffer_status;
255
256 #define YY_BUFFER_NEW 0
257 #define YY_BUFFER_NORMAL 1
258 /* When an EOF's been seen but there's still some text to process
259 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
260 * shouldn't try reading from the input source any more. We might
261 * still have a bunch of tokens to match, though, because of
262 * possible backing-up.
263 *
264 * When we actually see the EOF, we change the status to "new"
265 * (via message_restart()), so that the user can continue scanning by
266 * just pointing yyin at a new input file.
267 */
268 #define YY_BUFFER_EOF_PENDING 2
269
270 };
271 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
272
273 /* We provide macros for accessing buffer states in case in the
274 * future we want to put the buffer states in a more general
275 * "scanner state".
276 *
277 * Returns the top of the stack, or NULL.
278 */
279 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
280 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
281 : NULL)
282
283 /* Same as previous macro, but useful when we know that the buffer stack is not
284 * NULL or when we need an lvalue. For internal use only.
285 */
286 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
287
288 void message_restart (FILE *input_file ,yyscan_t yyscanner );
289 void message__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ) ;
290 YY_BUFFER_STATE message__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
291 void message__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
292 void message__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
293 void message_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ) ;
294 void message_pop_buffer_state (yyscan_t yyscanner );
295
296 static void message_ensure_buffer_stack (yyscan_t yyscanner );
297 static void message__load_buffer_state (yyscan_t yyscanner );
298 static void message__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscann er );
299
300 #define YY_FLUSH_BUFFER message__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
301
302 YY_BUFFER_STATE message__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscan ner );
303 YY_BUFFER_STATE message__scan_string (yyconst char *yy_str ,yyscan_t yyscanner ) ;
304 YY_BUFFER_STATE message__scan_bytes (yyconst char *bytes,int len ,yyscan_t yysca nner );
305
306 void *message_alloc (yy_size_t ,yyscan_t yyscanner );
307 void *message_realloc (void *,yy_size_t ,yyscan_t yyscanner );
308 void message_free (void * ,yyscan_t yyscanner );
309
310 #define yy_new_buffer message__create_buffer
311
312 #define yy_set_interactive(is_interactive) \
313 { \
314 if ( ! YY_CURRENT_BUFFER ){ \
315 message_ensure_buffer_stack (yyscanner); \
316 YY_CURRENT_BUFFER_LVALUE = \
317 message__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
318 } \
319 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
320 }
321
322 #define yy_set_bol(at_bol) \
323 { \
324 if ( ! YY_CURRENT_BUFFER ){\
325 message_ensure_buffer_stack (yyscanner); \
326 YY_CURRENT_BUFFER_LVALUE = \
327 message__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
328 } \
329 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
330 }
331
332 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
333
334 /* Begin user sect3 */
335
336 #define message_wrap(n) 1
337 #define YY_SKIP_YYWRAP
338
339 typedef unsigned char YY_CHAR;
340
341 typedef int yy_state_type;
342
343 #define yytext_ptr yytext_r
344
345 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
346 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yy scanner);
347 static int yy_get_next_buffer (yyscan_t yyscanner );
348 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
349
350 /* Done after the current pattern has been matched and before the
351 * corresponding action - sets up yytext.
352 */
353 #define YY_DO_BEFORE_ACTION \
354 yyg->yytext_ptr = yy_bp; \
355 yyleng = (size_t) (yy_cp - yy_bp); \
356 yyg->yy_hold_char = *yy_cp; \
357 *yy_cp = '\0'; \
358 yyg->yy_c_buf_p = yy_cp;
359
360 #define YY_NUM_RULES 80
361 #define YY_END_OF_BUFFER 81
362 /* This struct is not used in this scanner,
363 but its presence is necessary. */
364 struct yy_trans_info
365 {
366 flex_int32_t yy_verify;
367 flex_int32_t yy_nxt;
368 };
369 static yyconst flex_int16_t yy_accept[902] =
370 { 0,
371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
372 0, 0, 0, 0, 0, 0, 81, 79, 10, 2,
373 1, 6, 5, 4, 9, 66, 8, 7, 3, 67,
374 67, 67, 67, 67, 67, 79, 79, 79, 79, 79,
375 79, 79, 79, 79, 79, 79, 79, 79, 79, 65,
376 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
377 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
378 79, 79, 79, 79, 79, 79, 65, 65, 65, 65,
379 65, 79, 65, 44, 45, 45, 45, 45, 45, 45,
380 45, 45, 45, 45, 45, 45, 10, 66, 67, 67,
381
382 67, 37, 67, 0, 0, 0, 0, 0, 0, 0,
383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
384 0, 0, 0, 0, 0, 65, 65, 65, 65, 37,
385 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
386 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
387 65, 65, 65, 65, 0, 0, 0, 0, 0, 0,
388 0, 0, 65, 65, 65, 65, 65, 65, 65, 0,
389 65, 44, 45, 45, 45, 45, 45, 45, 45, 45,
390 13, 14, 0, 0, 0, 0, 0, 0, 0, 0,
391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
392
393 0, 0, 0, 0, 0, 0, 36, 0, 0, 13,
394 14, 65, 65, 65, 65, 65, 65, 65, 65, 65,
395 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
396 65, 65, 65, 65, 65, 36, 65, 65, 65, 0,
397 0, 0, 0, 0, 0, 0, 0, 65, 65, 65,
398 65, 65, 65, 65, 0, 65, 13, 14, 13, 14,
399 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
400 0, 12, 0, 0, 0, 0, 11, 0, 0, 0,
401 0, 0, 0, 0, 0, 0, 65, 65, 65, 65,
402 65, 65, 24, 65, 65, 65, 65, 12, 65, 65,
403
404 65, 65, 11, 65, 65, 65, 65, 65, 65, 65,
405 65, 65, 68, 0, 0, 0, 0, 73, 0, 0,
406 0, 65, 65, 65, 65, 65, 65, 65, 0, 65,
407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
408 0, 0, 27, 0, 40, 17, 0, 0, 0, 0,
409 0, 0, 38, 0, 65, 65, 65, 65, 65, 65,
410 65, 65, 65, 65, 65, 27, 65, 40, 65, 65,
411 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
412 65, 65, 65, 65, 38, 65, 0, 0, 0, 75,
413 72, 0, 0, 65, 65, 65, 65, 65, 65, 0,
414
415 31, 0, 42, 0, 0, 0, 0, 0, 0, 0,
416 0, 0, 0, 0, 0, 0, 0, 0, 0, 39,
417 31, 65, 42, 65, 65, 65, 65, 65, 65, 65,
418 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
419 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
420 39, 0, 0, 0, 0, 0, 65, 65, 65, 65,
421 0, 41, 23, 32, 15, 16, 0, 0, 0, 0,
422 0, 0, 0, 20, 0, 0, 0, 0, 0, 41,
423 23, 32, 65, 65, 65, 65, 65, 65, 20, 65,
424 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
425
426 56, 65, 65, 65, 65, 65, 65, 65, 0, 69,
427 0, 0, 0, 65, 65, 65, 65, 0, 0, 0,
428 35, 0, 30, 26, 0, 0, 0, 0, 0, 0,
429 0, 65, 65, 35, 65, 30, 26, 65, 65, 65,
430 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
431 65, 65, 65, 65, 65, 65, 65, 65, 0, 0,
432 0, 74, 65, 65, 65, 0, 0, 0, 0, 19,
433 0, 0, 0, 21, 0, 43, 65, 65, 65, 65,
434 65, 21, 65, 43, 65, 65, 65, 65, 65, 65,
435 65, 65, 65, 65, 65, 55, 65, 65, 65, 65,
436
437 0, 0, 0, 65, 65, 0, 0, 0, 0, 29,
438 0, 0, 0, 65, 65, 65, 29, 65, 65, 65,
439 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
440 65, 65, 65, 65, 65, 0, 0, 0, 65, 65,
441 0, 0, 0, 0, 0, 0, 0, 28, 65, 65,
442 65, 65, 28, 65, 65, 65, 65, 65, 65, 65,
443 65, 65, 65, 65, 62, 65, 65, 65, 65, 0,
444 0, 0, 65, 65, 0, 0, 0, 0, 0, 0,
445 0, 65, 65, 65, 65, 65, 65, 65, 65, 65,
446 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
447
448 65, 0, 0, 0, 65, 65, 0, 0, 0, 0,
449 0, 33, 0, 65, 65, 65, 33, 65, 65, 65,
450 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
451 65, 65, 65, 71, 0, 70, 65, 65, 0, 0,
452 0, 34, 0, 0, 65, 65, 65, 65, 65, 65,
453 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
454 65, 65, 76, 0, 0, 0, 0, 0, 65, 65,
455 65, 65, 65, 65, 65, 65, 65, 65, 64, 65,
456 65, 65, 65, 65, 65, 65, 0, 0, 0, 0,
457 0, 65, 65, 65, 46, 65, 65, 65, 65, 51,
458
459 50, 65, 65, 65, 65, 65, 60, 65, 0, 0,
460 25, 0, 0, 65, 65, 65, 65, 65, 65, 65,
461 65, 65, 65, 65, 47, 0, 0, 0, 0, 65,
462 65, 65, 65, 63, 65, 65, 65, 65, 52, 65,
463 0, 0, 18, 65, 65, 65, 65, 65, 65, 65,
464 65, 59, 0, 22, 48, 65, 54, 65, 65, 53,
465 65, 0, 65, 65, 65, 65, 0, 65, 49, 65,
466 65, 0, 65, 65, 65, 0, 65, 65, 65, 0,
467 65, 65, 65, 0, 65, 58, 65, 0, 57, 65,
468 0, 65, 0, 61, 0, 0, 0, 0, 77, 78,
469
470 0
471 } ;
472
473 static yyconst flex_int32_t yy_ec[256] =
474 { 0,
475 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
476 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
477 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
478 1, 5, 1, 1, 1, 1, 1, 1, 1, 1,
479 1, 6, 1, 7, 8, 9, 10, 11, 12, 13,
480 14, 15, 15, 15, 15, 15, 15, 16, 17, 1,
481 18, 1, 1, 1, 19, 20, 21, 22, 23, 24,
482 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
483 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
484 1, 1, 1, 1, 45, 1, 46, 47, 48, 49,
485
486 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
487 60, 61, 62, 63, 64, 65, 66, 67, 68, 42,
488 69, 70, 1, 1, 1, 1, 1, 1, 1, 1,
489 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
490 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
491 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
492 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
493 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
494 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
495 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
496
497 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
498 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
499 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
500 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
501 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
502 1, 1, 1, 1, 1
503 } ;
504
505 static yyconst flex_int32_t yy_meta[71] =
506 { 0,
507 1, 2, 3, 4, 2, 1, 1, 5, 1, 1,
508 6, 6, 6, 6, 6, 1, 1, 1, 6, 6,
509 6, 6, 6, 6, 5, 5, 5, 5, 5, 5,
510 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
511 5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
512 6, 5, 5, 5, 5, 5, 5, 5, 5, 5,
513 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
514 } ;
515
516 static yyconst flex_int16_t yy_base[909] =
517 { 0,
518 0, 70, 138, 141, 144, 146, 126, 128, 0, 0,
519 0, 0, 116, 119, 183, 224, 2020, 2114, 165, 2114,
520 2114, 2114, 2114, 2114, 2114, 160, 2114, 2114, 2114, 137,
521 143, 165, 172, 168, 0, 178, 227, 181, 181, 192,
522 189, 218, 192, 220, 239, 240, 218, 231, 232, 296,
523 337, 249, 274, 264, 223, 241, 276, 233, 233, 274,
524 265, 302, 267, 0, 304, 315, 343, 268, 345, 309,
525 0, 331, 337, 359, 367, 351, 353, 374, 393, 388,
526 354, 390, 407, 205, 413, 353, 395, 393, 392, 0,
527 462, 441, 444, 472, 448, 449, 207, 489, 0, 404,
528
529 2003, 2114, 400, 407, 459, 482, 467, 476, 493, 473,
530 478, 501, 501, 494, 520, 493, 503, 500, 498, 512,
531 502, 501, 516, 1994, 512, 0, 500, 532, 531, 0,
532 517, 502, 549, 539, 551, 551, 550, 535, 538, 562,
533 563, 556, 582, 552, 562, 560, 558, 572, 562, 571,
534 586, 586, 1993, 584, 1994, 585, 586, 600, 587, 608,
535 607, 611, 602, 593, 612, 599, 623, 622, 627, 622,
536 634, 663, 0, 641, 1983, 632, 660, 661, 678, 672,
537 0, 0, 661, 666, 668, 671, 658, 666, 680, 666,
538 665, 668, 690, 682, 691, 679, 679, 682, 699, 687,
539
540 702, 701, 1986, 702, 711, 704, 2114, 715, 722, 707,
541 709, 725, 731, 731, 730, 716, 721, 735, 721, 719,
542 722, 744, 736, 745, 733, 733, 736, 753, 741, 756,
543 755, 1985, 756, 765, 758, 0, 1948, 769, 776, 1988,
544 1939, 772, 1942, 764, 761, 763, 769, 1856, 780, 1890,
545 772, 768, 773, 777, 787, 788, 0, 0, 806, 812,
546 788, 815, 808, 805, 803, 1885, 1849, 824, 806, 807,
547 813, 2114, 1824, 824, 823, 819, 2114, 1790, 836, 818,
548 838, 827, 831, 830, 837, 843, 831, 855, 846, 842,
549 840, 1793, 1760, 862, 847, 849, 856, 0, 1786, 869,
550
551 868, 862, 0, 1785, 878, 860, 867, 870, 868, 915,
552 877, 888, 2114, 879, 884, 877, 897, 2114, 887, 896,
553 910, 899, 902, 916, 0, 907, 909, 924, 1686, 1685,
554 931, 926, 935, 938, 931, 1690, 950, 936, 1603, 947,
555 956, 950, 2114, 948, 2114, 2114, 951, 965, 949, 968,
556 968, 957, 2114, 972, 977, 967, 977, 976, 968, 1622,
557 984, 970, 1549, 980, 989, 0, 971, 0, 974, 989,
558 997, 998, 989, 1004, 989, 1008, 1013, 1029, 1007, 1011,
559 1007, 1011, 1022, 1023, 0, 1031, 1038, 1026, 1035, 2114,
560 2114, 1041, 1028, 1043, 1031, 0, 0, 1045, 1033, 1471,
561
562 2114, 1046, 2114, 1052, 1052, 157, 1060, 1057, 1061, 1062,
563 1056, 1064, 1062, 1054, 1077, 1065, 1082, 1065, 1066, 2114,
564 0, 1082, 0, 1087, 1088, 1093, 1090, 1093, 1094, 1080,
565 1084, 1077, 1097, 1105, 1089, 1091, 1435, 1111, 1433, 1107,
566 1116, 1099, 1116, 1111, 1126, 1111, 1133, 1126, 1137, 1136,
567 0, 1123, 1125, 1146, 1130, 1126, 1132, 1132, 1134, 1130,
568 1448, 2114, 1366, 2114, 2114, 2114, 1138, 1151, 1159, 1152,
569 1161, 1168, 1149, 2114, 1157, 1397, 1155, 1168, 1179, 0,
570 1289, 0, 1169, 1182, 1187, 1178, 1187, 1172, 0, 1179,
571 1177, 1183, 1196, 1180, 1194, 1198, 1200, 1194, 1190, 1191,
572
573 0, 1288, 1217, 1197, 1205, 1217, 1223, 1222, 1236, 2114,
574 1266, 1237, 1225, 1239, 0, 1241, 1229, 0, 1242, 1221,
575 2114, 1227, 2114, 2114, 1224, 1249, 1241, 1235, 1233, 1238,
576 1256, 1258, 1182, 0, 1242, 0, 0, 1265, 1257, 1248,
577 1255, 1273, 1269, 1265, 1266, 1271, 1285, 1286, 1280, 1281,
578 1276, 1291, 1292, 1295, 1297, 1295, 870, 1291, 1296, 1287,
579 1298, 2114, 1300, 1301, 0, 1349, 1321, 1313, 1321, 2114,
580 1322, 1311, 1328, 2114, 1331, 2114, 1334, 1327, 1342, 1340,
581 1330, 0, 1348, 0, 1350, 865, 1337, 1336, 1357, 1349,
582 1359, 1364, 1362, 1350, 1355, 0, 1368, 1366, 1369, 864,
583
584 1368, 1370, 1374, 1375, 1379, 1423, 1369, 1377, 1394, 2114,
585 1384, 1388, 1397, 1392, 1400, 1403, 0, 1403, 1414, 1418,
586 1421, 1412, 862, 1406, 1407, 1426, 1408, 1417, 1420, 1419,
587 1416, 1424, 1442, 1439, 1439, 1426, 1443, 1435, 1436, 1438,
588 1482, 1493, 765, 1445, 1453, 1465, 631, 2114, 602, 1462,
589 1477, 1478, 0, 1479, 1481, 1496, 1480, 1484, 542, 532,
590 498, 1479, 1496, 1501, 421, 419, 1487, 1484, 1490, 1501,
591 437, 1504, 1505, 1506, 1521, 1548, 1501, 1502, 1516, 1523,
592 1525, 1535, 1528, 1532, 1539, 403, 1548, 1533, 1534, 1537,
593 1540, 1538, 1553, 1554, 1556, 1543, 1546, 1552, 1565, 1547,
594
595 1550, 1551, 437, 1552, 1553, 1554, 1607, 1614, 1579, 425,
596 1581, 2114, 1575, 1603, 418, 1589, 0, 1611, 1613, 362,
597 1603, 334, 1602, 1612, 1618, 1604, 310, 1615, 1620, 1621,
598 1625, 1619, 1616, 2114, 323, 2114, 0, 0, 1640, 1666,
599 1619, 2114, 288, 1632, 1623, 286, 1628, 1655, 1661, 277,
600 1646, 1652, 1657, 1663, 1653, 1670, 1660, 1657, 1657, 1669,
601 1665, 1679, 2114, 1693, 1717, 1662, 1680, 1692, 1676, 1685,
602 1697, 1697, 1709, 1702, 1695, 1701, 1714, 1722, 0, 1718,
603 1714, 1708, 1722, 1719, 1725, 1713, 1743, 1770, 303, 1732,
604 1746, 295, 1740, 1737, 0, 1750, 1747, 1753, 1765, 0,
605
606 0, 1752, 224, 1759, 1758, 1766, 0, 1760, 1787, 1820,
607 2114, 1772, 1773, 1774, 1793, 1781, 1783, 1798, 1801, 1789,
608 1786, 1803, 1805, 1803, 0, 1845, 1852, 1805, 1806, 1807,
609 1809, 1826, 1835, 0, 1837, 1846, 1841, 215, 0, 1836,
610 1869, 206, 2114, 204, 1848, 1863, 1850, 1861, 1870, 1860,
611 1871, 0, 1895, 2114, 0, 176, 0, 1860, 1852, 0,
612 1878, 1914, 1873, 1890, 165, 1896, 1920, 1909, 0, 1906,
613 1920, 1931, 1916, 1915, 1930, 1941, 1931, 1937, 1933, 1956,
614 1929, 1939, 1935, 1968, 1947, 0, 1946, 1995, 0, 1938,
615 2000, 1947, 2011, 0, 2021, 2038, 2026, 2043, 2050, 2059,
616
617 2114, 2087, 2093, 171, 2095, 2101, 170, 2107
618 } ;
619
620 static yyconst flex_int16_t yy_def[909] =
621 { 0,
622 901, 901, 902, 902, 903, 903, 1, 2, 1, 2,
623 1, 2, 1, 2, 1, 2, 901, 901, 901, 901,
624 901, 901, 901, 901, 901, 904, 901, 901, 901, 904,
625 904, 904, 904, 904, 904, 901, 901, 901, 901, 901,
626 901, 901, 901, 901, 901, 901, 901, 901, 901, 905,
627 905, 51, 51, 51, 51, 905, 905, 905, 905, 905,
628 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
629 906, 901, 901, 901, 901, 901, 905, 905, 905, 905,
630 905, 901, 905, 907, 907, 907, 907, 907, 907, 907,
631 905, 91, 91, 91, 91, 91, 901, 904, 904, 904,
632
633 904, 901, 904, 901, 901, 901, 901, 901, 901, 901,
634 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
635 901, 901, 901, 901, 901, 905, 51, 51, 51, 905,
636 51, 905, 905, 905, 905, 905, 905, 905, 905, 905,
637 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
638 905, 905, 905, 905, 906, 901, 901, 901, 901, 901,
639 901, 901, 905, 905, 905, 905, 905, 905, 905, 901,
640 905, 907, 907, 907, 907, 907, 91, 91, 91, 91,
641 904, 904, 901, 901, 901, 901, 901, 901, 901, 901,
642 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
643
644 901, 901, 901, 901, 901, 901, 901, 901, 901, 51,
645 51, 905, 905, 905, 905, 905, 905, 905, 905, 905,
646 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
647 905, 905, 905, 905, 905, 905, 905, 905, 905, 901,
648 901, 901, 901, 901, 901, 901, 901, 905, 905, 905,
649 905, 905, 905, 905, 901, 905, 907, 907, 91, 91,
650 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
651 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
652 901, 901, 901, 901, 901, 901, 905, 905, 905, 905,
653 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
654
655 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
656 905, 905, 901, 901, 901, 901, 901, 901, 901, 901,
657 901, 905, 905, 905, 905, 905, 905, 905, 901, 905,
658 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
659 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
660 901, 901, 901, 901, 905, 905, 905, 905, 905, 905,
661 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
662 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
663 905, 905, 905, 905, 905, 905, 901, 901, 901, 901,
664 901, 901, 901, 905, 905, 905, 905, 905, 905, 901,
665
666 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
667 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
668 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
669 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
670 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
671 905, 901, 901, 901, 901, 901, 905, 905, 905, 905,
672 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
673 901, 901, 901, 901, 901, 901, 901, 901, 901, 905,
674 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
675 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
676
677 905, 905, 905, 905, 905, 905, 905, 905, 901, 901,
678 901, 901, 901, 905, 905, 905, 905, 908, 901, 901,
679 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
680 901, 905, 905, 905, 905, 905, 905, 905, 905, 905,
681 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
682 905, 905, 905, 905, 905, 905, 905, 905, 901, 901,
683 901, 901, 905, 905, 905, 908, 901, 901, 901, 901,
684 901, 901, 901, 901, 901, 901, 905, 905, 905, 905,
685 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
686 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
687
688 901, 901, 901, 905, 905, 908, 901, 901, 901, 901,
689 901, 901, 901, 905, 905, 905, 905, 905, 905, 905,
690 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
691 905, 905, 905, 905, 905, 901, 901, 901, 905, 905,
692 908, 908, 901, 901, 901, 901, 901, 901, 905, 905,
693 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
694 905, 905, 905, 905, 905, 905, 905, 905, 905, 901,
695 901, 901, 905, 905, 908, 908, 901, 901, 901, 901,
696 901, 905, 905, 905, 905, 905, 905, 905, 905, 905,
697 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
698
699 905, 901, 901, 901, 905, 905, 908, 908, 901, 901,
700 901, 901, 901, 905, 905, 905, 905, 905, 905, 905,
701 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
702 905, 905, 905, 901, 901, 901, 905, 905, 908, 908,
703 901, 901, 901, 901, 905, 905, 905, 905, 905, 905,
704 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
705 905, 905, 901, 908, 908, 901, 901, 901, 905, 905,
706 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
707 905, 905, 905, 905, 905, 905, 908, 908, 901, 901,
708 901, 905, 905, 905, 905, 905, 905, 905, 905, 905,
709
710 905, 905, 905, 905, 905, 905, 905, 905, 908, 908,
711 901, 901, 901, 905, 905, 905, 905, 905, 905, 905,
712 905, 905, 905, 905, 905, 908, 908, 901, 901, 905,
713 905, 905, 905, 905, 905, 905, 905, 905, 905, 905,
714 908, 901, 901, 905, 905, 905, 905, 905, 905, 905,
715 905, 905, 908, 901, 905, 905, 905, 905, 905, 905,
716 905, 908, 905, 905, 905, 905, 908, 905, 905, 905,
717 905, 908, 905, 905, 905, 908, 905, 905, 905, 908,
718 905, 905, 905, 908, 905, 905, 905, 908, 905, 905,
719 908, 905, 908, 905, 908, 908, 908, 908, 908, 908,
720
721 0, 901, 901, 901, 901, 901, 901, 901
722 } ;
723
724 static yyconst flex_int16_t yy_nxt[2185] =
725 { 0,
726 18, 19, 20, 21, 19, 22, 23, 24, 18, 25,
727 26, 26, 26, 26, 26, 27, 28, 29, 30, 31,
728 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
729 42, 43, 18, 44, 18, 45, 46, 18, 47, 18,
730 48, 18, 18, 49, 18, 30, 31, 32, 33, 34,
731 35, 36, 37, 38, 39, 40, 41, 42, 43, 18,
732 44, 18, 45, 46, 18, 47, 18, 48, 18, 49,
733 18, 19, 20, 21, 19, 22, 23, 24, 18, 25,
734 26, 26, 26, 26, 26, 27, 28, 29, 50, 51,
735 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
736
737 62, 63, 64, 65, 64, 66, 67, 64, 68, 64,
738 69, 64, 64, 70, 18, 50, 51, 52, 53, 54,
739 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
740 65, 64, 66, 67, 64, 68, 64, 69, 64, 70,
741 20, 21, 18, 20, 21, 18, 20, 21, 20, 21,
742 72, 82, 77, 18, 83, 100, 18, 101, 73, 74,
743 78, 79, 75, 76, 80, 81, 97, 465, 466, 97,
744 98, 98, 98, 98, 98, 173, 99, 72, 82, 77,
745 102, 83, 100, 103, 101, 73, 74, 78, 79, 75,
746 76, 80, 81, 84, 84, 84, 84, 84, 104, 105,
747
748 106, 85, 86, 87, 88, 89, 90, 102, 97, 870,
749 103, 97, 109, 110, 111, 172, 172, 172, 172, 172,
750 863, 854, 112, 854, 115, 104, 105, 106, 85, 86,
751 87, 88, 89, 90, 84, 84, 84, 84, 84, 109,
752 110, 111, 91, 92, 93, 94, 95, 96, 107, 112,
753 113, 115, 116, 108, 123, 117, 114, 124, 125, 851,
754 126, 118, 120, 134, 137, 138, 121, 131, 821, 91,
755 92, 93, 94, 95, 96, 107, 119, 113, 122, 116,
756 108, 123, 117, 114, 124, 125, 126, 126, 118, 120,
757 134, 137, 138, 121, 131, 133, 139, 135, 140, 143,
758
759 132, 126, 136, 119, 151, 122, 127, 127, 127, 127,
760 127, 126, 811, 126, 128, 127, 129, 127, 127, 127,
761 811, 774, 133, 139, 135, 140, 143, 132, 126, 136,
762 770, 151, 767, 763, 141, 154, 144, 146, 126, 145,
763 142, 128, 127, 129, 127, 127, 127, 127, 127, 127,
764 127, 127, 147, 156, 756, 127, 127, 127, 127, 127,
765 127, 141, 154, 144, 146, 148, 145, 142, 152, 149,
766 157, 153, 158, 162, 130, 163, 169, 159, 751, 147,
767 156, 150, 127, 127, 127, 127, 127, 127, 160, 161,
768 102, 116, 148, 121, 117, 152, 149, 157, 153, 158,
769
770 162, 130, 163, 169, 159, 122, 749, 164, 150, 165,
771 168, 166, 118, 176, 149, 160, 161, 102, 116, 104,
772 121, 117, 167, 105, 181, 144, 150, 170, 145, 146,
773 183, 174, 122, 175, 164, 742, 165, 168, 166, 118,
774 176, 149, 742, 184, 171, 735, 104, 718, 703, 167,
775 105, 181, 144, 150, 170, 145, 146, 183, 174, 177,
776 175, 177, 180, 698, 177, 697, 177, 177, 177, 177,
777 184, 171, 177, 177, 177, 177, 177, 185, 130, 133,
778 178, 177, 179, 177, 177, 177, 177, 188, 177, 180,
779 177, 177, 177, 177, 177, 177, 177, 189, 132, 98,
780
781 98, 98, 98, 98, 185, 130, 133, 178, 177, 179,
782 177, 177, 177, 186, 188, 192, 190, 177, 187, 177,
783 193, 194, 195, 197, 189, 132, 191, 198, 200, 201,
784 202, 203, 204, 205, 206, 207, 209, 126, 213, 196,
785 186, 192, 693, 190, 211, 187, 193, 212, 194, 195,
786 197, 199, 210, 191, 126, 200, 201, 202, 203, 204,
787 205, 206, 207, 209, 126, 213, 196, 214, 126, 126,
788 215, 217, 218, 219, 212, 216, 692, 221, 199, 210,
789 222, 126, 223, 220, 224, 226, 691, 229, 230, 227,
790 231, 232, 233, 234, 214, 126, 126, 215, 217, 218,
791
792 219, 225, 216, 221, 235, 236, 222, 237, 239, 223,
793 220, 224, 226, 228, 229, 230, 186, 231, 232, 233,
794 234, 187, 241, 242, 243, 244, 245, 204, 225, 247,
795 249, 235, 236, 215, 237, 239, 250, 251, 216, 248,
796 228, 252, 233, 186, 246, 254, 682, 681, 187, 241,
797 242, 243, 244, 245, 204, 203, 247, 249, 255, 253,
798 215, 257, 183, 250, 251, 216, 248, 232, 252, 233,
799 256, 246, 254, 172, 172, 172, 172, 172, 177, 177,
800 177, 259, 203, 261, 262, 255, 253, 263, 257, 183,
801 177, 260, 177, 264, 232, 265, 177, 256, 177, 266,
802
803 267, 268, 212, 269, 270, 177, 177, 177, 259, 271,
804 261, 262, 272, 273, 263, 274, 275, 177, 276, 177,
805 264, 277, 265, 177, 278, 177, 266, 267, 268, 212,
806 269, 270, 279, 280, 282, 283, 271, 284, 285, 272,
807 273, 286, 274, 275, 126, 276, 126, 287, 277, 288,
808 289, 278, 290, 291, 292, 293, 294, 295, 296, 279,
809 280, 282, 283, 297, 284, 285, 298, 299, 286, 300,
810 301, 126, 302, 126, 287, 303, 288, 289, 304, 290,
811 291, 292, 293, 294, 295, 296, 305, 306, 307, 308,
812 297, 309, 311, 298, 299, 312, 300, 301, 315, 302,
813
814 317, 319, 303, 318, 321, 304, 323, 320, 324, 677,
815 325, 326, 328, 305, 306, 307, 308, 327, 309, 311,
816 329, 330, 312, 331, 177, 315, 177, 317, 319, 318,
817 177, 321, 177, 323, 332, 324, 325, 333, 326, 328,
818 334, 335, 338, 339, 340, 341, 343, 329, 330, 344,
819 331, 177, 345, 177, 347, 348, 349, 177, 350, 177,
820 351, 332, 352, 353, 333, 354, 355, 334, 335, 338,
821 339, 340, 341, 343, 356, 357, 344, 358, 359, 345,
822 362, 347, 348, 349, 363, 350, 364, 351, 365, 352,
823 353, 366, 354, 355, 367, 368, 369, 370, 371, 372,
824
825 373, 356, 357, 385, 358, 359, 657, 362, 635, 621,
826 386, 363, 387, 364, 599, 365, 388, 389, 366, 390,
827 391, 367, 368, 369, 370, 371, 372, 373, 374, 392,
828 385, 393, 394, 375, 395, 376, 377, 386, 396, 387,
829 397, 378, 398, 388, 389, 399, 390, 391, 379, 401,
830 380, 381, 382, 383, 384, 402, 392, 403, 393, 394,
831 375, 395, 376, 377, 404, 396, 405, 397, 378, 398,
832 407, 408, 399, 410, 411, 379, 401, 380, 381, 382,
833 383, 384, 402, 412, 403, 413, 414, 415, 416, 417,
834 418, 404, 419, 405, 420, 421, 422, 407, 408, 423,
835
836 410, 411, 424, 425, 426, 427, 429, 430, 431, 432,
837 412, 433, 413, 414, 415, 416, 417, 418, 434, 419,
838 435, 420, 421, 422, 436, 437, 423, 438, 439, 424,
839 425, 426, 427, 429, 430, 431, 432, 440, 433, 442,
840 441, 443, 445, 446, 447, 434, 448, 435, 449, 450,
841 444, 436, 437, 451, 438, 439, 452, 453, 454, 455,
842 456, 457, 458, 459, 440, 460, 442, 441, 462, 445,
843 446, 447, 463, 448, 464, 449, 450, 444, 467, 468,
844 451, 469, 470, 452, 453, 454, 455, 456, 457, 458,
845 459, 471, 460, 472, 473, 462, 474, 475, 476, 463,
846
847 477, 464, 478, 479, 480, 467, 468, 481, 469, 470,
848 482, 483, 484, 485, 486, 487, 488, 490, 471, 489,
849 472, 473, 474, 491, 475, 476, 492, 477, 493, 478,
850 479, 480, 495, 497, 481, 500, 501, 482, 483, 484,
851 485, 486, 487, 488, 490, 489, 502, 498, 503, 504,
852 491, 505, 506, 492, 499, 493, 507, 508, 509, 495,
853 497, 510, 500, 501, 511, 512, 513, 514, 515, 516,
854 517, 520, 521, 502, 498, 503, 504, 522, 505, 506,
855 523, 499, 524, 507, 508, 509, 525, 526, 510, 527,
856 529, 511, 512, 513, 514, 515, 516, 517, 520, 521,
857
858 530, 531, 533, 534, 522, 535, 536, 523, 537, 524,
859 538, 539, 540, 525, 526, 541, 527, 529, 542, 543,
860 544, 545, 546, 549, 550, 547, 578, 530, 531, 533,
861 534, 548, 535, 536, 554, 537, 555, 538, 539, 540,
862 552, 556, 541, 557, 558, 542, 543, 544, 545, 546,
863 549, 550, 547, 553, 559, 561, 562, 563, 548, 564,
864 565, 554, 567, 555, 569, 568, 570, 552, 556, 571,
865 557, 558, 572, 573, 560, 574, 575, 576, 577, 579,
866 553, 559, 561, 562, 563, 580, 564, 565, 581, 567,
867 582, 569, 570, 583, 584, 585, 571, 586, 587, 572,
868
869 573, 574, 588, 575, 576, 577, 579, 589, 590, 591,
870 592, 593, 580, 594, 595, 581, 582, 596, 597, 598,
871 583, 584, 585, 600, 586, 587, 601, 602, 603, 588,
872 604, 605, 551, 532, 589, 590, 591, 592, 593, 607,
873 594, 595, 608, 609, 596, 597, 598, 610, 611, 612,
874 600, 613, 614, 601, 602, 603, 615, 604, 605, 606,
875 606, 606, 606, 606, 616, 617, 607, 618, 619, 608,
876 609, 620, 622, 623, 610, 611, 612, 624, 613, 614,
877 625, 626, 627, 615, 628, 629, 630, 631, 632, 633,
878 636, 616, 617, 637, 618, 619, 638, 639, 620, 622,
879
880 623, 640, 643, 644, 624, 634, 528, 625, 626, 627,
881 519, 628, 629, 630, 631, 632, 633, 636, 645, 646,
882 637, 647, 648, 638, 639, 649, 650, 651, 640, 643,
883 644, 641, 634, 642, 642, 642, 642, 642, 652, 653,
884 654, 655, 656, 658, 659, 645, 646, 660, 647, 648,
885 661, 662, 649, 650, 651, 663, 664, 518, 665, 666,
886 667, 668, 669, 670, 671, 652, 653, 654, 655, 656,
887 658, 659, 672, 673, 660, 674, 661, 496, 662, 494,
888 461, 678, 663, 664, 665, 679, 666, 667, 668, 669,
889 670, 671, 675, 675, 675, 675, 675, 680, 683, 672,
890
891 673, 641, 674, 676, 676, 676, 676, 676, 678, 684,
892 685, 686, 679, 687, 688, 689, 690, 694, 695, 696,
893 699, 700, 701, 702, 680, 683, 704, 705, 706, 707,
894 709, 708, 708, 708, 708, 708, 684, 685, 686, 710,
895 687, 688, 689, 690, 694, 695, 696, 699, 700, 701,
896 702, 711, 712, 704, 705, 706, 641, 709, 676, 676,
897 676, 676, 676, 713, 714, 715, 710, 716, 717, 719,
898 720, 721, 722, 723, 724, 725, 726, 727, 711, 712,
899 728, 729, 730, 731, 732, 733, 734, 736, 737, 738,
900 713, 714, 715, 428, 716, 717, 719, 720, 721, 722,
901
902 723, 724, 725, 726, 727, 741, 744, 728, 729, 730,
903 731, 732, 733, 734, 736, 737, 738, 739, 739, 739,
904 739, 739, 707, 743, 740, 740, 740, 740, 740, 745,
905 406, 746, 741, 744, 747, 748, 750, 752, 753, 754,
906 755, 757, 758, 759, 760, 761, 762, 409, 764, 743,
907 765, 765, 765, 765, 765, 766, 745, 746, 768, 769,
908 771, 747, 748, 750, 752, 753, 754, 755, 757, 758,
909 759, 760, 761, 762, 707, 772, 676, 676, 676, 676,
910 676, 773, 766, 775, 776, 768, 769, 771, 777, 778,
911 779, 780, 781, 782, 783, 784, 785, 786, 406, 789,
912
913 400, 400, 772, 787, 787, 787, 787, 787, 773, 790,
914 775, 776, 791, 792, 793, 777, 778, 779, 780, 781,
915 782, 783, 784, 785, 786, 764, 789, 788, 788, 788,
916 788, 788, 794, 795, 796, 797, 790, 798, 799, 791,
917 792, 793, 800, 801, 802, 803, 804, 805, 806, 807,
918 808, 764, 809, 810, 810, 810, 810, 810, 812, 794,
919 795, 796, 797, 798, 813, 799, 814, 815, 816, 800,
920 801, 802, 803, 804, 805, 806, 807, 808, 764, 817,
921 676, 676, 676, 676, 676, 812, 818, 819, 820, 822,
922 823, 813, 824, 814, 815, 816, 825, 606, 606, 606,
923
924 606, 606, 346, 342, 361, 360, 817, 346, 828, 829,
925 830, 831, 832, 818, 819, 820, 822, 823, 833, 824,
926 834, 835, 836, 825, 837, 838, 839, 826, 764, 809,
927 827, 827, 827, 827, 827, 828, 829, 830, 831, 832,
928 840, 342, 842, 843, 844, 833, 845, 834, 835, 836,
929 846, 837, 838, 839, 826, 606, 606, 606, 606, 606,
930 764, 809, 676, 676, 676, 676, 676, 840, 841, 842,
931 843, 844, 847, 845, 848, 849, 850, 846, 852, 606,
932 606, 606, 606, 606, 855, 856, 857, 858, 859, 860,
933 853, 861, 864, 337, 865, 841, 866, 336, 316, 847,
934
935 322, 848, 849, 850, 852, 606, 862, 606, 606, 606,
936 868, 855, 856, 857, 858, 859, 860, 853, 861, 864,
937 865, 869, 867, 866, 642, 642, 642, 642, 642, 871,
938 872, 675, 675, 675, 675, 873, 874, 868, 875, 707,
939 876, 708, 708, 708, 708, 708, 877, 878, 869, 879,
940 316, 606, 606, 606, 606, 606, 871, 881, 882, 883,
941 885, 886, 873, 874, 887, 875, 606, 606, 606, 606,
942 606, 889, 890, 877, 878, 892, 879, 880, 606, 606,
943 606, 606, 606, 314, 881, 882, 883, 885, 886, 894,
944 313, 887, 310, 884, 281, 281, 258, 240, 889, 890,
945
946 238, 208, 892, 888, 880, 606, 606, 606, 606, 606,
947 606, 606, 606, 606, 606, 894, 182, 891, 893, 901,
948 884, 606, 606, 606, 606, 606, 901, 901, 901, 901,
949 888, 606, 606, 606, 606, 606, 606, 606, 606, 606,
950 606, 895, 901, 898, 891, 893, 901, 896, 606, 606,
951 606, 606, 606, 899, 900, 606, 606, 606, 641, 897,
952 642, 642, 642, 642, 642, 901, 901, 641, 895, 642,
953 642, 642, 642, 642, 896, 901, 901, 901, 901, 901,
954 901, 901, 901, 901, 901, 901, 897, 71, 71, 71,
955 71, 71, 71, 18, 18, 18, 18, 18, 18, 126,
956
957 126, 155, 155, 901, 901, 155, 155, 566, 901, 901,
958 566, 566, 566, 17, 901, 901, 901, 901, 901, 901,
959 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
960 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
961 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
962 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
963 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
964 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
965 901, 901, 901, 901
966 } ;
967
968 static yyconst flex_int16_t yy_chk[2185] =
969 { 0,
970 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
971 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
972 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
973 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
974 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
975 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
976 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
977 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
978 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
979 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
980
981 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
982 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
983 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
984 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
985 3, 3, 3, 4, 4, 4, 5, 5, 6, 6,
986 7, 13, 8, 3, 14, 30, 4, 30, 7, 7,
987 8, 8, 7, 7, 8, 8, 19, 406, 406, 19,
988 26, 26, 26, 26, 26, 907, 904, 7, 13, 8,
989 31, 14, 30, 32, 30, 7, 7, 8, 8, 7,
990 7, 8, 8, 15, 15, 15, 15, 15, 33, 34,
991
992 36, 15, 15, 15, 15, 15, 15, 31, 97, 865,
993 32, 97, 38, 39, 40, 84, 84, 84, 84, 84,
994 856, 844, 41, 842, 43, 33, 34, 36, 15, 15,
995 15, 15, 15, 15, 16, 16, 16, 16, 16, 38,
996 39, 40, 16, 16, 16, 16, 16, 16, 37, 41,
997 42, 43, 44, 37, 47, 44, 42, 48, 49, 838,
998 55, 45, 46, 56, 58, 59, 46, 52, 803, 16,
999 16, 16, 16, 16, 16, 37, 45, 42, 46, 44,
1000 37, 47, 44, 42, 48, 49, 52, 55, 45, 46,
1001 56, 58, 59, 46, 52, 54, 60, 57, 61, 63,
1002
1003 53, 54, 57, 45, 68, 46, 50, 50, 50, 50,
1004 50, 53, 792, 52, 50, 50, 50, 50, 50, 50,
1005 789, 750, 54, 60, 57, 61, 63, 53, 54, 57,
1006 746, 68, 743, 735, 62, 70, 65, 66, 53, 65,
1007 62, 50, 50, 50, 50, 50, 50, 51, 51, 51,
1008 51, 51, 66, 72, 727, 51, 51, 51, 51, 51,
1009 51, 62, 70, 65, 66, 67, 65, 62, 69, 67,
1010 73, 69, 73, 76, 51, 77, 81, 74, 722, 66,
1011 72, 67, 51, 51, 51, 51, 51, 51, 74, 75,
1012 86, 74, 67, 75, 74, 69, 67, 73, 69, 73,
1013
1014 76, 51, 77, 81, 74, 75, 720, 78, 67, 78,
1015 80, 79, 82, 87, 80, 74, 75, 86, 74, 88,
1016 75, 74, 79, 89, 100, 79, 80, 82, 79, 83,
1017 103, 85, 75, 85, 78, 715, 78, 80, 79, 82,
1018 87, 80, 710, 104, 83, 703, 88, 686, 671, 79,
1019 89, 100, 79, 80, 82, 79, 83, 103, 85, 92,
1020 85, 92, 93, 666, 93, 665, 95, 96, 95, 96,
1021 104, 83, 91, 91, 91, 91, 91, 105, 92, 95,
1022 91, 91, 91, 91, 91, 91, 92, 107, 92, 93,
1023 94, 93, 94, 95, 96, 95, 96, 108, 94, 98,
1024
1025 98, 98, 98, 98, 105, 92, 95, 91, 91, 91,
1026 91, 91, 91, 106, 107, 110, 109, 94, 106, 94,
1027 111, 112, 113, 114, 108, 94, 109, 115, 116, 117,
1028 118, 119, 120, 121, 122, 123, 125, 127, 132, 113,
1029 106, 110, 661, 109, 129, 106, 111, 131, 112, 113,
1030 114, 115, 128, 109, 131, 116, 117, 118, 119, 120,
1031 121, 122, 123, 125, 127, 132, 113, 133, 129, 128,
1032 134, 135, 136, 137, 131, 134, 660, 138, 115, 128,
1033 139, 131, 140, 137, 141, 142, 659, 144, 145, 143,
1034 146, 147, 148, 149, 133, 129, 128, 134, 135, 136,
1035
1036 137, 141, 134, 138, 150, 151, 139, 152, 154, 140,
1037 137, 141, 142, 143, 144, 145, 156, 146, 147, 148,
1038 149, 156, 156, 157, 158, 159, 160, 161, 141, 162,
1039 164, 150, 151, 163, 152, 154, 165, 166, 163, 163,
1040 143, 167, 168, 156, 161, 169, 649, 647, 156, 156,
1041 157, 158, 159, 160, 161, 170, 162, 164, 170, 168,
1042 163, 174, 176, 165, 166, 163, 163, 171, 167, 168,
1043 171, 161, 169, 172, 172, 172, 172, 172, 177, 178,
1044 177, 178, 170, 183, 184, 170, 168, 185, 174, 176,
1045 180, 179, 180, 186, 171, 187, 179, 171, 179, 188,
1046
1047 189, 190, 180, 191, 192, 177, 178, 177, 178, 193,
1048 183, 184, 194, 195, 185, 196, 197, 180, 198, 180,
1049 186, 199, 187, 179, 200, 179, 188, 189, 190, 180,
1050 191, 192, 201, 202, 204, 205, 193, 206, 208, 194,
1051 195, 209, 196, 197, 210, 198, 211, 212, 199, 213,
1052 214, 200, 215, 216, 217, 218, 219, 220, 221, 201,
1053 202, 204, 205, 222, 206, 208, 223, 224, 209, 225,
1054 226, 210, 227, 211, 212, 228, 213, 214, 229, 215,
1055 216, 217, 218, 219, 220, 221, 230, 231, 233, 234,
1056 222, 235, 238, 223, 224, 239, 225, 226, 242, 227,
1057
1058 244, 246, 228, 245, 247, 229, 249, 246, 251, 643,
1059 252, 253, 254, 230, 231, 233, 234, 253, 235, 238,
1060 255, 256, 239, 261, 259, 242, 259, 244, 246, 245,
1061 260, 247, 260, 249, 262, 251, 252, 263, 253, 254,
1062 264, 265, 268, 269, 270, 271, 274, 255, 256, 275,
1063 261, 259, 276, 259, 279, 280, 281, 260, 282, 260,
1064 283, 262, 284, 285, 263, 286, 287, 264, 265, 268,
1065 269, 270, 271, 274, 288, 289, 275, 290, 291, 276,
1066 294, 279, 280, 281, 295, 282, 296, 283, 297, 284,
1067 285, 300, 286, 287, 301, 302, 305, 306, 307, 308,
1068
1069 309, 288, 289, 311, 290, 291, 623, 294, 600, 586,
1070 312, 295, 314, 296, 557, 297, 315, 316, 300, 317,
1071 319, 301, 302, 305, 306, 307, 308, 309, 310, 320,
1072 311, 321, 322, 310, 323, 310, 310, 312, 324, 314,
1073 326, 310, 327, 315, 316, 328, 317, 319, 310, 331,
1074 310, 310, 310, 310, 310, 332, 320, 333, 321, 322,
1075 310, 323, 310, 310, 334, 324, 335, 326, 310, 327,
1076 337, 338, 328, 340, 341, 310, 331, 310, 310, 310,
1077 310, 310, 332, 342, 333, 344, 347, 348, 349, 350,
1078 351, 334, 352, 335, 354, 355, 356, 337, 338, 357,
1079
1080 340, 341, 358, 359, 361, 362, 364, 365, 367, 369,
1081 342, 370, 344, 347, 348, 349, 350, 351, 371, 352,
1082 372, 354, 355, 356, 373, 374, 357, 375, 375, 358,
1083 359, 361, 362, 364, 365, 367, 369, 376, 370, 377,
1084 376, 378, 379, 380, 381, 371, 382, 372, 383, 384,
1085 378, 373, 374, 386, 375, 375, 387, 388, 389, 392,
1086 393, 394, 395, 398, 376, 399, 377, 376, 402, 379,
1087 380, 381, 404, 382, 405, 383, 384, 378, 407, 408,
1088 386, 409, 410, 387, 388, 389, 392, 393, 394, 395,
1089 398, 411, 399, 412, 413, 402, 414, 415, 416, 404,
1090
1091 417, 405, 418, 419, 422, 407, 408, 424, 409, 410,
1092 425, 426, 427, 428, 429, 430, 431, 433, 411, 432,
1093 412, 413, 414, 434, 415, 416, 435, 417, 436, 418,
1094 419, 422, 438, 440, 424, 442, 443, 425, 426, 427,
1095 428, 429, 430, 431, 433, 432, 444, 441, 445, 446,
1096 434, 447, 448, 435, 441, 436, 449, 450, 452, 438,
1097 440, 453, 442, 443, 454, 455, 456, 457, 458, 459,
1098 460, 467, 468, 444, 441, 445, 446, 469, 447, 448,
1099 470, 441, 471, 449, 450, 452, 472, 473, 453, 475,
1100 477, 454, 455, 456, 457, 458, 459, 460, 467, 468,
1101
1102 478, 479, 483, 484, 469, 485, 486, 470, 487, 471,
1103 488, 490, 491, 472, 473, 492, 475, 477, 493, 494,
1104 495, 496, 497, 499, 500, 498, 533, 478, 479, 483,
1105 484, 498, 485, 486, 504, 487, 505, 488, 490, 491,
1106 503, 506, 492, 507, 508, 493, 494, 495, 496, 497,
1107 499, 500, 498, 503, 509, 512, 513, 514, 498, 516,
1108 517, 504, 519, 505, 522, 520, 525, 503, 506, 526,
1109 507, 508, 527, 528, 511, 529, 530, 531, 532, 535,
1110 503, 509, 512, 513, 514, 538, 516, 517, 539, 519,
1111 540, 522, 525, 541, 542, 543, 526, 544, 545, 527,
1112
1113 528, 529, 546, 530, 531, 532, 535, 547, 548, 549,
1114 550, 551, 538, 552, 553, 539, 540, 554, 555, 556,
1115 541, 542, 543, 558, 544, 545, 559, 560, 561, 546,
1116 563, 564, 502, 481, 547, 548, 549, 550, 551, 567,
1117 552, 553, 568, 569, 554, 555, 556, 571, 572, 573,
1118 558, 575, 577, 559, 560, 561, 578, 563, 564, 566,
1119 566, 566, 566, 566, 579, 580, 567, 581, 583, 568,
1120 569, 585, 587, 588, 571, 572, 573, 589, 575, 577,
1121 590, 591, 592, 578, 593, 594, 595, 597, 598, 599,
1122 601, 579, 580, 602, 581, 583, 603, 604, 585, 587,
1123
1124 588, 605, 607, 608, 589, 599, 476, 590, 591, 592,
1125 463, 593, 594, 595, 597, 598, 599, 601, 609, 611,
1126 602, 612, 613, 603, 604, 614, 615, 616, 605, 607,
1127 608, 606, 599, 606, 606, 606, 606, 606, 618, 619,
1128 620, 621, 622, 624, 625, 609, 611, 626, 612, 613,
1129 627, 628, 614, 615, 616, 629, 630, 461, 631, 632,
1130 633, 634, 635, 636, 637, 618, 619, 620, 621, 622,
1131 624, 625, 638, 639, 626, 640, 627, 439, 628, 437,
1132 400, 644, 629, 630, 631, 645, 632, 633, 634, 635,
1133 636, 637, 641, 641, 641, 641, 641, 646, 650, 638,
1134
1135 639, 642, 640, 642, 642, 642, 642, 642, 644, 651,
1136 652, 654, 645, 655, 656, 657, 658, 662, 663, 664,
1137 667, 668, 669, 670, 646, 650, 672, 673, 674, 675,
1138 677, 675, 675, 675, 675, 675, 651, 652, 654, 678,
1139 655, 656, 657, 658, 662, 663, 664, 667, 668, 669,
1140 670, 679, 680, 672, 673, 674, 676, 677, 676, 676,
1141 676, 676, 676, 681, 682, 683, 678, 684, 685, 687,
1142 688, 689, 690, 691, 692, 693, 694, 695, 679, 680,
1143 696, 697, 698, 699, 700, 701, 702, 704, 705, 706,
1144 681, 682, 683, 363, 684, 685, 687, 688, 689, 690,
1145
1146 691, 692, 693, 694, 695, 709, 713, 696, 697, 698,
1147 699, 700, 701, 702, 704, 705, 706, 707, 707, 707,
1148 707, 707, 708, 711, 708, 708, 708, 708, 708, 714,
1149 360, 716, 709, 713, 718, 719, 721, 723, 724, 725,
1150 726, 728, 729, 730, 731, 732, 733, 339, 739, 711,
1151 739, 739, 739, 739, 739, 741, 714, 716, 744, 745,
1152 747, 718, 719, 721, 723, 724, 725, 726, 728, 729,
1153 730, 731, 732, 733, 740, 748, 740, 740, 740, 740,
1154 740, 749, 741, 751, 752, 744, 745, 747, 753, 754,
1155 755, 756, 757, 758, 759, 760, 761, 762, 336, 766,
1156
1157 330, 329, 748, 764, 764, 764, 764, 764, 749, 767,
1158 751, 752, 768, 769, 770, 753, 754, 755, 756, 757,
1159 758, 759, 760, 761, 762, 765, 766, 765, 765, 765,
1160 765, 765, 771, 772, 773, 774, 767, 775, 776, 768,
1161 769, 770, 777, 778, 780, 781, 782, 783, 784, 785,
1162 786, 787, 787, 787, 787, 787, 787, 787, 790, 771,
1163 772, 773, 774, 775, 791, 776, 793, 794, 796, 777,
1164 778, 780, 781, 782, 783, 784, 785, 786, 788, 797,
1165 788, 788, 788, 788, 788, 790, 798, 799, 802, 804,
1166 805, 791, 806, 793, 794, 796, 808, 809, 809, 809,
1167
1168 809, 809, 304, 299, 293, 292, 797, 278, 812, 813,
1169 814, 815, 816, 798, 799, 802, 804, 805, 817, 806,
1170 818, 819, 820, 808, 821, 822, 823, 809, 810, 810,
1171 810, 810, 810, 810, 810, 812, 813, 814, 815, 816,
1172 824, 273, 828, 829, 830, 817, 831, 818, 819, 820,
1173 832, 821, 822, 823, 809, 826, 826, 826, 826, 826,
1174 827, 827, 827, 827, 827, 827, 827, 824, 826, 828,
1175 829, 830, 833, 831, 835, 836, 837, 832, 840, 841,
1176 841, 841, 841, 841, 845, 846, 847, 848, 849, 850,
1177 841, 851, 858, 267, 859, 826, 861, 266, 250, 833,
1178
1179 248, 835, 836, 837, 840, 853, 853, 853, 853, 853,
1180 863, 845, 846, 847, 848, 849, 850, 841, 851, 858,
1181 859, 864, 862, 861, 862, 862, 862, 862, 862, 866,
1182 867, 867, 867, 867, 867, 868, 870, 863, 871, 872,
1183 872, 872, 872, 872, 872, 872, 873, 874, 864, 875,
1184 243, 876, 876, 876, 876, 876, 866, 877, 878, 879,
1185 881, 882, 868, 870, 883, 871, 880, 880, 880, 880,
1186 880, 885, 887, 873, 874, 890, 875, 876, 884, 884,
1187 884, 884, 884, 241, 877, 878, 879, 881, 882, 892,
1188 240, 883, 237, 880, 232, 203, 175, 155, 885, 887,
1189
1190 153, 124, 890, 884, 876, 888, 888, 888, 888, 888,
1191 891, 891, 891, 891, 891, 892, 101, 888, 891, 17,
1192 880, 893, 893, 893, 893, 893, 0, 0, 0, 0,
1193 884, 895, 895, 895, 895, 895, 897, 897, 897, 897,
1194 897, 893, 0, 897, 888, 891, 0, 895, 896, 896,
1195 896, 896, 896, 898, 898, 898, 898, 898, 899, 896,
1196 899, 899, 899, 899, 899, 0, 0, 900, 893, 900,
1197 900, 900, 900, 900, 895, 0, 0, 0, 0, 0,
1198 0, 0, 0, 0, 0, 0, 896, 902, 902, 902,
1199 902, 902, 902, 903, 903, 903, 903, 903, 903, 905,
1200
1201 905, 906, 906, 0, 0, 906, 906, 908, 0, 0,
1202 908, 908, 908, 901, 901, 901, 901, 901, 901, 901,
1203 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
1204 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
1205 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
1206 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
1207 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
1208 901, 901, 901, 901, 901, 901, 901, 901, 901, 901,
1209 901, 901, 901, 901
1210 } ;
1211
1212 /* The intent behind this definition is that it'll catch
1213 * any uses of REJECT which flex missed.
1214 */
1215 #define REJECT reject_used_but_not_detected
1216 #define yymore() yymore_used_but_not_detected
1217 #define YY_MORE_ADJ 0
1218 #define YY_RESTORE_YY_MORE_OFFSET
1219 /*
1220 * This file is part of Wireless Display Software for Linux OS
1221 *
1222 * Copyright (C) 2015 Intel Corporation.
1223 *
1224 * This library is free software; you can redistribute it and/or
1225 * modify it under the terms of the GNU Lesser General Public
1226 * License as published by the Free Software Foundation; either
1227 * version 2.1 of the License, or (at your option) any later version.
1228 *
1229 * This library is distributed in the hope that it will be useful,
1230 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1231 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1232 * Lesser General Public License for more details.
1233 *
1234 * You should have received a copy of the GNU Lesser General Public
1235 * License along with this library; if not, write to the Free Software
1236 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
1237 * 02110-1301 USA
1238 */
1239
1240 #include <string>
1241 #include "parser.h"
1242 #define yyterminate() return(END)
1243
1244 #define INITIAL 0
1245 #define MATCH_STRING_STATE 1
1246 #define MATCH_RESPONSE_CODE_STATE 2
1247 #define SUPPORTED_METHODS_STATE 3
1248 #define CONTENT_TYPE_STATE 4
1249 #define SESSION_STATE 5
1250 #define MATCH_PRESENTATION_URL 6
1251 #define NUM_AS_HEX_MODE 7
1252
1253 #ifndef YY_NO_UNISTD_H
1254 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1255 * down here because we want the user's section 1 to have been scanned first.
1256 * The user has a chance to override it with an option.
1257 */
1258 #include <unistd.h>
1259 #endif
1260
1261 #define YY_EXTRA_TYPE bool
1262
1263 /* Holds the entire state of the reentrant scanner. */
1264 struct yyguts_t
1265 {
1266
1267 /* User-defined. Not touched by flex. */
1268 YY_EXTRA_TYPE yyextra_r;
1269
1270 /* The rest are the same as the globals declared in the non-reentrant scanne r. */
1271 FILE *yyin_r, *yyout_r;
1272 size_t yy_buffer_stack_top; /**< index of top of stack. */
1273 size_t yy_buffer_stack_max; /**< capacity of stack. */
1274 YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
1275 char yy_hold_char;
1276 int yy_n_chars;
1277 int yyleng_r;
1278 char *yy_c_buf_p;
1279 int yy_init;
1280 int yy_start;
1281 int yy_did_buffer_switch_on_eof;
1282 int yy_start_stack_ptr;
1283 int yy_start_stack_depth;
1284 int *yy_start_stack;
1285 yy_state_type yy_last_accepting_state;
1286 char* yy_last_accepting_cpos;
1287
1288 int yylineno_r;
1289 int yy_flex_debug_r;
1290
1291 char *yytext_r;
1292 int yy_more_flag;
1293 int yy_more_len;
1294
1295 YYSTYPE * yylval_r;
1296
1297 }; /* end struct yyguts_t */
1298
1299 static int yy_init_globals (yyscan_t yyscanner );
1300
1301 /* This must go here because YYSTYPE and YYLTYPE are included
1302 * from bison output in section 1.*/
1303 # define yylval yyg->yylval_r
1304
1305 int message_lex_init (yyscan_t* scanner);
1306
1307 int message_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
1308
1309 /* Accessor methods to globals.
1310 These are made visible to non-reentrant scanners for convenience. */
1311
1312 int message_lex_destroy (yyscan_t yyscanner );
1313
1314 int message_get_debug (yyscan_t yyscanner );
1315
1316 void message_set_debug (int debug_flag ,yyscan_t yyscanner );
1317
1318 YY_EXTRA_TYPE message_get_extra (yyscan_t yyscanner );
1319
1320 void message_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
1321
1322 FILE *message_get_in (yyscan_t yyscanner );
1323
1324 void message_set_in (FILE * in_str ,yyscan_t yyscanner );
1325
1326 FILE *message_get_out (yyscan_t yyscanner );
1327
1328 void message_set_out (FILE * out_str ,yyscan_t yyscanner );
1329
1330 int message_get_leng (yyscan_t yyscanner );
1331
1332 char *message_get_text (yyscan_t yyscanner );
1333
1334 int message_get_lineno (yyscan_t yyscanner );
1335
1336 void message_set_lineno (int line_number ,yyscan_t yyscanner );
1337
1338 YYSTYPE * message_get_lval (yyscan_t yyscanner );
1339
1340 void message_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
1341
1342 /* Macros after this point can all be overridden by user definitions in
1343 * section 1.
1344 */
1345
1346 #ifndef YY_SKIP_YYWRAP
1347 #ifdef __cplusplus
1348 extern "C" int message_wrap (yyscan_t yyscanner );
1349 #else
1350 extern int message_wrap (yyscan_t yyscanner );
1351 #endif
1352 #endif
1353
1354 #ifndef yytext_ptr
1355 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
1356 #endif
1357
1358 #ifdef YY_NEED_STRLEN
1359 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
1360 #endif
1361
1362 #ifndef YY_NO_INPUT
1363
1364 #ifdef __cplusplus
1365 static int yyinput (yyscan_t yyscanner );
1366 #else
1367 static int input (yyscan_t yyscanner );
1368 #endif
1369
1370 #endif
1371
1372 /* Amount of stuff to slurp up with each read. */
1373 #ifndef YY_READ_BUF_SIZE
1374 #ifdef __ia64__
1375 /* On IA-64, the buffer size is 16k, not 8k */
1376 #define YY_READ_BUF_SIZE 16384
1377 #else
1378 #define YY_READ_BUF_SIZE 8192
1379 #endif /* __ia64__ */
1380 #endif
1381
1382 /* Copy whatever the last rule matched to the standard output. */
1383 #ifndef ECHO
1384 /* This used to be an fputs(), but since the string might contain NUL's,
1385 * we now use fwrite().
1386 */
1387 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1388 #endif
1389
1390 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1391 * is returned in "result".
1392 */
1393 #ifndef YY_INPUT
1394 #define YY_INPUT(buf,result,max_size) \
1395 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1396 { \
1397 int c = '*'; \
1398 size_t n; \
1399 for ( n = 0; n < max_size && \
1400 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1401 buf[n] = (char) c; \
1402 if ( c == '\n' ) \
1403 buf[n++] = (char) c; \
1404 if ( c == EOF && ferror( yyin ) ) \
1405 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1406 result = n; \
1407 } \
1408 else \
1409 { \
1410 errno=0; \
1411 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yy in)) \
1412 { \
1413 if( errno != EINTR) \
1414 { \
1415 YY_FATAL_ERROR( "input in flex scanner failed" ) ; \
1416 break; \
1417 } \
1418 errno=0; \
1419 clearerr(yyin); \
1420 } \
1421 }\
1422 \
1423
1424 #endif
1425
1426 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1427 * we don't want an extra ';' after the "return" because that will cause
1428 * some compilers to complain about unreachable statements.
1429 */
1430 #ifndef yyterminate
1431 #define yyterminate() return YY_NULL
1432 #endif
1433
1434 /* Number of entries by which start-condition stack grows. */
1435 #ifndef YY_START_STACK_INCR
1436 #define YY_START_STACK_INCR 25
1437 #endif
1438
1439 /* Report a fatal error. */
1440 #ifndef YY_FATAL_ERROR
1441 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1442 #endif
1443
1444 /* end tables serialization structures and prototypes */
1445
1446 /* Default declaration of generated scanner - a define so the user can
1447 * easily add parameters.
1448 */
1449 #ifndef YY_DECL
1450 #define YY_DECL_IS_OURS 1
1451
1452 extern int message_lex \
1453 (YYSTYPE * yylval_param ,yyscan_t yyscanner);
1454
1455 #define YY_DECL int message_lex \
1456 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1457 #endif /* !YY_DECL */
1458
1459 /* Code executed at the beginning of each rule, after yytext and yyleng
1460 * have been set up.
1461 */
1462 #ifndef YY_USER_ACTION
1463 #define YY_USER_ACTION
1464 #endif
1465
1466 /* Code executed at the end of each rule. */
1467 #ifndef YY_BREAK
1468 #define YY_BREAK break;
1469 #endif
1470
1471 #define YY_RULE_SETUP \
1472 if ( yyleng > 0 ) \
1473 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1474 (yytext[yyleng - 1] == '\n'); \
1475 YY_USER_ACTION
1476
1477 /** The main scanner function which does all the work.
1478 */
1479 YY_DECL
1480 {
1481 register yy_state_type yy_current_state;
1482 register char *yy_cp, *yy_bp;
1483 register int yy_act;
1484 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1485
1486 /* skip these */
1487
1488 yylval = yylval_param;
1489
1490 if ( !yyg->yy_init )
1491 {
1492 yyg->yy_init = 1;
1493
1494 #ifdef YY_USER_INIT
1495 YY_USER_INIT;
1496 #endif
1497
1498 if ( ! yyg->yy_start )
1499 yyg->yy_start = 1; /* first start state */
1500
1501 if ( ! yyin )
1502 yyin = stdin;
1503
1504 if ( ! yyout )
1505 yyout = stdout;
1506
1507 if ( ! YY_CURRENT_BUFFER ) {
1508 message_ensure_buffer_stack (yyscanner);
1509 YY_CURRENT_BUFFER_LVALUE =
1510 message__create_buffer(yyin,YY_BUF_SIZE ,yyscann er);
1511 }
1512
1513 message__load_buffer_state(yyscanner );
1514 }
1515
1516 while ( 1 ) /* loops until end-of-file is reached */
1517 {
1518 yy_cp = yyg->yy_c_buf_p;
1519
1520 /* Support of yytext. */
1521 *yy_cp = yyg->yy_hold_char;
1522
1523 /* yy_bp points to the position in yy_ch_buf of the start of
1524 * the current run.
1525 */
1526 yy_bp = yy_cp;
1527
1528 yy_current_state = yyg->yy_start;
1529 yy_current_state += YY_AT_BOL();
1530 yy_match:
1531 do
1532 {
1533 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1534 if ( yy_accept[yy_current_state] )
1535 {
1536 yyg->yy_last_accepting_state = yy_current_state;
1537 yyg->yy_last_accepting_cpos = yy_cp;
1538 }
1539 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_c urrent_state )
1540 {
1541 yy_current_state = (int) yy_def[yy_current_state ];
1542 if ( yy_current_state >= 902 )
1543 yy_c = yy_meta[(unsigned int) yy_c];
1544 }
1545 yy_current_state = yy_nxt[yy_base[yy_current_state] + (u nsigned int) yy_c];
1546 ++yy_cp;
1547 }
1548 while ( yy_current_state != 901 );
1549 yy_cp = yyg->yy_last_accepting_cpos;
1550 yy_current_state = yyg->yy_last_accepting_state;
1551
1552 yy_find_action:
1553 yy_act = yy_accept[yy_current_state];
1554
1555 YY_DO_BEFORE_ACTION;
1556
1557 do_action: /* This label is used only to access EOF actions. */
1558
1559 switch ( yy_act )
1560 { /* beginning of action switch */
1561 case 0: /* must back up */
1562 /* undo the effects of YY_DO_BEFORE_ACTION */
1563 *yy_cp = yyg->yy_hold_char;
1564 yy_cp = yyg->yy_last_accepting_cpos;
1565 yy_current_state = yyg->yy_last_accepting_state;
1566 goto yy_find_action;
1567
1568 case 1:
1569 YY_RULE_SETUP
1570 { BEGIN(INITIAL); }
1571 YY_BREAK
1572 case 2:
1573 /* rule 2 can match eol */
1574 YY_RULE_SETUP
1575 { BEGIN(INITIAL); }
1576 YY_BREAK
1577 /* Convert these */
1578 case 3:
1579 YY_RULE_SETUP
1580 { return '='; }
1581 YY_BREAK
1582 case 4:
1583 YY_RULE_SETUP
1584 { return '-'; }
1585 YY_BREAK
1586 case 5:
1587 YY_RULE_SETUP
1588 { return ','; }
1589 YY_BREAK
1590 case 6:
1591 YY_RULE_SETUP
1592 { return '*'; }
1593 YY_BREAK
1594 case 7:
1595 YY_RULE_SETUP
1596 { return ';'; }
1597 YY_BREAK
1598 case 8:
1599 YY_RULE_SETUP
1600 { return ':'; }
1601 YY_BREAK
1602 case 9:
1603 YY_RULE_SETUP
1604 { return '/'; }
1605 YY_BREAK
1606 case 10:
1607 YY_RULE_SETUP
1608 return WFD_SP;
1609 YY_BREAK
1610 case 11:
1611 YY_RULE_SETUP
1612 return WFD_NONE;
1613 YY_BREAK
1614 case 12:
1615 YY_RULE_SETUP
1616 return WFD_AUDIO_CODEC_LPCM;
1617 YY_BREAK
1618 case 13:
1619 YY_RULE_SETUP
1620 return WFD_AUDIO_CODEC_AAC;
1621 YY_BREAK
1622 case 14:
1623 YY_RULE_SETUP
1624 return WFD_AUDIO_CODEC_AC3;
1625 YY_BREAK
1626 case 15:
1627 YY_RULE_SETUP
1628 return WFD_HDCP_SPEC_2_0;
1629 YY_BREAK
1630 case 16:
1631 YY_RULE_SETUP
1632 return WFD_HDCP_SPEC_2_1;
1633 YY_BREAK
1634 case 17:
1635 YY_RULE_SETUP
1636 return WFD_IP_PORT;
1637 YY_BREAK
1638 case 18:
1639 YY_RULE_SETUP
1640 return WFD_STREAM_PROFILE;
1641 YY_BREAK
1642 case 19:
1643 YY_RULE_SETUP
1644 return WFD_MODE_PLAY;
1645 YY_BREAK
1646 case 20:
1647 YY_RULE_SETUP
1648 return WFD_ROUTE_PRIMARY;
1649 YY_BREAK
1650 case 21:
1651 YY_RULE_SETUP
1652 return WFD_ROUTE_SECONDARY;
1653 YY_BREAK
1654 case 22:
1655 YY_RULE_SETUP
1656 return WFD_INPUT_CATEGORY_LIST;
1657 YY_BREAK
1658 case 23:
1659 YY_RULE_SETUP
1660 return WFD_INPUT_CATEGORY_GENERIC;
1661 YY_BREAK
1662 case 24:
1663 YY_RULE_SETUP
1664 return WFD_INPUT_CATEGORY_HIDC;
1665 YY_BREAK
1666 case 25:
1667 YY_RULE_SETUP
1668 return WFD_GENERIC_CAP_LIST;
1669 YY_BREAK
1670 case 26:
1671 YY_RULE_SETUP
1672 return WFD_INPUT_TYPE_KEYBOARD;
1673 YY_BREAK
1674 case 27:
1675 YY_RULE_SETUP
1676 return WFD_INPUT_TYPE_MOUSE;
1677 YY_BREAK
1678 case 28:
1679 YY_RULE_SETUP
1680 return WFD_INPUT_TYPE_SINGLE_TOUCH;
1681 YY_BREAK
1682 case 29:
1683 YY_RULE_SETUP
1684 return WFD_INPUT_TYPE_MULTI_TOUCH;
1685 YY_BREAK
1686 case 30:
1687 YY_RULE_SETUP
1688 return WFD_INPUT_TYPE_JOYSTICK;
1689 YY_BREAK
1690 case 31:
1691 YY_RULE_SETUP
1692 return WFD_INPUT_TYPE_CAMERA;
1693 YY_BREAK
1694 case 32:
1695 YY_RULE_SETUP
1696 return WFD_INPUT_TYPE_GESTURE;
1697 YY_BREAK
1698 case 33:
1699 YY_RULE_SETUP
1700 return WFD_INPUT_TYPE_REMOTE_CONTROL;
1701 YY_BREAK
1702 case 34:
1703 YY_RULE_SETUP
1704 return WFD_HIDC_CAP_LIST;
1705 YY_BREAK
1706 case 35:
1707 YY_RULE_SETUP
1708 return WFD_INPUT_PATH_INFRARED;
1709 YY_BREAK
1710 case 36:
1711 YY_RULE_SETUP
1712 return WFD_INPUT_PATH_USB;
1713 YY_BREAK
1714 case 37:
1715 YY_RULE_SETUP
1716 return WFD_INPUT_PATH_BT;
1717 YY_BREAK
1718 case 38:
1719 YY_RULE_SETUP
1720 return WFD_INPUT_PATH_WIFI;
1721 YY_BREAK
1722 case 39:
1723 YY_RULE_SETUP
1724 return WFD_INPUT_PATH_ZIGBEE;
1725 YY_BREAK
1726 case 40:
1727 YY_RULE_SETUP
1728 return WFD_INPUT_PATH_NOSP;
1729 YY_BREAK
1730 case 41:
1731 YY_RULE_SETUP
1732 return WFD_UIBC_SETTING_DISABLE;
1733 YY_BREAK
1734 case 42:
1735 YY_RULE_SETUP
1736 return WFD_UIBC_SETTING_ENABLE;
1737 YY_BREAK
1738 case 43:
1739 YY_RULE_SETUP
1740 return WFD_SUPPORTED;
1741 YY_BREAK
1742 case 44:
1743 YY_RULE_SETUP
1744 {
1745 if (yyleng > 16) {
1746 yylval->sval = new std::string(yytext);
1747 return WFD_STRING;
1748 }
1749
1750 std::string str(yytext, yyleng);
1751 str += '\0';
1752 yylval->nval = strtoull(str.c_str(), NULL, 16);
1753 if (errno == ERANGE) {
1754 // todo: handle error
1755 }
1756 return WFD_NUM;
1757 }
1758 YY_BREAK
1759 case 45:
1760 YY_RULE_SETUP
1761 {
1762 if (yyleng > 16) {
1763 yylval->sval = new std::string(yytext);
1764 return WFD_STRING;
1765 }
1766
1767 std::string str(yytext, yyleng);
1768 str += '\0';
1769 yylval->nval = strtoull(str.c_str(), NULL, 16);
1770 if (errno == ERANGE) {
1771 // todo: handle error
1772 }
1773 return WFD_NUM;
1774 }
1775 YY_BREAK
1776 case 46:
1777 YY_RULE_SETUP
1778 {
1779 BEGIN(NUM_AS_HEX_MODE);
1780 return WFD_AUDIO_CODECS;
1781 }
1782 YY_BREAK
1783 case 47:
1784 YY_RULE_SETUP
1785 {
1786 BEGIN(NUM_AS_HEX_MODE);
1787 return WFD_VIDEO_FORMATS;
1788 }
1789 YY_BREAK
1790 case 48:
1791 YY_RULE_SETUP
1792 {
1793 BEGIN(NUM_AS_HEX_MODE);
1794 return WFD_3D_FORMATS;
1795 }
1796 YY_BREAK
1797 case 49:
1798 YY_RULE_SETUP
1799 {
1800 return WFD_CONTENT_PROTECTION;
1801 }
1802 YY_BREAK
1803 case 50:
1804 YY_RULE_SETUP
1805 {
1806 BEGIN(NUM_AS_HEX_MODE);
1807 return WFD_DISPLAY_EDID;
1808 }
1809 YY_BREAK
1810 case 51:
1811 YY_RULE_SETUP
1812 {
1813 BEGIN(NUM_AS_HEX_MODE);
1814 return WFD_COUPLED_SINK;
1815 }
1816 YY_BREAK
1817 case 52:
1818 YY_RULE_SETUP
1819 {
1820 BEGIN(SUPPORTED_METHODS_STATE);
1821 return WFD_TRIGGER_METHOD;
1822 }
1823 YY_BREAK
1824 case 53:
1825 YY_RULE_SETUP
1826 {
1827 BEGIN(MATCH_PRESENTATION_URL);
1828 return WFD_PRESENTATION_URL;
1829 }
1830 YY_BREAK
1831 case 54:
1832 YY_RULE_SETUP
1833 {
1834 return WFD_CLIENT_RTP_PORTS;
1835 }
1836 YY_BREAK
1837 case 55:
1838 YY_RULE_SETUP
1839 {
1840 return WFD_ROUTE;
1841 }
1842 YY_BREAK
1843 case 56:
1844 YY_RULE_SETUP
1845 {
1846 return WFD_I2C;
1847 }
1848 YY_BREAK
1849 case 57:
1850 YY_RULE_SETUP
1851 {
1852 BEGIN(NUM_AS_HEX_MODE);
1853 return WFD_AV_FORMAT_CHANGE_TIMING;
1854 }
1855 YY_BREAK
1856 case 58:
1857 YY_RULE_SETUP
1858 {
1859 BEGIN(NUM_AS_HEX_MODE);
1860 return WFD_PREFERRED_DISPLAY_MODE;
1861 }
1862 YY_BREAK
1863 case 59:
1864 YY_RULE_SETUP
1865 {
1866 return WFD_UIBC_CAPABILITY;
1867 }
1868 YY_BREAK
1869 case 60:
1870 YY_RULE_SETUP
1871 {
1872 return WFD_UIBC_SETTING;
1873 }
1874 YY_BREAK
1875 case 61:
1876 YY_RULE_SETUP
1877 {
1878 return WFD_STANDBY_RESUME_CAPABILITY;
1879 }
1880 YY_BREAK
1881 case 62:
1882 YY_RULE_SETUP
1883 {
1884 if (yyextra) // Is reply.
1885 return WFD_STANDBY_IN_RESPONSE;
1886 return WFD_STANDBY_IN_REQUEST;
1887 }
1888 YY_BREAK
1889 case 63:
1890 YY_RULE_SETUP
1891 {
1892 BEGIN(NUM_AS_HEX_MODE);
1893 return WFD_CONNECTOR_TYPE;
1894 }
1895 YY_BREAK
1896 case 64:
1897 YY_RULE_SETUP
1898 {
1899 return WFD_IDR_REQUEST;
1900 }
1901 YY_BREAK
1902 case 65:
1903 YY_RULE_SETUP
1904 {
1905 BEGIN(MATCH_STRING_STATE);
1906 yylval->sval = new std::string(yytext, yyleng);
1907 return WFD_GENERIC_PROPERTY;
1908 }
1909 YY_BREAK
1910 case 66:
1911 YY_RULE_SETUP
1912 {
1913 std::string str(yytext, yyleng);
1914 str += '\0';
1915 yylval->nval = strtoull(str.c_str(), NULL, 10);
1916 if (errno == ERANGE) {
1917 // todo: handle error
1918 }
1919 return WFD_NUM;
1920 }
1921 YY_BREAK
1922 case 67:
1923 YY_RULE_SETUP
1924 {
1925 std::string str(yytext, yyleng);
1926 str += '\0';
1927 yylval->nval = strtoull(str.c_str(), NULL, 16);
1928 if (errno == ERANGE) {
1929 // todo: handle error
1930 }
1931 return WFD_NUM;
1932 }
1933 YY_BREAK
1934 case 68:
1935 /* rule 68 can match eol */
1936 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
1937 yyg->yy_c_buf_p = yy_cp -= 2;
1938 YY_DO_BEFORE_ACTION; /* set up yytext again */
1939 YY_RULE_SETUP
1940 {
1941 BEGIN(INITIAL);
1942 yylval->sval = new std::string(yytext);
1943 return WFD_STRING;
1944 }
1945 YY_BREAK
1946 case 69:
1947 YY_RULE_SETUP
1948 {
1949 return WFD_OPTIONS;
1950 }
1951 YY_BREAK
1952 case 70:
1953 YY_RULE_SETUP
1954 {
1955 return WFD_SET_PARAMETER;
1956 }
1957 YY_BREAK
1958 case 71:
1959 YY_RULE_SETUP
1960 {
1961 return WFD_GET_PARAMETER;
1962 }
1963 YY_BREAK
1964 case 72:
1965 YY_RULE_SETUP
1966 {
1967 return WFD_SETUP;
1968 }
1969 YY_BREAK
1970 case 73:
1971 YY_RULE_SETUP
1972 {
1973 return WFD_PLAY;
1974 }
1975 YY_BREAK
1976 case 74:
1977 YY_RULE_SETUP
1978 {
1979 return WFD_TEARDOWN;
1980 }
1981 YY_BREAK
1982 case 75:
1983 YY_RULE_SETUP
1984 {
1985 return WFD_PAUSE;
1986 }
1987 YY_BREAK
1988 case 76:
1989 YY_RULE_SETUP
1990 {
1991 return WFD_TAG;
1992 }
1993 YY_BREAK
1994 case 77:
1995 YY_RULE_SETUP
1996 {
1997 yylval->sval = new std::string(yytext);
1998 return WFD_PRESENTATION_URL_0;
1999 }
2000 YY_BREAK
2001 case 78:
2002 YY_RULE_SETUP
2003 {
2004 yylval->sval = new std::string(yytext);
2005 return WFD_PRESENTATION_URL_1;
2006 }
2007 YY_BREAK
2008 /* all unmatched */
2009 case 79:
2010 YY_RULE_SETUP
2011 {}
2012 YY_BREAK
2013 case 80:
2014 YY_RULE_SETUP
2015 YY_FATAL_ERROR( "flex scanner jammed" );
2016 YY_BREAK
2017 case YY_STATE_EOF(INITIAL):
2018 case YY_STATE_EOF(MATCH_STRING_STATE):
2019 case YY_STATE_EOF(MATCH_RESPONSE_CODE_STATE):
2020 case YY_STATE_EOF(SUPPORTED_METHODS_STATE):
2021 case YY_STATE_EOF(CONTENT_TYPE_STATE):
2022 case YY_STATE_EOF(SESSION_STATE):
2023 case YY_STATE_EOF(MATCH_PRESENTATION_URL):
2024 case YY_STATE_EOF(NUM_AS_HEX_MODE):
2025 yyterminate();
2026
2027 case YY_END_OF_BUFFER:
2028 {
2029 /* Amount of text matched not including the EOB char. */
2030 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
2031
2032 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2033 *yy_cp = yyg->yy_hold_char;
2034 YY_RESTORE_YY_MORE_OFFSET
2035
2036 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2037 {
2038 /* We're scanning a new file or input source. It's
2039 * possible that this happened because the user
2040 * just pointed yyin at a new source and called
2041 * message_lex(). If so, then we have to assure
2042 * consistency between YY_CURRENT_BUFFER and our
2043 * globals. Here is the right place to do so, because
2044 * this is the first action (other than possibly a
2045 * back-up) that will match for the new input source.
2046 */
2047 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2048 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2049 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_N ORMAL;
2050 }
2051
2052 /* Note that here we test for yy_c_buf_p "<=" to the position
2053 * of the first EOB in the buffer, since yy_c_buf_p will
2054 * already have been incremented past the NUL character
2055 * (since all states make transitions on EOB to the
2056 * end-of-buffer state). Contrast this with the test
2057 * in input().
2058 */
2059 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg ->yy_n_chars] )
2060 { /* This was really a NUL. */
2061 yy_state_type yy_next_state;
2062
2063 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched _text;
2064
2065 yy_current_state = yy_get_previous_state( yyscanner );
2066
2067 /* Okay, we're now positioned to make the NUL
2068 * transition. We couldn't have
2069 * yy_get_previous_state() go ahead and do it
2070 * for us because it doesn't know how to deal
2071 * with the possibility of jamming (and we don't
2072 * want to build jamming into it because then it
2073 * will run more slowly).
2074 */
2075
2076 yy_next_state = yy_try_NUL_trans( yy_current_state , yys canner);
2077
2078 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2079
2080 if ( yy_next_state )
2081 {
2082 /* Consume the NUL. */
2083 yy_cp = ++yyg->yy_c_buf_p;
2084 yy_current_state = yy_next_state;
2085 goto yy_match;
2086 }
2087
2088 else
2089 {
2090 yy_cp = yyg->yy_last_accepting_cpos;
2091 yy_current_state = yyg->yy_last_accepting_state;
2092 goto yy_find_action;
2093 }
2094 }
2095
2096 else switch ( yy_get_next_buffer( yyscanner ) )
2097 {
2098 case EOB_ACT_END_OF_FILE:
2099 {
2100 yyg->yy_did_buffer_switch_on_eof = 0;
2101
2102 if ( message_wrap(yyscanner ) )
2103 {
2104 /* Note: because we've taken care in
2105 * yy_get_next_buffer() to have set up
2106 * yytext, we can now set up
2107 * yy_c_buf_p so that if some total
2108 * hoser (like flex itself) wants to
2109 * call the scanner after we return the
2110 * YY_NULL, it'll still work - another
2111 * YY_NULL will get returned.
2112 */
2113 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_M ORE_ADJ;
2114
2115 yy_act = YY_STATE_EOF(YY_START);
2116 goto do_action;
2117 }
2118
2119 else
2120 {
2121 if ( ! yyg->yy_did_buffer_switch_on_eof )
2122 YY_NEW_FILE;
2123 }
2124 break;
2125 }
2126
2127 case EOB_ACT_CONTINUE_SCAN:
2128 yyg->yy_c_buf_p =
2129 yyg->yytext_ptr + yy_amount_of_matched_t ext;
2130
2131 yy_current_state = yy_get_previous_state( yyscan ner );
2132
2133 yy_cp = yyg->yy_c_buf_p;
2134 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2135 goto yy_match;
2136
2137 case EOB_ACT_LAST_MATCH:
2138 yyg->yy_c_buf_p =
2139 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_c hars];
2140
2141 yy_current_state = yy_get_previous_state( yyscan ner );
2142
2143 yy_cp = yyg->yy_c_buf_p;
2144 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2145 goto yy_find_action;
2146 }
2147 break;
2148 }
2149
2150 default:
2151 YY_FATAL_ERROR(
2152 "fatal flex scanner internal error--no action found" );
2153 } /* end of action switch */
2154 } /* end of scanning one token */
2155 } /* end of message_lex */
2156
2157 /* yy_get_next_buffer - try to read in a new buffer
2158 *
2159 * Returns a code representing an action:
2160 * EOB_ACT_LAST_MATCH -
2161 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2162 * EOB_ACT_END_OF_FILE - end of file
2163 */
2164 static int yy_get_next_buffer (yyscan_t yyscanner)
2165 {
2166 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2167 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2168 register char *source = yyg->yytext_ptr;
2169 register int number_to_move, i;
2170 int ret_val;
2171
2172 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_ch ars + 1] )
2173 YY_FATAL_ERROR(
2174 "fatal flex scanner internal error--end of buffer missed" );
2175
2176 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2177 { /* Don't try to fill the buffer, so this is an EOF. */
2178 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
2179 {
2180 /* We matched a single character, the EOB, so
2181 * treat this as a final EOF.
2182 */
2183 return EOB_ACT_END_OF_FILE;
2184 }
2185
2186 else
2187 {
2188 /* We matched some text prior to the EOB, first
2189 * process it.
2190 */
2191 return EOB_ACT_LAST_MATCH;
2192 }
2193 }
2194
2195 /* Try to read more data. */
2196
2197 /* First move last chars to start of buffer. */
2198 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
2199
2200 for ( i = 0; i < number_to_move; ++i )
2201 *(dest++) = *(source++);
2202
2203 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2204 /* don't do the read, it's not guaranteed to return an EOF,
2205 * just force an EOF
2206 */
2207 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
2208
2209 else
2210 {
2211 int num_to_read =
2212 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2213
2214 while ( num_to_read <= 0 )
2215 { /* Not enough room in the buffer - grow it. */
2216
2217 /* just a shorter name for the current buffer */
2218 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2219
2220 int yy_c_buf_p_offset =
2221 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
2222
2223 if ( b->yy_is_our_buffer )
2224 {
2225 int new_size = b->yy_buf_size * 2;
2226
2227 if ( new_size <= 0 )
2228 b->yy_buf_size += b->yy_buf_size / 8;
2229 else
2230 b->yy_buf_size *= 2;
2231
2232 b->yy_ch_buf = (char *)
2233 /* Include room in for 2 EOB chars. */
2234 message_realloc((void *) b->yy_ch_buf,b- >yy_buf_size + 2 ,yyscanner );
2235 }
2236 else
2237 /* Can't grow it, we don't own it. */
2238 b->yy_ch_buf = 0;
2239
2240 if ( ! b->yy_ch_buf )
2241 YY_FATAL_ERROR(
2242 "fatal error - scanner input buffer overflow" );
2243
2244 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2245
2246 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2247 number_to_move - 1;
2248
2249 }
2250
2251 if ( num_to_read > YY_READ_BUF_SIZE )
2252 num_to_read = YY_READ_BUF_SIZE;
2253
2254 /* Read in more data. */
2255 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]) ,
2256 yyg->yy_n_chars, (size_t) num_to_read );
2257
2258 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2259 }
2260
2261 if ( yyg->yy_n_chars == 0 )
2262 {
2263 if ( number_to_move == YY_MORE_ADJ )
2264 {
2265 ret_val = EOB_ACT_END_OF_FILE;
2266 message_restart(yyin ,yyscanner);
2267 }
2268
2269 else
2270 {
2271 ret_val = EOB_ACT_LAST_MATCH;
2272 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2273 YY_BUFFER_EOF_PENDING;
2274 }
2275 }
2276
2277 else
2278 ret_val = EOB_ACT_CONTINUE_SCAN;
2279
2280 if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_L VALUE->yy_buf_size) {
2281 /* Extend the array by 50%, plus the number we really need. */
2282 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy _n_chars >> 1);
2283 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) message_realloc(( void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
2284 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2285 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_bu ffer()" );
2286 }
2287
2288 yyg->yy_n_chars += number_to_move;
2289 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_ CHAR;
2290 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUF FER_CHAR;
2291
2292 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2293
2294 return ret_val;
2295 }
2296
2297 /* yy_get_previous_state - get the state just before the EOB char was reached */
2298
2299 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
2300 {
2301 register yy_state_type yy_current_state;
2302 register char *yy_cp;
2303 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2304
2305 yy_current_state = yyg->yy_start;
2306 yy_current_state += YY_AT_BOL();
2307
2308 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++ yy_cp )
2309 {
2310 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1 );
2311 if ( yy_accept[yy_current_state] )
2312 {
2313 yyg->yy_last_accepting_state = yy_current_state;
2314 yyg->yy_last_accepting_cpos = yy_cp;
2315 }
2316 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_s tate )
2317 {
2318 yy_current_state = (int) yy_def[yy_current_state];
2319 if ( yy_current_state >= 902 )
2320 yy_c = yy_meta[(unsigned int) yy_c];
2321 }
2322 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2323 }
2324
2325 return yy_current_state;
2326 }
2327
2328 /* yy_try_NUL_trans - try to make a transition on the NUL character
2329 *
2330 * synopsis
2331 * next_state = yy_try_NUL_trans( current_state );
2332 */
2333 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yys can_t yyscanner)
2334 {
2335 register int yy_is_jam;
2336 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unus ed depending upon options. */
2337 register char *yy_cp = yyg->yy_c_buf_p;
2338
2339 register YY_CHAR yy_c = 1;
2340 if ( yy_accept[yy_current_state] )
2341 {
2342 yyg->yy_last_accepting_state = yy_current_state;
2343 yyg->yy_last_accepting_cpos = yy_cp;
2344 }
2345 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2346 {
2347 yy_current_state = (int) yy_def[yy_current_state];
2348 if ( yy_current_state >= 902 )
2349 yy_c = yy_meta[(unsigned int) yy_c];
2350 }
2351 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_ c];
2352 yy_is_jam = (yy_current_state == 901);
2353
2354 return yy_is_jam ? 0 : yy_current_state;
2355 }
2356
2357 #ifndef YY_NO_INPUT
2358 #ifdef __cplusplus
2359 static int yyinput (yyscan_t yyscanner)
2360 #else
2361 static int input (yyscan_t yyscanner)
2362 #endif
2363
2364 {
2365 int c;
2366 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2367
2368 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2369
2370 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2371 {
2372 /* yy_c_buf_p now points to the character we want to return.
2373 * If this occurs *before* the EOB characters, then it's a
2374 * valid NUL; if not, then we've hit the end of the buffer.
2375 */
2376 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg- >yy_n_chars] )
2377 /* This was really a NUL. */
2378 *yyg->yy_c_buf_p = '\0';
2379
2380 else
2381 { /* need more input */
2382 int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
2383 ++yyg->yy_c_buf_p;
2384
2385 switch ( yy_get_next_buffer( yyscanner ) )
2386 {
2387 case EOB_ACT_LAST_MATCH:
2388 /* This happens because yy_g_n_b()
2389 * sees that we've accumulated a
2390 * token and flags that we need to
2391 * try matching the token before
2392 * proceeding. But for input(),
2393 * there's no matching to consider.
2394 * So convert the EOB_ACT_LAST_MATCH
2395 * to EOB_ACT_END_OF_FILE.
2396 */
2397
2398 /* Reset buffer status. */
2399 message_restart(yyin ,yyscanner);
2400
2401 /*FALLTHROUGH*/
2402
2403 case EOB_ACT_END_OF_FILE:
2404 {
2405 if ( message_wrap(yyscanner ) )
2406 return EOF;
2407
2408 if ( ! yyg->yy_did_buffer_switch_on_eof )
2409 YY_NEW_FILE;
2410 #ifdef __cplusplus
2411 return yyinput(yyscanner);
2412 #else
2413 return input(yyscanner);
2414 #endif
2415 }
2416
2417 case EOB_ACT_CONTINUE_SCAN:
2418 yyg->yy_c_buf_p = yyg->yytext_ptr + offs et;
2419 break;
2420 }
2421 }
2422 }
2423
2424 c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
2425 *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
2426 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
2427
2428 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
2429
2430 return c;
2431 }
2432 #endif /* ifndef YY_NO_INPUT */
2433
2434 /** Immediately switch to a different input stream.
2435 * @param input_file A readable stream.
2436 * @param yyscanner The scanner object.
2437 * @note This function does not reset the start condition to @c INITIAL .
2438 */
2439 void message_restart (FILE * input_file , yyscan_t yyscanner)
2440 {
2441 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2442
2443 if ( ! YY_CURRENT_BUFFER ){
2444 message_ensure_buffer_stack (yyscanner);
2445 YY_CURRENT_BUFFER_LVALUE =
2446 message__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
2447 }
2448
2449 message__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
2450 message__load_buffer_state(yyscanner );
2451 }
2452
2453 /** Switch to a different input buffer.
2454 * @param new_buffer The new input buffer.
2455 * @param yyscanner The scanner object.
2456 */
2457 void message__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yysc anner)
2458 {
2459 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2460
2461 /* TODO. We should be able to replace this entire function body
2462 * with
2463 * message_pop_buffer_state();
2464 * message_push_buffer_state(new_buffer);
2465 */
2466 message_ensure_buffer_stack (yyscanner);
2467 if ( YY_CURRENT_BUFFER == new_buffer )
2468 return;
2469
2470 if ( YY_CURRENT_BUFFER )
2471 {
2472 /* Flush out information for old buffer. */
2473 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2474 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2475 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2476 }
2477
2478 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2479 message__load_buffer_state(yyscanner );
2480
2481 /* We don't actually know whether we did this switch during
2482 * EOF (message_wrap()) processing, but the only time this flag
2483 * is looked at is after message_wrap() is called, so it's safe
2484 * to go ahead and always set it.
2485 */
2486 yyg->yy_did_buffer_switch_on_eof = 1;
2487 }
2488
2489 static void message__load_buffer_state (yyscan_t yyscanner)
2490 {
2491 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2492 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2493 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos ;
2494 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2495 yyg->yy_hold_char = *yyg->yy_c_buf_p;
2496 }
2497
2498 /** Allocate and initialize an input buffer state.
2499 * @param file A readable stream.
2500 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_ SIZE.
2501 * @param yyscanner The scanner object.
2502 * @return the allocated buffer state.
2503 */
2504 YY_BUFFER_STATE message__create_buffer (FILE * file, int size , yyscan_t y yscanner)
2505 {
2506 YY_BUFFER_STATE b;
2507
2508 b = (YY_BUFFER_STATE) message_alloc(sizeof( struct yy_buffer_state ) ,yy scanner );
2509 if ( ! b )
2510 YY_FATAL_ERROR( "out of dynamic memory in message__create_buffer ()" );
2511
2512 b->yy_buf_size = size;
2513
2514 /* yy_ch_buf has to be 2 characters longer than the size given because
2515 * we need to put in 2 end-of-buffer characters.
2516 */
2517 b->yy_ch_buf = (char *) message_alloc(b->yy_buf_size + 2 ,yyscanner );
2518 if ( ! b->yy_ch_buf )
2519 YY_FATAL_ERROR( "out of dynamic memory in message__create_buffer ()" );
2520
2521 b->yy_is_our_buffer = 1;
2522
2523 message__init_buffer(b,file ,yyscanner);
2524
2525 return b;
2526 }
2527
2528 /** Destroy the buffer.
2529 * @param b a buffer created with message__create_buffer()
2530 * @param yyscanner The scanner object.
2531 */
2532 void message__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2533 {
2534 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2535
2536 if ( ! b )
2537 return;
2538
2539 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2540 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2541
2542 if ( b->yy_is_our_buffer )
2543 message_free((void *) b->yy_ch_buf ,yyscanner );
2544
2545 message_free((void *) b ,yyscanner );
2546 }
2547
2548 /* Initializes or reinitializes a buffer.
2549 * This function is sometimes called more than once on the same buffer,
2550 * such as during a message_restart() or at EOF.
2551 */
2552 static void message__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_ t yyscanner)
2553
2554 {
2555 int oerrno = errno;
2556 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2557
2558 message__flush_buffer(b ,yyscanner);
2559
2560 b->yy_input_file = file;
2561 b->yy_fill_buffer = 1;
2562
2563 /* If b is the current buffer, then message__init_buffer was _probably_
2564 * called from message_restart() or through yy_get_next_buffer.
2565 * In that case, we don't want to reset the lineno or column.
2566 */
2567 if (b != YY_CURRENT_BUFFER){
2568 b->yy_bs_lineno = 1;
2569 b->yy_bs_column = 0;
2570 }
2571
2572 b->yy_is_interactive = 0;
2573
2574 errno = oerrno;
2575 }
2576
2577 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2578 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2579 * @param yyscanner The scanner object.
2580 */
2581 void message__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2582 {
2583 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2584 if ( ! b )
2585 return;
2586
2587 b->yy_n_chars = 0;
2588
2589 /* We always need two end-of-buffer characters. The first causes
2590 * a transition to the end-of-buffer state. The second causes
2591 * a jam in that state.
2592 */
2593 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2594 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2595
2596 b->yy_buf_pos = &b->yy_ch_buf[0];
2597
2598 b->yy_at_bol = 1;
2599 b->yy_buffer_status = YY_BUFFER_NEW;
2600
2601 if ( b == YY_CURRENT_BUFFER )
2602 message__load_buffer_state(yyscanner );
2603 }
2604
2605 /** Pushes the new state onto the stack. The new state becomes
2606 * the current state. This function will allocate the stack
2607 * if necessary.
2608 * @param new_buffer The new state.
2609 * @param yyscanner The scanner object.
2610 */
2611 void message_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2612 {
2613 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2614 if (new_buffer == NULL)
2615 return;
2616
2617 message_ensure_buffer_stack(yyscanner);
2618
2619 /* This block is copied from message__switch_to_buffer. */
2620 if ( YY_CURRENT_BUFFER )
2621 {
2622 /* Flush out information for old buffer. */
2623 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2624 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2625 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2626 }
2627
2628 /* Only push if top exists. Otherwise, replace top. */
2629 if (YY_CURRENT_BUFFER)
2630 yyg->yy_buffer_stack_top++;
2631 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2632
2633 /* copied from message__switch_to_buffer. */
2634 message__load_buffer_state(yyscanner );
2635 yyg->yy_did_buffer_switch_on_eof = 1;
2636 }
2637
2638 /** Removes and deletes the top of the stack, if present.
2639 * The next element becomes the new top.
2640 * @param yyscanner The scanner object.
2641 */
2642 void message_pop_buffer_state (yyscan_t yyscanner)
2643 {
2644 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2645 if (!YY_CURRENT_BUFFER)
2646 return;
2647
2648 message__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
2649 YY_CURRENT_BUFFER_LVALUE = NULL;
2650 if (yyg->yy_buffer_stack_top > 0)
2651 --yyg->yy_buffer_stack_top;
2652
2653 if (YY_CURRENT_BUFFER) {
2654 message__load_buffer_state(yyscanner );
2655 yyg->yy_did_buffer_switch_on_eof = 1;
2656 }
2657 }
2658
2659 /* Allocates the stack if it does not exist.
2660 * Guarantees space for at least one push.
2661 */
2662 static void message_ensure_buffer_stack (yyscan_t yyscanner)
2663 {
2664 int num_to_alloc;
2665 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2666
2667 if (!yyg->yy_buffer_stack) {
2668
2669 /* First allocation is just for 2 elements, since we don't know if this
2670 * scanner will even need a stack. We use 2 instead of 1 to avoi d an
2671 * immediate realloc on the next call.
2672 */
2673 num_to_alloc = 1;
2674 yyg->yy_buffer_stack = (struct yy_buffer_state**)message_alloc
2675 (num_to_alloc * sizeof(struct yy_buffer_state*)
2676 , yyscanner);
2677 if ( ! yyg->yy_buffer_stack )
2678 YY_FATAL_ERROR( "out of dynamic memory in message_ensure _buffer_stack()" );
2679
2680 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_ buffer_state*));
2681
2682 yyg->yy_buffer_stack_max = num_to_alloc;
2683 yyg->yy_buffer_stack_top = 0;
2684 return;
2685 }
2686
2687 if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
2688
2689 /* Increase the buffer to prepare for a possible push. */
2690 int grow_size = 8 /* arbitrary grow size */;
2691
2692 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
2693 yyg->yy_buffer_stack = (struct yy_buffer_state**)message_realloc
2694 (yyg->yy_buffer_ stack,
2695 num_to_alloc * s izeof(struct yy_buffer_state*)
2696 , yyscanner);
2697 if ( ! yyg->yy_buffer_stack )
2698 YY_FATAL_ERROR( "out of dynamic memory in message_ensure _buffer_stack()" );
2699
2700 /* zero only the new slots.*/
2701 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_ size * sizeof(struct yy_buffer_state*));
2702 yyg->yy_buffer_stack_max = num_to_alloc;
2703 }
2704 }
2705
2706 /** Setup the input buffer state to scan directly from a user-specified characte r buffer.
2707 * @param base the character buffer
2708 * @param size the size in bytes of the character buffer
2709 * @param yyscanner The scanner object.
2710 * @return the newly allocated buffer state object.
2711 */
2712 YY_BUFFER_STATE message__scan_buffer (char * base, yy_size_t size , yyscan_t y yscanner)
2713 {
2714 YY_BUFFER_STATE b;
2715
2716 if ( size < 2 ||
2717 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2718 base[size-1] != YY_END_OF_BUFFER_CHAR )
2719 /* They forgot to leave room for the EOB's. */
2720 return 0;
2721
2722 b = (YY_BUFFER_STATE) message_alloc(sizeof( struct yy_buffer_state ) ,yy scanner );
2723 if ( ! b )
2724 YY_FATAL_ERROR( "out of dynamic memory in message__scan_buffer() " );
2725
2726 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2727 b->yy_buf_pos = b->yy_ch_buf = base;
2728 b->yy_is_our_buffer = 0;
2729 b->yy_input_file = 0;
2730 b->yy_n_chars = b->yy_buf_size;
2731 b->yy_is_interactive = 0;
2732 b->yy_at_bol = 1;
2733 b->yy_fill_buffer = 0;
2734 b->yy_buffer_status = YY_BUFFER_NEW;
2735
2736 message__switch_to_buffer(b ,yyscanner );
2737
2738 return b;
2739 }
2740
2741 /** Setup the input buffer state to scan a string. The next call to message_lex( ) will
2742 * scan from a @e copy of @a str.
2743 * @param yystr a NUL-terminated string to scan
2744 * @param yyscanner The scanner object.
2745 * @return the newly allocated buffer state object.
2746 * @note If you want to scan bytes that may contain NUL values, then use
2747 * message__scan_bytes() instead.
2748 */
2749 YY_BUFFER_STATE message__scan_string (yyconst char * yystr , yyscan_t yyscanner)
2750 {
2751
2752 return message__scan_bytes(yystr,strlen(yystr) ,yyscanner);
2753 }
2754
2755 /** Setup the input buffer state to scan the given bytes. The next call to messa ge_lex() will
2756 * scan from a @e copy of @a bytes.
2757 * @param yybytes the byte buffer to scan
2758 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2759 * @param yyscanner The scanner object.
2760 * @return the newly allocated buffer state object.
2761 */
2762 YY_BUFFER_STATE message__scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
2763 {
2764 YY_BUFFER_STATE b;
2765 char *buf;
2766 yy_size_t n;
2767 int i;
2768
2769 /* Get memory for full buffer, including space for trailing EOB's. */
2770 n = _yybytes_len + 2;
2771 buf = (char *) message_alloc(n ,yyscanner );
2772 if ( ! buf )
2773 YY_FATAL_ERROR( "out of dynamic memory in message__scan_bytes()" );
2774
2775 for ( i = 0; i < _yybytes_len; ++i )
2776 buf[i] = yybytes[i];
2777
2778 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2779
2780 b = message__scan_buffer(buf,n ,yyscanner);
2781 if ( ! b )
2782 YY_FATAL_ERROR( "bad buffer in message__scan_bytes()" );
2783
2784 /* It's okay to grow etc. this buffer, and we should throw it
2785 * away when we're done.
2786 */
2787 b->yy_is_our_buffer = 1;
2788
2789 return b;
2790 }
2791
2792 #ifndef YY_EXIT_FAILURE
2793 #define YY_EXIT_FAILURE 2
2794 #endif
2795
2796 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
2797 {
2798 (void) fprintf( stderr, "%s\n", msg );
2799 exit( YY_EXIT_FAILURE );
2800 }
2801
2802 /* Redefine yyless() so it works in section 3 code. */
2803
2804 #undef yyless
2805 #define yyless(n) \
2806 do \
2807 { \
2808 /* Undo effects of setting up yytext. */ \
2809 int yyless_macro_arg = (n); \
2810 YY_LESS_LINENO(yyless_macro_arg);\
2811 yytext[yyleng] = yyg->yy_hold_char; \
2812 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2813 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2814 *yyg->yy_c_buf_p = '\0'; \
2815 yyleng = yyless_macro_arg; \
2816 } \
2817 while ( 0 )
2818
2819 /* Accessor methods (get/set functions) to struct members. */
2820
2821 /** Get the user-defined data for this scanner.
2822 * @param yyscanner The scanner object.
2823 */
2824 YY_EXTRA_TYPE message_get_extra (yyscan_t yyscanner)
2825 {
2826 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2827 return yyextra;
2828 }
2829
2830 /** Get the current line number.
2831 * @param yyscanner The scanner object.
2832 */
2833 int message_get_lineno (yyscan_t yyscanner)
2834 {
2835 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2836
2837 if (! YY_CURRENT_BUFFER)
2838 return 0;
2839
2840 return yylineno;
2841 }
2842
2843 /** Get the current column number.
2844 * @param yyscanner The scanner object.
2845 */
2846 int message_get_column (yyscan_t yyscanner)
2847 {
2848 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2849
2850 if (! YY_CURRENT_BUFFER)
2851 return 0;
2852
2853 return yycolumn;
2854 }
2855
2856 /** Get the input stream.
2857 * @param yyscanner The scanner object.
2858 */
2859 FILE *message_get_in (yyscan_t yyscanner)
2860 {
2861 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2862 return yyin;
2863 }
2864
2865 /** Get the output stream.
2866 * @param yyscanner The scanner object.
2867 */
2868 FILE *message_get_out (yyscan_t yyscanner)
2869 {
2870 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2871 return yyout;
2872 }
2873
2874 /** Get the length of the current token.
2875 * @param yyscanner The scanner object.
2876 */
2877 int message_get_leng (yyscan_t yyscanner)
2878 {
2879 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2880 return yyleng;
2881 }
2882
2883 /** Get the current token.
2884 * @param yyscanner The scanner object.
2885 */
2886
2887 char *message_get_text (yyscan_t yyscanner)
2888 {
2889 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2890 return yytext;
2891 }
2892
2893 /** Set the user-defined data. This data is never touched by the scanner.
2894 * @param user_defined The data to be associated with this scanner.
2895 * @param yyscanner The scanner object.
2896 */
2897 void message_set_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
2898 {
2899 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2900 yyextra = user_defined ;
2901 }
2902
2903 /** Set the current line number.
2904 * @param line_number
2905 * @param yyscanner The scanner object.
2906 */
2907 void message_set_lineno (int line_number , yyscan_t yyscanner)
2908 {
2909 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2910
2911 /* lineno is only valid if an input buffer exists. */
2912 if (! YY_CURRENT_BUFFER )
2913 yy_fatal_error( "message_set_lineno called with no buffer" , yyscanne r);
2914
2915 yylineno = line_number;
2916 }
2917
2918 /** Set the current column.
2919 * @param line_number
2920 * @param yyscanner The scanner object.
2921 */
2922 void message_set_column (int column_no , yyscan_t yyscanner)
2923 {
2924 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2925
2926 /* column is only valid if an input buffer exists. */
2927 if (! YY_CURRENT_BUFFER )
2928 yy_fatal_error( "message_set_column called with no buffer" , yyscanne r);
2929
2930 yycolumn = column_no;
2931 }
2932
2933 /** Set the input stream. This does not discard the current
2934 * input buffer.
2935 * @param in_str A readable stream.
2936 * @param yyscanner The scanner object.
2937 * @see message__switch_to_buffer
2938 */
2939 void message_set_in (FILE * in_str , yyscan_t yyscanner)
2940 {
2941 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2942 yyin = in_str ;
2943 }
2944
2945 void message_set_out (FILE * out_str , yyscan_t yyscanner)
2946 {
2947 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2948 yyout = out_str ;
2949 }
2950
2951 int message_get_debug (yyscan_t yyscanner)
2952 {
2953 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2954 return yy_flex_debug;
2955 }
2956
2957 void message_set_debug (int bdebug , yyscan_t yyscanner)
2958 {
2959 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2960 yy_flex_debug = bdebug ;
2961 }
2962
2963 /* Accessor methods for yylval and yylloc */
2964
2965 YYSTYPE * message_get_lval (yyscan_t yyscanner)
2966 {
2967 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2968 return yylval;
2969 }
2970
2971 void message_set_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
2972 {
2973 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2974 yylval = yylval_param;
2975 }
2976
2977 /* User-visible API */
2978
2979 /* message_lex_init is special because it creates the scanner itself, so it is
2980 * the ONLY reentrant function that doesn't take the scanner as the last argumen t.
2981 * That's why we explicitly handle the declaration, instead of using our macros.
2982 */
2983
2984 int message_lex_init(yyscan_t* ptr_yy_globals)
2985
2986 {
2987 if (ptr_yy_globals == NULL){
2988 errno = EINVAL;
2989 return 1;
2990 }
2991
2992 *ptr_yy_globals = (yyscan_t) message_alloc ( sizeof( struct yyguts_t ), NULL );
2993
2994 if (*ptr_yy_globals == NULL){
2995 errno = ENOMEM;
2996 return 1;
2997 }
2998
2999 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3000 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3001
3002 return yy_init_globals ( *ptr_yy_globals );
3003 }
3004
3005 /* message_lex_init_extra has the same functionality as message_lex_init, but fo llows the
3006 * convention of taking the scanner as the last argument. Note however, that
3007 * this is a *pointer* to a scanner, as it will be allocated by this call (and
3008 * is the reason, too, why this function also must handle its own declaration).
3009 * The user defined value in the first argument will be available to message_all oc in
3010 * the yyextra field.
3011 */
3012
3013 int message_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_global s )
3014
3015 {
3016 struct yyguts_t dummy_yyguts;
3017
3018 message_set_extra (yy_user_defined, &dummy_yyguts);
3019
3020 if (ptr_yy_globals == NULL){
3021 errno = EINVAL;
3022 return 1;
3023 }
3024
3025 *ptr_yy_globals = (yyscan_t) message_alloc ( sizeof( struct yyguts_t ), &dum my_yyguts );
3026
3027 if (*ptr_yy_globals == NULL){
3028 errno = ENOMEM;
3029 return 1;
3030 }
3031
3032 /* By setting to 0xAA, we expose bugs in
3033 yy_init_globals. Leave at 0x00 for releases. */
3034 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3035
3036 message_set_extra (yy_user_defined, *ptr_yy_globals);
3037
3038 return yy_init_globals ( *ptr_yy_globals );
3039 }
3040
3041 static int yy_init_globals (yyscan_t yyscanner)
3042 {
3043 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3044 /* Initialization is the same as for the non-reentrant scanner.
3045 * This function is called from message_lex_destroy(), so don't allocate her e.
3046 */
3047
3048 yyg->yy_buffer_stack = 0;
3049 yyg->yy_buffer_stack_top = 0;
3050 yyg->yy_buffer_stack_max = 0;
3051 yyg->yy_c_buf_p = (char *) 0;
3052 yyg->yy_init = 0;
3053 yyg->yy_start = 0;
3054
3055 yyg->yy_start_stack_ptr = 0;
3056 yyg->yy_start_stack_depth = 0;
3057 yyg->yy_start_stack = NULL;
3058
3059 /* Defined in main.c */
3060 #ifdef YY_STDINIT
3061 yyin = stdin;
3062 yyout = stdout;
3063 #else
3064 yyin = (FILE *) 0;
3065 yyout = (FILE *) 0;
3066 #endif
3067
3068 /* For future reference: Set errno on error, since we are called by
3069 * message_lex_init()
3070 */
3071 return 0;
3072 }
3073
3074 /* message_lex_destroy is for both reentrant and non-reentrant scanners. */
3075 int message_lex_destroy (yyscan_t yyscanner)
3076 {
3077 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3078
3079 /* Pop the buffer stack, destroying each element. */
3080 while(YY_CURRENT_BUFFER){
3081 message__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
3082 YY_CURRENT_BUFFER_LVALUE = NULL;
3083 message_pop_buffer_state(yyscanner);
3084 }
3085
3086 /* Destroy the stack itself. */
3087 message_free(yyg->yy_buffer_stack ,yyscanner);
3088 yyg->yy_buffer_stack = NULL;
3089
3090 /* Destroy the start condition stack. */
3091 message_free(yyg->yy_start_stack ,yyscanner );
3092 yyg->yy_start_stack = NULL;
3093
3094 /* Reset the globals. This is important in a non-reentrant scanner so the ne xt time
3095 * message_lex() is called, initialization will occur. */
3096 yy_init_globals( yyscanner);
3097
3098 /* Destroy the main struct (reentrant only). */
3099 message_free ( yyscanner , yyscanner );
3100 yyscanner = NULL;
3101 return 0;
3102 }
3103
3104 /*
3105 * Internal utility routines.
3106 */
3107
3108 #ifndef yytext_ptr
3109 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yysca nner)
3110 {
3111 register int i;
3112 for ( i = 0; i < n; ++i )
3113 s1[i] = s2[i];
3114 }
3115 #endif
3116
3117 #ifdef YY_NEED_STRLEN
3118 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
3119 {
3120 register int n;
3121 for ( n = 0; s[n]; ++n )
3122 ;
3123
3124 return n;
3125 }
3126 #endif
3127
3128 void *message_alloc (yy_size_t size , yyscan_t yyscanner)
3129 {
3130 return (void *) malloc( size );
3131 }
3132
3133 void *message_realloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
3134 {
3135 /* The cast to (char *) in the following accommodates both
3136 * implementations that use char* generic pointers, and those
3137 * that use void* generic pointers. It works with the latter
3138 * because both ANSI C and C++ allow castless assignment from
3139 * any pointer type to void*, and deal with argument conversions
3140 * as though doing an assignment.
3141 */
3142 return (void *) realloc( (char *) ptr, size );
3143 }
3144
3145 void message_free (void * ptr , yyscan_t yyscanner)
3146 {
3147 free( (char *) ptr ); /* see message_realloc() for (char *) cast */
3148 }
3149
3150 #define YYTABLES_NAME "yytables"
3151
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698