Coverage Report

Created: 2026-10-28 06:38

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/CMake/Source/LexerParser/cmFortranParser.cxx
Line
Count
Source
1
/* A Bison parser, made by GNU Bison 3.8.2.  */
2
3
/* Bison implementation for Yacc-like parsers in C
4
5
   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6
   Inc.
7
8
   This program is free software: you can redistribute it and/or modify
9
   it under the terms of the GNU General Public License as published by
10
   the Free Software Foundation, either version 3 of the License, or
11
   (at your option) any later version.
12
13
   This program is distributed in the hope that it will be useful,
14
   but WITHOUT ANY WARRANTY; without even the implied warranty of
15
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
   GNU General Public License for more details.
17
18
   You should have received a copy of the GNU General Public License
19
   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
20
21
/* As a special exception, you may create a larger work that contains
22
   part or all of the Bison parser skeleton and distribute that work
23
   under terms of your choice, so long as that work isn't itself a
24
   parser generator using the skeleton or a modified version thereof
25
   as a parser skeleton.  Alternatively, if you modify or redistribute
26
   the parser skeleton itself, you may (at your option) remove this
27
   special exception, which will cause the skeleton and the resulting
28
   Bison output files to be licensed under the GNU General Public
29
   License without this special exception.
30
31
   This special exception was added by the Free Software Foundation in
32
   version 2.2 of Bison.  */
33
34
/* C LALR(1) parser skeleton written by Richard Stallman, by
35
   simplifying the original so-called "semantic" parser.  */
36
37
/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38
   especially those whose name start with YY_ or yy_.  They are
39
   private implementation details that can be changed or removed.  */
40
41
/* All symbols defined below should begin with yy or YY, to avoid
42
   infringing on user name space.  This should be done even for local
43
   variables, as they might otherwise be expanded by user macros.
44
   There are some unavoidable exceptions within include files to
45
   define necessary library symbols; they are noted "INFRINGES ON
46
   USER NAME SPACE" below.  */
47
48
/* Identify Bison output, and Bison version.  */
49
#define YYBISON 30802
50
51
/* Bison version string.  */
52
#define YYBISON_VERSION "3.8.2"
53
54
/* Skeleton name.  */
55
#define YYSKELETON_NAME "yacc.c"
56
57
/* Pure parsers.  */
58
#define YYPURE 1
59
60
/* Push parsers.  */
61
#define YYPUSH 0
62
63
/* Pull parsers.  */
64
#define YYPULL 1
65
66
67
/* Substitute the variable and function names.  */
68
#define yyparse         cmFortran_yyparse
69
6.55M
#define yylex           cmFortran_yylex
70
72.5k
#define yyerror         cmFortran_yyerror
71
#define yydebug         cmFortran_yydebug
72
72.5k
#define yynerrs         cmFortran_yynerrs
73
74
/* First part of user prologue.  */
75
#line 1 "cmFortranParser.y"
76
77
/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
78
   file LICENSE.rst or https://cmake.org/licensing for details.  */
79
/*-------------------------------------------------------------------------
80
  Portions of this source have been derived from makedepf90 version 2.8.8,
81
82
   Copyright (C) 2000--2006 Erik Edelmann <erik.edelmann@iki.fi>
83
84
  The code was originally distributed under the GPL but permission
85
  from the copyright holder has been obtained to distribute this
86
  derived work under the CMake license.
87
-------------------------------------------------------------------------*/
88
89
/*
90
91
This file must be translated to C and modified to build everywhere.
92
93
Run bison like this:
94
95
  bison --name-prefix=cmFortran_yy
96
        --defines=cmFortranParserTokens.h
97
         -ocmFortranParser.cxx
98
          cmFortranParser.y
99
100
*/
101
102
#include "cmConfigure.h" // IWYU pragma: keep
103
104
#include "cmsys/String.h"
105
#include <stdlib.h>
106
#include <string.h>
107
108
/*-------------------------------------------------------------------------*/
109
#define cmFortranParser_cxx
110
#include "cmFortranParser.h" /* Interface to parser object.  */
111
112
/* Forward declare the lexer entry point.  */
113
YY_DECL;
114
115
/* Helper function to forward error callback from parser.  */
116
static void cmFortran_yyerror(yyscan_t yyscanner, const char* message)
117
72.5k
{
118
72.5k
  cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
119
72.5k
  cmFortranParser_Error(parser, message);
120
72.5k
}
121
122
/* Disable some warnings in the generated code.  */
123
#ifdef _MSC_VER
124
# pragma warning (disable: 4102) /* Unused goto label.  */
125
# pragma warning (disable: 4065) /* Switch contains default but no case. */
126
# pragma warning (disable: 4701) /* Local variable may not be initialized.  */
127
# pragma warning (disable: 4702) /* Unreachable code.  */
128
# pragma warning (disable: 4127) /* Conditional expression is constant.  */
129
# pragma warning (disable: 4244) /* Conversion to smaller type, data loss. */
130
#endif
131
#if defined(__GNUC__) && __GNUC__ >= 8
132
# pragma GCC diagnostic ignored "-Wconversion"
133
# pragma GCC diagnostic ignored "-Wfree-nonheap-object"
134
#endif
135
#if defined(__GNUC__) && __GNUC__ >= 16
136
# pragma GCC diagnostic ignored "-Wunused-but-set-variable"
137
#endif
138
#if defined(__clang__) && defined(__has_warning)
139
# if __has_warning("-Wunused-but-set-variable")
140
#  pragma clang diagnostic ignored "-Wunused-but-set-variable"
141
# endif
142
#endif
143
144
#line 145 "cmFortranParser.cxx"
145
146
# ifndef YY_CAST
147
#  ifdef __cplusplus
148
26.0M
#   define YY_CAST(Type, Val) static_cast<Type> (Val)
149
#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
150
#  else
151
#   define YY_CAST(Type, Val) ((Type) (Val))
152
#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
153
#  endif
154
# endif
155
# ifndef YY_NULLPTR
156
#  if defined __cplusplus
157
#   if 201103L <= __cplusplus
158
154k
#    define YY_NULLPTR nullptr
159
#   else
160
#    define YY_NULLPTR 0
161
#   endif
162
#  else
163
#   define YY_NULLPTR ((void*)0)
164
#  endif
165
# endif
166
167
#include "cmFortranParserTokens.h"
168
/* Symbol kind.  */
169
enum yysymbol_kind_t
170
{
171
  YYSYMBOL_YYEMPTY = -2,
172
  YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
173
  YYSYMBOL_YYerror = 1,                    /* error  */
174
  YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
175
  YYSYMBOL_EOSTMT = 3,                     /* EOSTMT  */
176
  YYSYMBOL_ASSIGNMENT_OP = 4,              /* ASSIGNMENT_OP  */
177
  YYSYMBOL_GARBAGE = 5,                    /* GARBAGE  */
178
  YYSYMBOL_CPP_LINE_DIRECTIVE = 6,         /* CPP_LINE_DIRECTIVE  */
179
  YYSYMBOL_CPP_INCLUDE = 7,                /* CPP_INCLUDE  */
180
  YYSYMBOL_F90PPR_INCLUDE = 8,             /* F90PPR_INCLUDE  */
181
  YYSYMBOL_COCO_INCLUDE = 9,               /* COCO_INCLUDE  */
182
  YYSYMBOL_F90PPR_DEFINE = 10,             /* F90PPR_DEFINE  */
183
  YYSYMBOL_CPP_DEFINE = 11,                /* CPP_DEFINE  */
184
  YYSYMBOL_F90PPR_UNDEF = 12,              /* F90PPR_UNDEF  */
185
  YYSYMBOL_CPP_UNDEF = 13,                 /* CPP_UNDEF  */
186
  YYSYMBOL_CPP_IFDEF = 14,                 /* CPP_IFDEF  */
187
  YYSYMBOL_CPP_IFNDEF = 15,                /* CPP_IFNDEF  */
188
  YYSYMBOL_CPP_IF = 16,                    /* CPP_IF  */
189
  YYSYMBOL_CPP_ELSE = 17,                  /* CPP_ELSE  */
190
  YYSYMBOL_CPP_ELIF = 18,                  /* CPP_ELIF  */
191
  YYSYMBOL_CPP_ENDIF = 19,                 /* CPP_ENDIF  */
192
  YYSYMBOL_F90PPR_IFDEF = 20,              /* F90PPR_IFDEF  */
193
  YYSYMBOL_F90PPR_IFNDEF = 21,             /* F90PPR_IFNDEF  */
194
  YYSYMBOL_F90PPR_IF = 22,                 /* F90PPR_IF  */
195
  YYSYMBOL_F90PPR_ELSE = 23,               /* F90PPR_ELSE  */
196
  YYSYMBOL_F90PPR_ELIF = 24,               /* F90PPR_ELIF  */
197
  YYSYMBOL_F90PPR_ENDIF = 25,              /* F90PPR_ENDIF  */
198
  YYSYMBOL_COMMA = 26,                     /* COMMA  */
199
  YYSYMBOL_COLON = 27,                     /* COLON  */
200
  YYSYMBOL_DCOLON = 28,                    /* DCOLON  */
201
  YYSYMBOL_LPAREN = 29,                    /* LPAREN  */
202
  YYSYMBOL_RPAREN = 30,                    /* RPAREN  */
203
  YYSYMBOL_UNTERMINATED_STRING = 31,       /* UNTERMINATED_STRING  */
204
  YYSYMBOL_STRING = 32,                    /* STRING  */
205
  YYSYMBOL_WORD = 33,                      /* WORD  */
206
  YYSYMBOL_CPP_INCLUDE_ANGLE = 34,         /* CPP_INCLUDE_ANGLE  */
207
  YYSYMBOL_END = 35,                       /* END  */
208
  YYSYMBOL_INCLUDE = 36,                   /* INCLUDE  */
209
  YYSYMBOL_INTERFACE = 37,                 /* INTERFACE  */
210
  YYSYMBOL_MODULE = 38,                    /* MODULE  */
211
  YYSYMBOL_SUBMODULE = 39,                 /* SUBMODULE  */
212
  YYSYMBOL_USE = 40,                       /* USE  */
213
  YYSYMBOL_YYACCEPT = 41,                  /* $accept  */
214
  YYSYMBOL_code = 42,                      /* code  */
215
  YYSYMBOL_stmt = 43,                      /* stmt  */
216
  YYSYMBOL_include = 44,                   /* include  */
217
  YYSYMBOL_define = 45,                    /* define  */
218
  YYSYMBOL_undef = 46,                     /* undef  */
219
  YYSYMBOL_ifdef = 47,                     /* ifdef  */
220
  YYSYMBOL_ifndef = 48,                    /* ifndef  */
221
  YYSYMBOL_if = 49,                        /* if  */
222
  YYSYMBOL_elif = 50,                      /* elif  */
223
  YYSYMBOL_else = 51,                      /* else  */
224
  YYSYMBOL_endif = 52,                     /* endif  */
225
  YYSYMBOL_other = 53,                     /* other  */
226
  YYSYMBOL_misc_code = 54                  /* misc_code  */
227
};
228
typedef enum yysymbol_kind_t yysymbol_kind_t;
229
230
231
232
233
#ifdef short
234
# undef short
235
#endif
236
237
/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
238
   <limits.h> and (if available) <stdint.h> are included
