Coverage Report

Created: 2026-01-05 06:07

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