Coverage Report

Created: 2026-10-28 06:38

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