239
   so that the code can choose integer types of a good width.  */
240
241
#ifndef __PTRDIFF_MAX__
242
# include <limits.h> /* INFRINGES ON USER NAME SPACE */
243
# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
244
#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
245
#  define YY_STDINT_H
246
# endif
247
#endif
248
249
/* Narrow types that promote to a signed type and that can represent a
250
   signed or unsigned integer of at least N bits.  In tables they can
251
   save space and decrease cache pressure.  Promoting to a signed type
252
   helps avoid bugs in integer arithmetic.  */
253
254
#ifdef __INT_LEAST8_MAX__
255
typedef __INT_LEAST8_TYPE__ yytype_int8;
256
#elif defined YY_STDINT_H
257
typedef int_least8_t yytype_int8;
258
#else
259
typedef signed char yytype_int8;
260
#endif
261
262
#ifdef __INT_LEAST16_MAX__
263
typedef __INT_LEAST16_TYPE__ yytype_int16;
264
#elif defined YY_STDINT_H
265
typedef int_least16_t yytype_int16;
266
#else
267
typedef short yytype_int16;
268
#endif
269
270
/* Work around bug in HP-UX 11.23, which defines these macros
271
   incorrectly for preprocessor constants.  This workaround can likely
272
   be removed in 2023, as HPE has promised support for HP-UX 11.23
273
   (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
274
   <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
275
#ifdef __hpux
276
# undef UINT_LEAST8_MAX
277
# undef UINT_LEAST16_MAX
278
# define UINT_LEAST8_MAX 255
279
# define UINT_LEAST16_MAX 65535
280
#endif
281
282
#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
283
typedef __UINT_LEAST8_TYPE__ yytype_uint8;
284
#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
285
       && UINT_LEAST8_MAX <= INT_MAX)
286
typedef uint_least8_t yytype_uint8;
287
#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
288
typedef unsigned char yytype_uint8;
289
#else
290
typedef short yytype_uint8;
291
#endif
292
293
#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
294
typedef __UINT_LEAST16_TYPE__ yytype_uint16;
295
#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
296
       && UINT_LEAST16_MAX <= INT_MAX)
297
typedef uint_least16_t yytype_uint16;
298
#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
299
typedef unsigned short yytype_uint16;
300
#else
301
typedef int yytype_uint16;
302
#endif
303
304
#ifndef YYPTRDIFF_T
305
# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
306
163k
#  define YYPTRDIFF_T __PTRDIFF_TYPE__
307
#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
308
# elif defined PTRDIFF_MAX
309
#  ifndef ptrdiff_t
310
#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
311
#  endif
312
#  define YYPTRDIFF_T ptrdiff_t
313
#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
314
# else
315
#  define YYPTRDIFF_T long
316
#  define YYPTRDIFF_MAXIMUM LONG_MAX
317
# endif
318
#endif
319
320
#ifndef YYSIZE_T
321
# ifdef __SIZE_TYPE__
322
#  define YYSIZE_T __SIZE_TYPE__
323
# elif defined size_t
324
#  define YYSIZE_T size_t
325
# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
326
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
327
#  define YYSIZE_T size_t
328
# else
329
#  define YYSIZE_T unsigned
330
# endif
331
#endif
332
333
#define YYSIZE_MAXIMUM                                  \
334
82.0k
  YY_CAST (YYPTRDIFF_T,                                 \
335
           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
336
            ? YYPTRDIFF_MAXIMUM                         \
337
            : YY_CAST (YYSIZE_T, -1)))
338
339
#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
340
341
342
/* Stored state numbers (used for stacks). */
343
typedef yytype_int8 yy_state_t;
344
345
/* State numbers in computations.  */
346
typedef int yy_state_fast_t;
347
348
#ifndef YY_
349
# if defined YYENABLE_NLS && YYENABLE_NLS
350
#  if ENABLE_NLS
351
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
352
#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
353
#  endif
354
# endif
355
# ifndef YY_
356
72.5k
#  define YY_(Msgid) Msgid
357
# endif
358
#endif
359
360
361
#ifndef YY_ATTRIBUTE_PURE
362
# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
363
#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
364
# else
365
#  define YY_ATTRIBUTE_PURE
366
# endif
367
#endif
368
369
#ifndef YY_ATTRIBUTE_UNUSED
370
# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
371
#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
372
# else
373
#  define YY_ATTRIBUTE_UNUSED
374
# endif
375
#endif
376
377
/* Suppress unused-variable warnings by "using" E.  */
378
#if ! defined lint || defined __GNUC__
379
7.60M
# define YY_USE(E) ((void) (E))
380
#else
381
# define YY_USE(E) /* empty */
382
#endif
383
384
/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
385
#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
386
# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
387
#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
388
    _Pragma ("GCC diagnostic push")                                     \
389
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
390
# else
391
#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
392
    _Pragma ("GCC diagnostic push")                                     \
393
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
394
    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
395
# endif
396
# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
397
    _Pragma ("GCC diagnostic pop")
398
#else
399
8.83k
# define YY_INITIAL_VALUE(Value) Value
400
#endif
401
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
402
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
403
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
404
#endif
405
#ifndef YY_INITIAL_VALUE
406
# define YY_INITIAL_VALUE(Value) /* Nothing. */
407
#endif
408
409
#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
410
# define YY_IGNORE_USELESS_CAST_BEGIN                          \
411
    _Pragma ("GCC diagnostic push")                            \
412
    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
413
# define YY_IGNORE_USELESS_CAST_END            \
414
    _Pragma ("GCC diagnostic pop")
415
#endif
416
#ifndef YY_IGNORE_USELESS_CAST_BEGIN
417
# define YY_IGNORE_USELESS_CAST_BEGIN
418
# define YY_IGNORE_USELESS_CAST_END
419
#endif
420
421
422
14.9M
#define YY_ASSERT(E) ((void) (0 && (E)))
423
424
#if 1
425
426
/* The parser invokes alloca or malloc; define the necessary symbols.  */
427
428
# ifdef YYSTACK_USE_ALLOCA
429
#  if YYSTACK_USE_ALLOCA
430
#   ifdef __GNUC__
431
#    define YYSTACK_ALLOC __builtin_alloca
432
#   elif defined __BUILTIN_VA_ARG_INCR
433
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
434
#   elif defined _AIX
435
#    define YYSTACK_ALLOC __alloca
436
#   elif defined _MSC_VER
437
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
438
#    define alloca _alloca
439
#   else
440
#    define YYSTACK_ALLOC alloca
441
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
442
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
443
      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
444
#     ifndef EXIT_SUCCESS
445
#      define EXIT_SUCCESS 0
446
#     endif
447
#    endif
448
#   endif
449
#  endif
450
# endif
451
452
# ifdef YYSTACK_ALLOC
453
   /* Pacify GCC's 'empty if-body' warning.  */
454
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
455
#  ifndef YYSTACK_ALLOC_MAXIMUM
456
    /* The OS might guarantee only one guard page at the bottom of the stack,
457
       and a page size can be as small as 4096 bytes.  So we cannot safely
458
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
459
       to allow for a few compiler-allocated temporary stack slots.  */
460
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
461
#  endif
462
# else
463
#  define YYSTACK_ALLOC YYMALLOC
464
0
#  define YYSTACK_FREE YYFREE
465
#  ifndef YYSTACK_ALLOC_MAXIMUM
466
82.0k
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
467
#  endif
468
#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
469
       && ! ((defined YYMALLOC || defined malloc) \
470
             && (defined YYFREE || defined free)))
471
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
472
#   ifndef EXIT_SUCCESS
473
#    define EXIT_SUCCESS 0
474
#   endif
475
#  endif
476
#  ifndef YYMALLOC
477
#   define YYMALLOC malloc
478
#   if ! defined malloc && ! defined EXIT_SUCCESS
479
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
480
#   endif
481
#  endif
482
#  ifndef YYFREE
483
0
#   define YYFREE free
484
#   if ! defined free && ! defined EXIT_SUCCESS
485
void free (void *); /* INFRINGES ON USER NAME SPACE */
486
#   endif
487
#  endif
488
# endif
489
#endif /* 1 */
490
491
#if (! defined yyoverflow \
492
     && (! defined __cplusplus \
493
         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
494
495
/* A type that is properly aligned for any stack member.  */
496
union yyalloc
497
{
498
  yy_state_t yyss_alloc;
499
  YYSTYPE yyvs_alloc;
500
};
501
502
/* The size of the maximum gap between one aligned stack and the next.  */
503
# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
504
505
/* The size of an array large to enough to hold all stacks, each with
506
   N elements.  */
507
# define YYSTACK_BYTES(N) \
508
     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
509
      + YYSTACK_GAP_MAXIMUM)
510
511
# define YYCOPY_NEEDED 1
512
513
/* Relocate STACK from its old location to the new one.  The
514
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
515
   elements in the stack, and YYPTR gives the new location of the
516
   stack.  Advance YYPTR to a properly aligned location for the next
517
   stack.  */
518
# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
519
    do                                                                  \
520
      {                                                                 \
521
        YYPTRDIFF_T yynewbytes;                                         \
522
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
523
        Stack = &yyptr->Stack_alloc;                                    \
524
        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
525
        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
526
      }                                                                 \
527
    while (0)
528
529
#endif
530
531
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
532
/* Copy COUNT objects from SRC to DST.  The source and destination do
533
   not overlap.  */
534
# ifndef YYCOPY
535
#  if defined __GNUC__ && 1 < __GNUC__
536
#   define YYCOPY(Dst, Src, Count) \
537
      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
538
#  else
539
#   define YYCOPY(Dst, Src, Count)              \
540
      do                                        \
541
        {                                       \
542
          YYPTRDIFF_T yyi;                      \
543
          for (yyi = 0; yyi < (Count); yyi++)   \
544
            (Dst)[yyi] = (Src)[yyi];            \
545
        }                                       \
546
      while (0)
