Coverage Report

Created: 2026-03-31 06:48

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