Coverage Report

Created: 2025-10-10 06:31

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