547
#  endif
548
# endif
549
#endif /* !YYCOPY_NEEDED */
550
551
/* YYFINAL -- State number of the termination state.  */
552
14.9M
#define YYFINAL  2
553
/* YYLAST -- Last index in YYTABLE.  */
554
25.3M
#define YYLAST   433
555
556
/* YYNTOKENS -- Number of terminals.  */
557
8.33M
#define YYNTOKENS  41
558
/* YYNNTS -- Number of nonterminals.  */
559
#define YYNNTS  14
560
/* YYNRULES -- Number of rules.  */
561
#define YYNRULES  65
562
/* YYNSTATES -- Number of states.  */
563
#define YYNSTATES  123
564
565
/* YYMAXUTOK -- Last valid token kind.  */
566
8.74M
#define YYMAXUTOK   295
567
568
569
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
570
   as returned by yylex, with out-of-bounds checking.  */
571
#define YYTRANSLATE(YYX)                                \
572
10.7M
  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
573
10.7M
   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
574
10.7M
   : YYSYMBOL_YYUNDEF)
575
576
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
577
   as returned by yylex.  */
578
static const yytype_int8 yytranslate[] =
579
{
580
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
581
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
582
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
583
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
584
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
585
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
586
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
587
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
588
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
589
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
590
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
591
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
592
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
593
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
594
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
595
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
596
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
597
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
598
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
599
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
600
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
601
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
602
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
603
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
604
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
605
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
606
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
607
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
608
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
609
      35,    36,    37,    38,    39,    40
610
};
611
612
#if YYDEBUG
613
/* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
614
static const yytype_int16 yyrline[] =
615
{
616
       0,   109,   109,   109,   112,   116,   121,   126,   132,   139,
617
     144,   149,   153,   158,   170,   175,   180,   185,   190,   195,
618
     200,   205,   210,   214,   218,   222,   226,   227,   232,   232,
619
     232,   233,   233,   234,   234,   235,   235,   236,   236,   237,
620
     237,   238,   238,   239,   239,   240,   240,   241,   241,   244,
621
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
622
     255,   256,   257,   258,   259,   260
623
};
624
#endif
625
626
/** Accessing symbol of state STATE.  */
627
1.91M
#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
628
629
#if 1
630
/* The user-facing name of the symbol whose (internal) number is
631
   YYSYMBOL.  No bounds checking.  */
632
static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
633
634
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
635
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
636
static const char *const yytname[] =
637
{
638
  "\"end of file\"", "error", "\"invalid token\"", "EOSTMT",
639
  "ASSIGNMENT_OP", "GARBAGE", "CPP_LINE_DIRECTIVE", "CPP_INCLUDE",
640
  "F90PPR_INCLUDE", "COCO_INCLUDE", "F90PPR_DEFINE", "CPP_DEFINE",
641
  "F90PPR_UNDEF", "CPP_UNDEF", "CPP_IFDEF", "CPP_IFNDEF", "CPP_IF",
642
  "CPP_ELSE", "CPP_ELIF", "CPP_ENDIF", "F90PPR_IFDEF", "F90PPR_IFNDEF",
643
  "F90PPR_IF", "F90PPR_ELSE", "F90PPR_ELIF", "F90PPR_ENDIF", "COMMA",
644
  "COLON", "DCOLON", "LPAREN", "RPAREN", "UNTERMINATED_STRING", "STRING",
645
  "WORD", "CPP_INCLUDE_ANGLE", "END", "INCLUDE", "INTERFACE", "MODULE",
646
  "SUBMODULE", "USE", "$accept", "code", "stmt", "include", "define",
647
  "undef", "ifdef", "ifndef", "if", "elif", "else", "endif", "other",
648
  "misc_code", YY_NULLPTR
649
};
650
651
static const char *
652
yysymbol_name (yysymbol_kind_t yysymbol)
653
0
{
654
0
  return yytname[yysymbol];
655
0
}
656
#endif
657
658
18.9M
#define YYPACT_NINF (-39)
659
660
#define yypact_value_is_default(Yyn) \
661
18.9M
  ((Yyn) == YYPACT_NINF)
662
663
#define YYTABLE_NINF (-1)
664
665
#define yytable_value_is_error(Yyn) \
666
0
  0
667
668
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
669
   STATE-NUM.  */
670
static const yytype_int16 yypact[] =
671
{
672
     -39,    21,   -39,     5,   -39,   -23,   -39,   -39,   -39,   -39,
673
     -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,
674
     -39,   -39,   -39,   -39,   -39,   -39,   -25,   -19,    20,    -8,
675
     -15,   -22,   -39,    -6,    14,    15,    16,    17,   -39,   -39,
676
     -39,   -39,   -39,   -39,    59,    51,    48,   -39,    63,    64,
677
      35,    36,    37,   -39,   -39,   -39,   -39,   -39,   -39,    75,
678
     113,   128,   166,   181,   -39,   -39,   -39,   -39,   -39,   -39,
679
     -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,
680
     -39,   -39,   -39,   -39,    68,   -39,   -39,   -39,   -20,    44,
681
     -39,   219,   234,   272,   287,   325,   340,   -39,   -39,   -39,
682
     -39,   -39,   -39,    40,    41,    42,   378,   -39,   -39,   -39,
683
     -39,   -39,   -39,    46,    79,   -39,   -39,    50,   -39,   393,
684
      90,   -39,   -39
685
};
686
687
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
688
   Performed when YYTABLE does not specify something else to do.  Zero
689
   means the default is an error.  */
690
static const yytype_int8 yydefact[] =
691
{
692
       2,     0,     1,     0,    26,     0,    28,    29,    30,    32,
693
      31,    34,    33,    35,    37,    39,    43,    41,    45,    36,
694
      38,    40,    44,    42,    46,    47,     0,     0,     0,     0,
695
       0,     0,     3,     0,     0,     0,     0,     0,    47,    47,
696
      47,    47,    27,    47,     0,     0,     0,     4,     0,     0,
697
       0,     0,     0,    47,    47,    47,    47,    47,    47,     0,
698
       0,     0,     0,     0,    16,    58,    57,    65,    63,    59,
699
      60,    61,    62,    64,    56,    49,    50,    51,    52,    53,
700
      54,    55,    48,    11,     0,    14,     9,     6,     0,     0,
701
      47,     0,     0,     0,     0,     0,     0,    22,    23,    24,
702
      25,    15,    10,     0,     0,     0,     0,     5,    17,    18,
703
      19,    20,    21,     0,     0,    47,    12,     0,     7,     0,
704
       0,    13,     8
705
};
706
707
/* YYPGOTO[NTERM-NUM].  */
708
static const yytype_int8 yypgoto[] =
709
{
710
     -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,   -39,
711
     -39,   -39,   -38,   -39
712
};
713
714
/* YYDEFGOTO[NTERM-NUM].  */
715
static const yytype_int8 yydefgoto[] =
716
{
717
       0,     1,    32,    33,    34,    35,    36,    37,    38,    39,
718
      40,    41,    44,    82
719
};
720
721
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
722
   positive, shift that token.  If negative, reduce the rule whose
723
   number is the opposite.  If YYTABLE_NINF, syntax error.  */
724
static const yytype_int8 yytable[] =
725
{
726
      59,    60,    61,    62,    51,    63,    52,   103,    42,    43,
727
     104,    53,    45,    46,    50,    91,    92,    93,    94,    95,
728
      96,     2,     3,    47,     4,    49,    54,     5,     6,     7,
729
       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
730
      18,    19,    20,    21,    22,    23,    24,    55,    56,    57,
731
      58,    85,   106,    48,    83,    25,    26,    27,    28,    29,
732
      30,    31,    64,    65,    66,    67,    86,    87,    88,    89,
733
      90,   102,   105,   113,   114,   115,   117,   119,    97,    65,
734
      66,    67,   118,   120,    84,    68,    69,    70,    71,    72,
735
      73,    74,    75,   122,    76,    77,    78,    79,    80,    81,
736
       0,    68,    69,    70,    71,    72,    73,    74,    75,     0,
737
      76,    77,    78,    79,    80,    81,    98,    65,    66,    67,
738
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
739
       0,    99,    65,    66,    67,     0,     0,     0,     0,    68,
740
      69,    70,    71,    72,    73,    74,    75,     0,    76,    77,
741
      78,    79,    80,    81,    68,    69,    70,    71,    72,    73,
742
      74,    75,     0,    76,    77,    78,    79,    80,    81,   100,
743
      65,    66,    67,     0,     0,     0,     0,     0,     0,     0,
744
       0,     0,     0,     0,   101,    65,    66,    67,     0,     0,
745
       0,     0,    68,    69,    70,    71,    72,    73,    74,    75,
746
       0,    76,    77,    78,    79,    80,    81,    68,    69,    70,
747
      71,    72,    73,    74,    75,     0,    76,    77,    78,    79,
748
      80,    81,   107,    65,    66,    67,     0,     0,     0,     0,
749
       0,     0,     0,     0,     0,     0,     0,   108,    65,    66,
750
      67,     0,     0,     0,     0,    68,    69,    70,    71,    72,
751
      73,    74,    75,     0,    76,    77,    78,    79,    80,    81,
752
      68,    69,    70,    71,    72,    73,    74,    75,     0,    76,
753
      77,    78,    79,    80,    81,   109,    65,    66,    67,     0,
754
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
755
     110,    65,    66,    67,     0,     0,     0,     0,    68,    69,
756
      70,    71,    72,    73,    74,    75,     0,    76,    77,    78,
757
      79,    80,    81,    68,    69,    70,    71,    72,    73,    74,
758
      75,     0,    76,    77,    78,    79,    80,    81,   111,    65,
759
      66,    67,     0,     0,     0,     0,     0,     0,     0,     0,
760
       0,     0,     0,   112,    65,    66,    67,     0,     0,     0,
761
       0,    68,    69,    70,    71,    72,    73,    74,    75,     0,
762
      76,    77,    78,    79,    80,    81,    68,    69,    70,    71,
763
      72,    73,    74,    75,     0,    76,    77,    78,    79,    80,
764
      81,   116,    65,    66,    67,     0,     0,     0,     0,     0,
765
       0,     0,     0,     0,     0,     0,   121,    65,    66,    67,
766
       0,     0,     0,     0,    68,    69,    70,    71,    72,    73,
767
      74,    75,     0,    76,    77,    78,    79,    80,    81,    68,
768
      69,    70,    71,    72,    73,    74,    75,     0,    76,    77,
769
      78,    79,    80,    81
770
};
771
772
static const yytype_int8 yycheck[] =
773
{
774
      38,    39,    40,    41,    26,    43,    28,    27,     3,    32,
775
      30,    33,    37,    32,    29,    53,    54,    55,    56,    57,
776
      58,     0,     1,     3,     3,    33,    32,     6,     7,     8,
777
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
778
      19,    20,    21,    22,    23,    24,    25,    33,    33,    33,
779
      33,     3,    90,    33,     3,    34,    35,    36,    37,    38,
780
      39,    40,     3,     4,     5,     6,     3,     3,    33,    33,
781
      33,     3,    28,    33,    33,    33,    30,   115,     3,     4,
782
       5,     6,     3,    33,    33,    26,    27,    28,    29,    30,
783
      31,    32,    33,     3,    35,    36,    37,    38,    39,    40,
784
      -1,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
785
      35,    36,    37,    38,    39,    40,     3,     4,     5,     6,
786
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
787
      -1,     3,     4,     5,     6,    -1,    -1,    -1,    -1,    26,
788
      27,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
789
      37,    38,    39,    40,    26,    27,    28,    29,    30,    31,
790
      32,    33,    -1,    35,    36,    37,    38,    39,    40,     3,
791
       4,     5,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
792
      -1,    -1,    -1,    -1,     3,     4,     5,     6,    -1,    -1,
793
      -1,    -1,    26,    27,    28,    29,    30,    31,    32,    33,
794
      -1,    35,    36,    37,    38,    39,    40,    26,    27,    28,
795
      29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
796
      39,    40,     3,     4,     5,     6,    -1,    -1,    -1,    -1,
797
      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
798
       6,    -1,    -1,    -1,    -1,    26,    27,    28,    29,    30,
799
      31,    32,    33,    -1,    35,    36,    37,    38,    39,    40,
800
      26,    27,    28,    29,    30,    31,    32,    33,    -1,    35,
801
      36,    37,    38,    39,    40,     3,     4,     5,     6,    -1,
802
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
803
       3,     4,     5,     6,    -1,    -1,    -1,    -1,    26,    27,
804
      28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
805
      38,    39,    40,    26,    27,    28,    29,    30,    31,    32,
806
      33,    -1,    35,    36,    37,    38,    39,    40,     3,     4,
807
       5,     6,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
808
      -1,    -1,    -1,     3,     4,     5,     6,    -1,    -1,    -1,
809
      -1,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
810
      35,    36,    37,    38,    39,    40,    26,    27,    28,    29,
811
      30,    31,    32,    33,    -1,    35,    36,    37,    38,    39,
812
      40,     3,     4,     5,     6,    -1,    -1,    -1,    -1,    -1,
813
      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
814
      -1,    -1,    -1,    -1,    26,    27,    28,    29,    30,    31,
815
      32,    33,    -1,    35,    36,    37,    38,    39,    40,    26,
816
      27,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
817
      37,    38,    39,    40
818
};
819
820
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
821
   state STATE-NUM.  */
