Block-Structured AMR Software Framework
 
Loading...
Searching...
No Matches
amrex_parser.tab.nolint.H
Go to the documentation of this file.
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 0
59
60/* Push parsers. */
61#define YYPUSH 0
62
63/* Pull parsers. */
64#define YYPULL 1
65
66/* Substitute the type names. */
67#define YYSTYPE AMREX_PARSERSTYPE
68/* Substitute the variable and function names. */
69#define yyparse amrex_parserparse
70#define yylex amrex_parserlex
71#define yyerror amrex_parsererror
72#define yydebug amrex_parserdebug
73#define yynerrs amrex_parsernerrs
74#define yylval amrex_parserlval
75#define yychar amrex_parserchar
76
77/* First part of user prologue. */
78
79#include <AMReX_Parser_Y.H>
80#include <stdio.h>
81#include <stdlib.h>
82#include <string.h>
83int amrex_parserlex (void);
84/* Bison seems to have a bug. yyalloc etc. do not have the api.prefix. */
85#ifndef yyalloc
86# define yyalloc amrex_parseralloc
87#endif
88#ifndef yysymbol_kind_t
89# define yysymbol_kind_t amrex_parsersymbol_kind_t
90#endif
91
92
93# ifndef YY_CAST
94# ifdef __cplusplus
95# define YY_CAST(Type, Val) static_cast<Type> (Val)
96# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
97# else
98# define YY_CAST(Type, Val) ((Type) (Val))
99# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
100# endif
101# endif
102# ifndef YY_NULLPTR
103# if defined __cplusplus
104# if 201103L <= __cplusplus
105# define YY_NULLPTR nullptr
106# else
107# define YY_NULLPTR 0
108# endif
109# else
110# define YY_NULLPTR ((void*)0)
111# endif
112# endif
113
114#include "amrex_parser.tab.h"
115/* Symbol kind. */
117{
119 YYSYMBOL_YYEOF = 0, /* "end of file" */
120 YYSYMBOL_YYerror = 1, /* error */
121 YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
122 YYSYMBOL_NODE = 3, /* NODE */
123 YYSYMBOL_NUMBER = 4, /* NUMBER */
124 YYSYMBOL_SYMBOL = 5, /* SYMBOL */
125 YYSYMBOL_F1 = 6, /* F1 */
126 YYSYMBOL_F2 = 7, /* F2 */
127 YYSYMBOL_F3 = 8, /* F3 */
128 YYSYMBOL_EOL = 9, /* EOL */
129 YYSYMBOL_POW = 10, /* "**" */
130 YYSYMBOL_11_ = 11, /* '^' */
131 YYSYMBOL_GEQ = 12, /* ">=" */
132 YYSYMBOL_LEQ = 13, /* "<=" */
133 YYSYMBOL_EQ = 14, /* "==" */
134 YYSYMBOL_NEQ = 15, /* "!=" */
135 YYSYMBOL_AND = 16, /* "and" */
136 YYSYMBOL_OR = 17, /* "or" */
137 YYSYMBOL_18_ = 18, /* ';' */
138 YYSYMBOL_19_ = 19, /* '=' */
139 YYSYMBOL_20_ = 20, /* '<' */
140 YYSYMBOL_21_ = 21, /* '>' */
141 YYSYMBOL_22_ = 22, /* '+' */
142 YYSYMBOL_23_ = 23, /* '-' */
143 YYSYMBOL_24_ = 24, /* '*' */
144 YYSYMBOL_25_ = 25, /* '/' */
145 YYSYMBOL_NEG = 26, /* NEG */
146 YYSYMBOL_UPLUS = 27, /* UPLUS */
147 YYSYMBOL_28_ = 28, /* '(' */
148 YYSYMBOL_29_ = 29, /* ')' */
149 YYSYMBOL_30_ = 30, /* ',' */
150 YYSYMBOL_YYACCEPT = 31, /* $accept */
151 YYSYMBOL_input = 32, /* input */
152 YYSYMBOL_exp = 33, /* exp */
153 YYSYMBOL_stmt = 34, /* stmt */
154 YYSYMBOL_or_exp = 35, /* or_exp */
155 YYSYMBOL_and_exp = 36, /* and_exp */
156 YYSYMBOL_cmp_exp = 37, /* cmp_exp */
157 YYSYMBOL_add_exp = 38, /* add_exp */
158 YYSYMBOL_mul_exp = 39, /* mul_exp */
159 YYSYMBOL_unary_exp = 40, /* unary_exp */
160 YYSYMBOL_pow_exp = 41, /* pow_exp */
161 YYSYMBOL_primary_exp = 42 /* primary_exp */
164
165
166
167
168#ifdef short
169# undef short
170#endif
171
172/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
173 <limits.h> and (if available) <stdint.h> are included
174 so that the code can choose integer types of a good width. */
175
176#ifndef __PTRDIFF_MAX__
177# include <limits.h> /* INFRINGES ON USER NAME SPACE */
178# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
179# include <stdint.h> /* INFRINGES ON USER NAME SPACE */
180# define YY_STDINT_H
181# endif
182#endif
183
184/* Narrow types that promote to a signed type and that can represent a
185 signed or unsigned integer of at least N bits. In tables they can
186 save space and decrease cache pressure. Promoting to a signed type
187 helps avoid bugs in integer arithmetic. */
188
189#ifdef __INT_LEAST8_MAX__
190typedef __INT_LEAST8_TYPE__ yytype_int8;
191#elif defined YY_STDINT_H
192typedef int_least8_t yytype_int8;
193#else
194typedef signed char yytype_int8;
195#endif
196
197#ifdef __INT_LEAST16_MAX__
198typedef __INT_LEAST16_TYPE__ yytype_int16;
199#elif defined YY_STDINT_H
200typedef int_least16_t yytype_int16;
201#else
202typedef short yytype_int16;
203#endif
204
205/* Work around bug in HP-UX 11.23, which defines these macros
206 incorrectly for preprocessor constants. This workaround can likely
207 be removed in 2023, as HPE has promised support for HP-UX 11.23
208 (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
209 <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
210#ifdef __hpux
211# undef UINT_LEAST8_MAX
212# undef UINT_LEAST16_MAX
213# define UINT_LEAST8_MAX 255
214# define UINT_LEAST16_MAX 65535
215#endif
216
217#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
218typedef __UINT_LEAST8_TYPE__ yytype_uint8;
219#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
220 && UINT_LEAST8_MAX <= INT_MAX)
221typedef uint_least8_t yytype_uint8;
222#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
223typedef unsigned char yytype_uint8;
224#else
225typedef short yytype_uint8;
226#endif
227
228#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
229typedef __UINT_LEAST16_TYPE__ yytype_uint16;
230#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
231 && UINT_LEAST16_MAX <= INT_MAX)
232typedef uint_least16_t yytype_uint16;
233#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
234typedef unsigned short yytype_uint16;
235#else
236typedef int yytype_uint16;
237#endif
238
239#ifndef YYPTRDIFF_T
240# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
241# define YYPTRDIFF_T __PTRDIFF_TYPE__
242# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
243# elif defined PTRDIFF_MAX
244# ifndef ptrdiff_t
245# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
246# endif
247# define YYPTRDIFF_T ptrdiff_t
248# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
249# else
250# define YYPTRDIFF_T long
251# define YYPTRDIFF_MAXIMUM LONG_MAX
252# endif
253#endif
254
255#ifndef YYSIZE_T
256# ifdef __SIZE_TYPE__
257# define YYSIZE_T __SIZE_TYPE__
258# elif defined size_t
259# define YYSIZE_T size_t
260# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
261# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
262# define YYSIZE_T size_t
263# else
264# define YYSIZE_T unsigned
265# endif
266#endif
267
268#define YYSIZE_MAXIMUM \
269 YY_CAST (YYPTRDIFF_T, \
270 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
271 ? YYPTRDIFF_MAXIMUM \
272 : YY_CAST (YYSIZE_T, -1)))
273
274#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
275
276
277/* Stored state numbers (used for stacks). */
279
280/* State numbers in computations. */
281typedef int yy_state_fast_t;
282
283#ifndef YY_
284# if defined YYENABLE_NLS && YYENABLE_NLS
285# if ENABLE_NLS
286# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
287# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
288# endif
289# endif
290# ifndef YY_
291# define YY_(Msgid) Msgid
292# endif
293#endif
294
295
296#ifndef YY_ATTRIBUTE_PURE
297# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
298# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
299# else
300# define YY_ATTRIBUTE_PURE
301# endif
302#endif
303
304#ifndef YY_ATTRIBUTE_UNUSED
305# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
306# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
307# else
308# define YY_ATTRIBUTE_UNUSED
309# endif
310#endif
311
312/* Suppress unused-variable warnings by "using" E. */
313#if ! defined lint || defined __GNUC__
314# define YY_USE(E) ((void) (E))
315#else
316# define YY_USE(E) /* empty */
317#endif
318
319/* Suppress an incorrect diagnostic about yylval being uninitialized. */
320#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
321# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
322# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
323 _Pragma ("GCC diagnostic push") \
324 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
325# else
326# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
327 _Pragma ("GCC diagnostic push") \
328 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
329 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
330# endif
331# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
332 _Pragma ("GCC diagnostic pop")
333#else
334# define YY_INITIAL_VALUE(Value) Value
335#endif
336#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
337# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
338# define YY_IGNORE_MAYBE_UNINITIALIZED_END
339#endif
340#ifndef YY_INITIAL_VALUE
341# define YY_INITIAL_VALUE(Value) /* Nothing. */
342#endif
343
344#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
345# define YY_IGNORE_USELESS_CAST_BEGIN \
346 _Pragma ("GCC diagnostic push") \
347 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
348# define YY_IGNORE_USELESS_CAST_END \
349 _Pragma ("GCC diagnostic pop")
350#endif
351#ifndef YY_IGNORE_USELESS_CAST_BEGIN
352# define YY_IGNORE_USELESS_CAST_BEGIN
353# define YY_IGNORE_USELESS_CAST_END
354#endif
355
356
357#define YY_ASSERT(E) ((void) (0 && (E)))
358
359#if !defined yyoverflow
360
361/* The parser invokes alloca or malloc; define the necessary symbols. */
362
363# ifdef YYSTACK_USE_ALLOCA
364# if YYSTACK_USE_ALLOCA
365# ifdef __GNUC__
366# define YYSTACK_ALLOC __builtin_alloca
367# elif defined __BUILTIN_VA_ARG_INCR
368# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
369# elif defined _AIX
370# define YYSTACK_ALLOC __alloca
371# elif defined _MSC_VER
372# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
373# define alloca _alloca
374# else
375# define YYSTACK_ALLOC alloca
376# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
377# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
378 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
379# ifndef EXIT_SUCCESS
380# define EXIT_SUCCESS 0
381# endif
382# endif
383# endif
384# endif
385# endif
386
387# ifdef YYSTACK_ALLOC
388 /* Pacify GCC's 'empty if-body' warning. */
389# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
390# ifndef YYSTACK_ALLOC_MAXIMUM
391 /* The OS might guarantee only one guard page at the bottom of the stack,
392 and a page size can be as small as 4096 bytes. So we cannot safely
393 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
394 to allow for a few compiler-allocated temporary stack slots. */
395# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
396# endif
397# else
398# define YYSTACK_ALLOC YYMALLOC
399# define YYSTACK_FREE YYFREE
400# ifndef YYSTACK_ALLOC_MAXIMUM
401# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
402# endif
403# if (defined __cplusplus && ! defined EXIT_SUCCESS \
404 && ! ((defined YYMALLOC || defined malloc) \
405 && (defined YYFREE || defined free)))
406# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
407# ifndef EXIT_SUCCESS
408# define EXIT_SUCCESS 0
409# endif
410# endif
411# ifndef YYMALLOC
412# define YYMALLOC malloc
413# if ! defined malloc && ! defined EXIT_SUCCESS
414void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
415# endif
416# endif
417# ifndef YYFREE
418# define YYFREE free
419# if ! defined free && ! defined EXIT_SUCCESS
420void free (void *); /* INFRINGES ON USER NAME SPACE */
421# endif
422# endif
423# endif
424#endif /* !defined yyoverflow */
425
426#if (! defined yyoverflow \
427 && (! defined __cplusplus \
428 || (defined AMREX_PARSERSTYPE_IS_TRIVIAL && AMREX_PARSERSTYPE_IS_TRIVIAL)))
429
430/* A type that is properly aligned for any stack member. */
431union yyalloc
432{
433 yy_state_t yyss_alloc;
434 YYSTYPE yyvs_alloc;
435};
436
437/* The size of the maximum gap between one aligned stack and the next. */
438# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
439
440/* The size of an array large to enough to hold all stacks, each with
441 N elements. */
442# define YYSTACK_BYTES(N) \
443 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
444 + YYSTACK_GAP_MAXIMUM)
445
446# define YYCOPY_NEEDED 1
447
448/* Relocate STACK from its old location to the new one. The
449 local variables YYSIZE and YYSTACKSIZE give the old and new number of
450 elements in the stack, and YYPTR gives the new location of the
451 stack. Advance YYPTR to a properly aligned location for the next
452 stack. */
453# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
454 do \
455 { \
456 YYPTRDIFF_T yynewbytes; \
457 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
458 Stack = &yyptr->Stack_alloc; \
459 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
460 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
461 } \
462 while (0)
463
464#endif
465
466#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
467/* Copy COUNT objects from SRC to DST. The source and destination do
468 not overlap. */
469# ifndef YYCOPY
470# if defined __GNUC__ && 1 < __GNUC__
471# define YYCOPY(Dst, Src, Count) \
472 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
473# else
474# define YYCOPY(Dst, Src, Count) \
475 do \
476 { \
477 YYPTRDIFF_T yyi; \
478 for (yyi = 0; yyi < (Count); yyi++) \
479 (Dst)[yyi] = (Src)[yyi]; \
480 } \
481 while (0)
482# endif
483# endif
484#endif /* !YYCOPY_NEEDED */
485
486/* YYFINAL -- State number of the termination state. */
487#define YYFINAL 2
488/* YYLAST -- Last index in YYTABLE. */
489#define YYLAST 101
490
491/* YYNTOKENS -- Number of terminals. */
492#define YYNTOKENS 31
493/* YYNNTS -- Number of nonterminals. */
494#define YYNNTS 12
495/* YYNRULES -- Number of rules. */
496#define YYNRULES 40
497/* YYNSTATES -- Number of states. */
498#define YYNSTATES 84
499
500/* YYMAXUTOK -- Last valid token kind. */
501#define YYMAXUTOK 273
502
503
504/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
505 as returned by yylex, with out-of-bounds checking. */
506#define YYTRANSLATE(YYX) \
507 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
508 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
509 : YYSYMBOL_YYUNDEF)
510
511/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
512 as returned by yylex. */
513static const yytype_int8 yytranslate[] =
514{
515 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
516 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
517 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
518 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
519 28, 29, 24, 22, 30, 23, 2, 25, 2, 2,
520 2, 2, 2, 2, 2, 2, 2, 2, 2, 18,
521 20, 19, 21, 2, 2, 2, 2, 2, 2, 2,
522 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
523 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
524 2, 2, 2, 2, 11, 2, 2, 2, 2, 2,
525 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
526 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
527 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
528 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
529 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
530 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
531 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
532 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
533 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
534 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
535 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
536 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
537 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
538 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
539 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
540 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
541 5, 6, 7, 8, 9, 10, 12, 13, 14, 15,
542 16, 17, 26, 27
543};
544
545#if AMREX_PARSERDEBUG
546/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
547static const yytype_uint8 yyrline[] =
548{
549 0, 75, 75, 76, 83, 84, 85, 90, 91, 95,
550 96, 101, 102, 107, 108, 109, 110, 111, 112, 113,
551 118, 119, 120, 125, 126, 127, 132, 133, 134, 139,
552 140, 145, 146, 147, 148, 149, 150, 151, 152, 153,
553 154
554};
555#endif
556
558#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
559
560#if AMREX_PARSERDEBUG || 0
561/* The user-facing name of the symbol whose (internal) number is
562 YYSYMBOL. No bounds checking. */
563static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
564
565/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
566 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
567static const char *const yytname[] =
568{
569 "\"end of file\"", "error", "\"invalid token\"", "NODE", "NUMBER",
570 "SYMBOL", "F1", "F2", "F3", "EOL", "\"**\"", "'^'", "\">=\"", "\"<=\"",
571 "\"==\"", "\"!=\"", "\"and\"", "\"or\"", "';'", "'='", "'<'", "'>'",
572 "'+'", "'-'", "'*'", "'/'", "NEG", "UPLUS", "'('", "')'", "','",
573 "$accept", "input", "exp", "stmt", "or_exp", "and_exp", "cmp_exp",
574 "add_exp", "mul_exp", "unary_exp", "pow_exp", "primary_exp", YY_NULLPTR
575};
576
577static const char *
578yysymbol_name (yysymbol_kind_t yysymbol)
579{
580 return yytname[yysymbol];
581}
582#endif
583
584#define YYPACT_NINF (-32)
585
586#define yypact_value_is_default(Yyn) \
587 ((Yyn) == YYPACT_NINF)
588
589#define YYTABLE_NINF (-1)
590
591#define yytable_value_is_error(Yyn) \
592 0
593
594/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
595 STATE-NUM. */
596static const yytype_int8 yypact[] =
597{
598 -32, 16, -32, -32, 21, -3, -2, 4, 23, 23,
599 23, 34, -32, 46, 60, 71, -19, -17, -32, -32,
600 68, 23, 23, 23, 23, 23, 5, -32, -32, 33,
601 -32, 67, 23, 23, 23, 23, 23, 23, 23, 23,
602 23, 23, 23, 23, 23, 46, -12, 40, -11, 17,
603 -32, -32, 60, 71, -19, -19, -19, -19, -19, -19,
604 -17, -17, -32, -32, -32, -32, 23, -32, 23, 23,
605 24, 48, 25, -32, 23, -32, 23, 31, 50, -32,
606 23, -32, 51, -32
607};
608
609/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
610 Performed when YYTABLE does not specify something else to do. Zero
611 means the default is an error. */
612static const yytype_int8 yydefact[] =
613{
614 2, 0, 1, 31, 32, 0, 0, 0, 0, 0,
615 0, 0, 4, 7, 9, 11, 13, 20, 23, 26,
616 29, 0, 0, 0, 0, 0, 32, 28, 27, 0,
617 3, 6, 0, 0, 0, 0, 0, 0, 0, 0,
618 0, 0, 0, 0, 0, 8, 0, 0, 0, 0,
619 33, 5, 10, 12, 17, 16, 18, 19, 14, 15,
620 21, 22, 24, 25, 30, 37, 0, 34, 0, 0,
621 0, 0, 0, 38, 0, 35, 0, 0, 0, 39,
622 0, 36, 0, 40
623};
624
625/* YYPGOTO[NTERM-NUM]. */
626static const yytype_int8 yypgoto[] =
627{
628 -32, -32, -32, 56, -10, 49, 55, 62, -31, -7,
629 -32, -32
630};
631
632/* YYDEFGOTO[NTERM-NUM]. */
633static const yytype_int8 yydefgoto[] =
634{
635 0, 1, 11, 12, 13, 14, 15, 16, 17, 18,
636 19, 20
637};
638
639/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
640 positive, shift that token. If negative, reduce the rule whose
641 number is the opposite. If YYTABLE_NINF, syntax error. */
642static const yytype_int8 yytable[] =
643{
644 29, 27, 28, 40, 41, 32, 32, 42, 43, 60,
645 61, 45, 46, 47, 48, 49, 2, 65, 66, 68,
646 3, 4, 5, 6, 7, 23, 24, 3, 26, 5,
647 6, 7, 25, 22, 32, 62, 63, 64, 8, 9,
648 21, 32, 32, 30, 10, 8, 9, 69, 32, 22,
649 32, 10, 31, 73, 74, 76, 70, 32, 71, 72,
650 79, 80, 50, 32, 77, 32, 78, 32, 32, 67,
651 82, 3, 4, 5, 6, 7, 33, 75, 44, 81,
652 83, 52, 0, 34, 35, 36, 37, 51, 53, 8,
653 9, 38, 39, 0, 0, 10, 54, 55, 56, 57,
654 58, 59
655};
656
657static const yytype_int8 yycheck[] =
658{
659 10, 8, 9, 22, 23, 17, 17, 24, 25, 40,
660 41, 21, 22, 23, 24, 25, 0, 29, 30, 30,
661 4, 5, 6, 7, 8, 28, 28, 4, 5, 6,
662 7, 8, 28, 28, 17, 42, 43, 44, 22, 23,
663 19, 17, 17, 9, 28, 22, 23, 30, 17, 28,
664 17, 28, 18, 29, 30, 30, 66, 17, 68, 69,
665 29, 30, 29, 17, 74, 17, 76, 17, 17, 29,
666 80, 4, 5, 6, 7, 8, 16, 29, 10, 29,
667 29, 32, -1, 12, 13, 14, 15, 31, 33, 22,
668 23, 20, 21, -1, -1, 28, 34, 35, 36, 37,
669 38, 39
670};
671
672/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
673 state STATE-NUM. */
674static const yytype_int8 yystos[] =
675{
676 0, 32, 0, 4, 5, 6, 7, 8, 22, 23,
677 28, 33, 34, 35, 36, 37, 38, 39, 40, 41,
678 42, 19, 28, 28, 28, 28, 5, 40, 40, 35,
679 9, 18, 17, 16, 12, 13, 14, 15, 20, 21,
680 22, 23, 24, 25, 10, 35, 35, 35, 35, 35,
681 29, 34, 36, 37, 38, 38, 38, 38, 38, 38,
682 39, 39, 40, 40, 40, 29, 30, 29, 30, 30,
683 35, 35, 35, 29, 30, 29, 30, 35, 35, 29,
684 30, 29, 35, 29
685};
686
687/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
688static const yytype_int8 yyr1[] =
689{
690 0, 31, 32, 32, 33, 33, 33, 34, 34, 35,
691 35, 36, 36, 37, 37, 37, 37, 37, 37, 37,
692 38, 38, 38, 39, 39, 39, 40, 40, 40, 41,
693 41, 42, 42, 42, 42, 42, 42, 42, 42, 42,
694 42
695};
696
697/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
698static const yytype_int8 yyr2[] =
699{
700 0, 2, 0, 3, 1, 3, 2, 1, 3, 1,
701 3, 1, 3, 1, 3, 3, 3, 3, 3, 3,
702 1, 3, 3, 1, 3, 3, 1, 2, 2, 1,
703 3, 1, 1, 3, 4, 6, 8, 4, 6, 8,
704 10
705};
706
707
708enum { YYENOMEM = -2 };
709
710#define yyerrok (yyerrstatus = 0)
711#define yyclearin (yychar = AMREX_PARSEREMPTY)
712
713#define YYACCEPT goto yyacceptlab
714#define YYABORT goto yyabortlab
715#define YYERROR goto yyerrorlab
716#define YYNOMEM goto yyexhaustedlab
717
718
719#define YYRECOVERING() (!!yyerrstatus)
720
721#define YYBACKUP(Token, Value) \
722 do \
723 if (yychar == AMREX_PARSEREMPTY) \
724 { \
725 yychar = (Token); \
726 yylval = (Value); \
727 YYPOPSTACK (yylen); \
728 yystate = *yyssp; \
729 goto yybackup; \
730 } \
731 else \
732 { \
733 yyerror (YY_("syntax error: cannot back up")); \
734 YYERROR; \
735 } \
736 while (0)
737
738/* Backward compatibility with an undocumented macro.
739 Use AMREX_PARSERerror or AMREX_PARSERUNDEF. */
740#define YYERRCODE AMREX_PARSERUNDEF
741
742
743/* Enable debugging if requested. */
744#if AMREX_PARSERDEBUG
745
746# ifndef YYFPRINTF
747# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
748# define YYFPRINTF fprintf
749# endif
750
751# define YYDPRINTF(Args) \
752do { \
753 if (yydebug) \
754 YYFPRINTF Args; \
755} while (0)
756
757
758
759
760# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
761do { \
762 if (yydebug) \
763 { \
764 YYFPRINTF (stderr, "%s ", Title); \
765 yy_symbol_print (stderr, \
766 Kind, Value); \
767 YYFPRINTF (stderr, "\n"); \
768 } \
769} while (0)
770
771
772/*-----------------------------------.
773| Print this symbol's value on YYO. |
774`-----------------------------------*/
775
776static void
777yy_symbol_value_print (FILE *yyo,
778 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
779{
780 FILE *yyoutput = yyo;
781 YY_USE (yyoutput);
782 if (!yyvaluep)
783 return;
785 YY_USE (yykind);
787}
788
789
790/*---------------------------.
791| Print this symbol on YYO. |
792`---------------------------*/
793
794static void
795yy_symbol_print (FILE *yyo,
796 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
797{
798 YYFPRINTF (yyo, "%s %s (",
799 yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
800
801 yy_symbol_value_print (yyo, yykind, yyvaluep);
802 YYFPRINTF (yyo, ")");
803}
804
805/*------------------------------------------------------------------.
806| yy_stack_print -- Print the state stack from its BOTTOM up to its |
807| TOP (included). |
808`------------------------------------------------------------------*/
809
810static void
811yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
812{
813 YYFPRINTF (stderr, "Stack now");
814 for (; yybottom <= yytop; yybottom++)
815 {
816 int yybot = *yybottom;
817 YYFPRINTF (stderr, " %d", yybot);
818 }
819 YYFPRINTF (stderr, "\n");
820}
821
822# define YY_STACK_PRINT(Bottom, Top) \
823do { \
824 if (yydebug) \
825 yy_stack_print ((Bottom), (Top)); \
826} while (0)
827
828
829/*------------------------------------------------.
830| Report that the YYRULE is going to be reduced. |
831`------------------------------------------------*/
832
833static void
834yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
835 int yyrule)
836{
837 int yylno = yyrline[yyrule];
838 int yynrhs = yyr2[yyrule];
839 int yyi;
840 YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
841 yyrule - 1, yylno);
842 /* The symbols being reduced. */
843 for (yyi = 0; yyi < yynrhs; yyi++)
844 {
845 YYFPRINTF (stderr, " $%d = ", yyi + 1);
846 yy_symbol_print (stderr,
847 YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
848 &yyvsp[(yyi + 1) - (yynrhs)]);
849 YYFPRINTF (stderr, "\n");
850 }
851}
852
853# define YY_REDUCE_PRINT(Rule) \
854do { \
855 if (yydebug) \
856 yy_reduce_print (yyssp, yyvsp, Rule); \
857} while (0)
858
859/* Nonzero means print parse trace. It is left uninitialized so that
860 multiple parsers can coexist. */
861int yydebug;
862#else /* !AMREX_PARSERDEBUG */
863# define YYDPRINTF(Args) ((void) 0)
864# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
865# define YY_STACK_PRINT(Bottom, Top)
866# define YY_REDUCE_PRINT(Rule)
867#endif /* !AMREX_PARSERDEBUG */
868
869
870/* YYINITDEPTH -- initial size of the parser's stacks. */
871#ifndef YYINITDEPTH
872# define YYINITDEPTH 200
873#endif
874
875/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
876 if the built-in stack extension method is used).
877
878 Do not make this value too large; the results are undefined if
879 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
880 evaluated with infinite-precision integer arithmetic. */
881
882#ifndef YYMAXDEPTH
883# define YYMAXDEPTH 10000
884#endif
885
886
887
888
889
890
891/*-----------------------------------------------.
892| Release the memory associated to this symbol. |
893`-----------------------------------------------*/
894
895static void
896yydestruct (const char *yymsg,
897 yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
898{
899 YY_USE (yyvaluep);
900 if (!yymsg)
901 yymsg = "Deleting";
902 YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
903
905 YY_USE (yykind);
907}
908
909
910/* Lookahead token kind. */
912
913/* The semantic value of the lookahead symbol. */
915/* Number of syntax errors so far. */
917
918
919
920
921/*----------.
922| yyparse. |
923`----------*/
924
925int
927{
928 yy_state_fast_t yystate = 0;
929 /* Number of tokens to shift before error messages enabled. */
930 int yyerrstatus = 0;
931
932 /* Refer to the stacks through separate pointers, to allow yyoverflow
933 to reallocate them elsewhere. */
934
935 /* Their size. */
936 YYPTRDIFF_T yystacksize = YYINITDEPTH;
937
938 /* The state stack: array, bottom, top. */
939 yy_state_t yyssa[YYINITDEPTH];
940 yy_state_t *yyss = yyssa;
941 yy_state_t *yyssp = yyss;
942
943 /* The semantic value stack: array, bottom, top. */
944 YYSTYPE yyvsa[YYINITDEPTH];
945 YYSTYPE *yyvs = yyvsa;
946 YYSTYPE *yyvsp = yyvs;
947
948 int yyn;
949 /* The return value of yyparse. */
950 int yyresult;
951 /* Lookahead symbol kind. */
953 /* The variables used to return semantic value and location from the
954 action routines. */
955 YYSTYPE yyval;
956
957
958
959#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
960
961 /* The number of symbols on the RHS of the reduced rule.
962 Keep to zero when no symbol should be popped. */
963 int yylen = 0;
964
965 YYDPRINTF ((stderr, "Starting parse\n"));
966
967 yychar = AMREX_PARSEREMPTY; /* Cause a token to be read. */
968
969 goto yysetstate;
970
971
972/*------------------------------------------------------------.
973| yynewstate -- push a new state, which is found in yystate. |
974`------------------------------------------------------------*/
975yynewstate:
976 /* In all cases, when you get here, the value and location stacks
977 have just been pushed. So pushing a state here evens the stacks. */
978 yyssp++;
979
980
981/*--------------------------------------------------------------------.
982| yysetstate -- set current state (the top of the stack) to yystate. |
983`--------------------------------------------------------------------*/
984yysetstate:
985 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
986 YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
988 *yyssp = YY_CAST (yy_state_t, yystate);
990 YY_STACK_PRINT (yyss, yyssp);
991
992 if (yyss + yystacksize - 1 <= yyssp)
993#if !defined yyoverflow && !defined YYSTACK_RELOCATE
994 YYNOMEM;
995#else
996 {
997 /* Get the current used size of the three stacks, in elements. */
998 YYPTRDIFF_T yysize = yyssp - yyss + 1;
999
1000# if defined yyoverflow
1001 {
1002 /* Give user a chance to reallocate the stack. Use copies of
1003 these so that the &'s don't force the real ones into
1004 memory. */
1005 yy_state_t *yyss1 = yyss;
1006 YYSTYPE *yyvs1 = yyvs;
1007
1008 /* Each stack pointer address is followed by the size of the
1009 data in use in that stack, in bytes. This used to be a
1010 conditional around just the two extra args, but that might
1011 be undefined if yyoverflow is a macro. */
1012 yyoverflow (YY_("memory exhausted"),
1013 &yyss1, yysize * YYSIZEOF (*yyssp),
1014 &yyvs1, yysize * YYSIZEOF (*yyvsp),
1015 &yystacksize);
1016 yyss = yyss1;
1017 yyvs = yyvs1;
1018 }
1019# else /* defined YYSTACK_RELOCATE */
1020 /* Extend the stack our own way. */
1021 if (YYMAXDEPTH <= yystacksize)
1022 YYNOMEM;
1023 yystacksize *= 2;
1024 if (YYMAXDEPTH < yystacksize)
1025 yystacksize = YYMAXDEPTH;
1026
1027 {
1028 yy_state_t *yyss1 = yyss;
1029 union yyalloc *yyptr =
1030 YY_CAST (union yyalloc *,
1031 YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1032 if (! yyptr)
1033 YYNOMEM;
1034 YYSTACK_RELOCATE (yyss_alloc, yyss);
1035 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1036# undef YYSTACK_RELOCATE
1037 if (yyss1 != yyssa)
1038 YYSTACK_FREE (yyss1);
1039 }
1040# endif
1041
1042 yyssp = yyss + yysize - 1;
1043 yyvsp = yyvs + yysize - 1;
1044
1046 YYDPRINTF ((stderr, "Stack size increased to %ld\n",
1047 YY_CAST (long, yystacksize)));
1049
1050 if (yyss + yystacksize - 1 <= yyssp)
1051 YYABORT;
1052 }
1053#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
1054
1055
1056 if (yystate == YYFINAL)
1057 YYACCEPT;
1058
1059 goto yybackup;
1060
1061
1062/*-----------.
1063| yybackup. |
1064`-----------*/
1065yybackup:
1066 /* Do appropriate processing given the current state. Read a
1067 lookahead token if we need one and don't already have one. */
1068
1069 /* First try to decide what to do without reference to lookahead token. */
1070 yyn = yypact[yystate];
1071 if (yypact_value_is_default (yyn))
1072 goto yydefault;
1073
1074 /* Not known => get a lookahead token if don't already have one. */
1075
1076 /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
1078 {
1079 YYDPRINTF ((stderr, "Reading a token\n"));
1080 yychar = yylex ();
1081 }
1082
1083 if (yychar <= AMREX_PARSEREOF)
1084 {
1086 yytoken = YYSYMBOL_YYEOF;
1087 YYDPRINTF ((stderr, "Now at end of input.\n"));
1088 }
1089 else if (yychar == AMREX_PARSERerror)
1090 {
1091 /* The scanner already issued an error message, process directly
1092 to error recovery. But do not keep the error token as
1093 lookahead, it is too special and may lead us to an endless
1094 loop in error recovery. */
1096 yytoken = YYSYMBOL_YYerror;
1097 goto yyerrlab1;
1098 }
1099 else
1100 {
1101 yytoken = YYTRANSLATE (yychar);
1102 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1103 }
1104
1105 /* If the proper action on seeing token YYTOKEN is to reduce or to
1106 detect an error, take that action. */
1107 yyn += yytoken;
1108 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1109 goto yydefault;
1110 yyn = yytable[yyn];
1111 if (yyn <= 0)
1112 {
1113 if (yytable_value_is_error (yyn))
1114 goto yyerrlab;
1115 yyn = -yyn;
1116 goto yyreduce;
1117 }
1118
1119 /* Count tokens shifted since error; after three, turn off error
1120 status. */
1121 if (yyerrstatus)
1122 yyerrstatus--;
1123
1124 /* Shift the lookahead token. */
1125 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1126 yystate = yyn;
1128 *++yyvsp = yylval;
1130
1131 /* Discard the shifted token. */
1133 goto yynewstate;
1134
1135
1136/*-----------------------------------------------------------.
1137| yydefault -- do the default action for the current state. |
1138`-----------------------------------------------------------*/
1139yydefault:
1140 yyn = yydefact[yystate];
1141 if (yyn == 0)
1142 goto yyerrlab;
1143 goto yyreduce;
1144
1145
1146/*-----------------------------.
1147| yyreduce -- do a reduction. |
1148`-----------------------------*/
1149yyreduce:
1150 /* yyn is the number of a rule to reduce with. */
1151 yylen = yyr2[yyn];
1152
1153 /* If YYLEN is nonzero, implement the default value of the action:
1154 '$$ = $1'.
1155
1156 Otherwise, the following line sets YYVAL to garbage.
1157 This behavior is undocumented and Bison
1158 users should not rely upon it. Assigning to YYVAL
1159 unconditionally makes the parser a bit smaller, and it avoids a
1160 GCC warning that YYVAL may be used uninitialized. */
1161 yyval = yyvsp[1-yylen];
1162
1163
1164 YY_REDUCE_PRINT (yyn);
1165 switch (yyn)
1166 {
1167 case 3: /* input: input exp EOL */
1168 {
1169 amrex::parser_defexpr((yyvsp[-1].n));
1170 }
1171 break;
1172
1173 case 4: /* exp: stmt */
1174 { (yyval.n) = (yyvsp[0].n); }
1175 break;
1176
1177 case 5: /* exp: exp ';' stmt */
1178 { (yyval.n) = amrex::parser_newlist((yyvsp[-2].n), (yyvsp[0].n)); }
1179 break;
1180
1181 case 6: /* exp: exp ';' */
1182 { (yyval.n) = amrex::parser_newlist((yyvsp[-1].n), nullptr); }
1183 break;
1184
1185 case 7: /* stmt: or_exp */
1186 { (yyval.n) = (yyvsp[0].n); }
1187 break;
1188
1189 case 8: /* stmt: SYMBOL '=' or_exp */
1190 { (yyval.n) = amrex::parser_newassign((yyvsp[-2].s), (yyvsp[0].n)); }
1191 break;
1192
1193 case 9: /* or_exp: and_exp */
1194 { (yyval.n) = (yyvsp[0].n); }
1195 break;
1196
1197 case 10: /* or_exp: or_exp "or" and_exp */
1198 { (yyval.n) = amrex::parser_newf2(amrex::PARSER_OR, (yyvsp[-2].n), (yyvsp[0].n)); }
1199 break;
1200
1201 case 11: /* and_exp: cmp_exp */
1202 { (yyval.n) = (yyvsp[0].n); }
1203 break;
1204
1205 case 12: /* and_exp: and_exp "and" cmp_exp */
1206 { (yyval.n) = amrex::parser_newf2(amrex::PARSER_AND, (yyvsp[-2].n), (yyvsp[0].n)); }
1207 break;
1208
1209 case 13: /* cmp_exp: add_exp */
1210 { (yyval.n) = (yyvsp[0].n); }
1211 break;
1212
1213 case 14: /* cmp_exp: cmp_exp '<' add_exp */
1214 { (yyval.n) = amrex::parser_newcmpchain((yyvsp[-2].n), amrex::PARSER_LT, (yyvsp[0].n)); }
1215 break;
1216
1217 case 15: /* cmp_exp: cmp_exp '>' add_exp */
1218 { (yyval.n) = amrex::parser_newcmpchain((yyvsp[-2].n), amrex::PARSER_GT, (yyvsp[0].n)); }
1219 break;
1220
1221 case 16: /* cmp_exp: cmp_exp "<=" add_exp */
1222 { (yyval.n) = amrex::parser_newcmpchain((yyvsp[-2].n), amrex::PARSER_LEQ,(yyvsp[0].n)); }
1223 break;
1224
1225 case 17: /* cmp_exp: cmp_exp ">=" add_exp */
1226 { (yyval.n) = amrex::parser_newcmpchain((yyvsp[-2].n), amrex::PARSER_GEQ,(yyvsp[0].n)); }
1227 break;
1228
1229 case 18: /* cmp_exp: cmp_exp "==" add_exp */
1230 { (yyval.n) = amrex::parser_newcmpchain((yyvsp[-2].n), amrex::PARSER_EQ ,(yyvsp[0].n)); }
1231 break;
1232
1233 case 19: /* cmp_exp: cmp_exp "!=" add_exp */
1234 { (yyval.n) = amrex::parser_newcmpchain((yyvsp[-2].n), amrex::PARSER_NEQ,(yyvsp[0].n)); }
1235 break;
1236
1237 case 20: /* add_exp: mul_exp */
1238 { (yyval.n) = (yyvsp[0].n); }
1239 break;
1240
1241 case 21: /* add_exp: add_exp '+' mul_exp */
1242 { (yyval.n) = amrex::parser_newnode(amrex::PARSER_ADD, (yyvsp[-2].n), (yyvsp[0].n)); }
1243 break;
1244
1245 case 22: /* add_exp: add_exp '-' mul_exp */
1246 { (yyval.n) = amrex::parser_newnode(amrex::PARSER_SUB, (yyvsp[-2].n), (yyvsp[0].n)); }
1247 break;
1248
1249 case 23: /* mul_exp: unary_exp */
1250 { (yyval.n) = (yyvsp[0].n); }
1251 break;
1252
1253 case 24: /* mul_exp: mul_exp '*' unary_exp */
1254 { (yyval.n) = amrex::parser_newnode(amrex::PARSER_MUL, (yyvsp[-2].n), (yyvsp[0].n)); }
1255 break;
1256
1257 case 25: /* mul_exp: mul_exp '/' unary_exp */
1258 { (yyval.n) = amrex::parser_newnode(amrex::PARSER_DIV, (yyvsp[-2].n), (yyvsp[0].n)); }
1259 break;
1260
1261 case 26: /* unary_exp: pow_exp */
1262 { (yyval.n) = (yyvsp[0].n); }
1263 break;
1264
1265 case 27: /* unary_exp: '-' unary_exp */
1266 { (yyval.n) = amrex::parser_newneg((yyvsp[0].n)); }
1267 break;
1268
1269 case 28: /* unary_exp: '+' unary_exp */
1270 { (yyval.n) = (yyvsp[0].n); }
1271 break;
1272
1273 case 29: /* pow_exp: primary_exp */
1274 { (yyval.n) = (yyvsp[0].n); }
1275 break;
1276
1277 case 30: /* pow_exp: primary_exp "**" unary_exp */
1278 { (yyval.n) = amrex::parser_newf2(amrex::PARSER_POW, (yyvsp[-2].n), (yyvsp[0].n)); }
1279 break;
1280
1281 case 31: /* primary_exp: NUMBER */
1282 { (yyval.n) = amrex::parser_newnumber((yyvsp[0].d)); }
1283 break;
1284
1285 case 32: /* primary_exp: SYMBOL */
1286 { (yyval.n) = amrex::parser_newsymbol((yyvsp[0].s)); }
1287 break;
1288
1289 case 33: /* primary_exp: '(' or_exp ')' */
1290 { (yyval.n) = (yyvsp[-1].n); }
1291 break;
1292
1293 case 34: /* primary_exp: F1 '(' or_exp ')' */
1294 { (yyval.n) = amrex::parser_newf1((yyvsp[-3].f1), (yyvsp[-1].n)); }
1295 break;
1296
1297 case 35: /* primary_exp: F2 '(' or_exp ',' or_exp ')' */
1298 { (yyval.n) = amrex::parser_newf2((yyvsp[-5].f2), (yyvsp[-3].n), (yyvsp[-1].n)); }
1299 break;
1300
1301 case 36: /* primary_exp: F3 '(' or_exp ',' or_exp ',' or_exp ')' */
1302 { (yyval.n) = amrex::parser_newf3((yyvsp[-7].f3), (yyvsp[-5].n), (yyvsp[-3].n), (yyvsp[-1].n)); }
1303 break;
1304
1305 case 37: /* primary_exp: SYMBOL '(' or_exp ')' */
1306 { (yyval.n) = amrex::parser_newusrf1((yyvsp[-3].s), (yyvsp[-1].n)); }
1307 break;
1308
1309 case 38: /* primary_exp: SYMBOL '(' or_exp ',' or_exp ')' */
1310 { (yyval.n) = amrex::parser_newusrf2((yyvsp[-5].s), (yyvsp[-3].n), (yyvsp[-1].n)); }
1311 break;
1312
1313 case 39: /* primary_exp: SYMBOL '(' or_exp ',' or_exp ',' or_exp ')' */
1314 { (yyval.n) = amrex::parser_newusrfn((yyvsp[-7].s), {(yyvsp[-5].n), (yyvsp[-3].n), (yyvsp[-1].n)}); }
1315 break;
1316
1317 case 40: /* primary_exp: SYMBOL '(' or_exp ',' or_exp ',' or_exp ',' or_exp ')' */
1318 { (yyval.n) = amrex::parser_newusrfn((yyvsp[-9].s), {(yyvsp[-7].n), (yyvsp[-5].n), (yyvsp[-3].n), (yyvsp[-1].n)}); }
1319 break;
1320
1321
1322
1323 default: break;
1324 }
1325 /* User semantic actions sometimes alter yychar, and that requires
1326 that yytoken be updated with the new translation. We take the
1327 approach of translating immediately before every use of yytoken.
1328 One alternative is translating here after every semantic action,
1329 but that translation would be missed if the semantic action invokes
1330 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
1331 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
1332 incorrect destructor might then be invoked immediately. In the
1333 case of YYERROR or YYBACKUP, subsequent parser actions might lead
1334 to an incorrect destructor call or verbose syntax error message
1335 before the lookahead is translated. */
1336 YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
1337
1338 YYPOPSTACK (yylen);
1339 yylen = 0;
1340
1341 *++yyvsp = yyval;
1342
1343 /* Now 'shift' the result of the reduction. Determine what state
1344 that goes to, based on the state we popped back to and the rule
1345 number reduced by. */
1346 {
1347 const int yylhs = yyr1[yyn] - YYNTOKENS;
1348 const int yyi = yypgoto[yylhs] + *yyssp;
1349 yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
1350 ? yytable[yyi]
1351 : yydefgoto[yylhs]);
1352 }
1353
1354 goto yynewstate;
1355
1356
1357/*--------------------------------------.
1358| yyerrlab -- here on detecting error. |
1359`--------------------------------------*/
1360yyerrlab:
1361 /* Make sure we have latest lookahead translation. See comments at
1362 user semantic actions for why this is necessary. */
1364 /* If not already recovering from an error, report this error. */
1365 if (!yyerrstatus)
1366 {
1367 ++yynerrs;
1368 yyerror (YY_("syntax error"));
1369 }
1370
1371 if (yyerrstatus == 3)
1372 {
1373 /* If just tried and failed to reuse lookahead token after an
1374 error, discard it. */
1375
1376 if (yychar <= AMREX_PARSEREOF)
1377 {
1378 /* Return failure if at end of input. */
1379 if (yychar == AMREX_PARSEREOF)
1380 YYABORT;
1381 }
1382 else
1383 {
1384 yydestruct ("Error: discarding",
1385 yytoken, &yylval);
1387 }
1388 }
1389
1390 /* Else will try to reuse lookahead token after shifting the error
1391 token. */
1392 goto yyerrlab1;
1393
1394
1395/*---------------------------------------------------.
1396| yyerrorlab -- error raised explicitly by YYERROR. |
1397`---------------------------------------------------*/
1398yyerrorlab:
1399 /* Pacify compilers when the user code never invokes YYERROR and the
1400 label yyerrorlab therefore never appears in user code. */
1401 if (0)
1402 YYERROR;
1403 ++yynerrs;
1404
1405 /* Do not reclaim the symbols of the rule whose action triggered
1406 this YYERROR. */
1407 YYPOPSTACK (yylen);
1408 yylen = 0;
1409 YY_STACK_PRINT (yyss, yyssp);
1410 yystate = *yyssp;
1411 goto yyerrlab1;
1412
1413
1414/*-------------------------------------------------------------.
1415| yyerrlab1 -- common code for both syntax error and YYERROR. |
1416`-------------------------------------------------------------*/
1417yyerrlab1:
1418 yyerrstatus = 3; /* Each real token shifted decrements this. */
1419
1420 /* Pop stack until we find a state that shifts the error token. */
1421 for (;;)
1422 {
1423 yyn = yypact[yystate];
1424 if (!yypact_value_is_default (yyn))
1425 {
1426 yyn += YYSYMBOL_YYerror;
1427 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
1428 {
1429 yyn = yytable[yyn];
1430 if (0 < yyn)
1431 break;
1432 }
1433 }
1434
1435 /* Pop the current state because it cannot handle the error token. */
1436 if (yyssp == yyss)
1437 YYABORT;
1438
1439
1440 yydestruct ("Error: popping",
1441 YY_ACCESSING_SYMBOL (yystate), yyvsp);
1442 YYPOPSTACK (1);
1443 yystate = *yyssp;
1444 YY_STACK_PRINT (yyss, yyssp);
1445 }
1446
1448 *++yyvsp = yylval;
1450
1451
1452 /* Shift the error token. */
1453 YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
1454
1455 yystate = yyn;
1456 goto yynewstate;
1457
1458
1459/*-------------------------------------.
1460| yyacceptlab -- YYACCEPT comes here. |
1461`-------------------------------------*/
1462yyacceptlab:
1463 yyresult = 0;
1464 goto yyreturnlab;
1465
1466
1467/*-----------------------------------.
1468| yyabortlab -- YYABORT comes here. |
1469`-----------------------------------*/
1470yyabortlab:
1471 yyresult = 1;
1472 goto yyreturnlab;
1473
1474
1475/*-----------------------------------------------------------.
1476| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
1477`-----------------------------------------------------------*/
1478yyexhaustedlab:
1479 yyerror (YY_("memory exhausted"));
1480 yyresult = 2;
1481 goto yyreturnlab;
1482
1483
1484/*----------------------------------------------------------.
1485| yyreturnlab -- parsing is finished, clean up and return. |
1486`----------------------------------------------------------*/
1487yyreturnlab:
1489 {
1490 /* Make sure we have latest lookahead translation. See comments at
1491 user semantic actions for why this is necessary. */
1492 yytoken = YYTRANSLATE (yychar);
1493 yydestruct ("Cleanup: discarding lookahead",
1494 yytoken, &yylval);
1495 }
1496 /* Do not reclaim the symbols of the rule whose action triggered
1497 this YYABORT or YYACCEPT. */
1498 YYPOPSTACK (yylen);
1499 YY_STACK_PRINT (yyss, yyssp);
1500 while (yyssp != yyss)
1501 {
1502 yydestruct ("Cleanup: popping",
1503 YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
1504 YYPOPSTACK (1);
1505 }
1506#ifndef yyoverflow
1507 if (yyss != yyssa)
1508 YYSTACK_FREE (yyss);
1509#endif
1510
1511 return yyresult;
1512}
1513
1514
yysymbol_kind_t
Definition amrex_iparser.tab.nolint.H:117
#define YYSTYPE
Definition amrex_iparser.tab.nolint.H:67
unsigned char yytype_uint8
Definition amrex_iparser.tab.nolint.H:224
int yy_state_fast_t
Definition amrex_iparser.tab.nolint.H:282
signed char yytype_int8
Definition amrex_iparser.tab.nolint.H:195
yytype_int8 yy_state_t
Definition amrex_iparser.tab.nolint.H:279
@ AMREX_PARSERerror
Definition amrex_parser.tab.h:63
@ AMREX_PARSEREOF
Definition amrex_parser.tab.h:62
@ AMREX_PARSEREMPTY
Definition amrex_parser.tab.h:61
@ AMREX_PARSERUNDEF
Definition amrex_parser.tab.h:64
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
Definition amrex_parser.tab.nolint.H:337
#define YYMAXDEPTH
Definition amrex_parser.tab.nolint.H:883
#define YYSTACK_FREE
Definition amrex_parser.tab.nolint.H:399
static const yytype_int8 yytranslate[]
Definition amrex_parser.tab.nolint.H:513
@ YYSYMBOL_POW
Definition amrex_parser.tab.nolint.H:129
@ YYSYMBOL_or_exp
Definition amrex_parser.tab.nolint.H:154
@ YYSYMBOL_25_
Definition amrex_parser.tab.nolint.H:144
@ YYSYMBOL_stmt
Definition amrex_parser.tab.nolint.H:153
@ YYSYMBOL_YYUNDEF
Definition amrex_parser.tab.nolint.H:121
@ YYSYMBOL_EOL
Definition amrex_parser.tab.nolint.H:128
@ YYSYMBOL_19_
Definition amrex_parser.tab.nolint.H:138
@ YYSYMBOL_EQ
Definition amrex_parser.tab.nolint.H:133
@ YYSYMBOL_F3
Definition amrex_parser.tab.nolint.H:127
@ YYSYMBOL_primary_exp
Definition amrex_parser.tab.nolint.H:161
@ YYSYMBOL_pow_exp
Definition amrex_parser.tab.nolint.H:160
@ YYSYMBOL_NUMBER
Definition amrex_parser.tab.nolint.H:123
@ YYSYMBOL_LEQ
Definition amrex_parser.tab.nolint.H:132
@ YYSYMBOL_YYerror
Definition amrex_parser.tab.nolint.H:120
@ YYSYMBOL_GEQ
Definition amrex_parser.tab.nolint.H:131
@ YYSYMBOL_exp
Definition amrex_parser.tab.nolint.H:152
@ YYSYMBOL_F2
Definition amrex_parser.tab.nolint.H:126
@ YYSYMBOL_29_
Definition amrex_parser.tab.nolint.H:148
@ YYSYMBOL_28_
Definition amrex_parser.tab.nolint.H:147
@ YYSYMBOL_cmp_exp
Definition amrex_parser.tab.nolint.H:156
@ YYSYMBOL_and_exp
Definition amrex_parser.tab.nolint.H:155
@ YYSYMBOL_NODE
Definition amrex_parser.tab.nolint.H:122
@ YYSYMBOL_AND
Definition amrex_parser.tab.nolint.H:135
@ YYSYMBOL_UPLUS
Definition amrex_parser.tab.nolint.H:146
@ YYSYMBOL_11_
Definition amrex_parser.tab.nolint.H:130
@ YYSYMBOL_NEG
Definition amrex_parser.tab.nolint.H:145
@ YYSYMBOL_NEQ
Definition amrex_parser.tab.nolint.H:134
@ YYSYMBOL_21_
Definition amrex_parser.tab.nolint.H:140
@ YYSYMBOL_20_
Definition amrex_parser.tab.nolint.H:139
@ YYSYMBOL_18_
Definition amrex_parser.tab.nolint.H:137
@ YYSYMBOL_SYMBOL
Definition amrex_parser.tab.nolint.H:124
@ YYSYMBOL_add_exp
Definition amrex_parser.tab.nolint.H:157
@ YYSYMBOL_YYACCEPT
Definition amrex_parser.tab.nolint.H:150
@ YYSYMBOL_F1
Definition amrex_parser.tab.nolint.H:125
@ YYSYMBOL_30_
Definition amrex_parser.tab.nolint.H:149
@ YYSYMBOL_OR
Definition amrex_parser.tab.nolint.H:136
@ YYSYMBOL_unary_exp
Definition amrex_parser.tab.nolint.H:159
@ YYSYMBOL_23_
Definition amrex_parser.tab.nolint.H:142
@ YYSYMBOL_YYEOF
Definition amrex_parser.tab.nolint.H:119
@ YYSYMBOL_22_
Definition amrex_parser.tab.nolint.H:141
@ YYSYMBOL_24_
Definition amrex_parser.tab.nolint.H:143
@ YYSYMBOL_input
Definition amrex_parser.tab.nolint.H:151
@ YYSYMBOL_YYEMPTY
Definition amrex_parser.tab.nolint.H:118
@ YYSYMBOL_mul_exp
Definition amrex_parser.tab.nolint.H:158
#define YY_ASSERT(E)
Definition amrex_parser.tab.nolint.H:357
#define YY_(Msgid)
Definition amrex_parser.tab.nolint.H:291
#define YYNOMEM
Definition amrex_parser.tab.nolint.H:716
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
Definition amrex_parser.tab.nolint.H:338
static const yytype_int8 yydefact[]
Definition amrex_parser.tab.nolint.H:612
#define YYNSTATES
Definition amrex_parser.tab.nolint.H:498
#define YYSTYPE
Definition amrex_parser.tab.nolint.H:67
#define YY_IGNORE_USELESS_CAST_END
Definition amrex_parser.tab.nolint.H:353
short yytype_int16
Definition amrex_parser.tab.nolint.H:202
#define yychar
Definition amrex_parser.tab.nolint.H:75
#define YYABORT
Definition amrex_parser.tab.nolint.H:714
#define YYSTACK_BYTES(N)
Definition amrex_parser.tab.nolint.H:442
static const yytype_int8 yycheck[]
Definition amrex_parser.tab.nolint.H:657
#define YY_REDUCE_PRINT(Rule)
Definition amrex_parser.tab.nolint.H:866
#define YY_CAST(Type, Val)
Definition amrex_parser.tab.nolint.H:98
static void yydestruct(const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
Definition amrex_parser.tab.nolint.H:896
#define yylex
Definition amrex_parser.tab.nolint.H:70
#define YY_NULLPTR
Definition amrex_parser.tab.nolint.H:110
static const yytype_int8 yypact[]
Definition amrex_parser.tab.nolint.H:596
#define YYFINAL
Definition amrex_parser.tab.nolint.H:487
#define YY_ACCESSING_SYMBOL(State)
Definition amrex_parser.tab.nolint.H:558
#define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
Definition amrex_parser.tab.nolint.H:864
#define yyparse
Definition amrex_parser.tab.nolint.H:926
#define yylval
Definition amrex_parser.tab.nolint.H:74
#define YYNTOKENS
Definition amrex_parser.tab.nolint.H:492
unsigned char yytype_uint8
Definition amrex_parser.tab.nolint.H:223
#define YY_STACK_PRINT(Bottom, Top)
Definition amrex_parser.tab.nolint.H:865
#define YYSIZE_T
Definition amrex_parser.tab.nolint.H:264
#define yydebug
Definition amrex_parser.tab.nolint.H:72
#define YY_IGNORE_USELESS_CAST_BEGIN
Definition amrex_parser.tab.nolint.H:352
static const yytype_int8 yyr2[]
Definition amrex_parser.tab.nolint.H:698
void * malloc(YYSIZE_T)
static const yytype_int8 yytable[]
Definition amrex_parser.tab.nolint.H:642
#define YYPTRDIFF_T
Definition amrex_parser.tab.nolint.H:250
#define yynerrs
Definition amrex_parser.tab.nolint.H:73
#define YYACCEPT
Definition amrex_parser.tab.nolint.H:713
#define yytable_value_is_error(Yyn)
Definition amrex_parser.tab.nolint.H:591
#define yysymbol_kind_t
Definition amrex_parser.tab.nolint.H:89
#define YYTRANSLATE(YYX)
Definition amrex_parser.tab.nolint.H:506
static const yytype_int8 yystos[]
Definition amrex_parser.tab.nolint.H:674
#define YY_ATTRIBUTE_UNUSED
Definition amrex_parser.tab.nolint.H:308
static const yytype_int8 yypgoto[]
Definition amrex_parser.tab.nolint.H:626
@ YYENOMEM
Definition amrex_parser.tab.nolint.H:708
static const yytype_int8 yyr1[]
Definition amrex_parser.tab.nolint.H:688
#define YYPOPSTACK(N)
int yy_state_fast_t
Definition amrex_parser.tab.nolint.H:281
unsigned short yytype_uint16
Definition amrex_parser.tab.nolint.H:234
static const yytype_int8 yydefgoto[]
Definition amrex_parser.tab.nolint.H:633
#define YYLAST
Definition amrex_parser.tab.nolint.H:489
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
Definition amrex_parser.tab.nolint.H:453
int amrex_parserlex(void)
#define yypact_value_is_default(Yyn)
Definition amrex_parser.tab.nolint.H:586
#define YYINITDEPTH
Definition amrex_parser.tab.nolint.H:872
signed char yytype_int8
Definition amrex_parser.tab.nolint.H:194
void free(void *)
#define YYERROR
Definition amrex_parser.tab.nolint.H:715
#define YYSIZEOF(X)
Definition amrex_parser.tab.nolint.H:274
#define YYSTACK_ALLOC
Definition amrex_parser.tab.nolint.H:398
yytype_int8 yy_state_t
Definition amrex_parser.tab.nolint.H:278
#define YYDPRINTF(Args)
Definition amrex_parser.tab.nolint.H:863
#define YY_USE(E)
Definition amrex_parser.tab.nolint.H:314
#define yyerror
Definition amrex_parser.tab.nolint.H:71
@ PARSER_LT
Definition AMReX_Parser_Y.H:92
@ PARSER_AND
Definition AMReX_Parser_Y.H:98
@ PARSER_NEQ
Definition AMReX_Parser_Y.H:96
@ PARSER_OR
Definition AMReX_Parser_Y.H:99
@ PARSER_LEQ
Definition AMReX_Parser_Y.H:94
@ PARSER_GEQ
Definition AMReX_Parser_Y.H:93
@ PARSER_POW
Definition AMReX_Parser_Y.H:89
@ PARSER_GT
Definition AMReX_Parser_Y.H:91
@ PARSER_EQ
Definition AMReX_Parser_Y.H:95
struct parser_node * parser_newf2(enum parser_f2_t ftype, struct parser_node *l, struct parser_node *r)
Definition AMReX_Parser_Y.cpp:106
struct parser_node * parser_newusrf2(struct parser_symbol *fname, struct parser_node *l, struct parser_node *r)
Definition AMReX_Parser_Y.cpp:144
struct parser_node * parser_newnode(enum parser_node_t type, struct parser_node *l, struct parser_node *r)
Definition AMReX_Parser_Y.cpp:49
struct parser_node * parser_newneg(struct parser_node *n)
Definition AMReX_Parser_Y.cpp:66
struct parser_node * parser_newassign(struct parser_symbol *sym, struct parser_node *v)
Definition AMReX_Parser_Y.cpp:176
struct parser_node * parser_newf3(enum parser_f3_t ftype, struct parser_node *n1, struct parser_node *n2, struct parser_node *n3)
Definition AMReX_Parser_Y.cpp:118
struct parser_node * parser_newusrfn(struct parser_symbol *fname, std::vector< struct parser_node * > const &nv)
Definition AMReX_Parser_Y.cpp:158
struct parser_node * parser_newusrf1(struct parser_symbol *fname, struct parser_node *l)
Definition AMReX_Parser_Y.cpp:132
struct parser_node * parser_newcmpchain(struct parser_node *nl, enum parser_f2_t cmp, struct parser_node *nr)
Definition AMReX_Parser_Y.cpp:231
void parser_defexpr(struct parser_node *body)
Definition AMReX_Parser_Y.cpp:29
struct parser_node * parser_newsymbol(struct parser_symbol *symbol)
Definition AMReX_Parser_Y.cpp:89
@ PARSER_MUL
Definition AMReX_Parser_Y.H:155
@ PARSER_SUB
Definition AMReX_Parser_Y.H:154
@ PARSER_DIV
Definition AMReX_Parser_Y.H:156
@ PARSER_ADD
Definition AMReX_Parser_Y.H:153
struct parser_node * parser_newnumber(double d)
Definition AMReX_Parser_Y.cpp:77
struct parser_node * parser_newf1(enum parser_f1_t ftype, struct parser_node *l)
Definition AMReX_Parser_Y.cpp:95
struct parser_node * parser_newlist(struct parser_node *nl, struct parser_node *nr)
Definition AMReX_Parser_Y.cpp:187
Definition amrex_iparser.tab.nolint.H:433