1 #ifdef HAVE_CONFIG_H
2 #include<config.h>
3 #endif
4 #line 2 "subprojects/gstreamer/gst/parse/lex.priv_gst_parse_yy.c"
5
6 #line 4 "subprojects/gstreamer/gst/parse/lex.priv_gst_parse_yy.c"
7
8 #define YY_INT_ALIGNED short int
9
10 /* A lexical scanner generated by flex */
11
12 #define FLEX_SCANNER
13 #define YY_FLEX_MAJOR_VERSION 2
14 #define YY_FLEX_MINOR_VERSION 6
15 #define YY_FLEX_SUBMINOR_VERSION 4
16 #if YY_FLEX_SUBMINOR_VERSION > 0
17 #define FLEX_BETA
18 #endif
19
20 #ifdef yy_create_buffer
21 #define priv_gst_parse_yy_create_buffer_ALREADY_DEFINED
22 #else
23 #define yy_create_buffer priv_gst_parse_yy_create_buffer
24 #endif
25
26 #ifdef yy_delete_buffer
27 #define priv_gst_parse_yy_delete_buffer_ALREADY_DEFINED
28 #else
29 #define yy_delete_buffer priv_gst_parse_yy_delete_buffer
30 #endif
31
32 #ifdef yy_scan_buffer
33 #define priv_gst_parse_yy_scan_buffer_ALREADY_DEFINED
34 #else
35 #define yy_scan_buffer priv_gst_parse_yy_scan_buffer
36 #endif
37
38 #ifdef yy_scan_string
39 #define priv_gst_parse_yy_scan_string_ALREADY_DEFINED
40 #else
41 #define yy_scan_string priv_gst_parse_yy_scan_string
42 #endif
43
44 #ifdef yy_scan_bytes
45 #define priv_gst_parse_yy_scan_bytes_ALREADY_DEFINED
46 #else
47 #define yy_scan_bytes priv_gst_parse_yy_scan_bytes
48 #endif
49
50 #ifdef yy_init_buffer
51 #define priv_gst_parse_yy_init_buffer_ALREADY_DEFINED
52 #else
53 #define yy_init_buffer priv_gst_parse_yy_init_buffer
54 #endif
55
56 #ifdef yy_flush_buffer
57 #define priv_gst_parse_yy_flush_buffer_ALREADY_DEFINED
58 #else
59 #define yy_flush_buffer priv_gst_parse_yy_flush_buffer
60 #endif
61
62 #ifdef yy_load_buffer_state
63 #define priv_gst_parse_yy_load_buffer_state_ALREADY_DEFINED
64 #else
65 #define yy_load_buffer_state priv_gst_parse_yy_load_buffer_state
66 #endif
67
68 #ifdef yy_switch_to_buffer
69 #define priv_gst_parse_yy_switch_to_buffer_ALREADY_DEFINED
70 #else
71 #define yy_switch_to_buffer priv_gst_parse_yy_switch_to_buffer
72 #endif
73
74 #ifdef yypush_buffer_state
75 #define priv_gst_parse_yypush_buffer_state_ALREADY_DEFINED
76 #else
77 #define yypush_buffer_state priv_gst_parse_yypush_buffer_state
78 #endif
79
80 #ifdef yypop_buffer_state
81 #define priv_gst_parse_yypop_buffer_state_ALREADY_DEFINED
82 #else
83 #define yypop_buffer_state priv_gst_parse_yypop_buffer_state
84 #endif
85
86 #ifdef yyensure_buffer_stack
87 #define priv_gst_parse_yyensure_buffer_stack_ALREADY_DEFINED
88 #else
89 #define yyensure_buffer_stack priv_gst_parse_yyensure_buffer_stack
90 #endif
91
92 #ifdef yylex
93 #define priv_gst_parse_yylex_ALREADY_DEFINED
94 #else
95 #define yylex priv_gst_parse_yylex
96 #endif
97
98 #ifdef yyrestart
99 #define priv_gst_parse_yyrestart_ALREADY_DEFINED
100 #else
101 #define yyrestart priv_gst_parse_yyrestart
102 #endif
103
104 #ifdef yylex_init
105 #define priv_gst_parse_yylex_init_ALREADY_DEFINED
106 #else
107 #define yylex_init priv_gst_parse_yylex_init
108 #endif
109
110 #ifdef yylex_init_extra
111 #define priv_gst_parse_yylex_init_extra_ALREADY_DEFINED
112 #else
113 #define yylex_init_extra priv_gst_parse_yylex_init_extra
114 #endif
115
116 #ifdef yylex_destroy
117 #define priv_gst_parse_yylex_destroy_ALREADY_DEFINED
118 #else
119 #define yylex_destroy priv_gst_parse_yylex_destroy
120 #endif
121
122 #ifdef yyget_debug
123 #define priv_gst_parse_yyget_debug_ALREADY_DEFINED
124 #else
125 #define yyget_debug priv_gst_parse_yyget_debug
126 #endif
127
128 #ifdef yyset_debug
129 #define priv_gst_parse_yyset_debug_ALREADY_DEFINED
130 #else
131 #define yyset_debug priv_gst_parse_yyset_debug
132 #endif
133
134 #ifdef yyget_extra
135 #define priv_gst_parse_yyget_extra_ALREADY_DEFINED
136 #else
137 #define yyget_extra priv_gst_parse_yyget_extra
138 #endif
139
140 #ifdef yyset_extra
141 #define priv_gst_parse_yyset_extra_ALREADY_DEFINED
142 #else
143 #define yyset_extra priv_gst_parse_yyset_extra
144 #endif
145
146 #ifdef yyget_in
147 #define priv_gst_parse_yyget_in_ALREADY_DEFINED
148 #else
149 #define yyget_in priv_gst_parse_yyget_in
150 #endif
151
152 #ifdef yyset_in
153 #define priv_gst_parse_yyset_in_ALREADY_DEFINED
154 #else
155 #define yyset_in priv_gst_parse_yyset_in
156 #endif
157
158 #ifdef yyget_out
159 #define priv_gst_parse_yyget_out_ALREADY_DEFINED
160 #else
161 #define yyget_out priv_gst_parse_yyget_out
162 #endif
163
164 #ifdef yyset_out
165 #define priv_gst_parse_yyset_out_ALREADY_DEFINED
166 #else
167 #define yyset_out priv_gst_parse_yyset_out
168 #endif
169
170 #ifdef yyget_leng
171 #define priv_gst_parse_yyget_leng_ALREADY_DEFINED
172 #else
173 #define yyget_leng priv_gst_parse_yyget_leng
174 #endif
175
176 #ifdef yyget_text
177 #define priv_gst_parse_yyget_text_ALREADY_DEFINED
178 #else
179 #define yyget_text priv_gst_parse_yyget_text
180 #endif
181
182 #ifdef yyget_lineno
183 #define priv_gst_parse_yyget_lineno_ALREADY_DEFINED
184 #else
185 #define yyget_lineno priv_gst_parse_yyget_lineno
186 #endif
187
188 #ifdef yyset_lineno
189 #define priv_gst_parse_yyset_lineno_ALREADY_DEFINED
190 #else
191 #define yyset_lineno priv_gst_parse_yyset_lineno
192 #endif
193
194 #ifdef yyget_column
195 #define priv_gst_parse_yyget_column_ALREADY_DEFINED
196 #else
197 #define yyget_column priv_gst_parse_yyget_column
198 #endif
199
200 #ifdef yyset_column
201 #define priv_gst_parse_yyset_column_ALREADY_DEFINED
202 #else
203 #define yyset_column priv_gst_parse_yyset_column
204 #endif
205
206 #ifdef yywrap
207 #define priv_gst_parse_yywrap_ALREADY_DEFINED
208 #else
209 #define yywrap priv_gst_parse_yywrap
210 #endif
211
212 #ifdef yyget_lval
213 #define priv_gst_parse_yyget_lval_ALREADY_DEFINED
214 #else
215 #define yyget_lval priv_gst_parse_yyget_lval
216 #endif
217
218 #ifdef yyset_lval
219 #define priv_gst_parse_yyset_lval_ALREADY_DEFINED
220 #else
221 #define yyset_lval priv_gst_parse_yyset_lval
222 #endif
223
224 #ifdef yyalloc
225 #define priv_gst_parse_yyalloc_ALREADY_DEFINED
226 #else
227 #define yyalloc priv_gst_parse_yyalloc
228 #endif
229
230 #ifdef yyrealloc
231 #define priv_gst_parse_yyrealloc_ALREADY_DEFINED
232 #else
233 #define yyrealloc priv_gst_parse_yyrealloc
234 #endif
235
236 #ifdef yyfree
237 #define priv_gst_parse_yyfree_ALREADY_DEFINED
238 #else
239 #define yyfree priv_gst_parse_yyfree
240 #endif
241
242 /* First, we deal with platform-specific or compiler-specific issues. */
243
244 /* begin standard C headers. */
245 #include <stdio.h>
246 #include <string.h>
247 #include <errno.h>
248 #include <stdlib.h>
249
250 /* end standard C headers. */
251
252 /* flex integer type definitions */
253
254 #ifndef FLEXINT_H
255 #define FLEXINT_H
256
257 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
258
259 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
260
261 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
262 * if you want the limit (max/min) macros for int types.
263 */
264 #ifndef __STDC_LIMIT_MACROS
265 #define __STDC_LIMIT_MACROS 1
266 #endif
267
268 #include <inttypes.h>
269 typedef int8_t flex_int8_t;
270 typedef uint8_t flex_uint8_t;
271 typedef int16_t flex_int16_t;
272 typedef uint16_t flex_uint16_t;
273 typedef int32_t flex_int32_t;
274 typedef uint32_t flex_uint32_t;
275 #else
276 typedef signed char flex_int8_t;
277 typedef short int flex_int16_t;
278 typedef int flex_int32_t;
279 typedef unsigned char flex_uint8_t;
280 typedef unsigned short int flex_uint16_t;
281 typedef unsigned int flex_uint32_t;
282
283 /* Limits of integral types. */
284 #ifndef INT8_MIN
285 #define INT8_MIN (-128)
286 #endif
287 #ifndef INT16_MIN
288 #define INT16_MIN (-32767-1)
289 #endif
290 #ifndef INT32_MIN
291 #define INT32_MIN (-2147483647-1)
292 #endif
293 #ifndef INT8_MAX
294 #define INT8_MAX (127)
295 #endif
296 #ifndef INT16_MAX
297 #define INT16_MAX (32767)
298 #endif
299 #ifndef INT32_MAX
300 #define INT32_MAX (2147483647)
301 #endif
302 #ifndef UINT8_MAX
303 #define UINT8_MAX (255U)
304 #endif
305 #ifndef UINT16_MAX
306 #define UINT16_MAX (65535U)
307 #endif
308 #ifndef UINT32_MAX
309 #define UINT32_MAX (4294967295U)
310 #endif
311
312 #ifndef SIZE_MAX
313 #define SIZE_MAX (~(size_t)0)
314 #endif
315
316 #endif /* ! C99 */
317
318 #endif /* ! FLEXINT_H */
319
320 /* begin standard C++ headers. */
321
322 /* TODO: this is always defined, so inline it */
323 #define yyconst const
324
325 #if defined(__GNUC__) && __GNUC__ >= 3
326 #define yynoreturn __attribute__((__noreturn__))
327 #else
328 #define yynoreturn
329 #endif
330
331 /* Returned upon end-of-file. */
332 #define YY_NULL 0
333
334 /* Promotes a possibly negative, possibly signed char to an
335 * integer in range [0..255] for use as an array index.
336 */
337 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
338
339 /* An opaque pointer. */
340 #ifndef YY_TYPEDEF_YY_SCANNER_T
341 #define YY_TYPEDEF_YY_SCANNER_T
342 typedef void* yyscan_t;
343 #endif
344
345 /* For convenience, these vars (plus the bison vars far below)
346 are macros in the reentrant scanner. */
347 #define yyin yyg->yyin_r
348 #define yyout yyg->yyout_r
349 #define yyextra yyg->yyextra_r
350 #define yyleng yyg->yyleng_r
351 #define yytext yyg->yytext_r
352 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
353 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
354 #define yy_flex_debug yyg->yy_flex_debug_r
355
356 /* Enter a start condition. This macro really ought to take a parameter,
357 * but we do it the disgusting crufty way forced on us by the ()-less
358 * definition of BEGIN.
359 */
360 #define BEGIN yyg->yy_start = 1 + 2 *
361 /* Translate the current start state into a value that can be later handed
362 * to BEGIN to return to the state. The YYSTATE alias is for lex
363 * compatibility.
364 */
365 #define YY_START ((yyg->yy_start - 1) / 2)
366 #define YYSTATE YY_START
367 /* Action number for EOF rule of a given start state. */
368 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
369 /* Special action meaning "start processing a new file". */
370 #define YY_NEW_FILE yyrestart( yyin , yyscanner )
371 #define YY_END_OF_BUFFER_CHAR 0
372
373 /* Size of default input buffer. */
374 #ifndef YY_BUF_SIZE
375 #ifdef __ia64__
376 /* On IA-64, the buffer size is 16k, not 8k.
377 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
378 * Ditto for the __ia64__ case accordingly.
379 */
380 #define YY_BUF_SIZE 32768
381 #else
382 #define YY_BUF_SIZE 16384
383 #endif /* __ia64__ */
384 #endif
385
386 /* The state buf must be large enough to hold one state per character in the main buffer.
387 */
388 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
389
390 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
391 #define YY_TYPEDEF_YY_BUFFER_STATE
392 typedef struct yy_buffer_state *YY_BUFFER_STATE;
393 #endif
394
395 #ifndef YY_TYPEDEF_YY_SIZE_T
396 #define YY_TYPEDEF_YY_SIZE_T
397 typedef size_t yy_size_t;
398 #endif
399
400 #define EOB_ACT_CONTINUE_SCAN 0
401 #define EOB_ACT_END_OF_FILE 1
402 #define EOB_ACT_LAST_MATCH 2
403
404 #define YY_LESS_LINENO(n)
405 #define YY_LINENO_REWIND_TO(ptr)
406
407 /* Return all but the first "n" matched characters back to the input stream. */
408 #define yyless(n) \
409 do \
410 { \
411 /* Undo effects of setting up yytext. */ \
412 int yyless_macro_arg = (n); \
413 YY_LESS_LINENO(yyless_macro_arg);\
414 *yy_cp = yyg->yy_hold_char; \
415 YY_RESTORE_YY_MORE_OFFSET \
416 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
417 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
418 } \
419 while ( 0 )
420 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
421
422 #ifndef YY_STRUCT_YY_BUFFER_STATE
423 #define YY_STRUCT_YY_BUFFER_STATE
424 struct yy_buffer_state
425 {
426 FILE *yy_input_file;
427
428 char *yy_ch_buf; /* input buffer */
429 char *yy_buf_pos; /* current position in input buffer */
430
431 /* Size of input buffer in bytes, not including room for EOB
432 * characters.
433 */
434 int yy_buf_size;
435
436 /* Number of characters read into yy_ch_buf, not including EOB
437 * characters.
438 */
439 int yy_n_chars;
440
441 /* Whether we "own" the buffer - i.e., we know we created it,
442 * and can realloc() it to grow it, and should free() it to
443 * delete it.
444 */
445 int yy_is_our_buffer;
446
447 /* Whether this is an "interactive" input source; if so, and
448 * if we're using stdio for input, then we want to use getc()
449 * instead of fread(), to make sure we stop fetching input after
450 * each newline.
451 */
452 int yy_is_interactive;
453
454 /* Whether we're considered to be at the beginning of a line.
455 * If so, '^' rules will be active on the next match, otherwise
456 * not.
457 */
458 int yy_at_bol;
459
460 int yy_bs_lineno; /**< The line count. */
461 int yy_bs_column; /**< The column count. */
462
463 /* Whether to try to fill the input buffer when we reach the
464 * end of it.
465 */
466 int yy_fill_buffer;
467
468 int yy_buffer_status;
469
470 #define YY_BUFFER_NEW 0
471 #define YY_BUFFER_NORMAL 1
472 /* When an EOF's been seen but there's still some text to process
473 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
474 * shouldn't try reading from the input source any more. We might
475 * still have a bunch of tokens to match, though, because of
476 * possible backing-up.
477 *
478 * When we actually see the EOF, we change the status to "new"
479 * (via yyrestart()), so that the user can continue scanning by
480 * just pointing yyin at a new input file.
481 */
482 #define YY_BUFFER_EOF_PENDING 2
483
484 };
485 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
486
487 /* We provide macros for accessing buffer states in case in the
488 * future we want to put the buffer states in a more general
489 * "scanner state".
490 *
491 * Returns the top of the stack, or NULL.
492 */
493 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
494 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
495 : NULL)
496 /* Same as previous macro, but useful when we know that the buffer stack is not
497 * NULL or when we need an lvalue. For internal use only.
498 */
499 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
500
501 void yyrestart ( FILE *input_file , yyscan_t yyscanner );
502 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
503 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner );
504 void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
505 void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
506 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
507 void yypop_buffer_state ( yyscan_t yyscanner );
508
509 static void yyensure_buffer_stack ( yyscan_t yyscanner );
510 static void yy_load_buffer_state ( yyscan_t yyscanner );
511 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
512 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
513
514 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
515 YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
516 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner );
517
518 void *yyalloc ( yy_size_t , yyscan_t yyscanner );
519 void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
520 void yyfree ( void * , yyscan_t yyscanner );
521
522 #define yy_new_buffer yy_create_buffer
523 #define yy_set_interactive(is_interactive) \
524 { \
525 if ( ! YY_CURRENT_BUFFER ){ \
526 yyensure_buffer_stack (yyscanner); \
527 YY_CURRENT_BUFFER_LVALUE = \
528 yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
529 } \
530 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
531 }
532 #define yy_set_bol(at_bol) \
533 { \
534 if ( ! YY_CURRENT_BUFFER ){\
535 yyensure_buffer_stack (yyscanner); \
536 YY_CURRENT_BUFFER_LVALUE = \
537 yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
538 } \
539 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
540 }
541 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
542
543 /* Begin user sect3 */
544
545 #define priv_gst_parse_yywrap(yyscanner) (/*CONSTCOND*/1)
546 #define YY_SKIP_YYWRAP
547 typedef flex_uint8_t YY_CHAR;
548
549 typedef int yy_state_type;
550
551 #define yytext_ptr yytext_r
552
553 static yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
554 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state , yyscan_t yyscanner);
555 static int yy_get_next_buffer ( yyscan_t yyscanner );
556 static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
557
558 /* Done after the current pattern has been matched and before the
559 * corresponding action - sets up yytext.
560 */
561 #define YY_DO_BEFORE_ACTION \
562 yyg->yytext_ptr = yy_bp; \
563 yyleng = (int) (yy_cp - yy_bp); \
564 yyg->yy_hold_char = *yy_cp; \
565 *yy_cp = '\0'; \
566 yyg->yy_c_buf_p = yy_cp;
567 #define YY_NUM_RULES 12
568 #define YY_END_OF_BUFFER 13
569 /* This struct is not used in this scanner,
570 but its presence is necessary. */
571 struct yy_trans_info
572 {
573 flex_int32_t yy_verify;
574 flex_int32_t yy_nxt;
575 };
576 static const flex_int16_t yy_accept[216] =
577 { 0,
578 0, 0, 0, 0, 13, 11, 10, 10, 7, 11,
579 9, 9, 11, 6, 11, 6, 6, 6, 9, 12,
580 10, 0, 0, 0, 3, 8, 8, 8, 8, 0,
581 6, 4, 0, 0, 0, 6, 4, 6, 0, 3,
582 8, 0, 8, 8, 8, 0, 8, 8, 8, 0,
583 0, 5, 4, 1, 0, 1, 1, 1, 0, 0,
584 4, 0, 0, 8, 0, 8, 8, 8, 0, 8,
585 8, 8, 4, 1, 0, 1, 1, 0, 1, 1,
586 1, 0, 4, 4, 8, 0, 0, 7, 0, 0,
587 7, 0, 0, 8, 8, 1, 0, 1, 1, 0,
588
589 1, 1, 0, 8, 8, 8, 8, 0, 0, 0,
590 7, 0, 0, 0, 0, 0, 0, 0, 7, 0,
591 0, 1, 1, 0, 8, 0, 8, 8, 0, 8,
592 8, 8, 0, 0, 0, 0, 8, 0, 8, 8,
593 0, 8, 8, 0, 0, 0, 0, 8, 8, 0,
594 0, 0, 0, 0, 7, 0, 2, 0, 2, 2,
595 2, 0, 0, 0, 0, 7, 0, 0, 0, 0,
596 7, 0, 0, 0, 0, 0, 7, 0, 0, 2,
597 0, 2, 2, 0, 2, 2, 2, 0, 0, 0,
598 7, 0, 0, 0, 0, 0, 7, 0, 0, 0,
599
600 0, 2, 0, 2, 2, 0, 2, 2, 0, 0,
601 0, 2, 2, 0, 0
602 } ;
603
604 static const YY_CHAR yy_ec[256] =
605 { 0,
606 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
607 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
608 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
609 1, 2, 4, 5, 1, 1, 6, 1, 7, 8,
610 9, 1, 10, 11, 12, 13, 14, 15, 15, 15,
611 15, 15, 15, 15, 15, 15, 15, 16, 17, 1,
612 18, 1, 1, 19, 20, 20, 20, 20, 20, 20,
613 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
614 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
615 1, 21, 1, 1, 22, 1, 20, 20, 20, 23,
616
617 24, 23, 20, 20, 23, 20, 20, 20, 20, 23,
618 20, 25, 20, 26, 27, 28, 20, 20, 20, 20,
619 20, 20, 29, 1, 29, 1, 1, 1, 1, 1,
620 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
621 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
622 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
623 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
624 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
625 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
626 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
627
628 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
629 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
630 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
631 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
632 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
633 1, 1, 1, 1, 1
634 } ;
635
636 static const YY_CHAR yy_meta[30] =
637 { 0,
638 1, 2, 3, 1, 1, 4, 1, 5, 1, 6,
639 6, 7, 8, 9, 10, 11, 1, 12, 1, 10,
640 1, 13, 10, 10, 10, 10, 10, 10, 1
641 } ;
642
643 static const flex_int16_t yy_base[266] =
644 { 0,
645 0, 0, 0, 0, 331, 1399, 28, 30, 32, 293,
646 1399, 289, 31, 37, 275, 54, 81, 242, 240, 1399,
647 39, 41, 44, 54, 0, 197, 83, 89, 47, 87,
648 201, 95, 109, 187, 196, 0, 129, 181, 0, 0,
649 104, 32, 152, 115, 126, 41, 156, 125, 52, 119,
650 158, 1399, 0, 162, 182, 165, 169, 113, 119, 112,
651 198, 109, 220, 1399, 66, 176, 189, 196, 117, 248,
652 250, 256, 0, 259, 114, 172, 263, 141, 265, 270,
653 148, 86, 286, 94, 175, 297, 0, 1399, 324, 0,
654 0, 99, 344, 195, 181, 1399, 255, 280, 272, 198,
655
656 308, 285, 69, 42, 311, 331, 277, 0, 0, 364,
657 0, 384, 411, 204, 316, 0, 0, 0, 0, 0,
658 0, 273, 274, 23, 348, 284, 341, 356, 283, 368,
659 24, 335, 0, 370, 0, 376, 1399, 369, 395, 380,
660 381, 416, 403, 426, 454, 418, 482, 371, 396, 503,
661 521, 0, 548, 0, 0, 568, 423, 588, 532, 427,
662 536, 598, 0, 625, 0, 0, 645, 0, 0, 665,
663 0, 685, 712, 0, 0, 0, 0, 0, 0, 537,
664 426, 552, 559, 479, 565, 573, 561, 0, 0, 732,
665 0, 752, 779, 0, 0, 0, 0, 0, 0, 0,
666
667 488, 1399, 576, 596, 575, 553, 585, 609, 0, 600,
668 0, 595, 598, 0, 1399, 800, 812, 814, 827, 839,
669 849, 862, 875, 888, 900, 913, 921, 926, 936, 949,
670 962, 975, 985, 998, 1011, 1024, 1034, 1047, 1060, 1073,
671 1086, 1099, 1112, 1124, 1134, 1147, 1160, 1173, 1186, 1199,
672 1212, 1225, 1232, 1242, 1255, 1268, 1281, 1294, 1307, 1320,
673 1333, 1346, 1359, 1372, 1385
674 } ;
675
676 static const flex_int16_t yy_def[266] =
677 { 0,
678 215, 1, 216, 216, 215, 215, 215, 215, 217, 215,
679 215, 218, 219, 220, 215, 215, 220, 16, 215, 215,
680 215, 217, 217, 219, 221, 219, 222, 223, 224, 215,
681 17, 225, 226, 215, 227, 16, 215, 17, 228, 221,
682 222, 229, 219, 230, 223, 231, 232, 219, 224, 215,
683 215, 215, 233, 226, 226, 234, 235, 236, 215, 215,
684 237, 215, 215, 215, 229, 222, 222, 230, 231, 223,
685 223, 232, 233, 234, 238, 239, 235, 240, 241, 226,
686 236, 215, 237, 233, 242, 63, 86, 215, 243, 63,
687 86, 244, 245, 229, 231, 215, 238, 234, 239, 240,
688
689 235, 241, 215, 242, 246, 247, 248, 86, 86, 243,
690 86, 86, 245, 244, 244, 86, 86, 110, 86, 112,
691 113, 238, 240, 215, 246, 249, 250, 247, 251, 252,
692 242, 248, 112, 112, 253, 215, 215, 249, 246, 250,
693 251, 247, 252, 86, 215, 215, 254, 249, 251, 215,
694 145, 151, 255, 145, 151, 256, 254, 254, 257, 258,
695 259, 150, 162, 260, 150, 162, 261, 151, 151, 255,
696 151, 151, 256, 151, 151, 170, 151, 172, 173, 257,
697 262, 263, 258, 264, 265, 254, 259, 162, 162, 260,
698 162, 162, 261, 162, 162, 190, 162, 192, 193, 172,
699
700 172, 215, 262, 257, 263, 264, 258, 265, 192, 192,
701 145, 262, 264, 150, 0, 215, 215, 215, 215, 215,
702 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
703 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
704 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
705 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
706 215, 215, 215, 215, 215
707 } ;
708
709 static const flex_int16_t yy_nxt[1429] =
710 { 0,
711 6, 7, 8, 9, 10, 6, 6, 11, 11, 6,
712 11, 6, 12, 13, 14, 9, 11, 11, 15, 16,
713 6, 17, 18, 18, 16, 18, 16, 18, 19, 21,
714 21, 21, 21, 22, 22, 27, 64, 28, 30, 30,
715 21, 21, 22, 22, 107, 215, 215, 64, 26, 32,
716 136, 29, 65, 26, 33, 30, 30, 39, 27, 31,
717 28, 69, 107, 35, 35, 36, 37, 49, 36, 38,
718 94, 33, 49, 36, 29, 31, 36, 36, 36, 36,
719 36, 36, 30, 30, 42, 42, 65, 43, 30, 30,
720 46, 46, 124, 32, 24, 43, 51, 51, 33, 50,
721
722 114, 114, 52, 44, 33, 42, 42, 62, 43, 47,
723 55, 55, 103, 56, 54, 57, 41, 42, 96, 67,
724 51, 51, 85, 95, 44, 62, 52, 46, 46, 58,
725 51, 51, 43, 81, 97, 68, 52, 69, 35, 35,
726 35, 35, 82, 61, 60, 29, 47, 96, 61, 54,
727 53, 61, 61, 61, 61, 61, 61, 45, 46, 51,
728 51, 100, 71, 215, 215, 52, 75, 75, 81, 54,
729 78, 78, 29, 74, 75, 54, 72, 42, 42, 105,
730 43, 106, 58, 55, 55, 76, 56, 64, 57, 79,
731 42, 42, 99, 43, 62, 107, 44, 41, 42, 64,
732
733 67, 69, 58, 73, 123, 114, 114, 35, 35, 44,
734 35, 60, 59, 84, 215, 65, 68, 29, 100, 73,
735 86, 87, 87, 88, 86, 86, 86, 86, 86, 86,
736 89, 90, 86, 86, 90, 91, 92, 86, 86, 90,
737 93, 86, 90, 90, 90, 90, 90, 90, 86, 46,
738 46, 46, 46, 24, 43, 24, 43, 45, 46, 122,
739 75, 75, 71, 54, 78, 78, 77, 78, 47, 54,
740 47, 215, 215, 74, 75, 97, 72, 96, 104, 76,
741 96, 75, 75, 79, 54, 102, 77, 78, 137, 137,
742 58, 73, 99, 97, 100, 35, 35, 132, 35, 34,
743
744 76, 84, 24, 141, 138, 102, 24, 73, 86, 78,
745 78, 86, 126, 126, 54, 104, 86, 215, 215, 86,
746 86, 86, 86, 86, 86, 109, 109, 88, 79, 135,
747 215, 127, 129, 129, 110, 215, 104, 104, 215, 111,
748 112, 215, 125, 126, 113, 117, 87, 91, 215, 126,
749 126, 130, 104, 215, 118, 132, 215, 129, 129, 119,
750 120, 140, 104, 215, 121, 109, 109, 88, 127, 128,
751 129, 87, 87, 148, 110, 137, 130, 146, 146, 111,
752 112, 125, 126, 144, 113, 133, 133, 149, 143, 138,
753 215, 138, 215, 147, 215, 134, 126, 126, 134, 104,
754
755 140, 141, 137, 134, 128, 129, 134, 134, 134, 134,
756 134, 134, 117, 87, 91, 127, 141, 129, 129, 146,
757 146, 118, 104, 143, 215, 215, 119, 120, 184, 184,
758 202, 121, 215, 157, 215, 147, 130, 150, 215, 215,
759 150, 215, 215, 161, 215, 150, 203, 185, 150, 150,
760 150, 150, 150, 150, 151, 152, 152, 88, 151, 151,
761 151, 151, 151, 151, 153, 154, 151, 151, 154, 155,
762 92, 151, 151, 154, 156, 151, 154, 154, 154, 154,
763 154, 154, 151, 158, 158, 202, 159, 215, 160, 152,
764 152, 215, 215, 215, 215, 215, 215, 215, 215, 206,
765
766 215, 211, 161, 162, 163, 163, 88, 162, 162, 162,
767 162, 162, 162, 164, 165, 162, 162, 165, 166, 92,
768 162, 162, 165, 167, 162, 165, 165, 165, 165, 165,
769 165, 162, 151, 181, 181, 151, 157, 157, 181, 181,
770 151, 157, 215, 151, 151, 151, 151, 151, 151, 169,
771 169, 88, 182, 180, 181, 215, 187, 182, 170, 213,
772 184, 184, 157, 171, 172, 157, 183, 184, 173, 175,
773 152, 155, 205, 206, 215, 215, 180, 181, 176, 185,
774 212, 187, 215, 177, 178, 208, 184, 184, 179, 158,
775 158, 157, 159, 161, 160, 205, 203, 181, 181, 202,
776
777 157, 163, 163, 215, 202, 185, 215, 215, 161, 162,
778 183, 184, 162, 214, 215, 203, 182, 162, 206, 215,
779 162, 162, 162, 162, 162, 162, 189, 189, 88, 208,
780 215, 215, 215, 215, 215, 190, 215, 215, 215, 215,
781 191, 192, 215, 215, 215, 193, 195, 163, 166, 215,
782 215, 215, 215, 215, 215, 196, 215, 215, 215, 215,
783 197, 198, 215, 215, 215, 199, 169, 169, 88, 215,
784 215, 215, 215, 215, 215, 170, 215, 215, 215, 215,
785 171, 172, 215, 215, 215, 173, 200, 200, 215, 215,
786 215, 215, 215, 215, 215, 215, 201, 215, 215, 201,
787
788 215, 215, 215, 215, 201, 215, 215, 201, 201, 201,
789 201, 201, 201, 175, 152, 155, 215, 215, 215, 215,
790 215, 215, 176, 215, 215, 215, 215, 177, 178, 215,
791 215, 215, 179, 189, 189, 88, 215, 215, 215, 215,
792 215, 215, 190, 215, 215, 215, 215, 191, 192, 215,
793 215, 215, 193, 209, 209, 215, 215, 215, 215, 215,
794 215, 215, 215, 210, 215, 215, 210, 215, 215, 215,
795 215, 210, 215, 215, 210, 210, 210, 210, 210, 210,
796 195, 163, 166, 215, 215, 215, 215, 215, 215, 196,
797 215, 215, 215, 215, 197, 198, 215, 215, 215, 199,
798
799 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
800 20, 20, 20, 23, 23, 215, 215, 215, 23, 215,
801 215, 23, 25, 25, 215, 215, 25, 26, 215, 215,
802 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
803 31, 31, 31, 215, 215, 31, 31, 215, 31, 31,
804 31, 31, 40, 215, 215, 40, 215, 215, 40, 40,
805 215, 40, 41, 41, 41, 41, 41, 41, 41, 41,
806 41, 41, 41, 41, 41, 45, 45, 45, 45, 45,
807 45, 45, 45, 45, 45, 45, 45, 45, 48, 48,
808 215, 48, 48, 48, 48, 48, 48, 48, 48, 48,
809
810 48, 53, 53, 215, 53, 215, 215, 215, 215, 53,
811 215, 215, 53, 54, 54, 54, 54, 54, 54, 54,
812 54, 54, 54, 54, 54, 54, 35, 35, 35, 215,
813 35, 35, 63, 215, 215, 63, 42, 42, 42, 42,
814 42, 42, 42, 42, 42, 42, 42, 42, 42, 66,
815 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
816 66, 66, 46, 46, 46, 46, 46, 46, 46, 46,
817 46, 46, 46, 46, 46, 70, 70, 70, 70, 70,
818 70, 70, 70, 70, 70, 70, 70, 70, 73, 215,
819 215, 73, 215, 215, 73, 73, 215, 73, 74, 74,
820
821 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
822 74, 77, 77, 77, 77, 77, 77, 77, 77, 77,
823 77, 77, 77, 77, 80, 80, 215, 80, 80, 80,
824 80, 80, 80, 80, 80, 80, 80, 83, 215, 83,
825 83, 83, 215, 83, 83, 215, 83, 75, 75, 75,
826 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
827 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
828 98, 98, 98, 78, 78, 78, 78, 78, 78, 78,
829 78, 78, 78, 78, 78, 78, 101, 101, 101, 101,
830 101, 101, 101, 101, 101, 101, 101, 101, 101, 104,
831
832 215, 215, 104, 104, 104, 104, 104, 104, 104, 104,
833 104, 104, 108, 108, 108, 108, 108, 108, 108, 108,
834 108, 108, 108, 108, 108, 115, 115, 215, 215, 215,
835 115, 215, 215, 115, 116, 116, 116, 116, 116, 116,
836 116, 116, 116, 116, 116, 116, 116, 125, 125, 125,
837 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
838 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
839 128, 128, 128, 131, 131, 215, 131, 131, 131, 131,
840 131, 131, 131, 131, 131, 131, 126, 126, 126, 126,
841 126, 126, 126, 126, 126, 126, 126, 126, 126, 139,
842
843 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
844 139, 139, 129, 129, 129, 129, 129, 129, 129, 129,
845 129, 129, 129, 129, 129, 142, 142, 142, 142, 142,
846 142, 142, 142, 142, 142, 142, 142, 142, 145, 215,
847 215, 145, 157, 157, 157, 157, 157, 157, 157, 157,
848 157, 157, 157, 157, 157, 168, 168, 168, 168, 168,
849 168, 168, 168, 168, 168, 168, 168, 168, 174, 174,
850 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
851 174, 180, 180, 180, 180, 180, 180, 180, 180, 180,
852 180, 180, 180, 180, 183, 183, 183, 183, 183, 183,
853
854 183, 183, 183, 183, 183, 183, 183, 186, 186, 215,
855 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
856 188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
857 188, 188, 188, 194, 194, 194, 194, 194, 194, 194,
858 194, 194, 194, 194, 194, 194, 181, 181, 181, 181,
859 181, 181, 181, 181, 181, 181, 181, 181, 181, 204,
860 204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
861 204, 204, 184, 184, 184, 184, 184, 184, 184, 184,
862 184, 184, 184, 184, 184, 207, 207, 207, 207, 207,
863 207, 207, 207, 207, 207, 207, 207, 207, 5, 215,
864
865 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
866 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
867 215, 215, 215, 215, 215, 215, 215, 215
868 } ;
869
870 static const flex_int16_t yy_chk[1429] =
871 { 0,
872 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
873 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
874 1, 1, 1, 1, 1, 1, 1, 1, 1, 7,
875 7, 8, 8, 9, 9, 13, 42, 13, 14, 14,
876 21, 21, 22, 22, 131, 23, 23, 46, 29, 14,
877 124, 13, 42, 49, 14, 16, 16, 23, 24, 16,
878 24, 46, 104, 16, 16, 16, 16, 29, 16, 16,
879 65, 16, 49, 16, 24, 16, 16, 16, 16, 16,
880 16, 16, 17, 17, 27, 27, 65, 27, 30, 30,
881 28, 28, 103, 17, 17, 28, 32, 32, 17, 30,
882
883 92, 92, 32, 27, 30, 41, 41, 84, 41, 28,
884 33, 33, 82, 33, 58, 33, 44, 44, 75, 44,
885 50, 50, 62, 69, 41, 60, 50, 45, 45, 33,
886 37, 37, 45, 58, 75, 44, 37, 69, 37, 37,
887 37, 37, 59, 37, 37, 48, 45, 78, 37, 81,
888 37, 37, 37, 37, 37, 37, 37, 47, 47, 51,
889 51, 78, 47, 54, 54, 51, 56, 56, 81, 56,
890 57, 57, 43, 76, 76, 57, 47, 66, 66, 85,
891 66, 85, 54, 55, 55, 56, 55, 95, 55, 57,
892 67, 67, 76, 67, 38, 85, 66, 68, 68, 94,
893
894 68, 95, 55, 61, 100, 114, 114, 61, 61, 67,
895 61, 35, 34, 61, 31, 94, 68, 26, 100, 61,
896 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
897 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
898 63, 63, 63, 63, 63, 63, 63, 63, 63, 70,
899 70, 71, 71, 19, 70, 18, 71, 72, 72, 97,
900 74, 74, 72, 74, 77, 77, 79, 79, 70, 77,
901 71, 80, 80, 99, 99, 97, 72, 122, 107, 74,
902 123, 98, 98, 77, 98, 79, 102, 102, 126, 129,
903 80, 83, 99, 122, 123, 83, 83, 107, 83, 15,
904
905 98, 83, 12, 129, 126, 102, 10, 83, 86, 101,
906 101, 86, 105, 105, 101, 105, 86, 115, 115, 86,
907 86, 86, 86, 86, 86, 89, 89, 89, 101, 115,
908 5, 105, 106, 106, 89, 0, 132, 106, 0, 89,
909 89, 0, 127, 127, 89, 93, 93, 93, 0, 125,
910 125, 106, 125, 0, 93, 132, 0, 128, 128, 93,
911 93, 127, 128, 0, 93, 110, 110, 110, 125, 130,
912 130, 134, 134, 138, 110, 148, 128, 136, 136, 110,
913 110, 140, 140, 134, 110, 112, 112, 141, 130, 138,
914 0, 148, 0, 136, 0, 112, 139, 139, 112, 139,
915
916 140, 141, 149, 112, 143, 143, 112, 112, 112, 112,
917 112, 112, 113, 113, 113, 139, 149, 142, 142, 146,
918 146, 113, 142, 143, 157, 157, 113, 113, 160, 160,
919 181, 113, 0, 160, 0, 146, 142, 144, 0, 0,
920 144, 0, 0, 157, 0, 144, 181, 160, 144, 144,
921 144, 144, 144, 144, 145, 145, 145, 145, 145, 145,
922 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
923 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
924 145, 145, 145, 147, 147, 184, 147, 0, 147, 201,
925 201, 0, 0, 0, 0, 0, 0, 0, 0, 184,
926
927 0, 201, 147, 150, 150, 150, 150, 150, 150, 150,
928 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
929 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
930 150, 150, 151, 159, 159, 151, 159, 161, 180, 180,
931 151, 180, 0, 151, 151, 151, 151, 151, 151, 153,
932 153, 153, 159, 182, 182, 0, 161, 180, 153, 206,
933 183, 183, 187, 153, 153, 183, 185, 185, 153, 156,
934 156, 156, 182, 206, 186, 186, 205, 205, 156, 183,
935 203, 187, 0, 156, 156, 185, 207, 207, 156, 158,
936 158, 207, 158, 186, 158, 205, 203, 204, 204, 212,
937
938 204, 210, 210, 0, 213, 207, 0, 0, 158, 162,
939 208, 208, 162, 210, 0, 212, 204, 162, 213, 0,
940 162, 162, 162, 162, 162, 162, 164, 164, 164, 208,
941 0, 0, 0, 0, 0, 164, 0, 0, 0, 0,
942 164, 164, 0, 0, 0, 164, 167, 167, 167, 0,
943 0, 0, 0, 0, 0, 167, 0, 0, 0, 0,
944 167, 167, 0, 0, 0, 167, 170, 170, 170, 0,
945 0, 0, 0, 0, 0, 170, 0, 0, 0, 0,
946 170, 170, 0, 0, 0, 170, 172, 172, 0, 0,
947 0, 0, 0, 0, 0, 0, 172, 0, 0, 172,
948
949 0, 0, 0, 0, 172, 0, 0, 172, 172, 172,
950 172, 172, 172, 173, 173, 173, 0, 0, 0, 0,
951 0, 0, 173, 0, 0, 0, 0, 173, 173, 0,
952 0, 0, 173, 190, 190, 190, 0, 0, 0, 0,
953 0, 0, 190, 0, 0, 0, 0, 190, 190, 0,
954 0, 0, 190, 192, 192, 0, 0, 0, 0, 0,
955 0, 0, 0, 192, 0, 0, 192, 0, 0, 0,
956 0, 192, 0, 0, 192, 192, 192, 192, 192, 192,
957 193, 193, 193, 0, 0, 0, 0, 0, 0, 193,
958 0, 0, 0, 0, 193, 193, 0, 0, 0, 193,
959
960 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
961 216, 216, 216, 217, 217, 0, 0, 0, 217, 0,
962 0, 217, 218, 218, 0, 0, 218, 219, 0, 0,
963 219, 219, 219, 219, 219, 219, 219, 219, 219, 219,
964 220, 220, 220, 0, 0, 220, 220, 0, 220, 220,
965 220, 220, 221, 0, 0, 221, 0, 0, 221, 221,
966 0, 221, 222, 222, 222, 222, 222, 222, 222, 222,
967 222, 222, 222, 222, 222, 223, 223, 223, 223, 223,
968 223, 223, 223, 223, 223, 223, 223, 223, 224, 224,
969 0, 224, 224, 224, 224, 224, 224, 224, 224, 224,
970
971 224, 225, 225, 0, 225, 0, 0, 0, 0, 225,
972 0, 0, 225, 226, 226, 226, 226, 226, 226, 226,
973 226, 226, 226, 226, 226, 226, 227, 227, 227, 0,
974 227, 227, 228, 0, 0, 228, 229, 229, 229, 229,
975 229, 229, 229, 229, 229, 229, 229, 229, 229, 230,
976 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
977 230, 230, 231, 231, 231, 231, 231, 231, 231, 231,
978 231, 231, 231, 231, 231, 232, 232, 232, 232, 232,
979 232, 232, 232, 232, 232, 232, 232, 232, 233, 0,
980 0, 233, 0, 0, 233, 233, 0, 233, 234, 234,
981
982 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
983 234, 235, 235, 235, 235, 235, 235, 235, 235, 235,
984 235, 235, 235, 235, 236, 236, 0, 236, 236, 236,
985 236, 236, 236, 236, 236, 236, 236, 237, 0, 237,
986 237, 237, 0, 237, 237, 0, 237, 238, 238, 238,
987 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
988 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
989 239, 239, 239, 240, 240, 240, 240, 240, 240, 240,
990 240, 240, 240, 240, 240, 240, 241, 241, 241, 241,
991 241, 241, 241, 241, 241, 241, 241, 241, 241, 242,
992
993 0, 0, 242, 242, 242, 242, 242, 242, 242, 242,
994 242, 242, 243, 243, 243, 243, 243, 243, 243, 243,
995 243, 243, 243, 243, 243, 244, 244, 0, 0, 0,
996 244, 0, 0, 244, 245, 245, 245, 245, 245, 245,
997 245, 245, 245, 245, 245, 245, 245, 246, 246, 246,
998 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
999 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1000 247, 247, 247, 248, 248, 0, 248, 248, 248, 248,
1001 248, 248, 248, 248, 248, 248, 249, 249, 249, 249,
1002 249, 249, 249, 249, 249, 249, 249, 249, 249, 250,
1003
1004 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
1005 250, 250, 251, 251, 251, 251, 251, 251, 251, 251,
1006 251, 251, 251, 251, 251, 252, 252, 252, 252, 252,
1007 252, 252, 252, 252, 252, 252, 252, 252, 253, 0,
1008 0, 253, 254, 254, 254, 254, 254, 254, 254, 254,
1009 254, 254, 254, 254, 254, 255, 255, 255, 255, 255,
1010 255, 255, 255, 255, 255, 255, 255, 255, 256, 256,
1011 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
1012 256, 257, 257, 257, 257, 257, 257, 257, 257, 257,
1013 257, 257, 257, 257, 258, 258, 258, 258, 258, 258,
1014
1015 258, 258, 258, 258, 258, 258, 258, 259, 259, 0,
1016 259, 259, 259, 259, 259, 259, 259, 259, 259, 259,
1017 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
1018 260, 260, 260, 261, 261, 261, 261, 261, 261, 261,
1019 261, 261, 261, 261, 261, 261, 262, 262, 262, 262,
1020 262, 262, 262, 262, 262, 262, 262, 262, 262, 263,
1021 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
1022 263, 263, 264, 264, 264, 264, 264, 264, 264, 264,
1023 264, 264, 264, 264, 264, 265, 265, 265, 265, 265,
1024 265, 265, 265, 265, 265, 265, 265, 265, 215, 215,
1025
1026 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
1027 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
1028 215, 215, 215, 215, 215, 215, 215, 215
1029 } ;
1030
1031 /* The intent behind this definition is that it'll catch
1032 * any uses of REJECT which flex missed.
1033 */
1034 #define REJECT reject_used_but_not_detected
1035 #define yymore() yymore_used_but_not_detected
1036 #define YY_MORE_ADJ 0
1037 #define YY_RESTORE_YY_MORE_OFFSET
1038 #line 1 "../subprojects/gstreamer/gst/parse/parse.l"
1039 #line 2 "../subprojects/gstreamer/gst/parse/parse.l"
1040 #include "../gst_private.h"
1041
1042 #include <math.h>
1043 #include <string.h>
1044
1045 #include <glib/gprintf.h>
1046
1047 #include "types.h"
1048 #include "../gstinfo.h"
1049 #include "../gsturi.h"
1050 #include "grammar.tab.h"
1051
1052 #ifdef malloc
1053 #undef malloc
1054 #endif
1055
1056 #ifdef free
1057 #undef free
1058 #endif
1059
1060 #ifdef realloc
1061 #undef realloc
1062 #endif
1063
1064 #define malloc g_malloc
1065 #define free g_free
1066 #define realloc g_realloc
1067
1068 /* Override the default ECHO so as to avoid fortify warnings. Ignore the
1069 embedded-NUL case for now. We know yytext is NUL-terminated. */
1070 #define ECHO g_fprintf(yyout, "%s", yytext)
1071
1072 #ifdef G_HAVE_ISO_VARARGS
1073 #define PRINT(...) GST_CAT_DEBUG (GST_CAT_PIPELINE, "flex: " __VA_ARGS__)
1074 #elif defined(G_HAVE_GNUC_VARARGS)
1075 #define PRINT(args...) GST_CAT_DEBUG (GST_CAT_PIPELINE, "flex: " args)
1076 #else
1077 static inline void
PRINT(const char * format,...)1078 PRINT (const char *format, ...)
1079 {
1080 va_list varargs;
1081
1082 va_start (varargs, format);
1083 GST_CAT_LEVEL_LOG_valist (GST_CAT_PIPELINE, GST_LEVEL_DEBUG, NULL,
1084 format, varargs);
1085 va_end (varargs);
1086 }
1087 #endif
1088
1089 #line 1087 "subprojects/gstreamer/gst/parse/lex.priv_gst_parse_yy.c"
1090 /* we must do this here, because nearly everything matches a {_string} */
1091 /* get pad/element references and stuff with dots right */
1092 /* links */
1093
1094 #define YY_NO_INPUT 1
1095 #line 1093 "subprojects/gstreamer/gst/parse/lex.priv_gst_parse_yy.c"
1096
1097 #define INITIAL 0
1098 #define value 1
1099
1100 #ifndef YY_NO_UNISTD_H
1101 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1102 * down here because we want the user's section 1 to have been scanned first.
1103 * The user has a chance to override it with an option.
1104 */
1105 #include <unistd.h>
1106 #endif
1107
1108 #ifndef YY_EXTRA_TYPE
1109 #define YY_EXTRA_TYPE void *
1110 #endif
1111
1112 /* Holds the entire state of the reentrant scanner. */
1113 struct yyguts_t
1114 {
1115
1116 /* User-defined. Not touched by flex. */
1117 YY_EXTRA_TYPE yyextra_r;
1118
1119 /* The rest are the same as the globals declared in the non-reentrant scanner. */
1120 FILE *yyin_r, *yyout_r;
1121 size_t yy_buffer_stack_top; /**< index of top of stack. */
1122 size_t yy_buffer_stack_max; /**< capacity of stack. */
1123 YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
1124 char yy_hold_char;
1125 int yy_n_chars;
1126 int yyleng_r;
1127 char *yy_c_buf_p;
1128 int yy_init;
1129 int yy_start;
1130 int yy_did_buffer_switch_on_eof;
1131 int yy_start_stack_ptr;
1132 int yy_start_stack_depth;
1133 int *yy_start_stack;
1134 yy_state_type yy_last_accepting_state;
1135 char* yy_last_accepting_cpos;
1136
1137 int yylineno_r;
1138 int yy_flex_debug_r;
1139
1140 char *yytext_r;
1141 int yy_more_flag;
1142 int yy_more_len;
1143
1144 YYSTYPE * yylval_r;
1145
1146 }; /* end struct yyguts_t */
1147
1148 static int yy_init_globals ( yyscan_t yyscanner );
1149
1150 /* This must go here because YYSTYPE and YYLTYPE are included
1151 * from bison output in section 1.*/
1152 # define yylval yyg->yylval_r
1153
1154 int yylex_init (yyscan_t* scanner);
1155
1156 int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
1157
1158 /* Accessor methods to globals.
1159 These are made visible to non-reentrant scanners for convenience. */
1160
1161 int yylex_destroy ( yyscan_t yyscanner );
1162
1163 int yyget_debug ( yyscan_t yyscanner );
1164
1165 void yyset_debug ( int debug_flag , yyscan_t yyscanner );
1166
1167 YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
1168
1169 void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
1170
1171 FILE *yyget_in ( yyscan_t yyscanner );
1172
1173 void yyset_in ( FILE * _in_str , yyscan_t yyscanner );
1174
1175 FILE *yyget_out ( yyscan_t yyscanner );
1176
1177 void yyset_out ( FILE * _out_str , yyscan_t yyscanner );
1178
1179 int yyget_leng ( yyscan_t yyscanner );
1180
1181 char *yyget_text ( yyscan_t yyscanner );
1182
1183 int yyget_lineno ( yyscan_t yyscanner );
1184
1185 void yyset_lineno ( int _line_number , yyscan_t yyscanner );
1186
1187 int yyget_column ( yyscan_t yyscanner );
1188
1189 void yyset_column ( int _column_no , yyscan_t yyscanner );
1190
1191 YYSTYPE * yyget_lval ( yyscan_t yyscanner );
1192
1193 void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner );
1194
1195 /* Macros after this point can all be overridden by user definitions in
1196 * section 1.
1197 */
1198
1199 #ifndef YY_SKIP_YYWRAP
1200 #ifdef __cplusplus
1201 extern "C" int yywrap ( yyscan_t yyscanner );
1202 #else
1203 extern int yywrap ( yyscan_t yyscanner );
1204 #endif
1205 #endif
1206
1207 #ifndef YY_NO_UNPUT
1208
1209 #endif
1210
1211 #ifndef yytext_ptr
1212 static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
1213 #endif
1214
1215 #ifdef YY_NEED_STRLEN
1216 static int yy_flex_strlen ( const char * , yyscan_t yyscanner);
1217 #endif
1218
1219 #ifndef YY_NO_INPUT
1220 #ifdef __cplusplus
1221 static int yyinput ( yyscan_t yyscanner );
1222 #else
1223 static int input ( yyscan_t yyscanner );
1224 #endif
1225
1226 #endif
1227
1228 /* Amount of stuff to slurp up with each read. */
1229 #ifndef YY_READ_BUF_SIZE
1230 #ifdef __ia64__
1231 /* On IA-64, the buffer size is 16k, not 8k */
1232 #define YY_READ_BUF_SIZE 16384
1233 #else
1234 #define YY_READ_BUF_SIZE 8192
1235 #endif /* __ia64__ */
1236 #endif
1237
1238 /* Copy whatever the last rule matched to the standard output. */
1239 #ifndef ECHO
1240 /* This used to be an fputs(), but since the string might contain NUL's,
1241 * we now use fwrite().
1242 */
1243 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1244 #endif
1245
1246 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1247 * is returned in "result".
1248 */
1249 #ifndef YY_INPUT
1250 #define YY_INPUT(buf,result,max_size) \
1251 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1252 { \
1253 int c = '*'; \
1254 int n; \
1255 for ( n = 0; n < max_size && \
1256 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1257 buf[n] = (char) c; \
1258 if ( c == '\n' ) \
1259 buf[n++] = (char) c; \
1260 if ( c == EOF && ferror( yyin ) ) \
1261 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1262 result = n; \
1263 } \
1264 else \
1265 { \
1266 errno=0; \
1267 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
1268 { \
1269 if( errno != EINTR) \
1270 { \
1271 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1272 break; \
1273 } \
1274 errno=0; \
1275 clearerr(yyin); \
1276 } \
1277 }\
1278 \
1279
1280 #endif
1281
1282 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1283 * we don't want an extra ';' after the "return" because that will cause
1284 * some compilers to complain about unreachable statements.
1285 */
1286 #ifndef yyterminate
1287 #define yyterminate() return YY_NULL
1288 #endif
1289
1290 /* Number of entries by which start-condition stack grows. */
1291 #ifndef YY_START_STACK_INCR
1292 #define YY_START_STACK_INCR 25
1293 #endif
1294
1295 /* Report a fatal error. */
1296 #ifndef YY_FATAL_ERROR
1297 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1298 #endif
1299
1300 /* end tables serialization structures and prototypes */
1301
1302 /* Default declaration of generated scanner - a define so the user can
1303 * easily add parameters.
1304 */
1305 #ifndef YY_DECL
1306 #define YY_DECL_IS_OURS 1
1307
1308 extern int yylex \
1309 (YYSTYPE * yylval_param , yyscan_t yyscanner);
1310
1311 #define YY_DECL int yylex \
1312 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1313 #endif /* !YY_DECL */
1314
1315 /* Code executed at the beginning of each rule, after yytext and yyleng
1316 * have been set up.
1317 */
1318 #ifndef YY_USER_ACTION
1319 #define YY_USER_ACTION
1320 #endif
1321
1322 /* Code executed at the end of each rule. */
1323 #ifndef YY_BREAK
1324 #define YY_BREAK /*LINTED*/break;
1325 #endif
1326
1327 #define YY_RULE_SETUP \
1328 YY_USER_ACTION
1329
1330 /** The main scanner function which does all the work.
1331 */
1332 YY_DECL
1333 {
1334 yy_state_type yy_current_state;
1335 char *yy_cp, *yy_bp;
1336 int yy_act;
1337 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1338
1339 yylval = yylval_param;
1340
1341 if ( !yyg->yy_init )
1342 {
1343 yyg->yy_init = 1;
1344
1345 #ifdef YY_USER_INIT
1346 YY_USER_INIT;
1347 #endif
1348
1349 if ( ! yyg->yy_start )
1350 yyg->yy_start = 1; /* first start state */
1351
1352 if ( ! yyin )
1353 yyin = stdin;
1354
1355 if ( ! yyout )
1356 yyout = stdout;
1357
1358 if ( ! YY_CURRENT_BUFFER ) {
1359 yyensure_buffer_stack (yyscanner);
1360 YY_CURRENT_BUFFER_LVALUE =
1361 yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
1362 }
1363
1364 yy_load_buffer_state( yyscanner );
1365 }
1366
1367 {
1368 #line 89 "../subprojects/gstreamer/gst/parse/parse.l"
1369
1370
1371 #line 1369 "subprojects/gstreamer/gst/parse/lex.priv_gst_parse_yy.c"
1372
1373 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1374 {
1375 yy_cp = yyg->yy_c_buf_p;
1376
1377 /* Support of yytext. */
1378 *yy_cp = yyg->yy_hold_char;
1379
1380 /* yy_bp points to the position in yy_ch_buf of the start of
1381 * the current run.
1382 */
1383 yy_bp = yy_cp;
1384
1385 yy_current_state = yyg->yy_start;
1386 yy_match:
1387 do
1388 {
1389 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1390 if ( yy_accept[yy_current_state] )
1391 {
1392 yyg->yy_last_accepting_state = yy_current_state;
1393 yyg->yy_last_accepting_cpos = yy_cp;
1394 }
1395 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1396 {
1397 yy_current_state = (int) yy_def[yy_current_state];
1398 if ( yy_current_state >= 216 )
1399 yy_c = yy_meta[yy_c];
1400 }
1401 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1402 ++yy_cp;
1403 }
1404 while ( yy_current_state != 215 );
1405 yy_cp = yyg->yy_last_accepting_cpos;
1406 yy_current_state = yyg->yy_last_accepting_state;
1407
1408 yy_find_action:
1409 yy_act = yy_accept[yy_current_state];
1410
1411 YY_DO_BEFORE_ACTION;
1412
1413 do_action: /* This label is used only to access EOF actions. */
1414
1415 switch ( yy_act )
1416 { /* beginning of action switch */
1417 case 0: /* must back up */
1418 /* undo the effects of YY_DO_BEFORE_ACTION */
1419 *yy_cp = yyg->yy_hold_char;
1420 yy_cp = yyg->yy_last_accepting_cpos;
1421 yy_current_state = yyg->yy_last_accepting_state;
1422 goto yy_find_action;
1423
1424 case 1:
1425 /* rule 1 can match eol */
1426 YY_RULE_SETUP
1427 #line 91 "../subprojects/gstreamer/gst/parse/parse.l"
1428 {
1429 /* "=" */
1430 PRINT ("ASSIGNMENT: %s", yytext);
1431 yylval->ss = gst_parse_strdup (yytext);
1432 BEGIN (INITIAL);
1433 return ASSIGNMENT;
1434 }
1435 YY_BREAK
1436 case 2:
1437 /* rule 2 can match eol */
1438 YY_RULE_SETUP
1439 #line 99 "../subprojects/gstreamer/gst/parse/parse.l"
1440 {
1441 gchar *pos = yytext;
1442 while (*pos && (*pos != '=')) pos++;
1443 while (*pos && g_ascii_isspace (*pos)) pos++;
1444 PRINT ("PRESET: %s", &pos[1]);
1445 yylval->ss = gst_parse_strdup (&pos[1]);
1446 BEGIN (INITIAL);
1447 return PRESET;
1448 }
1449 YY_BREAK
1450 case 3:
1451 YY_RULE_SETUP
1452 #line 109 "../subprojects/gstreamer/gst/parse/parse.l"
1453 {
1454 yytext++;
1455 PRINT ("PADREF: %s", yytext);
1456 yylval->ss = gst_parse_strdup (yytext);
1457 BEGIN (INITIAL);
1458 return PADREF;
1459 }
1460 YY_BREAK
1461 case 4:
1462 YY_RULE_SETUP
1463 #line 117 "../subprojects/gstreamer/gst/parse/parse.l"
1464 {
1465 PRINT ("REF: %s", yytext);
1466 yylval->ss = gst_parse_strdup (yytext);
1467 BEGIN (INITIAL);
1468 return REF;
1469 }
1470 YY_BREAK
1471 case 5:
1472 /* rule 5 can match eol */
1473 YY_RULE_SETUP
1474 #line 124 "../subprojects/gstreamer/gst/parse/parse.l"
1475 {
1476 gchar *pos = yytext;
1477 while (!g_ascii_isspace (*pos) && (*pos != '.')) pos++;
1478 *pos = '\0';
1479 PRINT ("BINREF: %s", yytext);
1480 yylval->ss = gst_parse_strdup (yytext);
1481 BEGIN (INITIAL);
1482 return BINREF;
1483 }
1484 YY_BREAK
1485 case 6:
1486 YY_RULE_SETUP
1487 #line 134 "../subprojects/gstreamer/gst/parse/parse.l"
1488 {
1489 PRINT ("IDENTIFIER: %s", yytext);
1490 yylval->ss = gst_parse_strdup (yytext);
1491 BEGIN (INITIAL);
1492 return IDENTIFIER;
1493 }
1494 YY_BREAK
1495 case 7:
1496 /* rule 7 can match eol */
1497 YY_RULE_SETUP
1498 #line 141 "../subprojects/gstreamer/gst/parse/parse.l"
1499 {
1500 gchar *c = yytext;
1501 gchar op;
1502 gboolean link_all;
1503
1504 PRINT ("LINK: %s", yytext);
1505 /* First char is a link operator */
1506 link_all = (*c == ':');
1507 c++;
1508 if (*c) {
1509 while (g_ascii_isspace (*c)) c++;
1510 c = yylval->ss = gst_parse_strdup (c);
1511 while (*c) c++;
1512 /* Last non-space char is a link operator */
1513 op = *--c;
1514 if (op != '!' && op != ':')
1515 g_assert_not_reached ();
1516 if (op == ':')
1517 link_all = TRUE;
1518
1519 /* Walk backward past whitespaces - what remains
1520 * is a filter caps string, or empty */
1521 while (g_ascii_isspace (*--c));
1522 *++c = '\0';
1523 } else {
1524 yylval->ss = NULL;
1525 }
1526 BEGIN (INITIAL);
1527 return link_all ? LINK_ALL : LINK;
1528 }
1529 YY_BREAK
1530 case 8:
1531 /* rule 8 can match eol */
1532 YY_RULE_SETUP
1533 #line 171 "../subprojects/gstreamer/gst/parse/parse.l"
1534 {
1535 PRINT ("URL: %s", yytext);
1536 yylval->ss = g_strdup (yytext);
1537 gst_parse_unescape (yylval->ss);
1538 BEGIN (INITIAL);
1539 return PARSE_URL;
1540 }
1541 YY_BREAK
1542 case 9:
1543 YY_RULE_SETUP
1544 #line 179 "../subprojects/gstreamer/gst/parse/parse.l"
1545 { PRINT ("OPERATOR: [%s]", yytext); return *yytext; }
1546 YY_BREAK
1547 case 10:
1548 /* rule 10 can match eol */
1549 YY_RULE_SETUP
1550 #line 181 "../subprojects/gstreamer/gst/parse/parse.l"
1551 { PRINT ("SPACE: [%s]", yytext); }
1552 YY_BREAK
1553 case 11:
1554 YY_RULE_SETUP
1555 #line 183 "../subprojects/gstreamer/gst/parse/parse.l"
1556 {
1557 PRINT ("Invalid Lexer element: %s\n", yytext);
1558 return *yytext;
1559 }
1560 YY_BREAK
1561 case 12:
1562 YY_RULE_SETUP
1563 #line 188 "../subprojects/gstreamer/gst/parse/parse.l"
1564 ECHO;
1565 YY_BREAK
1566 #line 1564 "subprojects/gstreamer/gst/parse/lex.priv_gst_parse_yy.c"
1567 case YY_STATE_EOF(INITIAL):
1568 case YY_STATE_EOF(value):
1569 yyterminate();
1570
1571 case YY_END_OF_BUFFER:
1572 {
1573 /* Amount of text matched not including the EOB char. */
1574 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1575
1576 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1577 *yy_cp = yyg->yy_hold_char;
1578 YY_RESTORE_YY_MORE_OFFSET
1579
1580 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1581 {
1582 /* We're scanning a new file or input source. It's
1583 * possible that this happened because the user
1584 * just pointed yyin at a new source and called
1585 * yylex(). If so, then we have to assure
1586 * consistency between YY_CURRENT_BUFFER and our
1587 * globals. Here is the right place to do so, because
1588 * this is the first action (other than possibly a
1589 * back-up) that will match for the new input source.
1590 */
1591 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1592 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1593 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1594 }
1595
1596 /* Note that here we test for yy_c_buf_p "<=" to the position
1597 * of the first EOB in the buffer, since yy_c_buf_p will
1598 * already have been incremented past the NUL character
1599 * (since all states make transitions on EOB to the
1600 * end-of-buffer state). Contrast this with the test
1601 * in input().
1602 */
1603 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1604 { /* This was really a NUL. */
1605 yy_state_type yy_next_state;
1606
1607 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
1608
1609 yy_current_state = yy_get_previous_state( yyscanner );
1610
1611 /* Okay, we're now positioned to make the NUL
1612 * transition. We couldn't have
1613 * yy_get_previous_state() go ahead and do it
1614 * for us because it doesn't know how to deal
1615 * with the possibility of jamming (and we don't
1616 * want to build jamming into it because then it
1617 * will run more slowly).
1618 */
1619
1620 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
1621
1622 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1623
1624 if ( yy_next_state )
1625 {
1626 /* Consume the NUL. */
1627 yy_cp = ++yyg->yy_c_buf_p;
1628 yy_current_state = yy_next_state;
1629 goto yy_match;
1630 }
1631
1632 else
1633 {
1634 yy_cp = yyg->yy_last_accepting_cpos;
1635 yy_current_state = yyg->yy_last_accepting_state;
1636 goto yy_find_action;
1637 }
1638 }
1639
1640 else switch ( yy_get_next_buffer( yyscanner ) )
1641 {
1642 case EOB_ACT_END_OF_FILE:
1643 {
1644 yyg->yy_did_buffer_switch_on_eof = 0;
1645
1646 if ( yywrap( yyscanner ) )
1647 {
1648 /* Note: because we've taken care in
1649 * yy_get_next_buffer() to have set up
1650 * yytext, we can now set up
1651 * yy_c_buf_p so that if some total
1652 * hoser (like flex itself) wants to
1653 * call the scanner after we return the
1654 * YY_NULL, it'll still work - another
1655 * YY_NULL will get returned.
1656 */
1657 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
1658
1659 yy_act = YY_STATE_EOF(YY_START);
1660 goto do_action;
1661 }
1662
1663 else
1664 {
1665 if ( ! yyg->yy_did_buffer_switch_on_eof )
1666 YY_NEW_FILE;
1667 }
1668 break;
1669 }
1670
1671 case EOB_ACT_CONTINUE_SCAN:
1672 yyg->yy_c_buf_p =
1673 yyg->yytext_ptr + yy_amount_of_matched_text;
1674
1675 yy_current_state = yy_get_previous_state( yyscanner );
1676
1677 yy_cp = yyg->yy_c_buf_p;
1678 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1679 goto yy_match;
1680
1681 case EOB_ACT_LAST_MATCH:
1682 yyg->yy_c_buf_p =
1683 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
1684
1685 yy_current_state = yy_get_previous_state( yyscanner );
1686
1687 yy_cp = yyg->yy_c_buf_p;
1688 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1689 goto yy_find_action;
1690 }
1691 break;
1692 }
1693
1694 default:
1695 YY_FATAL_ERROR(
1696 "fatal flex scanner internal error--no action found" );
1697 } /* end of action switch */
1698 } /* end of scanning one token */
1699 } /* end of user's declarations */
1700 } /* end of yylex */
1701
1702 /* yy_get_next_buffer - try to read in a new buffer
1703 *
1704 * Returns a code representing an action:
1705 * EOB_ACT_LAST_MATCH -
1706 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1707 * EOB_ACT_END_OF_FILE - end of file
1708 */
yy_get_next_buffer(yyscan_t yyscanner)1709 static int yy_get_next_buffer (yyscan_t yyscanner)
1710 {
1711 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1712 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1713 char *source = yyg->yytext_ptr;
1714 int number_to_move, i;
1715 int ret_val;
1716
1717 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
1718 YY_FATAL_ERROR(
1719 "fatal flex scanner internal error--end of buffer missed" );
1720
1721 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1722 { /* Don't try to fill the buffer, so this is an EOF. */
1723 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
1724 {
1725 /* We matched a single character, the EOB, so
1726 * treat this as a final EOF.
1727 */
1728 return EOB_ACT_END_OF_FILE;
1729 }
1730
1731 else
1732 {
1733 /* We matched some text prior to the EOB, first
1734 * process it.
1735 */
1736 return EOB_ACT_LAST_MATCH;
1737 }
1738 }
1739
1740 /* Try to read more data. */
1741
1742 /* First move last chars to start of buffer. */
1743 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
1744
1745 for ( i = 0; i < number_to_move; ++i )
1746 *(dest++) = *(source++);
1747
1748 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1749 /* don't do the read, it's not guaranteed to return an EOF,
1750 * just force an EOF
1751 */
1752 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
1753
1754 else
1755 {
1756 int num_to_read =
1757 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1758
1759 while ( num_to_read <= 0 )
1760 { /* Not enough room in the buffer - grow it. */
1761
1762 /* just a shorter name for the current buffer */
1763 YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1764
1765 int yy_c_buf_p_offset =
1766 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
1767
1768 if ( b->yy_is_our_buffer )
1769 {
1770 int new_size = b->yy_buf_size * 2;
1771
1772 if ( new_size <= 0 )
1773 b->yy_buf_size += b->yy_buf_size / 8;
1774 else
1775 b->yy_buf_size *= 2;
1776
1777 b->yy_ch_buf = (char *)
1778 /* Include room in for 2 EOB chars. */
1779 yyrealloc( (void *) b->yy_ch_buf,
1780 (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
1781 }
1782 else
1783 /* Can't grow it, we don't own it. */
1784 b->yy_ch_buf = NULL;
1785
1786 if ( ! b->yy_ch_buf )
1787 YY_FATAL_ERROR(
1788 "fatal error - scanner input buffer overflow" );
1789
1790 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1791
1792 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1793 number_to_move - 1;
1794
1795 }
1796
1797 if ( num_to_read > YY_READ_BUF_SIZE )
1798 num_to_read = YY_READ_BUF_SIZE;
1799
1800 /* Read in more data. */
1801 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1802 yyg->yy_n_chars, num_to_read );
1803
1804 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1805 }
1806
1807 if ( yyg->yy_n_chars == 0 )
1808 {
1809 if ( number_to_move == YY_MORE_ADJ )
1810 {
1811 ret_val = EOB_ACT_END_OF_FILE;
1812 yyrestart( yyin , yyscanner);
1813 }
1814
1815 else
1816 {
1817 ret_val = EOB_ACT_LAST_MATCH;
1818 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1819 YY_BUFFER_EOF_PENDING;
1820 }
1821 }
1822
1823 else
1824 ret_val = EOB_ACT_CONTINUE_SCAN;
1825
1826 if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1827 /* Extend the array by 50%, plus the number we really need. */
1828 int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
1829 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
1830 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
1831 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1832 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1833 /* "- 2" to take care of EOB's */
1834 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
1835 }
1836
1837 yyg->yy_n_chars += number_to_move;
1838 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1839 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1840
1841 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1842
1843 return ret_val;
1844 }
1845
1846 /* yy_get_previous_state - get the state just before the EOB char was reached */
1847
yy_get_previous_state(yyscan_t yyscanner)1848 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
1849 {
1850 yy_state_type yy_current_state;
1851 char *yy_cp;
1852 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1853
1854 yy_current_state = yyg->yy_start;
1855
1856 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
1857 {
1858 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1859 if ( yy_accept[yy_current_state] )
1860 {
1861 yyg->yy_last_accepting_state = yy_current_state;
1862 yyg->yy_last_accepting_cpos = yy_cp;
1863 }
1864 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1865 {
1866 yy_current_state = (int) yy_def[yy_current_state];
1867 if ( yy_current_state >= 216 )
1868 yy_c = yy_meta[yy_c];
1869 }
1870 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1871 }
1872
1873 return yy_current_state;
1874 }
1875
1876 /* yy_try_NUL_trans - try to make a transition on the NUL character
1877 *
1878 * synopsis
1879 * next_state = yy_try_NUL_trans( current_state );
1880 */
yy_try_NUL_trans(yy_state_type yy_current_state,yyscan_t yyscanner)1881 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
1882 {
1883 int yy_is_jam;
1884 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
1885 char *yy_cp = yyg->yy_c_buf_p;
1886
1887 YY_CHAR yy_c = 1;
1888 if ( yy_accept[yy_current_state] )
1889 {
1890 yyg->yy_last_accepting_state = yy_current_state;
1891 yyg->yy_last_accepting_cpos = yy_cp;
1892 }
1893 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1894 {
1895 yy_current_state = (int) yy_def[yy_current_state];
1896 if ( yy_current_state >= 216 )
1897 yy_c = yy_meta[yy_c];
1898 }
1899 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1900 yy_is_jam = (yy_current_state == 215);
1901
1902 (void)yyg;
1903 return yy_is_jam ? 0 : yy_current_state;
1904 }
1905
1906 #ifndef YY_NO_UNPUT
1907
1908 #endif
1909
1910 #ifndef YY_NO_INPUT
1911 #ifdef __cplusplus
yyinput(yyscan_t yyscanner)1912 static int yyinput (yyscan_t yyscanner)
1913 #else
1914 static int input (yyscan_t yyscanner)
1915 #endif
1916
1917 {
1918 int c;
1919 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1920
1921 *yyg->yy_c_buf_p = yyg->yy_hold_char;
1922
1923 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1924 {
1925 /* yy_c_buf_p now points to the character we want to return.
1926 * If this occurs *before* the EOB characters, then it's a
1927 * valid NUL; if not, then we've hit the end of the buffer.
1928 */
1929 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1930 /* This was really a NUL. */
1931 *yyg->yy_c_buf_p = '\0';
1932
1933 else
1934 { /* need more input */
1935 int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
1936 ++yyg->yy_c_buf_p;
1937
1938 switch ( yy_get_next_buffer( yyscanner ) )
1939 {
1940 case EOB_ACT_LAST_MATCH:
1941 /* This happens because yy_g_n_b()
1942 * sees that we've accumulated a
1943 * token and flags that we need to
1944 * try matching the token before
1945 * proceeding. But for input(),
1946 * there's no matching to consider.
1947 * So convert the EOB_ACT_LAST_MATCH
1948 * to EOB_ACT_END_OF_FILE.
1949 */
1950
1951 /* Reset buffer status. */
1952 yyrestart( yyin , yyscanner);
1953
1954 /*FALLTHROUGH*/
1955
1956 case EOB_ACT_END_OF_FILE:
1957 {
1958 if ( yywrap( yyscanner ) )
1959 return 0;
1960
1961 if ( ! yyg->yy_did_buffer_switch_on_eof )
1962 YY_NEW_FILE;
1963 #ifdef __cplusplus
1964 return yyinput(yyscanner);
1965 #else
1966 return input(yyscanner);
1967 #endif
1968 }
1969
1970 case EOB_ACT_CONTINUE_SCAN:
1971 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
1972 break;
1973 }
1974 }
1975 }
1976
1977 c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
1978 *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
1979 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
1980
1981 return c;
1982 }
1983 #endif /* ifndef YY_NO_INPUT */
1984
1985 /** Immediately switch to a different input stream.
1986 * @param input_file A readable stream.
1987 * @param yyscanner The scanner object.
1988 * @note This function does not reset the start condition to @c INITIAL .
1989 */
yyrestart(FILE * input_file,yyscan_t yyscanner)1990 void yyrestart (FILE * input_file , yyscan_t yyscanner)
1991 {
1992 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1993
1994 if ( ! YY_CURRENT_BUFFER ){
1995 yyensure_buffer_stack (yyscanner);
1996 YY_CURRENT_BUFFER_LVALUE =
1997 yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
1998 }
1999
2000 yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
2001 yy_load_buffer_state( yyscanner );
2002 }
2003
2004 /** Switch to a different input buffer.
2005 * @param new_buffer The new input buffer.
2006 * @param yyscanner The scanner object.
2007 */
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)2008 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2009 {
2010 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2011
2012 /* TODO. We should be able to replace this entire function body
2013 * with
2014 * yypop_buffer_state();
2015 * yypush_buffer_state(new_buffer);
2016 */
2017 yyensure_buffer_stack (yyscanner);
2018 if ( YY_CURRENT_BUFFER == new_buffer )
2019 return;
2020
2021 if ( YY_CURRENT_BUFFER )
2022 {
2023 /* Flush out information for old buffer. */
2024 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2025 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2026 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2027 }
2028
2029 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2030 yy_load_buffer_state( yyscanner );
2031
2032 /* We don't actually know whether we did this switch during
2033 * EOF (yywrap()) processing, but the only time this flag
2034 * is looked at is after yywrap() is called, so it's safe
2035 * to go ahead and always set it.
2036 */
2037 yyg->yy_did_buffer_switch_on_eof = 1;
2038 }
2039
yy_load_buffer_state(yyscan_t yyscanner)2040 static void yy_load_buffer_state (yyscan_t yyscanner)
2041 {
2042 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2043 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2044 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2045 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2046 yyg->yy_hold_char = *yyg->yy_c_buf_p;
2047 }
2048
2049 /** Allocate and initialize an input buffer state.
2050 * @param file A readable stream.
2051 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2052 * @param yyscanner The scanner object.
2053 * @return the allocated buffer state.
2054 */
yy_create_buffer(FILE * file,int size,yyscan_t yyscanner)2055 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size , yyscan_t yyscanner)
2056 {
2057 YY_BUFFER_STATE b;
2058
2059 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
2060 if ( ! b )
2061 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2062
2063 b->yy_buf_size = size;
2064
2065 /* yy_ch_buf has to be 2 characters longer than the size given because
2066 * we need to put in 2 end-of-buffer characters.
2067 */
2068 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
2069 if ( ! b->yy_ch_buf )
2070 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2071
2072 b->yy_is_our_buffer = 1;
2073
2074 yy_init_buffer( b, file , yyscanner);
2075
2076 return b;
2077 }
2078
2079 /** Destroy the buffer.
2080 * @param b a buffer created with yy_create_buffer()
2081 * @param yyscanner The scanner object.
2082 */
yy_delete_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)2083 void yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2084 {
2085 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2086
2087 if ( ! b )
2088 return;
2089
2090 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2091 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2092
2093 if ( b->yy_is_our_buffer )
2094 yyfree( (void *) b->yy_ch_buf , yyscanner );
2095
2096 yyfree( (void *) b , yyscanner );
2097 }
2098
2099 /* Initializes or reinitializes a buffer.
2100 * This function is sometimes called more than once on the same buffer,
2101 * such as during a yyrestart() or at EOF.
2102 */
yy_init_buffer(YY_BUFFER_STATE b,FILE * file,yyscan_t yyscanner)2103 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
2104
2105 {
2106 int oerrno = errno;
2107 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2108
2109 yy_flush_buffer( b , yyscanner);
2110
2111 b->yy_input_file = file;
2112 b->yy_fill_buffer = 1;
2113
2114 /* If b is the current buffer, then yy_init_buffer was _probably_
2115 * called from yyrestart() or through yy_get_next_buffer.
2116 * In that case, we don't want to reset the lineno or column.
2117 */
2118 if (b != YY_CURRENT_BUFFER){
2119 b->yy_bs_lineno = 1;
2120 b->yy_bs_column = 0;
2121 }
2122
2123 b->yy_is_interactive = 0;
2124
2125 errno = oerrno;
2126 }
2127
2128 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2129 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2130 * @param yyscanner The scanner object.
2131 */
yy_flush_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)2132 void yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2133 {
2134 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2135 if ( ! b )
2136 return;
2137
2138 b->yy_n_chars = 0;
2139
2140 /* We always need two end-of-buffer characters. The first causes
2141 * a transition to the end-of-buffer state. The second causes
2142 * a jam in that state.
2143 */
2144 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2145 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2146
2147 b->yy_buf_pos = &b->yy_ch_buf[0];
2148
2149 b->yy_at_bol = 1;
2150 b->yy_buffer_status = YY_BUFFER_NEW;
2151
2152 if ( b == YY_CURRENT_BUFFER )
2153 yy_load_buffer_state( yyscanner );
2154 }
2155
2156 /** Pushes the new state onto the stack. The new state becomes
2157 * the current state. This function will allocate the stack
2158 * if necessary.
2159 * @param new_buffer The new state.
2160 * @param yyscanner The scanner object.
2161 */
yypush_buffer_state(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)2162 void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2163 {
2164 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2165 if (new_buffer == NULL)
2166 return;
2167
2168 yyensure_buffer_stack(yyscanner);
2169
2170 /* This block is copied from yy_switch_to_buffer. */
2171 if ( YY_CURRENT_BUFFER )
2172 {
2173 /* Flush out information for old buffer. */
2174 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2175 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2176 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2177 }
2178
2179 /* Only push if top exists. Otherwise, replace top. */
2180 if (YY_CURRENT_BUFFER)
2181 yyg->yy_buffer_stack_top++;
2182 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2183
2184 /* copied from yy_switch_to_buffer. */
2185 yy_load_buffer_state( yyscanner );
2186 yyg->yy_did_buffer_switch_on_eof = 1;
2187 }
2188
2189 /** Removes and deletes the top of the stack, if present.
2190 * The next element becomes the new top.
2191 * @param yyscanner The scanner object.
2192 */
yypop_buffer_state(yyscan_t yyscanner)2193 void yypop_buffer_state (yyscan_t yyscanner)
2194 {
2195 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2196 if (!YY_CURRENT_BUFFER)
2197 return;
2198
2199 yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner);
2200 YY_CURRENT_BUFFER_LVALUE = NULL;
2201 if (yyg->yy_buffer_stack_top > 0)
2202 --yyg->yy_buffer_stack_top;
2203
2204 if (YY_CURRENT_BUFFER) {
2205 yy_load_buffer_state( yyscanner );
2206 yyg->yy_did_buffer_switch_on_eof = 1;
2207 }
2208 }
2209
2210 /* Allocates the stack if it does not exist.
2211 * Guarantees space for at least one push.
2212 */
yyensure_buffer_stack(yyscan_t yyscanner)2213 static void yyensure_buffer_stack (yyscan_t yyscanner)
2214 {
2215 yy_size_t num_to_alloc;
2216 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2217
2218 if (!yyg->yy_buffer_stack) {
2219
2220 /* First allocation is just for 2 elements, since we don't know if this
2221 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2222 * immediate realloc on the next call.
2223 */
2224 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
2225 yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
2226 (num_to_alloc * sizeof(struct yy_buffer_state*)
2227 , yyscanner);
2228 if ( ! yyg->yy_buffer_stack )
2229 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2230
2231 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2232
2233 yyg->yy_buffer_stack_max = num_to_alloc;
2234 yyg->yy_buffer_stack_top = 0;
2235 return;
2236 }
2237
2238 if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
2239
2240 /* Increase the buffer to prepare for a possible push. */
2241 yy_size_t grow_size = 8 /* arbitrary grow size */;
2242
2243 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
2244 yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
2245 (yyg->yy_buffer_stack,
2246 num_to_alloc * sizeof(struct yy_buffer_state*)
2247 , yyscanner);
2248 if ( ! yyg->yy_buffer_stack )
2249 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2250
2251 /* zero only the new slots.*/
2252 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
2253 yyg->yy_buffer_stack_max = num_to_alloc;
2254 }
2255 }
2256
2257 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2258 * @param base the character buffer
2259 * @param size the size in bytes of the character buffer
2260 * @param yyscanner The scanner object.
2261 * @return the newly allocated buffer state object.
2262 */
yy_scan_buffer(char * base,yy_size_t size,yyscan_t yyscanner)2263 YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
2264 {
2265 YY_BUFFER_STATE b;
2266
2267 if ( size < 2 ||
2268 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2269 base[size-1] != YY_END_OF_BUFFER_CHAR )
2270 /* They forgot to leave room for the EOB's. */
2271 return NULL;
2272
2273 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
2274 if ( ! b )
2275 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2276
2277 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
2278 b->yy_buf_pos = b->yy_ch_buf = base;
2279 b->yy_is_our_buffer = 0;
2280 b->yy_input_file = NULL;
2281 b->yy_n_chars = b->yy_buf_size;
2282 b->yy_is_interactive = 0;
2283 b->yy_at_bol = 1;
2284 b->yy_fill_buffer = 0;
2285 b->yy_buffer_status = YY_BUFFER_NEW;
2286
2287 yy_switch_to_buffer( b , yyscanner );
2288
2289 return b;
2290 }
2291
2292 /** Setup the input buffer state to scan a string. The next call to yylex() will
2293 * scan from a @e copy of @a str.
2294 * @param yystr a NUL-terminated string to scan
2295 * @param yyscanner The scanner object.
2296 * @return the newly allocated buffer state object.
2297 * @note If you want to scan bytes that may contain NUL values, then use
2298 * yy_scan_bytes() instead.
2299 */
yy_scan_string(const char * yystr,yyscan_t yyscanner)2300 YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
2301 {
2302
2303 return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner);
2304 }
2305
2306 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2307 * scan from a @e copy of @a bytes.
2308 * @param yybytes the byte buffer to scan
2309 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2310 * @param yyscanner The scanner object.
2311 * @return the newly allocated buffer state object.
2312 */
yy_scan_bytes(const char * yybytes,int _yybytes_len,yyscan_t yyscanner)2313 YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len , yyscan_t yyscanner)
2314 {
2315 YY_BUFFER_STATE b;
2316 char *buf;
2317 yy_size_t n;
2318 int i;
2319
2320 /* Get memory for full buffer, including space for trailing EOB's. */
2321 n = (yy_size_t) (_yybytes_len + 2);
2322 buf = (char *) yyalloc( n , yyscanner );
2323 if ( ! buf )
2324 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2325
2326 for ( i = 0; i < _yybytes_len; ++i )
2327 buf[i] = yybytes[i];
2328
2329 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2330
2331 b = yy_scan_buffer( buf, n , yyscanner);
2332 if ( ! b )
2333 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2334
2335 /* It's okay to grow etc. this buffer, and we should throw it
2336 * away when we're done.
2337 */
2338 b->yy_is_our_buffer = 1;
2339
2340 return b;
2341 }
2342
2343 #ifndef YY_EXIT_FAILURE
2344 #define YY_EXIT_FAILURE 2
2345 #endif
2346
yy_fatal_error(const char * msg,yyscan_t yyscanner)2347 static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner)
2348 {
2349 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2350 (void)yyg;
2351 fprintf( stderr, "%s\n", msg );
2352 exit( YY_EXIT_FAILURE );
2353 }
2354
2355 /* Redefine yyless() so it works in section 3 code. */
2356
2357 #undef yyless
2358 #define yyless(n) \
2359 do \
2360 { \
2361 /* Undo effects of setting up yytext. */ \
2362 int yyless_macro_arg = (n); \
2363 YY_LESS_LINENO(yyless_macro_arg);\
2364 yytext[yyleng] = yyg->yy_hold_char; \
2365 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2366 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2367 *yyg->yy_c_buf_p = '\0'; \
2368 yyleng = yyless_macro_arg; \
2369 } \
2370 while ( 0 )
2371
2372 /* Accessor methods (get/set functions) to struct members. */
2373
2374 /** Get the user-defined data for this scanner.
2375 * @param yyscanner The scanner object.
2376 */
yyget_extra(yyscan_t yyscanner)2377 YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner)
2378 {
2379 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2380 return yyextra;
2381 }
2382
2383 /** Get the current line number.
2384 * @param yyscanner The scanner object.
2385 */
yyget_lineno(yyscan_t yyscanner)2386 int yyget_lineno (yyscan_t yyscanner)
2387 {
2388 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2389
2390 if (! YY_CURRENT_BUFFER)
2391 return 0;
2392
2393 return yylineno;
2394 }
2395
2396 /** Get the current column number.
2397 * @param yyscanner The scanner object.
2398 */
yyget_column(yyscan_t yyscanner)2399 int yyget_column (yyscan_t yyscanner)
2400 {
2401 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2402
2403 if (! YY_CURRENT_BUFFER)
2404 return 0;
2405
2406 return yycolumn;
2407 }
2408
2409 /** Get the input stream.
2410 * @param yyscanner The scanner object.
2411 */
yyget_in(yyscan_t yyscanner)2412 FILE *yyget_in (yyscan_t yyscanner)
2413 {
2414 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2415 return yyin;
2416 }
2417
2418 /** Get the output stream.
2419 * @param yyscanner The scanner object.
2420 */
yyget_out(yyscan_t yyscanner)2421 FILE *yyget_out (yyscan_t yyscanner)
2422 {
2423 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2424 return yyout;
2425 }
2426
2427 /** Get the length of the current token.
2428 * @param yyscanner The scanner object.
2429 */
yyget_leng(yyscan_t yyscanner)2430 int yyget_leng (yyscan_t yyscanner)
2431 {
2432 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2433 return yyleng;
2434 }
2435
2436 /** Get the current token.
2437 * @param yyscanner The scanner object.
2438 */
2439
yyget_text(yyscan_t yyscanner)2440 char *yyget_text (yyscan_t yyscanner)
2441 {
2442 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2443 return yytext;
2444 }
2445
2446 /** Set the user-defined data. This data is never touched by the scanner.
2447 * @param user_defined The data to be associated with this scanner.
2448 * @param yyscanner The scanner object.
2449 */
yyset_extra(YY_EXTRA_TYPE user_defined,yyscan_t yyscanner)2450 void yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
2451 {
2452 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2453 yyextra = user_defined ;
2454 }
2455
2456 /** Set the current line number.
2457 * @param _line_number line number
2458 * @param yyscanner The scanner object.
2459 */
yyset_lineno(int _line_number,yyscan_t yyscanner)2460 void yyset_lineno (int _line_number , yyscan_t yyscanner)
2461 {
2462 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2463
2464 /* lineno is only valid if an input buffer exists. */
2465 if (! YY_CURRENT_BUFFER )
2466 YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
2467
2468 yylineno = _line_number;
2469 }
2470
2471 /** Set the current column.
2472 * @param _column_no column number
2473 * @param yyscanner The scanner object.
2474 */
yyset_column(int _column_no,yyscan_t yyscanner)2475 void yyset_column (int _column_no , yyscan_t yyscanner)
2476 {
2477 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2478
2479 /* column is only valid if an input buffer exists. */
2480 if (! YY_CURRENT_BUFFER )
2481 YY_FATAL_ERROR( "yyset_column called with no buffer" );
2482
2483 yycolumn = _column_no;
2484 }
2485
2486 /** Set the input stream. This does not discard the current
2487 * input buffer.
2488 * @param _in_str A readable stream.
2489 * @param yyscanner The scanner object.
2490 * @see yy_switch_to_buffer
2491 */
yyset_in(FILE * _in_str,yyscan_t yyscanner)2492 void yyset_in (FILE * _in_str , yyscan_t yyscanner)
2493 {
2494 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2495 yyin = _in_str ;
2496 }
2497
yyset_out(FILE * _out_str,yyscan_t yyscanner)2498 void yyset_out (FILE * _out_str , yyscan_t yyscanner)
2499 {
2500 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2501 yyout = _out_str ;
2502 }
2503
yyget_debug(yyscan_t yyscanner)2504 int yyget_debug (yyscan_t yyscanner)
2505 {
2506 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2507 return yy_flex_debug;
2508 }
2509
yyset_debug(int _bdebug,yyscan_t yyscanner)2510 void yyset_debug (int _bdebug , yyscan_t yyscanner)
2511 {
2512 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2513 yy_flex_debug = _bdebug ;
2514 }
2515
2516 /* Accessor methods for yylval and yylloc */
2517
yyget_lval(yyscan_t yyscanner)2518 YYSTYPE * yyget_lval (yyscan_t yyscanner)
2519 {
2520 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2521 return yylval;
2522 }
2523
yyset_lval(YYSTYPE * yylval_param,yyscan_t yyscanner)2524 void yyset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
2525 {
2526 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2527 yylval = yylval_param;
2528 }
2529
2530 /* User-visible API */
2531
2532 /* yylex_init is special because it creates the scanner itself, so it is
2533 * the ONLY reentrant function that doesn't take the scanner as the last argument.
2534 * That's why we explicitly handle the declaration, instead of using our macros.
2535 */
yylex_init(yyscan_t * ptr_yy_globals)2536 int yylex_init(yyscan_t* ptr_yy_globals)
2537 {
2538 if (ptr_yy_globals == NULL){
2539 errno = EINVAL;
2540 return 1;
2541 }
2542
2543 *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
2544
2545 if (*ptr_yy_globals == NULL){
2546 errno = ENOMEM;
2547 return 1;
2548 }
2549
2550 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
2551 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
2552
2553 return yy_init_globals ( *ptr_yy_globals );
2554 }
2555
2556 /* yylex_init_extra has the same functionality as yylex_init, but follows the
2557 * convention of taking the scanner as the last argument. Note however, that
2558 * this is a *pointer* to a scanner, as it will be allocated by this call (and
2559 * is the reason, too, why this function also must handle its own declaration).
2560 * The user defined value in the first argument will be available to yyalloc in
2561 * the yyextra field.
2562 */
yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t * ptr_yy_globals)2563 int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
2564 {
2565 struct yyguts_t dummy_yyguts;
2566
2567 yyset_extra (yy_user_defined, &dummy_yyguts);
2568
2569 if (ptr_yy_globals == NULL){
2570 errno = EINVAL;
2571 return 1;
2572 }
2573
2574 *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
2575
2576 if (*ptr_yy_globals == NULL){
2577 errno = ENOMEM;
2578 return 1;
2579 }
2580
2581 /* By setting to 0xAA, we expose bugs in
2582 yy_init_globals. Leave at 0x00 for releases. */
2583 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
2584
2585 yyset_extra (yy_user_defined, *ptr_yy_globals);
2586
2587 return yy_init_globals ( *ptr_yy_globals );
2588 }
2589
yy_init_globals(yyscan_t yyscanner)2590 static int yy_init_globals (yyscan_t yyscanner)
2591 {
2592 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2593 /* Initialization is the same as for the non-reentrant scanner.
2594 * This function is called from yylex_destroy(), so don't allocate here.
2595 */
2596
2597 yyg->yy_buffer_stack = NULL;
2598 yyg->yy_buffer_stack_top = 0;
2599 yyg->yy_buffer_stack_max = 0;
2600 yyg->yy_c_buf_p = NULL;
2601 yyg->yy_init = 0;
2602 yyg->yy_start = 0;
2603
2604 yyg->yy_start_stack_ptr = 0;
2605 yyg->yy_start_stack_depth = 0;
2606 yyg->yy_start_stack = NULL;
2607
2608 /* Defined in main.c */
2609 #ifdef YY_STDINIT
2610 yyin = stdin;
2611 yyout = stdout;
2612 #else
2613 yyin = NULL;
2614 yyout = NULL;
2615 #endif
2616
2617 /* For future reference: Set errno on error, since we are called by
2618 * yylex_init()
2619 */
2620 return 0;
2621 }
2622
2623 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
yylex_destroy(yyscan_t yyscanner)2624 int yylex_destroy (yyscan_t yyscanner)
2625 {
2626 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2627
2628 /* Pop the buffer stack, destroying each element. */
2629 while(YY_CURRENT_BUFFER){
2630 yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner );
2631 YY_CURRENT_BUFFER_LVALUE = NULL;
2632 yypop_buffer_state(yyscanner);
2633 }
2634
2635 /* Destroy the stack itself. */
2636 yyfree(yyg->yy_buffer_stack , yyscanner);
2637 yyg->yy_buffer_stack = NULL;
2638
2639 /* Destroy the start condition stack. */
2640 yyfree( yyg->yy_start_stack , yyscanner );
2641 yyg->yy_start_stack = NULL;
2642
2643 /* Reset the globals. This is important in a non-reentrant scanner so the next time
2644 * yylex() is called, initialization will occur. */
2645 yy_init_globals( yyscanner);
2646
2647 /* Destroy the main struct (reentrant only). */
2648 yyfree ( yyscanner , yyscanner );
2649 yyscanner = NULL;
2650 return 0;
2651 }
2652
2653 /*
2654 * Internal utility routines.
2655 */
2656
2657 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,const char * s2,int n,yyscan_t yyscanner)2658 static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
2659 {
2660 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2661 (void)yyg;
2662
2663 int i;
2664 for ( i = 0; i < n; ++i )
2665 s1[i] = s2[i];
2666 }
2667 #endif
2668
2669 #ifdef YY_NEED_STRLEN
yy_flex_strlen(const char * s,yyscan_t yyscanner)2670 static int yy_flex_strlen (const char * s , yyscan_t yyscanner)
2671 {
2672 int n;
2673 for ( n = 0; s[n]; ++n )
2674 ;
2675
2676 return n;
2677 }
2678 #endif
2679
yyalloc(yy_size_t size,yyscan_t yyscanner)2680 void *yyalloc (yy_size_t size , yyscan_t yyscanner)
2681 {
2682 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2683 (void)yyg;
2684 return malloc(size);
2685 }
2686
yyrealloc(void * ptr,yy_size_t size,yyscan_t yyscanner)2687 void *yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
2688 {
2689 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2690 (void)yyg;
2691
2692 /* The cast to (char *) in the following accommodates both
2693 * implementations that use char* generic pointers, and those
2694 * that use void* generic pointers. It works with the latter
2695 * because both ANSI C and C++ allow castless assignment from
2696 * any pointer type to void*, and deal with argument conversions
2697 * as though doing an assignment.
2698 */
2699 return realloc(ptr, size);
2700 }
2701
yyfree(void * ptr,yyscan_t yyscanner)2702 void yyfree (void * ptr , yyscan_t yyscanner)
2703 {
2704 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2705 (void)yyg;
2706 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
2707 }
2708
2709 #define YYTABLES_NAME "yytables"
2710
2711 #line 188 "../subprojects/gstreamer/gst/parse/parse.l"
2712
2713
2714