822
static const yytype_int8 yystos[] =
823
{
824
       0,    42,     0,     1,     3,     6,     7,     8,     9,    10,
825
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
826
      21,    22,    23,    24,    25,    34,    35,    36,    37,    38,
827
      39,    40,    43,    44,    45,    46,    47,    48,    49,    50,
828
      51,    52,     3,    32,    53,    37,    32,     3,    33,    33,
829
      29,    26,    28,    33,    32,    33,    33,    33,    33,    53,
830
      53,    53,    53,    53,     3,     4,     5,     6,    26,    27,
831
      28,    29,    30,    31,    32,    33,    35,    36,    37,    38,
832
      39,    40,    54,     3,    33,     3,     3,     3,    33,    33,
833
      33,    53,    53,    53,    53,    53,    53,     3,     3,     3,
834
       3,     3,     3,    27,    30,    28,    53,     3,     3,     3,
835
       3,     3,     3,    33,    33,    33,     3,    30,     3,    53,
836
      33,     3,     3
837
};
838
839
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
840
static const yytype_int8 yyr1[] =
841
{
842
       0,    41,    42,    42,    43,    43,    43,    43,    43,    43,
843
      43,    43,    43,    43,    43,    43,    43,    43,    43,    43,
844
      43,    43,    43,    43,    43,    43,    43,    43,    44,    44,
845
      44,    45,    45,    46,    46,    47,    47,    48,    48,    49,
846
      49,    50,    50,    51,    51,    52,    52,    53,    53,    54,
847
      54,    54,    54,    54,    54,    54,    54,    54,    54,    54,
848
      54,    54,    54,    54,    54,    54
849
};
850
851
/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
852
static const yytype_int8 yyr2[] =
853
{
854
       0,     2,     0,     2,     2,     4,     3,     6,     8,     3,
855
       4,     3,     5,     7,     3,     4,     3,     4,     4,     4,
856
       4,     4,     3,     3,     3,     3,     1,     2,     1,     1,
857
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
858
       1,     1,     1,     1,     1,     1,     1,     0,     2,     1,
859
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
860
       1,     1,     1,     1,     1,     1
861
};
862
863
864
enum { YYENOMEM = -2 };
865
866
#define yyerrok         (yyerrstatus = 0)
867
#define yyclearin       (yychar = YYEMPTY)
868
869
4.29k
#define YYACCEPT        goto yyacceptlab
870
119
#define YYABORT         goto yyabortlab
871
0
#define YYERROR         goto yyerrorlab
872
0
#define YYNOMEM         goto yyexhaustedlab
873
874
875
#define YYRECOVERING()  (!!yyerrstatus)
876
877
#define YYBACKUP(Token, Value)                                    \
878
  do                                                              \
879
    if (yychar == YYEMPTY)                                        \
880
      {                                                           \
881
        yychar = (Token);                                         \
882
        yylval = (Value);                                         \
883
        YYPOPSTACK (yylen);                                       \
884
        yystate = *yyssp;                                         \
885
        goto yybackup;                                            \
886
      }                                                           \
887
    else                                                          \
888
      {                                                           \
889
        yyerror (yyscanner, YY_("syntax error: cannot back up")); \
890
        YYERROR;                                                  \
891
      }                                                           \
892
  while (0)
893
894
/* Backward compatibility with an undocumented macro.
895
   Use YYerror or YYUNDEF. */
896
#define YYERRCODE YYUNDEF
897
898
899
/* Enable debugging if requested.  */
900
#if YYDEBUG
901
902
# ifndef YYFPRINTF
903
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
904
#  define YYFPRINTF fprintf
905
# endif
906
907
# define YYDPRINTF(Args)                        \
908
do {                                            \
909
  if (yydebug)                                  \
910
    YYFPRINTF Args;                             \
911
} while (0)
912
913
914
915
916
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
917
do {                                                                      \
918
  if (yydebug)                                                            \
919
    {                                                                     \
920
      YYFPRINTF (stderr, "%s ", Title);                                   \
921
      yy_symbol_print (stderr,                                            \
922
                  Kind, Value, yyscanner); \
923
      YYFPRINTF (stderr, "\n");                                           \
924
    }                                                                     \
925
} while (0)
926
927
928
/*-----------------------------------.
929
| Print this symbol's value on YYO.  |
930
`-----------------------------------*/
931
932
static void
933
yy_symbol_value_print (FILE *yyo,
934
                       yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, yyscan_t yyscanner)
935
{
936
  FILE *yyoutput = yyo;
937
  YY_USE (yyoutput);
938
  YY_USE (yyscanner);
939
  if (!yyvaluep)
940
    return;
941
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
942
  YY_USE (yykind);
943
  YY_IGNORE_MAYBE_UNINITIALIZED_END
944
}
945
946
947
/*---------------------------.
948
| Print this symbol on YYO.  |
949
`---------------------------*/
950
951
static void
952
yy_symbol_print (FILE *yyo,
953
                 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, yyscan_t yyscanner)
954
{
955
  YYFPRINTF (yyo, "%s %s (",
956
             yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
957
958
  yy_symbol_value_print (yyo, yykind, yyvaluep, yyscanner);
959
  YYFPRINTF (yyo, ")");
960
}
961
962
/*------------------------------------------------------------------.
963
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
964
| TOP (included).                                                   |
965
`------------------------------------------------------------------*/
966
967
static void
968
yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
969
{
970
  YYFPRINTF (stderr, "Stack now");
971
  for (; yybottom <= yytop; yybottom++)
972
    {
973
      int yybot = *yybottom;
974
      YYFPRINTF (stderr, " %d", yybot);
975
    }
976
  YYFPRINTF (stderr, "\n");
977
}
978
979
# define YY_STACK_PRINT(Bottom, Top)                            \
980
do {                                                            \
981
  if (yydebug)                                                  \
982
    yy_stack_print ((Bottom), (Top));                           \
983
} while (0)
984
985
986
/*------------------------------------------------.
987
| Report that the YYRULE is going to be reduced.  |
988
`------------------------------------------------*/
989
990
static void
991
yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
992
                 int yyrule, yyscan_t yyscanner)
993
{
994
  int yylno = yyrline[yyrule];
995
  int yynrhs = yyr2[yyrule];
996
  int yyi;
997
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
998
             yyrule - 1, yylno);
999
  /* The symbols being reduced.  */
1000
  for (yyi = 0; yyi < yynrhs; yyi++)
1001
    {
1002
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1003
      yy_symbol_print (stderr,
1004
                       YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
1005
                       &yyvsp[(yyi + 1) - (yynrhs)], yyscanner);
1006
      YYFPRINTF (stderr, "\n");
1007
    }
1008
}
1009
1010
# define YY_REDUCE_PRINT(Rule)          \
1011
do {                                    \
1012
  if (yydebug)                          \
1013
    yy_reduce_print (yyssp, yyvsp, Rule, yyscanner); \
1014
} while (0)
1015
1016
/* Nonzero means print parse trace.  It is left uninitialized so that
1017
   multiple parsers can coexist.  */
1018
int yydebug;
1019
#else /* !YYDEBUG */
1020
21.4M
# define YYDPRINTF(Args) ((void) 0)
1021
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
1022
# define YY_STACK_PRINT(Bottom, Top)
1023
# define YY_REDUCE_PRINT(Rule)
1024
#endif /* !YYDEBUG */
1025
1026
1027
/* YYINITDEPTH -- initial size of the parser's stacks.  */
1028
#ifndef YYINITDEPTH
1029
4.41k
# define YYINITDEPTH 200
1030
#endif
1031
1032
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1033
   if the built-in stack extension method is used).
1034
1035
   Do not make this value too large; the results are undefined if
1036
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1037
   evaluated with infinite-precision integer arithmetic.  */
1038
1039
#ifndef YYMAXDEPTH
1040
# define YYMAXDEPTH 10000
1041
#endif
1042
1043
1044
/* Context of a parse error.  */
1045
typedef struct
1046
{
1047
  yy_state_t *yyssp;
1048
  yysymbol_kind_t yytoken;
1049
} yypcontext_t;
1050
1051
/* Put in YYARG at most YYARGN of the expected tokens given the
1052
   current YYCTX, and return the number of tokens stored in YYARG.  If
1053
   YYARG is null, return the number of expected tokens (guaranteed to
1054
   be less than YYNTOKENS).  Return YYENOMEM on memory exhaustion.
1055
   Return 0 if there are more than YYARGN expected tokens, yet fill
1056
   YYARG up to YYARGN. */
