Coverage Report

Created: 2026-09-14 06:43

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
5.74M
#define yylex           cmFortran_yylex
70
244k
#define yyerror         cmFortran_yyerror
71
#define yydebug         cmFortran_yydebug
72
244k
#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
244k
{
118
244k
  cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
119
244k
  cmFortranParser_Error(parser, message);
120
244k
}
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
24.3M
#   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
544k
#    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
551k
#  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
300k
  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
244k
#  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
8.23M
# 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
7.22k
# 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
11.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
300k
#   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
11.9M
#define YYFINAL  2
553
/* YYLAST -- Last index in YYTABLE.  */
554
24.2M
#define YYLAST   433
555
556
/* YYNTOKENS -- Number of terminals.  */
557
6.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.49M
#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.8M
  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
573
10.8M
   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
574
10.8M
   : 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
2.11M
#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
16.6M
#define YYPACT_NINF (-39)
659
660
#define yypact_value_is_default(Yyn) \
661
16.6M
  ((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
3.53k
#define YYACCEPT        goto yyacceptlab
870
78
#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
17.7M
# 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
3.61k
# 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
244k
{
1061
  /* Actual size of YYARG. */
1062
244k
  int yycount = 0;
1063
244k
  int yyn = yypact[+*yyctx->yyssp];
1064
244k
  if (!yypact_value_is_default (yyn))
1065
244k
    {
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
244k
      int yyxbegin = yyn < 0 ? -yyn : 0;
1070
      /* Stay within bounds of both yycheck and yytname.  */
1071
244k
      int yychecklim = YYLAST - yyn + 1;
1072
244k
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1073
244k
      int yyx;
1074
2.94M
      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1075
2.90M
        if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
1076
0
            && !yytable_value_is_error (yytable[yyx + yyn]))
1077
1.08M
          {
1078
1.08M
            if (!yyarg)
1079
0
              ++yycount;
1080
1.08M
            else if (yycount == yyargn)
1081
204k
              return 0;
1082
875k
            else
1083
875k
              yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
1084
1.08M
          }
1085
244k
    }
1086
39.3k
  if (yyarg && yycount == 0 && 0 < yyargn)
1087
0
    yyarg[0] = YYSYMBOL_YYEMPTY;
1088
39.3k
  return yycount;
1089
244k
}
1090
1091
1092
1093
1094
#ifndef yystrlen
1095
# if defined __GLIBC__ && defined _STRING_H
1096
544k
#  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
300k
#  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
600k
{
1141
600k
  if (*yystr == '"')
1142
34
    {
1143
34
      YYPTRDIFF_T yyn = 0;
1144
34
      char const *yyp = yystr;
1145
34
      for (;;)
1146
408
        switch (*++yyp)
1147
408
          {
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
374
          default:
1160
374
            if (yyres)
1161
187
              yyres[yyn] = *yyp;
1162
374
            yyn++;
1163
374
            break;
1164
1165
34
          case '"':
1166
34
            if (yyres)
1167
17
              yyres[yyn] = '\0';
1168
34
            return yyn;
1169
408
          }
1170
0
    do_not_strip_quotes: ;
1171
0
    }
1172
1173
600k
  if (yyres)
1174
300k
    return yystpcpy (yyres, yystr) - yyres;
1175
300k
  else
1176
300k
    return yystrlen (yystr);
1177
600k
}
1178
#endif
1179
1180
1181
static int
1182
yy_syntax_error_arguments (const yypcontext_t *yyctx,
1183
                           yysymbol_kind_t yyarg[], int yyargn)
1184
244k
{
1185
  /* Actual size of YYARG. */
1186
244k
  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
244k
  if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
1211
244k
    {
1212
244k
      int yyn;
1213
244k
      if (yyarg)
1214
244k
        yyarg[yycount] = yyctx->yytoken;
1215
244k
      ++yycount;
1216
244k
      yyn = yypcontext_expected_tokens (yyctx,
1217
244k
                                        yyarg ? yyarg + 1 : yyarg, yyargn - 1);
1218
244k
      if (yyn == YYENOMEM)
1219
0
        return YYENOMEM;
1220
244k
      else
1221
244k
        yycount += yyn;
1222
244k
    }
1223
244k
  return yycount;
1224
244k
}
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
244k
{
1238
244k
  enum { YYARGS_MAX = 5 };
1239
  /* Internationalized format string. */
1240
244k
  const char *yyformat = YY_NULLPTR;
1241
  /* Arguments of yyformat: reported tokens (one for the "unexpected",
1242
     one per "expected"). */
1243
244k
  yysymbol_kind_t yyarg[YYARGS_MAX];
1244
  /* Cumulated lengths of YYARG.  */
1245
244k
  YYPTRDIFF_T yysize = 0;
1246
1247
  /* Actual size of YYARG. */
1248
244k
  int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
1249
244k
  if (yycount == YYENOMEM)
1250
0
    return YYENOMEM;
1251
1252
244k
  switch (yycount)
1253
244k
    {
1254
0
#define YYCASE_(N, S)                       \
1255
244k
      case N:                               \
1256
244k
        yyformat = S;                       \
1257
244k
        break
1258
0
    default: /* Avoid compiler warnings. */
1259
0
      YYCASE_(0, YY_("syntax error"));
1260
204k
      YYCASE_(1, YY_("syntax error, unexpected %s"));
1261
23.8k
      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1262
14.6k
      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1263
902
      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1264
244k
      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1265
244k
#undef YYCASE_
1266
244k
    }
1267
1268
  /* Compute error message size.  Don't count the "%s"s, but reserve
1269
     room for the terminator.  */
1270
244k
  yysize = yystrlen (yyformat) - 2 * yycount + 1;
1271
244k
  {
1272
244k
    int yyi;
1273
544k
    for (yyi = 0; yyi < yycount; ++yyi)
1274
300k
      {
1275
300k
        YYPTRDIFF_T yysize1
1276
300k
          = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
1277
300k
        if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
1278
300k
          yysize = yysize1;
1279
0
        else
1280
0
          return YYENOMEM;
1281
300k
      }
1282
244k
  }
1283
1284
244k
  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
244k
  {
1297
244k
    char *yyp = *yymsg;
1298
244k
    int yyi = 0;
1299
7.18M
    while ((*yyp = *yyformat) != '\0')
1300
6.94M
      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1301
300k
        {
1302
300k
          yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
1303
300k
          yyformat += 2;
1304
300k
        }
1305
6.64M
      else
1306
6.64M
        {
1307
6.64M
          ++yyp;
1308
6.64M
          ++yyformat;
1309
6.64M
        }
1310
244k
  }
1311
244k
  return 0;
1312
244k
}
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
4.11M
{
1323
4.11M
  YY_USE (yyvaluep);
1324
4.11M
  YY_USE (yyscanner);
1325
4.11M
  if (!yymsg)
1326
0
    yymsg = "Deleting";
1327
4.11M
  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
1328
1329
4.11M
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1330
4.11M
  switch (yykind)
1331
4.11M
    {
1332
156k
    case YYSYMBOL_STRING: /* STRING  */
1333
156k
#line 103 "cmFortranParser.y"
1334
156k
            { free(((*yyvaluep).string)); }
1335
156k
#line 1336 "cmFortranParser.cxx"
1336
156k
        break;
1337
1338
612k
    case YYSYMBOL_WORD: /* WORD  */
1339
612k
#line 103 "cmFortranParser.y"
1340
612k
            { free(((*yyvaluep).string)); }
1341
612k
#line 1342 "cmFortranParser.cxx"
1342
612k
        break;
1343
1344
27
    case YYSYMBOL_CPP_INCLUDE_ANGLE: /* CPP_INCLUDE_ANGLE  */
1345
27
#line 103 "cmFortranParser.y"
1346
27
            { free(((*yyvaluep).string)); }
1347
27
#line 1348 "cmFortranParser.cxx"
1348
27
        break;
1349
1350
3.35M
      default:
1351
3.35M
        break;
1352
4.11M
    }
1353
4.11M
  YY_IGNORE_MAYBE_UNINITIALIZED_END
1354
4.11M
}
1355
1356
1357
1358
1359
1360
1361
/*----------.
1362
| yyparse.  |
1363
`----------*/
1364
1365
int
1366
yyparse (yyscan_t yyscanner)
1367
3.61k
{
1368
/* Lookahead token kind.  */
1369
3.61k
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
3.61k
YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
1376
3.61k
YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
1377
1378
    /* Number of syntax errors so far.  */
1379
3.61k
    int yynerrs = 0;
1380
1381
3.61k
    yy_state_fast_t yystate = 0;
1382
    /* Number of tokens to shift before error messages enabled.  */
1383
3.61k
    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
3.61k
    YYPTRDIFF_T yystacksize = YYINITDEPTH;
1390
1391
    /* The state stack: array, bottom, top.  */
1392
3.61k
    yy_state_t yyssa[YYINITDEPTH];
1393
3.61k
    yy_state_t *yyss = yyssa;
1394
3.61k
    yy_state_t *yyssp = yyss;
1395
1396
    /* The semantic value stack: array, bottom, top.  */
1397
3.61k
    YYSTYPE yyvsa[YYINITDEPTH];
1398
3.61k
    YYSTYPE *yyvs = yyvsa;
1399
3.61k
    YYSTYPE *yyvsp = yyvs;
1400
1401
3.61k
  int yyn;
1402
  /* The return value of yyparse.  */
1403
3.61k
  int yyresult;
1404
  /* Lookahead symbol kind.  */
1405
3.61k
  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
1406
  /* The variables used to return semantic value and location from the
1407
     action routines.  */
1408
3.61k
  YYSTYPE yyval;
1409
1410
  /* Buffer for error messages, and its allocated size.  */
1411
3.61k
  char yymsgbuf[128];
1412
3.61k
  char *yymsg = yymsgbuf;
1413
3.61k
  YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
1414
1415
7.97M
#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
3.61k
  int yylen = 0;
1420
1421
3.61k
  YYDPRINTF ((stderr, "Starting parse\n"));
1422
1423
3.61k
  yychar = YYEMPTY; /* Cause a token to be read.  */
1424
1425
3.61k
  goto yysetstate;
1426
1427
1428
/*------------------------------------------------------------.
1429
| yynewstate -- push a new state, which is found in yystate.  |
1430
`------------------------------------------------------------*/
1431
11.9M
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
11.9M
  yyssp++;
1435
1436
1437
/*--------------------------------------------------------------------.
1438
| yysetstate -- set current state (the top of the stack) to yystate.  |
1439
`--------------------------------------------------------------------*/
1440
11.9M
yysetstate:
1441
11.9M
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1442
11.9M
  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1443
11.9M
  YY_IGNORE_USELESS_CAST_BEGIN
1444
11.9M
  *yyssp = YY_CAST (yy_state_t, yystate);
1445
11.9M
  YY_IGNORE_USELESS_CAST_END
1446
11.9M
  YY_STACK_PRINT (yyss, yyssp);
1447
1448
11.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
11.9M
  if (yystate == YYFINAL)
1513
3.53k
    YYACCEPT;
1514
1515
11.9M
  goto yybackup;
1516
1517
1518
/*-----------.
1519
| yybackup.  |
1520
`-----------*/
1521
11.9M
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
11.9M
  yyn = yypact[yystate];
1527
11.9M
  if (yypact_value_is_default (yyn))
1528
5.84M
    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.11M
  if (yychar == YYEMPTY)
1534
5.74M
    {
1535
5.74M
      YYDPRINTF ((stderr, "Reading a token\n"));
1536
5.74M
      yychar = yylex (&yylval, yyscanner);
1537
5.74M
    }
1538
1539
6.11M
  if (yychar <= YYEOF)
1540
3.63k
    {
1541
3.63k
      yychar = YYEOF;
1542
3.63k
      yytoken = YYSYMBOL_YYEOF;
1543
3.63k
      YYDPRINTF ((stderr, "Now at end of input.\n"));
1544
3.63k
    }
1545
6.11M
  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.11M
  else
1556
6.11M
    {
1557
6.11M
      yytoken = YYTRANSLATE (yychar);
1558
6.11M
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1559
6.11M
    }
1560
1561
  /* If the proper action on seeing token YYTOKEN is to reduce or to
1562
     detect an error, take that action.  */
1563
6.11M
  yyn += yytoken;
1564
6.11M
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1565
2.37M
    goto yydefault;
1566
3.74M
  yyn = yytable[yyn];
1567
3.74M
  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
3.74M
  if (yyerrstatus)
1578
879k
    yyerrstatus--;
1579
1580
  /* Shift the lookahead token.  */
1581
3.74M
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1582
3.74M
  yystate = yyn;
1583
3.74M
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1584
3.74M
  *++yyvsp = yylval;
1585
3.74M
  YY_IGNORE_MAYBE_UNINITIALIZED_END
1586
1587
  /* Discard the shifted token.  */
1588
3.74M
  yychar = YYEMPTY;
1589
3.74M
  goto yynewstate;
1590
1591
1592
/*-----------------------------------------------------------.
1593
| yydefault -- do the default action for the current state.  |
1594
`-----------------------------------------------------------*/
1595
8.22M
yydefault:
1596
8.22M
  yyn = yydefact[yystate];
1597
8.22M
  if (yyn == 0)
1598
2.37M
    goto yyerrlab;
1599
5.84M
  goto yyreduce;
1600
1601
1602
/*-----------------------------.
1603
| yyreduce -- do a reduction.  |
1604
`-----------------------------*/
1605
5.84M
yyreduce:
1606
  /* yyn is the number of a rule to reduce with.  */
1607
5.84M
  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
5.84M
  yyval = yyvsp[1-yylen];
1618
1619
1620
5.84M
  YY_REDUCE_PRINT (yyn);
1621
5.84M
  switch (yyn)
1622
5.84M
    {
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
20.9k
  case 5: /* stmt: USE WORD other EOSTMT  */
1633
20.9k
#line 116 "cmFortranParser.y"
1634
20.9k
                        {
1635
20.9k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1636
20.9k
    cmFortranParser_RuleUse(parser, (yyvsp[-2].string));
1637
20.9k
    free((yyvsp[-2].string));
1638
20.9k
  }
1639
20.9k
#line 1640 "cmFortranParser.cxx"
1640
20.9k
    break;
1641
1642
5.65k
  case 6: /* stmt: MODULE WORD EOSTMT  */
1643
5.65k
#line 121 "cmFortranParser.y"
1644
5.65k
                     {
1645
5.65k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1646
5.65k
    cmFortranParser_RuleModule(parser, (yyvsp[-1].string));
1647
5.65k
    free((yyvsp[-1].string));
1648
5.65k
  }
1649
5.65k
#line 1650 "cmFortranParser.cxx"
1650
5.65k
    break;
1651
1652
14.0k
  case 7: /* stmt: SUBMODULE LPAREN WORD RPAREN WORD EOSTMT  */
1653
14.0k
#line 126 "cmFortranParser.y"
1654
14.0k
                                           {
1655
14.0k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1656
14.0k
    cmFortranParser_RuleSubmodule(parser, (yyvsp[-3].string), (yyvsp[-1].string));
1657
14.0k
    free((yyvsp[-3].string));
1658
14.0k
    free((yyvsp[-1].string));
1659
14.0k
  }
1660
14.0k
#line 1661 "cmFortranParser.cxx"
1661
14.0k
    break;
1662
1663
11.5k
  case 8: /* stmt: SUBMODULE LPAREN WORD COLON WORD RPAREN WORD EOSTMT  */
1664
11.5k
#line 132 "cmFortranParser.y"
1665
11.5k
                                                      {
1666
11.5k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1667
11.5k
    cmFortranParser_RuleSubmoduleNested(parser, (yyvsp[-5].string), (yyvsp[-3].string), (yyvsp[-1].string));
1668
11.5k
    free((yyvsp[-5].string));
1669
11.5k
    free((yyvsp[-3].string));
1670
11.5k
    free((yyvsp[-1].string));
1671
11.5k
  }
1672
11.5k
#line 1673 "cmFortranParser.cxx"
1673
11.5k
    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
362
  case 12: /* stmt: USE DCOLON WORD other EOSTMT  */
1705
362
#line 153 "cmFortranParser.y"
1706
362
                               {
1707
362
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1708
362
    cmFortranParser_RuleUse(parser, (yyvsp[-2].string));
1709
362
    free((yyvsp[-2].string));
1710
362
  }
1711
362
#line 1712 "cmFortranParser.cxx"
1712
362
    break;
1713
1714
5.65k
  case 13: /* stmt: USE COMMA WORD DCOLON WORD other EOSTMT  */
1715
5.65k
#line 158 "cmFortranParser.y"
1716
5.65k
                                          {
1717
5.65k
    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
5.65k
    if (cmsysString_strcasecmp((yyvsp[-4].string), "intrinsic") == 0) {
1722
5.06k
      cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1723
5.06k
      cmFortranParser_RuleUseIntrinsic(parser, (yyvsp[-2].string));
1724
5.06k
    }
1725
5.65k
    free((yyvsp[-4].string));
1726
5.65k
    free((yyvsp[-2].string));
1727
5.65k
  }
1728
5.65k
#line 1729 "cmFortranParser.cxx"
1729
5.65k
    break;
1730
1731
1.68k
  case 14: /* stmt: INCLUDE STRING EOSTMT  */
1732
1.68k
#line 170 "cmFortranParser.y"
1733
1.68k
                        {
1734
1.68k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1735
1.68k
    cmFortranParser_RuleInclude(parser, (yyvsp[-1].string));
1736
1.68k
    free((yyvsp[-1].string));
1737
1.68k
  }
1738
1.68k
#line 1739 "cmFortranParser.cxx"
1739
1.68k
    break;
1740
1741
43.7k
  case 15: /* stmt: CPP_LINE_DIRECTIVE STRING other EOSTMT  */
1742
43.7k
#line 175 "cmFortranParser.y"
1743
43.7k
                                         {
1744
43.7k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1745
43.7k
    cmFortranParser_RuleLineDirective(parser, (yyvsp[-2].string));
1746
43.7k
    free((yyvsp[-2].string));
1747
43.7k
  }
1748
43.7k
#line 1749 "cmFortranParser.cxx"
1749
43.7k
    break;
1750
1751
809
  case 16: /* stmt: CPP_INCLUDE_ANGLE other EOSTMT  */
1752
809
#line 180 "cmFortranParser.y"
1753
809
                                 {
1754
809
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1755
809
    cmFortranParser_RuleInclude(parser, (yyvsp[-2].string));
1756
809
    free((yyvsp[-2].string));
1757
809
  }
1758
809
#line 1759 "cmFortranParser.cxx"
1759
809
    break;
1760
1761
35.3k
  case 17: /* stmt: include STRING other EOSTMT  */
1762
35.3k
#line 185 "cmFortranParser.y"
1763
35.3k
                              {
1764
35.3k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1765
35.3k
    cmFortranParser_RuleInclude(parser, (yyvsp[-2].string));
1766
35.3k
    free((yyvsp[-2].string));
1767
35.3k
  }
1768
35.3k
#line 1769 "cmFortranParser.cxx"
1769
35.3k
    break;
1770
1771
75.0k
  case 18: /* stmt: define WORD other EOSTMT  */
1772
75.0k
#line 190 "cmFortranParser.y"
1773
75.0k
                           {
1774
75.0k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1775
75.0k
    cmFortranParser_RuleDefine(parser, (yyvsp[-2].string));
1776
75.0k
    free((yyvsp[-2].string));
1777
75.0k
  }
1778
75.0k
#line 1779 "cmFortranParser.cxx"
1779
75.0k
    break;
1780
1781
68.9k
  case 19: /* stmt: undef WORD other EOSTMT  */
1782
68.9k
#line 195 "cmFortranParser.y"
1783
68.9k
                          {
1784
68.9k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1785
68.9k
    cmFortranParser_RuleUndef(parser, (yyvsp[-2].string));
1786
68.9k
    free((yyvsp[-2].string));
1787
68.9k
  }
1788
68.9k
#line 1789 "cmFortranParser.cxx"
1789
68.9k
    break;
1790
1791
19.0k
  case 20: /* stmt: ifdef WORD other EOSTMT  */
1792
19.0k
#line 200 "cmFortranParser.y"
1793
19.0k
                          {
1794
19.0k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1795
19.0k
    cmFortranParser_RuleIfdef(parser, (yyvsp[-2].string));
1796
19.0k
    free((yyvsp[-2].string));
1797
19.0k
  }
1798
19.0k
#line 1799 "cmFortranParser.cxx"
1799
19.0k
    break;
1800
1801
225k
  case 21: /* stmt: ifndef WORD other EOSTMT  */
1802
225k
#line 205 "cmFortranParser.y"
1803
225k
                           {
1804
225k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1805
225k
    cmFortranParser_RuleIfndef(parser, (yyvsp[-2].string));
1806
225k
    free((yyvsp[-2].string));
1807
225k
  }
1808
225k
#line 1809 "cmFortranParser.cxx"
1809
225k
    break;
1810
1811
81.2k
  case 22: /* stmt: if other EOSTMT  */
1812
81.2k
#line 210 "cmFortranParser.y"
1813
81.2k
                  {
1814
81.2k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1815
81.2k
    cmFortranParser_RuleIf(parser);
1816
81.2k
  }
1817
81.2k
#line 1818 "cmFortranParser.cxx"
1818
81.2k
    break;
1819
1820
3.37k
  case 23: /* stmt: elif other EOSTMT  */
1821
3.37k
#line 214 "cmFortranParser.y"
1822
3.37k
                    {
1823
3.37k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1824
3.37k
    cmFortranParser_RuleElif(parser);
1825
3.37k
  }
1826
3.37k
#line 1827 "cmFortranParser.cxx"
1827
3.37k
    break;
1828
1829
15.4k
  case 24: /* stmt: else other EOSTMT  */
1830
15.4k
#line 218 "cmFortranParser.y"
1831
15.4k
                    {
1832
15.4k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1833
15.4k
    cmFortranParser_RuleElse(parser);
1834
15.4k
  }
1835
15.4k
#line 1836 "cmFortranParser.cxx"
1836
15.4k
    break;
1837
1838
8.48k
  case 25: /* stmt: endif other EOSTMT  */
1839
8.48k
#line 222 "cmFortranParser.y"
1840
8.48k
                     {
1841
8.48k
    cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
1842
8.48k
    cmFortranParser_RuleEndif(parser);
1843
8.48k
  }
1844
8.48k
#line 1845 "cmFortranParser.cxx"
1845
8.48k
    break;
1846
1847
534k
  case 49: /* misc_code: WORD  */
1848
534k
#line 244 "cmFortranParser.y"
1849
534k
                      { free ((yyvsp[0].string)); }
1850
534k
#line 1851 "cmFortranParser.cxx"
1851
534k
    break;
1852
1853
138k
  case 56: /* misc_code: STRING  */
1854
138k
#line 251 "cmFortranParser.y"
1855
138k
                      { free ((yyvsp[0].string)); }
1856
138k
#line 1857 "cmFortranParser.cxx"
1857
138k
    break;
1858
1859
1860
0
#line 1861 "cmFortranParser.cxx"
1861
1862
4.53M
      default: break;
1863
5.84M
    }
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
5.84M
  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
1876
1877
5.84M
  YYPOPSTACK (yylen);
1878
5.84M
  yylen = 0;
1879
1880
5.84M
  *++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
5.84M
  {
1886
5.84M
    const int yylhs = yyr1[yyn] - YYNTOKENS;
1887
5.84M
    const int yyi = yypgoto[yylhs] + *yyssp;
1888
5.84M
    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
1889
5.84M
               ? yytable[yyi]
1890
5.84M
               : yydefgoto[yylhs]);
1891
5.84M
  }
1892
1893
5.84M
  goto yynewstate;
1894
1895
1896
/*--------------------------------------.
1897
| yyerrlab -- here on detecting error.  |
1898
`--------------------------------------*/
1899
2.37M
yyerrlab:
1900
  /* Make sure we have latest lookahead translation.  See comments at
1901
     user semantic actions for why this is necessary.  */
1902
2.37M
  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
1903
  /* If not already recovering from an error, report this error.  */
1904
2.37M
  if (!yyerrstatus)
1905
244k
    {
1906
244k
      ++yynerrs;
1907
244k
      {
1908
244k
        yypcontext_t yyctx
1909
244k
          = {yyssp, yytoken};
1910
244k
        char const *yymsgp = YY_("syntax error");
1911
244k
        int yysyntax_error_status;
1912
244k
        yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
1913
244k
        if (yysyntax_error_status == 0)
1914
244k
          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
244k
        yyerror (yyscanner, yymsgp);
1935
244k
        if (yysyntax_error_status == YYENOMEM)
1936
0
          YYNOMEM;
1937
244k
      }
1938
244k
    }
1939
1940
2.37M
  if (yyerrstatus == 3)
1941
2.00M
    {
1942
      /* If just tried and failed to reuse lookahead token after an
1943
         error, discard it.  */
1944
1945
2.00M
      if (yychar <= YYEOF)
1946
78
        {
1947
          /* Return failure if at end of input.  */
1948
78
          if (yychar == YYEOF)
1949
78
            YYABORT;
1950
78
        }
1951
2.00M
      else
1952
2.00M
        {
1953
2.00M
          yydestruct ("Error: discarding",
1954
2.00M
                      yytoken, &yylval, yyscanner);
1955
2.00M
          yychar = YYEMPTY;
1956
2.00M
        }
1957
2.00M
    }
1958
1959
  /* Else will try to reuse lookahead token after shifting the error
1960
     token.  */
1961
2.37M
  goto yyerrlab1;
1962
1963
1964
/*---------------------------------------------------.
1965
| yyerrorlab -- error raised explicitly by YYERROR.  |
1966
`---------------------------------------------------*/
1967
2.37M
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.37M
yyerrlab1:
1987
2.37M
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
1988
1989
  /* Pop stack until we find a state that shifts the error token.  */
1990
2.37M
  for (;;)
1991
4.48M
    {
1992
4.48M
      yyn = yypact[yystate];
1993
4.48M
      if (!yypact_value_is_default (yyn))
1994
4.48M
        {
1995
4.48M
          yyn += YYSYMBOL_YYerror;
1996
4.48M
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
1997
2.37M
            {
1998
2.37M
              yyn = yytable[yyn];
1999
2.37M
              if (0 < yyn)
2000
2.37M
                break;
2001
2.37M
            }
2002
4.48M
        }
2003
2004
      /* Pop the current state because it cannot handle the error token.  */
2005
2.11M
      if (yyssp == yyss)
2006
0
        YYABORT;
2007
2008
2009
2.11M
      yydestruct ("Error: popping",
2010
2.11M
                  YY_ACCESSING_SYMBOL (yystate), yyvsp, yyscanner);
2011
2.11M
      YYPOPSTACK (1);
2012
2.11M
      yystate = *yyssp;
2013
2.11M
      YY_STACK_PRINT (yyss, yyssp);
2014
2.11M
    }
2015
2016
2.37M
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2017
2.37M
  *++yyvsp = yylval;
2018
2.37M
  YY_IGNORE_MAYBE_UNINITIALIZED_END
2019
2020
2021
  /* Shift the error token.  */
2022
2.37M
  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
2023
2024
2.37M
  yystate = yyn;
2025
2.37M
  goto yynewstate;
2026
2027
2028
/*-------------------------------------.
2029
| yyacceptlab -- YYACCEPT comes here.  |
2030
`-------------------------------------*/
2031
3.53k
yyacceptlab:
2032
3.53k
  yyresult = 0;
2033
3.53k
  goto yyreturnlab;
2034
2035
2036
/*-----------------------------------.
2037
| yyabortlab -- YYABORT comes here.  |
2038
`-----------------------------------*/
2039
78
yyabortlab:
2040
78
  yyresult = 1;
2041
78
  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
3.61k
yyreturnlab:
2057
3.61k
  if (yychar != YYEMPTY)
2058
78
    {
2059
      /* Make sure we have latest lookahead translation.  See comments at
2060
         user semantic actions for why this is necessary.  */
2061
78
      yytoken = YYTRANSLATE (yychar);
2062
78
      yydestruct ("Cleanup: discarding lookahead",
2063
78
                  yytoken, &yylval, yyscanner);
2064
78
    }
2065
  /* Do not reclaim the symbols of the rule whose action triggered
2066
     this YYABORT or YYACCEPT.  */
2067
3.61k
  YYPOPSTACK (yylen);
2068
3.61k
  YY_STACK_PRINT (yyss, yyssp);
2069
10.8k
  while (yyssp != yyss)
2070
7.22k
    {
2071
7.22k
      yydestruct ("Cleanup: popping",
2072
7.22k
                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yyscanner);
2073
7.22k
      YYPOPSTACK (1);
2074
7.22k
    }
2075
3.61k
#ifndef yyoverflow
2076
3.61k
  if (yyss != yyssa)
2077
0
    YYSTACK_FREE (yyss);
2078
3.61k
#endif
2079
3.61k
  if (yymsg != yymsgbuf)
2080
0
    YYSTACK_FREE (yymsg);
2081
3.61k
  return yyresult;
2082
2.37M
}
2083
2084
#line 263 "cmFortranParser.y"
2085
2086
/* End of grammar */