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

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

Powered by Google App Engine
This is Rietveld 408576698