1057
static int
1058
yypcontext_expected_tokens (const yypcontext_t *yyctx,
1059
                            yysymbol_kind_t yyarg[], int yyargn)
1060
72.5k
{
1061
  /* Actual size of YYARG. */
1062
72.5k
  int yycount = 0;
1063
72.5k
  int yyn = yypact[+*yyctx->yyssp];
1064
72.5k
  if (!yypact_value_is_default (yyn))
1065
72.5k
    {
1066
      /* Start YYX at -YYN if negative to avoid negative indexes in
1067
         YYCHECK.  In other words, skip the first -YYN actions for
1068
         this state because they are default actions.  */
1069
72.5k
      int yyxbegin = yyn < 0 ? -yyn : 0;
1070
      /* Stay within bounds of both yycheck and yytname.  */
1071
72.5k
      int yychecklim = YYLAST - yyn + 1;
1072
72.5k
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1073
72.5k
      int yyx;
1074
839k
      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1075
832k
        if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
1076
0
            && !yytable_value_is_error (yytable[yyx + yyn]))
1077
335k
          {
1078
335k
            if (!yyarg)
1079
0
              ++yycount;
1080
335k
            else if (yycount == yyargn)
1081
65.1k
              return 0;
1082
270k
            else
1083
270k
              yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
1084
335k
          }
1085
72.5k
    }
1086
7.33k
  if (yyarg && yycount == 0 && 0 < yyargn)
1087
0
    yyarg[0] = YYSYMBOL_YYEMPTY;
1088
7.33k
  return yycount;
1089
72.5k
}
1090
1091
1092
1093
1094
#ifndef yystrlen
1095
# if defined __GLIBC__ && defined _STRING_H
1096
154k
#  define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
1097
# else
1098
/* Return the length of YYSTR.  */
1099
static YYPTRDIFF_T
1100
yystrlen (const char *yystr)
1101
{
1102
  YYPTRDIFF_T yylen;
1103
  for (yylen = 0; yystr[yylen]; yylen++)
1104
    continue;
1105
  return yylen;
1106
}
1107
# endif
1108
#endif
1109
1110
#ifndef yystpcpy
1111
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1112
82.0k
#  define yystpcpy stpcpy
1113
# else
1114
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1115
   YYDEST.  */
1116
static char *
1117
yystpcpy (char *yydest, const char *yysrc)
1118
{
1119
  char *yyd = yydest;
1120
  const char *yys = yysrc;
1121
1122
  while ((*yyd++ = *yys++) != '\0')
1123
    continue;
1124
1125
  return yyd - 1;
1126
}
1127
# endif
1128
#endif
1129
1130
#ifndef yytnamerr
1131
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1132
   quotes and backslashes, so that it's suitable for yyerror.  The
1133
   heuristic is that double-quoting is unnecessary unless the string
1134
   contains an apostrophe, a comma, or backslash (other than
1135
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1136
   null, do not copy; instead, return the length of what the result
1137
   would have been.  */
1138
static YYPTRDIFF_T
1139
yytnamerr (char *yyres, const char *yystr)
1140
164k
{
1141
164k
  if (*yystr == '"')
1142
44
    {
1143
44
      YYPTRDIFF_T yyn = 0;
1144
44
      char const *yyp = yystr;
1145
44
      for (;;)
1146
528
        switch (*++yyp)
1147
528
          {
1148
0
          case '\'':
1149
0
          case ',':
1150
0
            goto do_not_strip_quotes;
1151
1152
0
          case '\\':
1153
0
            if (*++yyp != '\\')
1154
0
              goto do_not_strip_quotes;
1155
0
            else
1156
0
              goto append;
1157
1158
0
          append:
1159
484
          default:
1160
484
            if (yyres)
1161
242
              yyres[yyn] = *yyp;
1162
484
            yyn++;
1163
484
            break;
1164
1165
44
          case '"':
1166
44
            if (yyres)
1167
22
              yyres[yyn] = '\0';
1168
44
            return yyn;
1169
528
          }
1170
0
    do_not_strip_quotes: ;
1171
0
    }
1172
1173
164k
  if (yyres)
1174
82.0k
    return yystpcpy (yyres, yystr) - yyres;
1175
82.0k
  else
1176
82.0k
    return yystrlen (yystr);
1177
164k
}
1178
#endif
1179
1180
1181
static int
1182
yy_syntax_error_arguments (const yypcontext_t *yyctx,
1183
                           yysymbol_kind_t yyarg[], int yyargn)
1184
72.5k
{
1185
  /* Actual size of YYARG. */
1186
72.5k
  int yycount = 0;
1187
  /* There are many possibilities here to consider:
1188
     - If this state is a consistent state with a default action, then
1189
       the only way this function was invoked is if the default action
1190
       is an error action.  In that case, don't check for expected
1191
       tokens because there are none.
1192
     - The only way there can be no lookahead present (in yychar) is if
1193
       this state is a consistent state with a default action.  Thus,
1194
       detecting the absence of a lookahead is sufficient to determine
1195
       that there is no unexpected or expected token to report.  In that
1196
       case, just report a simple "syntax error".
1197
     - Don't assume there isn't a lookahead just because this state is a
1198
       consistent state with a default action.  There might have been a
1199
       previous inconsistent state, consistent state with a non-default
1200
       action, or user semantic action that manipulated yychar.
1201
     - Of course, the expected token list depends on states to have
1202
       correct lookahead information, and it depends on the parser not
1203
       to perform extra reductions after fetching a lookahead from the
1204
       scanner and before detecting a syntax error.  Thus, state merging
1205
       (from LALR or IELR) and default reductions corrupt the expected
1206
       token list.  However, the list is correct for canonical LR with
1207
       one exception: it will still contain any token that will not be
1208
       accepted due to an error action in a later state.
1209
  */
1210
72.5k
  if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
1211
72.5k
    {
1212
72.5k
      int yyn;
1213
72.5k
      if (yyarg)
1214
72.5k
        yyarg[yycount] = yyctx->yytoken;
1215
72.5k
      ++yycount;
1216
72.5k
      yyn = yypcontext_expected_tokens (yyctx,
1217
72.5k
                                        yyarg ? yyarg + 1 : yyarg, yyargn - 1);
1218
72.5k
      if (yyn == YYENOMEM)
1219
0
        return YYENOMEM;
1220
72.5k
      else
1221
72.5k
        yycount += yyn;
1222
72.5k
    }
1223
72.5k
  return yycount;
1224
72.5k
}
1225
1226
/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1227
   about the unexpected token YYTOKEN for the state stack whose top is
1228
   YYSSP.
1229
1230
   Return 0 if *YYMSG was successfully written.  Return -1 if *YYMSG is
1231
   not large enough to hold the message.  In that case, also set
1232
   *YYMSG_ALLOC to the required number of bytes.  Return YYENOMEM if the
1233
   required number of bytes is too large to store.  */
1234
static int
1235
yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
1236
                const yypcontext_t *yyctx)
1237
72.5k
{
1238
72.5k
  enum { YYARGS_MAX = 5 };
1239
  /* Internationalized format string. */
1240
72.5k
  const char *yyformat = YY_NULLPTR;
1241
  /* Arguments of yyformat: reported tokens (one for the "unexpected",
1242
     one per "expected"). */
1243
72.5k
  yysymbol_kind_t yyarg[YYARGS_MAX];
1244
  /* Cumulated lengths of YYARG.  */
1245
72.5k
  YYPTRDIFF_T yysize = 0;
1246
1247
  /* Actual size of YYARG. */
1248
72.5k
  int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
1249
72.5k
  if (yycount == YYENOMEM)
1250
0
    return YYENOMEM;
1251
1252
72.5k
  switch (yycount)
1253
72.5k
    {
1254
0
#define YYCASE_(N, S)                       \
1255
72.5k
      case N:                               \
1256
72.5k
        yyformat = S;                       \
1257
72.5k
        break
1258
0
    default: /* Avoid compiler warnings. */
1259
0
      YYCASE_(0, YY_("syntax error"));
1260
65.1k
      YYCASE_(1, YY_("syntax error, unexpected %s"));
1261
5.64k
      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1262
1.17k
      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1263
508
      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1264
72.5k
      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1265
72.5k
#undef YYCASE_
1266
72.5k
    }
1267
1268
  /* Compute error message size.  Don't count the "%s"s, but reserve
1269
     room for the terminator.  */
1270
72.5k
  yysize = yystrlen (yyformat) - 2 * yycount + 1;
1271
72.5k
  {
1272
72.5k
    int yyi;
1273
154k
    for (yyi = 0; yyi < yycount; ++yyi)
1274
82.0k
      {
1275
82.0k
        YYPTRDIFF_T yysize1
1276
82.0k
          = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
1277
82.0k
        if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
1278
82.0k
          yysize = yysize1;
1279
0
        else
1280
0
          return YYENOMEM;
1281
82.0k
      }
1282
72.5k
  }
1283
1284
72.5k
  if (*yymsg_alloc < yysize)
1285
0
    {
1286
0
      *yymsg_alloc = 2 * yysize;
1287
0
      if (! (yysize <= *yymsg_alloc
1288
0
             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1289
0
        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1290
0
      return -1;
1291
0
    }
1292
1293
  /* Avoid sprintf, as that infringes on the user's name space.
1294
     Don't have undefined behavior even if the translation
1295
     produced a string with the wrong number of "%s"s.  */
1296
72.5k
  {
1297
72.5k
    char *yyp = *yymsg;
1298
72.5k
    int yyi = 0;
1299
2.06M
    while ((*yyp = *yyformat) != '\0')
1300
1.99M
      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1301
82.0k
        {
1302
82.0k
          yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
1303
82.0k
          yyformat += 2;
1304
82.0k
        }
1305
1.90M
      else
1306
1.90M
        {
1307
1.90M
          ++yyp;
1308
1.90M
          ++yyformat;
1309
1.90M
        }
1310
72.5k
  }
1311
72.5k
  return 0;
1312
72.5k
}
1313
1314
1315
/*-----------------------------------------------.
1316
| Release the memory associated to this symbol.  |
1317
`-----------------------------------------------*/
1318
1319
static void
1320
yydestruct (const char *yymsg,
1321
            yysymbol_kind_t yykind, YYSTYPE *yyvaluep, yyscan_t yyscanner)
1322
3.80M
{
1323
3.80M
  YY_USE (yyvaluep);
1324
3.80M
  YY_USE (yyscanner);
1325
3.80M
  if (!yymsg)
1326
0
    yymsg = "Deleting";
1327
3.80M
  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
1328
1329
3.80M
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1330
3.80M
  switch (yykind)
1331
3.80M
    {
1332
8.03k
    case YYSYMBOL_STRING: /* STRING  */
1333
8.03k
#line 103 "cmFortranParser.y"
1334
8.03k
            { free(((*yyvaluep).string)); }
1335
8.03k
#line 1336 "cmFortranParser.cxx"
1336
8.03k
        break;
1337
1338
854k
    case YYSYMBOL_WORD: /* WORD  */
1339
854k
#line 103 "cmFortranParser.y"
1340
854k
            { free(((*yyvaluep).string)); }
1341
854k
#line 1342 "cmFortranParser.cxx"
1342
854k
        break;
1343
1344
1
    case YYSYMBOL_CPP_INCLUDE_ANGLE: /* CPP_INCLUDE_ANGLE  */
1345
1
#line 103 "cmFortranParser.y"
1346
1
            { free(((*yyvaluep).string)); }
1347
1
#line 1348 "cmFortranParser.cxx"
1348
1
        break;
1349
1350
2.94M
      default:
1351
2.94M
        break;
1352
3.80M
    }
1353
3.80M
  YY_IGNORE_MAYBE_UNINITIALIZED_END
1354
3.80M
}
1355
1356
1357
1358
1359
1360
1361
/*----------.
1362
| yyparse.  |
1363
`----------*/
1364
1365
int
1366
yyparse (yyscan_t yyscanner)
1367
4.41k
{
1368
/* Lookahead token kind.  */
1369
4.41k
int yychar;
1370
1371
1372
/* The semantic value of the lookahead symbol.  */
1373
/* Default value used for initialization, for pacifying older GCCs
1374
   or non-GCC compilers.  */
1375
4.41k
YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
1376
4.41k
YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
1377
1378
    /* Number of syntax errors so far.  */
1379
4.41k
    int yynerrs = 0;
1380
1381
4.41k
    yy_state_fast_t yystate = 0;
1382
    /* Number of tokens to shift before error messages enabled.  */
1383
4.41k
    int yyerrstatus = 0;
1384
1385
    /* Refer to the stacks through separate pointers, to allow yyoverflow
1386
       to reallocate them elsewhere.  */
1387
1388
    /* Their size.  */
1389
4.41k
    YYPTRDIFF_T yystacksize = YYINITDEPTH;
1390
1391
    /* The state stack: array, bottom, top.  */
1392
4.41k
    yy_state_t yyssa[YYINITDEPTH];
1393
4.41k
    yy_state_t *yyss = yyssa;
1394
4.41k
    yy_state_t *yyssp = yyss;
1395
1396
    /* The semantic value stack: array, bottom, top.  */
1397
4.41k
    YYSTYPE yyvsa[YYINITDEPTH];
1398
4.41k
    YYSTYPE *yyvs = yyvsa;
1399
4.41k
    YYSTYPE *yyvsp = yyvs;
1400
1401
4.41k
  int yyn;
1402
  /* The return value of yyparse.  */
1403
4.41k
  int yyresult;
1404
  /* Lookahead symbol kind.  */
1405
4.41k
  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
1406
  /* The variables used to return semantic value and location from the
1407
     action routines.  */
1408
4.41k
  YYSTYPE yyval;
1409
1410
  /* Buffer for error messages, and its allocated size.  */
1411
4.41k
  char yymsgbuf[128];
1412
4.41k
  char *yymsg = yymsgbuf;
1413
4.41k
  YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
1414
1415
10.1M
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
1416
1417
  /* The number of symbols on the RHS of the reduced rule.
1418
     Keep to zero when no symbol should be popped.  */
1419
4.41k
  int yylen = 0;
1420
1421
4.41k
  YYDPRINTF ((stderr, "Starting parse\n"));
1422
1423
4.41k
  yychar = YYEMPTY; /* Cause a token to be read.  */
1424
1425
4.41k
  goto yysetstate;
1426
1427
1428
/*------------------------------------------------------------.
1429
| yynewstate -- push a new state, which is found in yystate.  |
1430
`------------------------------------------------------------*/
1431
14.8M
yynewstate:
1432
  /* In all cases, when you get here, the value and location stacks
1433
     have just been pushed.  So pushing a state here evens the stacks.  */
1434
14.8M
  yyssp++;
1435
1436
1437
/*--------------------------------------------------------------------.
1438
| yysetstate -- set current state (the top of the stack) to yystate.  |
1439
`--------------------------------------------------------------------*/
1440
14.9M
yysetstate:
1441
14.9M
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1442
14.9M
  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1443
14.9M
  YY_IGNORE_USELESS_CAST_BEGIN
1444
14.9M
  *yyssp = YY_CAST (yy_state_t, yystate);
1445
14.9M
  YY_IGNORE_USELESS_CAST_END
1446
14.9M
  YY_STACK_PRINT (yyss, yyssp);
1447
1448
14.9M
  if (yyss + yystacksize - 1 <= yyssp)
1449
0
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
1450
0
    YYNOMEM;
1451
#else
1452
    {
1453
      /* Get the current used size of the three stacks, in elements.  */
1454
      YYPTRDIFF_T yysize = yyssp - yyss + 1;
1455
1456
# if defined yyoverflow
1457
      {
1458
        /* Give user a chance to reallocate the stack.  Use copies of
1459
           these so that the &'s don't force the real ones into
1460
           memory.  */
1461
        yy_state_t *yyss1 = yyss;
1462
        YYSTYPE *yyvs1 = yyvs;
1463
1464
        /* Each stack pointer address is followed by the size of the
1465
           data in use in that stack, in bytes.  This used to be a
1466
           conditional around just the two extra args, but that might
1467
           be undefined if yyoverflow is a macro.  */
1468
        yyoverflow (YY_("memory exhausted"),
1469
                    &yyss1, yysize * YYSIZEOF (*yyssp),
1470
                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
1471
                    &yystacksize);
1472
        yyss = yyss1;
1473
        yyvs = yyvs1;
1474
      }
1475
# else /* defined YYSTACK_RELOCATE */
1476
      /* Extend the stack our own way.  */
1477
      if (YYMAXDEPTH <= yystacksize)
1478
        YYNOMEM;
1479
      yystacksize *= 2;
1480
      if (YYMAXDEPTH < yystacksize)
1481
        yystacksize = YYMAXDEPTH;
1482
1483
      {
1484
        yy_state_t *yyss1 = yyss;
1485
        union yyalloc *yyptr =
1486
          YY_CAST (union yyalloc *,
1487
                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1488
        if (! yyptr)
1489
          YYNOMEM;
1490
        YYSTACK_RELOCATE (yyss_alloc, yyss);
1491
        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1492
#  undef YYSTACK_RELOCATE
1493
        if (yyss1 != yyssa)
1494
          YYSTACK_FREE (yyss1);
1495
      }
1496
# endif
1497
1498
      yyssp = yyss + yysize - 1;
1499
      yyvsp = yyvs + yysize - 1;
1500
1501
      YY_IGNORE_USELESS_CAST_BEGIN
1502
      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
1503
                  YY_CAST (long, yystacksize)));
1504
      YY_IGNORE_USELESS_CAST_END
1505
1506
      if (yyss + yystacksize - 1 <= yyssp)
1507
        YYABORT;
1508
    }
1509
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
1510
1511
1512
14.9M
  if (yystate == YYFINAL)
1513
4.29k
    YYACCEPT;
1514
1515
14.8M
  goto yybackup;
1516
1517
1518
/*-----------.
1519
| yybackup.  |
1520
`-----------*/
1521
14.8M
yybackup:
1522
  /* Do appropriate processing given the current state.  Read a
1523
     lookahead token if we need one and don't already have one.  */
1524
1525
  /* First try to decide what to do without reference to lookahead token.  */
1526
14.8M
  yyn = yypact[yystate];
1527
14.8M
  if (yypact_value_is_default (yyn))
1528
8.18M
    goto yydefault;
1529
1530
  /* Not known => get a lookahead token if don't already have one.  */
1531
1532
  /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
1533
6.70M
  if (yychar == YYEMPTY)
1534
6.55M
    {
1535
6.55M
      YYDPRINTF ((stderr, "Reading a token\n"));
1536
6.55M
      yychar = yylex (&yylval, yyscanner);
1537
6.55M
    }
1538
1539
6.70M
  if (yychar <= YYEOF)
1540
4.44k
    {
1541
4.44k
      yychar = YYEOF;
1542
4.44k
      yytoken = YYSYMBOL_YYEOF;
1543
4.44k
      YYDPRINTF ((stderr, "Now at end of input.\n"));
1544
4.44k
    }
1545
6.70M
  else if (yychar == YYerror)
1546
0
    {
1547
      /* The scanner already issued an error message, process directly
1548
         to error recovery.  But do not keep the error token as
1549
         lookahead, it is too special and may lead us to an endless
1550
         loop in error recovery. */
1551
0
      yychar = YYUNDEF;
1552
0
      yytoken = YYSYMBOL_YYerror;
1553
0
      goto yyerrlab1;
1554
0
    }
1555
6.70M
  else
1556
6.70M
    {
1557
6.70M
      yytoken = YYTRANSLATE (yychar);
1558
6.70M
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1559
6.70M
    }
1560
1561
  /* If the proper action on seeing token YYTOKEN is to reduce or to
1562
     detect an error, take that action.  */
1563
6.70M
  yyn += yytoken;
1564
6.70M
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1565
2.03M
    goto yydefault;
1566
4.66M
  yyn = yytable[yyn];
1567
4.66M
  if (yyn <= 0)
1568
0
    {
1569
0
      if (yytable_value_is_error (yyn))
1570
0
        goto yyerrlab;
1571
0
      yyn = -yyn;
1572
0
      goto yyreduce;
1573
0
    }
1574
1575
  /* Count tokens shifted since error; after three, turn off error
1576
     status.  */
1577
4.66M
  if (yyerrstatus)
1578
301k
    yyerrstatus--;
1579
1580
  /* Shift the lookahead token.  */
1581
4.66M
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1582
4.66M
  yystate = yyn;
1583
4.66M
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1584
4.66M
  *++yyvsp = yylval;
1585
4.66M
  YY_IGNORE_MAYBE_UNINITIALIZED_END
1586
1587
  /* Discard the shifted token.  */
1588
4.66M
  yychar = YYEMPTY;
1589
4.66M
  goto yynewstate;
1590
1591
1592
/*-----------------------------------------------------------.
1593
| yydefault -- do the default action for the current state.  |
1594
`-----------------------------------------------------------*/
1595
10.2M
yydefault:
1596
10.2M
  yyn = yydefact[yystate];
1597
10.2M
  if (yyn == 0)
1598
2.03M
    goto yyerrlab;
1599
8.18M
  goto yyreduce;
1600
1601
1602
/*-----------------------------.
1603
| yyreduce -- do a reduction.  |
1604
`-----------------------------*/
1605
8.18M
yyreduce:
1606
  /* yyn is the number of a rule to reduce with.  */
1607
8.18M
  yylen = yyr2[yyn];
1608
1609
  /* If YYLEN is nonzero, implement the default value of the action:
1610
     '$$ = $1'.
1611
1612
     Otherwise, the following line sets YYVAL to garbage.
1613
     This behavior is undocumented and Bison
1614
     users should not rely upon it.  Assigning to YYVAL
1615
     unconditionally makes the parser a bit smaller, and it avoids a
1616
     GCC warning that YYVAL may be used uninitialized.  */
1617
8.18M
  yyval = yyvsp[1-yylen];
1618
1619
1620
8.18M
  YY_REDUCE_PRINT (yyn);
1621
8.18M
  switch (yyn)
1622
8.18M
    {
1623
0
  case 4: /* stmt: INTERFACE EOSTMT  */
1624
0
#line 112 "cmFortranParser.y"
1625
0
                   {
1626
0
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1627
0
    cmFortranParser_SetInInterface(parser, true);
1628
0
  }
1629
0
#line 1630 "cmFortranParser.cxx"
1630
0
    break;
1631
1632
6.99k
  case 5: /* stmt: USE WORD other EOSTMT  */
1633
6.99k
#line 116 "cmFortranParser.y"
1634
6.99k
                        {
1635
6.99k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1636
6.99k
    cmFortranParser_RuleUse(parser, (yyvsp[-2].string));
1637
6.99k
    free((yyvsp[-2].string));
1638
6.99k
  }
1639
6.99k
#line 1640 "cmFortranParser.cxx"
1640
6.99k
    break;
1641
1642
2.57k
  case 6: /* stmt: MODULE WORD EOSTMT  */
1643
2.57k
#line 121 "cmFortranParser.y"
1644
2.57k
                     {
1645
2.57k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1646
2.57k
    cmFortranParser_RuleModule(parser, (yyvsp[-1].string));
1647
2.57k
    free((yyvsp[-1].string));
1648
2.57k
  }
1649
2.57k
#line 1650 "cmFortranParser.cxx"
1650
2.57k
    break;
1651
1652
4.21k
  case 7: /* stmt: SUBMODULE LPAREN WORD RPAREN WORD EOSTMT  */
1653
4.21k
#line 126 "cmFortranParser.y"
1654
4.21k
                                           {
1655
4.21k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1656
4.21k
    cmFortranParser_RuleSubmodule(parser, (yyvsp[-3].string), (yyvsp[-1].string));
1657
4.21k
    free((yyvsp[-3].string));
1658
4.21k
    free((yyvsp[-1].string));
1659
4.21k
  }
1660
4.21k
#line 1661 "cmFortranParser.cxx"
1661
4.21k
    break;
1662
1663
3.18k
  case 8: /* stmt: SUBMODULE LPAREN WORD COLON WORD RPAREN WORD EOSTMT  */
1664
3.18k
#line 132 "cmFortranParser.y"
1665
3.18k
                                                      {
1666
3.18k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1667
3.18k
    cmFortranParser_RuleSubmoduleNested(parser, (yyvsp[-5].string), (yyvsp[-3].string), (yyvsp[-1].string));
1668
3.18k
    free((yyvsp[-5].string));
1669
3.18k
    free((yyvsp[-3].string));
1670
3.18k
    free((yyvsp[-1].string));
1671
3.18k
  }
1672
3.18k
#line 1673 "cmFortranParser.cxx"
1673
3.18k
    break;
1674
1675
0
  case 9: /* stmt: INTERFACE WORD EOSTMT  */
1676
0
#line 139 "cmFortranParser.y"
1677
0
                        {
1678
0
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1679
0
    cmFortranParser_SetInInterface(parser, true);
1680
0
    free((yyvsp[-1].string));
1681
0
  }
1682
0
#line 1683 "cmFortranParser.cxx"
1683
0
    break;
1684
1685
0
  case 10: /* stmt: END INTERFACE WORD EOSTMT  */
1686
0
#line 144 "cmFortranParser.y"
1687
0
                            {
1688
0
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1689
0
    cmFortranParser_SetInInterface(parser, false);
1690
0
    free((yyvsp[-1].string));
1691
0
  }
1692
0
#line 1693 "cmFortranParser.cxx"
1693
0
    break;
1694
1695
0
  case 11: /* stmt: END INTERFACE EOSTMT  */
1696
0
#line 149 "cmFortranParser.y"
1697
0
                       {
1698
0
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1699
0
    cmFortranParser_SetInInterface(parser, false);
1700
0
  }
1701
0
#line 1702 "cmFortranParser.cxx"
1702
0
    break;
1703
1704
244
  case 12: /* stmt: USE DCOLON WORD other EOSTMT  */
1705
244
#line 153 "cmFortranParser.y"
1706
244
                               {
1707
244
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1708
244
    cmFortranParser_RuleUse(parser, (yyvsp[-2].string));
1709
244
    free((yyvsp[-2].string));
1710
244
  }
1711
244
#line 1712 "cmFortranParser.cxx"
1712
244
    break;
1713
1714
2.86k
  case 13: /* stmt: USE COMMA WORD DCOLON WORD other EOSTMT  */
1715
2.86k
#line 158 "cmFortranParser.y"
1716
2.86k
                                          {
1717
2.86k
    if (cmsysString_strcasecmp((yyvsp[-4].string), "non_intrinsic") == 0) {
1718
0
      cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1719
0
      cmFortranParser_RuleUse(parser, (yyvsp[-2].string));
1720
0
    }
1721
2.86k
    if (cmsysString_strcasecmp((yyvsp[-4].string), "intrinsic") == 0) {
1722
2.31k
      cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1723
2.31k
      cmFortranParser_RuleUseIntrinsic(parser, (yyvsp[-2].string));
1724
2.31k
    }
1725
2.86k
    free((yyvsp[-4].string));
1726
2.86k
    free((yyvsp[-2].string));
1727
2.86k
  }
1728
2.86k
#line 1729 "cmFortranParser.cxx"
1729
2.86k
    break;
1730
1731
3.37k
  case 14: /* stmt: INCLUDE STRING EOSTMT  */
1732
3.37k
#line 170 "cmFortranParser.y"
1733
3.37k
                        {
1734
3.37k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1735
3.37k
    cmFortranParser_RuleInclude(parser, (yyvsp[-1].string));
1736
3.37k
    free((yyvsp[-1].string));
1737
3.37k
  }
1738
3.37k
#line 1739 "cmFortranParser.cxx"
1739
3.37k
    break;
1740
1741
11.9k
  case 15: /* stmt: CPP_LINE_DIRECTIVE STRING other EOSTMT  */
1742
11.9k
#line 175 "cmFortranParser.y"
1743
11.9k
                                         {
1744
11.9k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1745
11.9k
    cmFortranParser_RuleLineDirective(parser, (yyvsp[-2].string));
1746
11.9k
    free((yyvsp[-2].string));
1747
11.9k
  }
1748
11.9k
#line 1749 "cmFortranParser.cxx"
1749
11.9k
    break;
1750
1751
252
  case 16: /* stmt: CPP_INCLUDE_ANGLE other EOSTMT  */
1752
252
#line 180 "cmFortranParser.y"
1753
252
                                 {
1754
252
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1755
252
    cmFortranParser_RuleInclude(parser, (yyvsp[-2].string));
1756
252
    free((yyvsp[-2].string));
1757
252
  }
1758
252
#line 1759 "cmFortranParser.cxx"
1759
252
    break;
1760
1761
3.86k
  case 17: /* stmt: include STRING other EOSTMT  */
1762
3.86k
#line 185 "cmFortranParser.y"
1763
3.86k
                              {
1764
3.86k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1765
3.86k
    cmFortranParser_RuleInclude(parser, (yyvsp[-2].string));
1766
3.86k
    free((yyvsp[-2].string));
1767
3.86k
  }
1768
3.86k
#line 1769 "cmFortranParser.cxx"
1769
3.86k
    break;
1770
1771
48.9k
  case 18: /* stmt: define WORD other EOSTMT  */
1772
48.9k
#line 190 "cmFortranParser.y"
1773
48.9k
                           {
1774
48.9k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1775
48.9k
    cmFortranParser_RuleDefine(parser, (yyvsp[-2].string));
1776
48.9k
    free((yyvsp[-2].string));
1777
48.9k
  }
1778
48.9k
#line 1779 "cmFortranParser.cxx"
1779
48.9k
    break;
1780
1781
42.6k
  case 19: /* stmt: undef WORD other EOSTMT  */
1782
42.6k
#line 195 "cmFortranParser.y"
1783
42.6k
                          {
1784
42.6k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1785
42.6k
    cmFortranParser_RuleUndef(parser, (yyvsp[-2].string));
1786
42.6k
    free((yyvsp[-2].string));
1787
42.6k
  }
1788
42.6k
#line 1789 "cmFortranParser.cxx"
1789
42.6k
    break;
1790
1791
339k
  case 20: /* stmt: ifdef WORD other EOSTMT  */
1792
339k
#line 200 "cmFortranParser.y"
1793
339k
                          {
1794
339k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1795
339k
    cmFortranParser_RuleIfdef(parser, (yyvsp[-2].string));
1796
339k
    free((yyvsp[-2].string));
1797
339k
  }
1798
339k
#line 1799 "cmFortranParser.cxx"
1799
339k
    break;
1800
1801
19.9k
  case 21: /* stmt: ifndef WORD other EOSTMT  */
1802
19.9k
#line 205 "cmFortranParser.y"
1803
19.9k
                           {
1804
19.9k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1805
19.9k
    cmFortranParser_RuleIfndef(parser, (yyvsp[-2].string));
1806
19.9k
    free((yyvsp[-2].string));
1807
19.9k
  }
1808
19.9k
#line 1809 "cmFortranParser.cxx"
1809
19.9k
    break;
1810
1811
1.29M
  case 22: /* stmt: if other EOSTMT  */
1812
1.29M
#line 210 "cmFortranParser.y"
1813
1.29M
                  {
1814
1.29M
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1815
1.29M
    cmFortranParser_RuleIf(parser);
1816
1.29M
  }
1817
1.29M
#line 1818 "cmFortranParser.cxx"
1818
1.29M
    break;
1819
1820
1.85k
  case 23: /* stmt: elif other EOSTMT  */
1821
1.85k
#line 214 "cmFortranParser.y"
1822
1.85k
                    {
1823
1.85k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1824
1.85k
    cmFortranParser_RuleElif(parser);
1825
1.85k
  }
1826
1.85k
#line 1827 "cmFortranParser.cxx"
1827
1.85k
    break;
1828
1829
4.08k
  case 24: /* stmt: else other EOSTMT  */
1830
4.08k
#line 218 "cmFortranParser.y"
1831
4.08k
                    {
1832
4.08k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1833
4.08k
    cmFortranParser_RuleElse(parser);
1834
4.08k
  }
1835
4.08k
#line 1836 "cmFortranParser.cxx"
1836
4.08k
    break;
1837
1838
7.38k
  case 25: /* stmt: endif other EOSTMT  */
1839
7.38k
#line 222 "cmFortranParser.y"
1840
7.38k
                     {
1841
7.38k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1842
7.38k
    cmFortranParser_RuleEndif(parser);
1843
7.38k
  }
1844
7.38k
#line 1845 "cmFortranParser.cxx"
1845
7.38k
    break;
1846
1847
162k
  case 49: /* misc_code: WORD  */
1848
162k
#line 244 "cmFortranParser.y"
1849
162k
                      { free ((yyvsp[0].string)); }
1850
162k
#line 1851 "cmFortranParser.cxx"
1851
162k
    break;
1852
1853
4.34k
  case 56: /* misc_code: STRING  */
1854
4.34k
#line 251 "cmFortranParser.y"
1855
4.34k
                      { free ((yyvsp[0].string)); }
1856
4.34k
#line 1857 "cmFortranParser.cxx"
1857
4.34k
    break;
1858
1859
1860
0
#line 1861 "cmFortranParser.cxx"
1861
1862
6.22M
      default: break;
1863
8.18M
    }
1864
  /* User semantic actions sometimes alter yychar, and that requires
1865
     that yytoken be updated with the new translation.  We take the
1866
     approach of translating immediately before every use of yytoken.
1867
     One alternative is translating here after every semantic action,
1868
     but that translation would be missed if the semantic action invokes
1869
     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
1870
     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
1871
     incorrect destructor might then be invoked immediately.  In the
1872
     case of YYERROR or YYBACKUP, subsequent parser actions might lead
1873
     to an incorrect destructor call or verbose syntax error message
1874
     before the lookahead is translated.  */
1875
8.18M
  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
1876
1877
8.18M
  YYPOPSTACK (yylen);
1878
8.18M
  yylen = 0;
1879
1880
8.18M
  *++yyvsp = yyval;
1881
1882
  /* Now 'shift' the result of the reduction.  Determine what state
1883
     that goes to, based on the state we popped back to and the rule
1884
     number reduced by.  */
1885
8.18M
  {
1886
8.18M
    const int yylhs = yyr1[yyn] - YYNTOKENS;
1887
8.18M
    const int yyi = yypgoto[yylhs] + *yyssp;
1888
8.18M
    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
1889
8.18M
               ? yytable[yyi]
1890
8.18M
               : yydefgoto[yylhs]);
1891
8.18M
  }
1892
1893
8.18M
  goto yynewstate;
1894
1895
1896
/*--------------------------------------.
1897
| yyerrlab -- here on detecting error.  |
1898
`--------------------------------------*/
1899
2.03M
yyerrlab:
1900
  /* Make sure we have latest lookahead translation.  See comments at
1901
     user semantic actions for why this is necessary.  */
1902
2.03M
  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
1903
  /* If not already recovering from an error, report this error.  */
1904
2.03M
  if (!yyerrstatus)
1905
72.5k
    {
1906
72.5k
      ++yynerrs;
1907
72.5k
      {
1908
72.5k
        yypcontext_t yyctx
1909
72.5k
          = {yyssp, yytoken};
1910
72.5k
        char const *yymsgp = YY_("syntax error");
1911
72.5k
        int yysyntax_error_status;
1912
72.5k
        yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
1913
72.5k
        if (yysyntax_error_status == 0)
1914
72.5k
          yymsgp = yymsg;
1915
0
        else if (yysyntax_error_status == -1)
1916
0
          {
1917
0
            if (yymsg != yymsgbuf)
1918
0
              YYSTACK_FREE (yymsg);
1919
0
            yymsg = YY_CAST (char *,
1920
0
                             YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
1921
0
            if (yymsg)
1922
0
              {
1923
0
                yysyntax_error_status
1924
0
                  = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
1925
0
                yymsgp = yymsg;
1926
0
              }
1927
0
            else
1928
0
              {
1929
0
                yymsg = yymsgbuf;
1930
0
                yymsg_alloc = sizeof yymsgbuf;
1931
0
                yysyntax_error_status = YYENOMEM;
1932
0
              }
1933
0
          }
1934
72.5k
        yyerror (yyscanner, yymsgp);
1935
72.5k
        if (yysyntax_error_status == YYENOMEM)
1936
0
          YYNOMEM;
1937
72.5k
      }
1938
72.5k
    }
1939
1940
2.03M
  if (yyerrstatus == 3)
1941
1.88M
    {
1942
      /* If just tried and failed to reuse lookahead token after an
1943
         error, discard it.  */
1944
1945
1.88M
      if (yychar <= YYEOF)
1946
119
        {
1947
          /* Return failure if at end of input.  */
1948
119
          if (yychar == YYEOF)
1949
119
            YYABORT;
1950
119
        }
1951
1.88M
      else
1952
1.88M
        {
1953
1.88M
          yydestruct ("Error: discarding",
1954
1.88M
                      yytoken, &yylval, yyscanner);
1955
1.88M
          yychar = YYEMPTY;
1956
1.88M
        }
1957
1.88M
    }
1958
1959
  /* Else will try to reuse lookahead token after shifting the error
1960
     token.  */
1961
2.03M
  goto yyerrlab1;
1962
1963
1964
/*---------------------------------------------------.
1965
| yyerrorlab -- error raised explicitly by YYERROR.  |
1966
`---------------------------------------------------*/
1967
2.03M
yyerrorlab:
1968
  /* Pacify compilers when the user code never invokes YYERROR and the
1969
     label yyerrorlab therefore never appears in user code.  */
1970
0
  if (0)
1971
0
    YYERROR;
1972
0
  ++yynerrs;
1973
1974
  /* Do not reclaim the symbols of the rule whose action triggered
1975
     this YYERROR.  */
1976
0
  YYPOPSTACK (yylen);
1977
0
  yylen = 0;
1978
0
  YY_STACK_PRINT (yyss, yyssp);
1979
0
  yystate = *yyssp;
1980
0
  goto yyerrlab1;
1981
1982
1983
/*-------------------------------------------------------------.
1984
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
1985
`-------------------------------------------------------------*/
1986
2.03M
yyerrlab1:
1987
2.03M
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
1988
1989
  /* Pop stack until we find a state that shifts the error token.  */
1990
2.03M
  for (;;)
1991
3.94M
    {
1992
3.94M
      yyn = yypact[yystate];
1993
3.94M
      if (!yypact_value_is_default (yyn))
1994
3.94M
        {
1995
3.94M
          yyn += YYSYMBOL_YYerror;
1996
3.94M
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
1997
2.03M
            {
1998
2.03M
              yyn = yytable[yyn];
1999
2.03M
              if (0 < yyn)
2000
2.03M
                break;
2001
2.03M
            }
2002
3.94M
        }
2003
2004
      /* Pop the current state because it cannot handle the error token.  */
2005
1.90M
      if (yyssp == yyss)
2006
0
        YYABORT;
2007
2008
2009
1.90M
      yydestruct ("Error: popping",
2010
1.90M
                  YY_ACCESSING_SYMBOL (yystate), yyvsp, yyscanner);
2011
1.90M
      YYPOPSTACK (1);
2012
1.90M
      yystate = *yyssp;
2013
1.90M
      YY_STACK_PRINT (yyss, yyssp);
2014
1.90M
    }
2015
2016
2.03M
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2017
2.03M
  *++yyvsp = yylval;
2018
2.03M
  YY_IGNORE_MAYBE_UNINITIALIZED_END
2019
2020
2021
  /* Shift the error token.  */
2022
2.03M
  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
2023
2024
2.03M
  yystate = yyn;
2025
2.03M
  goto yynewstate;
2026
2027
2028
/*-------------------------------------.
2029
| yyacceptlab -- YYACCEPT comes here.  |
2030
`-------------------------------------*/
2031
4.29k
yyacceptlab:
2032
4.29k
  yyresult = 0;
2033
4.29k
  goto yyreturnlab;
2034
2035
2036
/*-----------------------------------.
2037
| yyabortlab -- YYABORT comes here.  |
2038
`-----------------------------------*/
2039
119
yyabortlab:
2040
119
  yyresult = 1;
2041
119
  goto yyreturnlab;
2042
2043
2044
/*-----------------------------------------------------------.
2045
| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
2046
`-----------------------------------------------------------*/
2047
0
yyexhaustedlab:
2048
0
  yyerror (yyscanner, YY_("memory exhausted"));
2049
0
  yyresult = 2;
2050
0
  goto yyreturnlab;
2051
2052
2053
/*----------------------------------------------------------.
2054
| yyreturnlab -- parsing is finished, clean up and return.  |
2055
`----------------------------------------------------------*/
2056
4.41k
yyreturnlab:
2057
4.41k
  if (yychar != YYEMPTY)
2058
119
    {
2059
      /* Make sure we have latest lookahead translation.  See comments at
2060
         user semantic actions for why this is necessary.  */
2061
119
      yytoken = YYTRANSLATE (yychar);
2062
119
      yydestruct ("Cleanup: discarding lookahead",
2063
119
                  yytoken, &yylval, yyscanner);
2064
119
    }
2065
  /* Do not reclaim the symbols of the rule whose action triggered
2066
     this YYABORT or YYACCEPT.  */
2067
4.41k
  YYPOPSTACK (yylen);
2068
4.41k
  YY_STACK_PRINT (yyss, yyssp);
2069
13.2k
  while (yyssp != yyss)
2070
8.83k
    {
2071
8.83k
      yydestruct ("Cleanup: popping",
2072
8.83k
                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yyscanner);
2073
8.83k
      YYPOPSTACK (1);
2074
8.83k
    }
2075
4.41k
#ifndef yyoverflow
2076
4.41k
  if (yyss != yyssa)
2077
0
    YYSTACK_FREE (yyss);
2078
4.41k
#endif
2079
4.41k
  if (yymsg != yymsgbuf)
2080
0
    YYSTACK_FREE (yymsg);
2081
4.41k
  return yyresult;
2082
2.03M
}
2083
2084
#line 263 "cmFortranParser.y"
2085
2086
/* End of grammar */