drivers/pc80/pc: Clean up formatting of PS/2 related ASL code
[coreboot.git] / util / sconfig / sconfig.tab.c_shipped
blobb0252cdcf3b017b5657d0cb3dfea3274d52f0574
1 /* A Bison parser, made by GNU Bison 3.8.2.  */
3 /* Bison implementation for Yacc-like parsers in C
5    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6    Inc.
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.
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.
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/>.  */
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.
31    This special exception was added by the Free Software Foundation in
32    version 2.2 of Bison.  */
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35    simplifying the original so-called "semantic" parser.  */
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.  */
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.  */
48 /* Identify Bison output, and Bison version.  */
49 #define YYBISON 30802
51 /* Bison version string.  */
52 #define YYBISON_VERSION "3.8.2"
54 /* Skeleton name.  */
55 #define YYSKELETON_NAME "yacc.c"
57 /* Pure parsers.  */
58 #define YYPURE 0
60 /* Push parsers.  */
61 #define YYPUSH 0
63 /* Pull parsers.  */
64 #define YYPULL 1
69 /* First part of user prologue.  */
71 /* sconfig, coreboot device tree compiler */
72 /* SPDX-License-Identifier: GPL-2.0-only */
74 #include <stdint.h>
75 #include "sconfig.h"
77 int yylex();
78 void yyerror(const char *s);
80 static struct bus *cur_parent;
81 static struct chip_instance *cur_chip_instance;
82 static struct fw_config_field *cur_field;
83 static struct fw_config_field_bits *cur_bits;
87 # ifndef YY_CAST
88 #  ifdef __cplusplus
89 #   define YY_CAST(Type, Val) static_cast<Type> (Val)
90 #   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
91 #  else
92 #   define YY_CAST(Type, Val) ((Type) (Val))
93 #   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
94 #  endif
95 # endif
96 # ifndef YY_NULLPTR
97 #  if defined __cplusplus
98 #   if 201103L <= __cplusplus
99 #    define YY_NULLPTR nullptr
100 #   else
101 #    define YY_NULLPTR 0
102 #   endif
103 #  else
104 #   define YY_NULLPTR ((void*)0)
105 #  endif
106 # endif
108 #include "sconfig.tab.h_shipped"
109 /* Symbol kind.  */
110 enum yysymbol_kind_t
112   YYSYMBOL_YYEMPTY = -2,
113   YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
114   YYSYMBOL_YYerror = 1,                    /* error  */
115   YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
116   YYSYMBOL_CHIP = 3,                       /* CHIP  */
117   YYSYMBOL_DEVICE = 4,                     /* DEVICE  */
118   YYSYMBOL_REGISTER = 5,                   /* REGISTER  */
119   YYSYMBOL_ALIAS = 6,                      /* ALIAS  */
120   YYSYMBOL_REFERENCE = 7,                  /* REFERENCE  */
121   YYSYMBOL_ASSOCIATION = 8,                /* ASSOCIATION  */
122   YYSYMBOL_BOOL = 9,                       /* BOOL  */
123   YYSYMBOL_STATUS = 10,                    /* STATUS  */
124   YYSYMBOL_MANDATORY = 11,                 /* MANDATORY  */
125   YYSYMBOL_BUS = 12,                       /* BUS  */
126   YYSYMBOL_RESOURCE = 13,                  /* RESOURCE  */
127   YYSYMBOL_END = 14,                       /* END  */
128   YYSYMBOL_EQUALS = 15,                    /* EQUALS  */
129   YYSYMBOL_HEX = 16,                       /* HEX  */
130   YYSYMBOL_STRING = 17,                    /* STRING  */
131   YYSYMBOL_PCI = 18,                       /* PCI  */
132   YYSYMBOL_PNP = 19,                       /* PNP  */
133   YYSYMBOL_I2C = 20,                       /* I2C  */
134   YYSYMBOL_CPU_CLUSTER = 21,               /* CPU_CLUSTER  */
135   YYSYMBOL_CPU = 22,                       /* CPU  */
136   YYSYMBOL_DOMAIN = 23,                    /* DOMAIN  */
137   YYSYMBOL_IRQ = 24,                       /* IRQ  */
138   YYSYMBOL_DRQ = 25,                       /* DRQ  */
139   YYSYMBOL_SLOT_DESC = 26,                 /* SLOT_DESC  */
140   YYSYMBOL_SMBIOS_DEV_INFO = 27,           /* SMBIOS_DEV_INFO  */
141   YYSYMBOL_IO = 28,                        /* IO  */
142   YYSYMBOL_NUMBER = 29,                    /* NUMBER  */
143   YYSYMBOL_SUBSYSTEMID = 30,               /* SUBSYSTEMID  */
144   YYSYMBOL_INHERIT = 31,                   /* INHERIT  */
145   YYSYMBOL_PCIINT = 32,                    /* PCIINT  */
146   YYSYMBOL_GENERIC = 33,                   /* GENERIC  */
147   YYSYMBOL_SPI = 34,                       /* SPI  */
148   YYSYMBOL_USB = 35,                       /* USB  */
149   YYSYMBOL_MMIO = 36,                      /* MMIO  */
150   YYSYMBOL_GPIO = 37,                      /* GPIO  */
151   YYSYMBOL_MDIO = 38,                      /* MDIO  */
152   YYSYMBOL_FW_CONFIG_TABLE = 39,           /* FW_CONFIG_TABLE  */
153   YYSYMBOL_FW_CONFIG_FIELD = 40,           /* FW_CONFIG_FIELD  */
154   YYSYMBOL_FW_CONFIG_OPTION = 41,          /* FW_CONFIG_OPTION  */
155   YYSYMBOL_FW_CONFIG_PROBE = 42,           /* FW_CONFIG_PROBE  */
156   YYSYMBOL_FW_CONFIG_UNPROVISIONED = 43,   /* FW_CONFIG_UNPROVISIONED  */
157   YYSYMBOL_PIPE = 44,                      /* PIPE  */
158   YYSYMBOL_OPS = 45,                       /* OPS  */
159   YYSYMBOL_YYACCEPT = 46,                  /* $accept  */
160   YYSYMBOL_devtree = 47,                   /* devtree  */
161   YYSYMBOL_chipchild_nondev = 48,          /* chipchild_nondev  */
162   YYSYMBOL_chipchild = 49,                 /* chipchild  */
163   YYSYMBOL_chipchildren = 50,              /* chipchildren  */
164   YYSYMBOL_chipchildren_dev = 51,          /* chipchildren_dev  */
165   YYSYMBOL_devicechildren = 52,            /* devicechildren  */
166   YYSYMBOL_chip = 53,                      /* chip  */
167   YYSYMBOL_54_1 = 54,                      /* @1  */
168   YYSYMBOL_device = 55,                    /* device  */
169   YYSYMBOL_56_2 = 56,                      /* @2  */
170   YYSYMBOL_57_3 = 57,                      /* @3  */
171   YYSYMBOL_alias = 58,                     /* alias  */
172   YYSYMBOL_status = 59,                    /* status  */
173   YYSYMBOL_resource = 60,                  /* resource  */
174   YYSYMBOL_reference = 61,                 /* reference  */
175   YYSYMBOL_registers = 62,                 /* registers  */
176   YYSYMBOL_subsystemid = 63,               /* subsystemid  */
177   YYSYMBOL_smbios_slot_desc = 64,          /* smbios_slot_desc  */
178   YYSYMBOL_smbios_dev_info = 65,           /* smbios_dev_info  */
179   YYSYMBOL_fw_config_table = 66,           /* fw_config_table  */
180   YYSYMBOL_fw_config_table_children = 67,  /* fw_config_table_children  */
181   YYSYMBOL_fw_config_field_children = 68,  /* fw_config_field_children  */
182   YYSYMBOL_fw_config_field_bits = 69,      /* fw_config_field_bits  */
183   YYSYMBOL_fw_config_field_bits_repeating = 70, /* fw_config_field_bits_repeating  */
184   YYSYMBOL_fw_config_field = 71,           /* fw_config_field  */
185   YYSYMBOL_72_4 = 72,                      /* $@4  */
186   YYSYMBOL_73_5 = 73,                      /* $@5  */
187   YYSYMBOL_74_6 = 74,                      /* $@6  */
188   YYSYMBOL_fw_config_option = 75,          /* fw_config_option  */
189   YYSYMBOL_fw_config_probe = 76,           /* fw_config_probe  */
190   YYSYMBOL_ops = 77                        /* ops  */
192 typedef enum yysymbol_kind_t yysymbol_kind_t;
197 #ifdef short
198 # undef short
199 #endif
201 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
202    <limits.h> and (if available) <stdint.h> are included
203    so that the code can choose integer types of a good width.  */
205 #ifndef __PTRDIFF_MAX__
206 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
207 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
208 #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
209 #  define YY_STDINT_H
210 # endif
211 #endif
213 /* Narrow types that promote to a signed type and that can represent a
214    signed or unsigned integer of at least N bits.  In tables they can
215    save space and decrease cache pressure.  Promoting to a signed type
216    helps avoid bugs in integer arithmetic.  */
218 #ifdef __INT_LEAST8_MAX__
219 typedef __INT_LEAST8_TYPE__ yytype_int8;
220 #elif defined YY_STDINT_H
221 typedef int_least8_t yytype_int8;
222 #else
223 typedef signed char yytype_int8;
224 #endif
226 #ifdef __INT_LEAST16_MAX__
227 typedef __INT_LEAST16_TYPE__ yytype_int16;
228 #elif defined YY_STDINT_H
229 typedef int_least16_t yytype_int16;
230 #else
231 typedef short yytype_int16;
232 #endif
234 /* Work around bug in HP-UX 11.23, which defines these macros
235    incorrectly for preprocessor constants.  This workaround can likely
236    be removed in 2023, as HPE has promised support for HP-UX 11.23
237    (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
238    <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
239 #ifdef __hpux
240 # undef UINT_LEAST8_MAX
241 # undef UINT_LEAST16_MAX
242 # define UINT_LEAST8_MAX 255
243 # define UINT_LEAST16_MAX 65535
244 #endif
246 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
247 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
248 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
249        && UINT_LEAST8_MAX <= INT_MAX)
250 typedef uint_least8_t yytype_uint8;
251 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
252 typedef unsigned char yytype_uint8;
253 #else
254 typedef short yytype_uint8;
255 #endif
257 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
258 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
259 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
260        && UINT_LEAST16_MAX <= INT_MAX)
261 typedef uint_least16_t yytype_uint16;
262 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
263 typedef unsigned short yytype_uint16;
264 #else
265 typedef int yytype_uint16;
266 #endif
268 #ifndef YYPTRDIFF_T
269 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
270 #  define YYPTRDIFF_T __PTRDIFF_TYPE__
271 #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
272 # elif defined PTRDIFF_MAX
273 #  ifndef ptrdiff_t
274 #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
275 #  endif
276 #  define YYPTRDIFF_T ptrdiff_t
277 #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
278 # else
279 #  define YYPTRDIFF_T long
280 #  define YYPTRDIFF_MAXIMUM LONG_MAX
281 # endif
282 #endif
284 #ifndef YYSIZE_T
285 # ifdef __SIZE_TYPE__
286 #  define YYSIZE_T __SIZE_TYPE__
287 # elif defined size_t
288 #  define YYSIZE_T size_t
289 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
290 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
291 #  define YYSIZE_T size_t
292 # else
293 #  define YYSIZE_T unsigned
294 # endif
295 #endif
297 #define YYSIZE_MAXIMUM                                  \
298   YY_CAST (YYPTRDIFF_T,                                 \
299            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
300             ? YYPTRDIFF_MAXIMUM                         \
301             : YY_CAST (YYSIZE_T, -1)))
303 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
306 /* Stored state numbers (used for stacks). */
307 typedef yytype_int8 yy_state_t;
309 /* State numbers in computations.  */
310 typedef int yy_state_fast_t;
312 #ifndef YY_
313 # if defined YYENABLE_NLS && YYENABLE_NLS
314 #  if ENABLE_NLS
315 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
316 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
317 #  endif
318 # endif
319 # ifndef YY_
320 #  define YY_(Msgid) Msgid
321 # endif
322 #endif
325 #ifndef YY_ATTRIBUTE_PURE
326 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
327 #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
328 # else
329 #  define YY_ATTRIBUTE_PURE
330 # endif
331 #endif
333 #ifndef YY_ATTRIBUTE_UNUSED
334 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
335 #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
336 # else
337 #  define YY_ATTRIBUTE_UNUSED
338 # endif
339 #endif
341 /* Suppress unused-variable warnings by "using" E.  */
342 #if ! defined lint || defined __GNUC__
343 # define YY_USE(E) ((void) (E))
344 #else
345 # define YY_USE(E) /* empty */
346 #endif
348 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
349 #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
350 # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
351 #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
352     _Pragma ("GCC diagnostic push")                                     \
353     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
354 # else
355 #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
356     _Pragma ("GCC diagnostic push")                                     \
357     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
358     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
359 # endif
360 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
361     _Pragma ("GCC diagnostic pop")
362 #else
363 # define YY_INITIAL_VALUE(Value) Value
364 #endif
365 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
366 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
367 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
368 #endif
369 #ifndef YY_INITIAL_VALUE
370 # define YY_INITIAL_VALUE(Value) /* Nothing. */
371 #endif
373 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
374 # define YY_IGNORE_USELESS_CAST_BEGIN                          \
375     _Pragma ("GCC diagnostic push")                            \
376     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
377 # define YY_IGNORE_USELESS_CAST_END            \
378     _Pragma ("GCC diagnostic pop")
379 #endif
380 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
381 # define YY_IGNORE_USELESS_CAST_BEGIN
382 # define YY_IGNORE_USELESS_CAST_END
383 #endif
386 #define YY_ASSERT(E) ((void) (0 && (E)))
388 #if !defined yyoverflow
390 /* The parser invokes alloca or malloc; define the necessary symbols.  */
392 # ifdef YYSTACK_USE_ALLOCA
393 #  if YYSTACK_USE_ALLOCA
394 #   ifdef __GNUC__
395 #    define YYSTACK_ALLOC __builtin_alloca
396 #   elif defined __BUILTIN_VA_ARG_INCR
397 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
398 #   elif defined _AIX
399 #    define YYSTACK_ALLOC __alloca
400 #   elif defined _MSC_VER
401 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
402 #    define alloca _alloca
403 #   else
404 #    define YYSTACK_ALLOC alloca
405 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
406 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
407       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
408 #     ifndef EXIT_SUCCESS
409 #      define EXIT_SUCCESS 0
410 #     endif
411 #    endif
412 #   endif
413 #  endif
414 # endif
416 # ifdef YYSTACK_ALLOC
417    /* Pacify GCC's 'empty if-body' warning.  */
418 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
419 #  ifndef YYSTACK_ALLOC_MAXIMUM
420     /* The OS might guarantee only one guard page at the bottom of the stack,
421        and a page size can be as small as 4096 bytes.  So we cannot safely
422        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
423        to allow for a few compiler-allocated temporary stack slots.  */
424 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
425 #  endif
426 # else
427 #  define YYSTACK_ALLOC YYMALLOC
428 #  define YYSTACK_FREE YYFREE
429 #  ifndef YYSTACK_ALLOC_MAXIMUM
430 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
431 #  endif
432 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
433        && ! ((defined YYMALLOC || defined malloc) \
434              && (defined YYFREE || defined free)))
435 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
436 #   ifndef EXIT_SUCCESS
437 #    define EXIT_SUCCESS 0
438 #   endif
439 #  endif
440 #  ifndef YYMALLOC
441 #   define YYMALLOC malloc
442 #   if ! defined malloc && ! defined EXIT_SUCCESS
443 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
444 #   endif
445 #  endif
446 #  ifndef YYFREE
447 #   define YYFREE free
448 #   if ! defined free && ! defined EXIT_SUCCESS
449 void free (void *); /* INFRINGES ON USER NAME SPACE */
450 #   endif
451 #  endif
452 # endif
453 #endif /* !defined yyoverflow */
455 #if (! defined yyoverflow \
456      && (! defined __cplusplus \
457          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
459 /* A type that is properly aligned for any stack member.  */
460 union yyalloc
462   yy_state_t yyss_alloc;
463   YYSTYPE yyvs_alloc;
466 /* The size of the maximum gap between one aligned stack and the next.  */
467 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
469 /* The size of an array large to enough to hold all stacks, each with
470    N elements.  */
471 # define YYSTACK_BYTES(N) \
472      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
473       + YYSTACK_GAP_MAXIMUM)
475 # define YYCOPY_NEEDED 1
477 /* Relocate STACK from its old location to the new one.  The
478    local variables YYSIZE and YYSTACKSIZE give the old and new number of
479    elements in the stack, and YYPTR gives the new location of the
480    stack.  Advance YYPTR to a properly aligned location for the next
481    stack.  */
482 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
483     do                                                                  \
484       {                                                                 \
485         YYPTRDIFF_T yynewbytes;                                         \
486         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
487         Stack = &yyptr->Stack_alloc;                                    \
488         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
489         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
490       }                                                                 \
491     while (0)
493 #endif
495 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
496 /* Copy COUNT objects from SRC to DST.  The source and destination do
497    not overlap.  */
498 # ifndef YYCOPY
499 #  if defined __GNUC__ && 1 < __GNUC__
500 #   define YYCOPY(Dst, Src, Count) \
501       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
502 #  else
503 #   define YYCOPY(Dst, Src, Count)              \
504       do                                        \
505         {                                       \
506           YYPTRDIFF_T yyi;                      \
507           for (yyi = 0; yyi < (Count); yyi++)   \
508             (Dst)[yyi] = (Src)[yyi];            \
509         }                                       \
510       while (0)
511 #  endif
512 # endif
513 #endif /* !YYCOPY_NEEDED */
515 /* YYFINAL -- State number of the termination state.  */
516 #define YYFINAL  2
517 /* YYLAST -- Last index in YYTABLE.  */
518 #define YYLAST   93
520 /* YYNTOKENS -- Number of terminals.  */
521 #define YYNTOKENS  46
522 /* YYNNTS -- Number of nonterminals.  */
523 #define YYNNTS  32
524 /* YYNRULES -- Number of rules.  */
525 #define YYNRULES  61
526 /* YYNSTATES -- Number of states.  */
527 #define YYNSTATES  104
529 /* YYMAXUTOK -- Last valid token kind.  */
530 #define YYMAXUTOK   300
533 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
534    as returned by yylex, with out-of-bounds checking.  */
535 #define YYTRANSLATE(YYX)                                \
536   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
537    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
538    : YYSYMBOL_YYUNDEF)
540 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
541    as returned by yylex.  */
542 static const yytype_int8 yytranslate[] =
544        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
545        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
546        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
547        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
548        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
549        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
550        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
551        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
552        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
553        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
554        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
555        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
556        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
557        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
558        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
559        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
560        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
561        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
562        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
563        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
564        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
565        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
566        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
567        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
568        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
569        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
570        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
571       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
572       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
573       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
574       45
577 #if YYDEBUG
578 /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
579 static const yytype_uint8 yyrline[] =
581        0,    26,    26,    26,    26,    29,    29,    29,    30,    30,
582       31,    31,    32,    32,    34,    34,    34,    34,    34,    34,
583       34,    34,    34,    34,    36,    36,    45,    45,    53,    53,
584       61,    63,    67,    67,    69,    72,    75,    78,    81,    84,
585       87,    90,    93,    96,   100,   103,   103,   106,   106,   109,
586      115,   115,   118,   117,   122,   122,   130,   130,   136,   140,
587      143,   146
589 #endif
591 /** Accessing symbol of state STATE.  */
592 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
594 #if YYDEBUG || 0
595 /* The user-facing name of the symbol whose (internal) number is
596    YYSYMBOL.  No bounds checking.  */
597 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
599 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
600    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
601 static const char *const yytname[] =
603   "\"end of file\"", "error", "\"invalid token\"", "CHIP", "DEVICE",
604   "REGISTER", "ALIAS", "REFERENCE", "ASSOCIATION", "BOOL", "STATUS",
605   "MANDATORY", "BUS", "RESOURCE", "END", "EQUALS", "HEX", "STRING", "PCI",
606   "PNP", "I2C", "CPU_CLUSTER", "CPU", "DOMAIN", "IRQ", "DRQ", "SLOT_DESC",
607   "SMBIOS_DEV_INFO", "IO", "NUMBER", "SUBSYSTEMID", "INHERIT", "PCIINT",
608   "GENERIC", "SPI", "USB", "MMIO", "GPIO", "MDIO", "FW_CONFIG_TABLE",
609   "FW_CONFIG_FIELD", "FW_CONFIG_OPTION", "FW_CONFIG_PROBE",
610   "FW_CONFIG_UNPROVISIONED", "PIPE", "OPS", "$accept", "devtree",
611   "chipchild_nondev", "chipchild", "chipchildren", "chipchildren_dev",
612   "devicechildren", "chip", "@1", "device", "@2", "@3", "alias", "status",
613   "resource", "reference", "registers", "subsystemid", "smbios_slot_desc",
614   "smbios_dev_info", "fw_config_table", "fw_config_table_children",
615   "fw_config_field_children", "fw_config_field_bits",
616   "fw_config_field_bits_repeating", "fw_config_field", "$@4", "$@5", "$@6",
617   "fw_config_option", "fw_config_probe", "ops", YY_NULLPTR
620 static const char *
621 yysymbol_name (yysymbol_kind_t yysymbol)
623   return yytname[yysymbol];
625 #endif
627 #define YYPACT_NINF (-51)
629 #define yypact_value_is_default(Yyn) \
630   ((Yyn) == YYPACT_NINF)
632 #define YYTABLE_NINF (-1)
634 #define yytable_value_is_error(Yyn) \
635   0
637 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
638    STATE-NUM.  */
639 static const yytype_int8 yypact[] =
641      -51,    12,   -51,     4,   -51,   -51,   -51,   -51,    -3,    49,
642      -51,    11,   -51,    10,    23,    24,    49,    29,   -51,   -51,
643      -51,   -51,    15,    31,    20,    40,    51,   -51,   -51,    49,
644       28,    16,   -51,    14,    55,    45,    46,   -51,   -51,   -51,
645      -51,   -51,    35,   -51,   -12,   -51,   -51,   -51,    50,    14,
646      -51,   -51,    -8,    28,    16,   -51,   -51,    52,   -51,   -51,
647      -51,   -51,   -51,   -51,    -7,    37,     0,   -51,   -51,   -51,
648       39,   -51,    53,    42,    43,     3,    56,   -51,   -51,   -51,
649      -51,   -51,   -51,   -51,   -51,   -51,     5,    59,    58,    60,
650       47,    61,   -51,   -51,   -51,    54,    62,   -51,    57,   -51,
651      -51,    63,   -51,   -51
654 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
655    Performed when YYTABLE does not specify something else to do.  Zero
656    means the default is an error.  */
657 static const yytype_int8 yydefact[] =
659        2,     0,     1,     0,    46,     3,     4,    24,     0,     0,
660       44,     0,    45,     0,     0,     0,     0,     0,     5,    11,
661        7,     6,    56,     0,     0,     0,     0,    13,    25,    12,
662       54,    51,    48,     0,    30,     0,     0,     9,    10,     8,
663       49,    48,     0,    52,     0,    32,    33,    28,     0,     0,
664       36,    35,     0,     0,    51,    48,    57,     0,    47,    23,
665       31,    26,    55,    50,     0,     0,     0,    23,    53,    58,
666        0,    29,     0,     0,     0,     0,     0,    15,    14,    16,
667       20,    17,    18,    19,    21,    22,     0,     0,     0,    43,
668        0,     0,    60,    61,    27,     0,    41,    42,    37,    59,
669       34,    40,    38,    39
672 /* YYPGOTO[NTERM-NUM].  */
673 static const yytype_int8 yypgoto[] =
675      -51,   -51,    64,   -51,   -51,    65,    17,    -1,   -51,   -28,
676      -51,   -51,   -51,    33,   -51,   -51,   -50,   -51,   -51,   -51,
677      -51,   -51,   -16,    44,    36,   -51,   -51,   -51,   -51,   -51,
678      -51,   -51
681 /* YYDEFGOTO[NTERM-NUM].  */
682 static const yytype_int8 yydefgoto[] =
684        0,     1,    16,    38,    29,    17,    66,    18,     9,    19,
685       67,    59,    49,    47,    79,    20,    21,    81,    82,    83,
686        6,     8,    44,    31,    43,    12,    55,    41,    32,    58,
687       84,    85
690 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
691    positive, shift that token.  If negative, reduce the rule whose
692    number is the opposite.  If YYTABLE_NINF, syntax error.  */
693 static const yytype_int8 yytable[] =
695        5,    39,    56,     3,    13,    14,    62,    68,     3,    13,
696       14,    10,     2,    70,    71,     3,    80,    23,    70,    94,
697       91,     7,    24,    45,    46,    52,    72,    73,    22,    57,
698       74,    72,    73,    57,    57,    74,    80,    11,    78,    64,
699       25,    26,    75,    28,    30,    76,    92,    75,    33,    34,
700       76,     4,     3,    13,    14,    35,    15,    40,    78,    36,
701       42,    48,    50,    51,    53,    77,    69,    60,    87,    65,
702       88,    89,    90,    93,    95,    96,    98,    97,    99,   101,
703      103,    27,    61,   100,    86,    77,    54,     0,   102,     0,
704       63,     0,     0,    37
707 static const yytype_int8 yycheck[] =
709        1,    29,    14,     3,     4,     5,    14,    14,     3,     4,
710        5,    14,     0,    13,    14,     3,    66,     7,    13,    14,
711       17,    17,    12,     9,    10,    41,    26,    27,    17,    41,
712       30,    26,    27,    41,    41,    30,    86,    40,    66,    55,
713       17,    17,    42,    14,    29,    45,    43,    42,    17,    29,
714       45,    39,     3,     4,     5,    15,     7,    29,    86,     8,
715       44,     6,    17,    17,    29,    66,    29,    17,    29,    17,
716       17,    29,    29,    17,    15,    17,    29,    17,    17,    17,
717       17,    16,    49,    29,    67,    86,    42,    -1,    31,    -1,
718       54,    -1,    -1,    29
721 /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
722    state STATE-NUM.  */
723 static const yytype_int8 yystos[] =
725        0,    47,     0,     3,    39,    53,    66,    17,    67,    54,
726       14,    40,    71,     4,     5,     7,    48,    51,    53,    55,
727       61,    62,    17,     7,    12,    17,    17,    51,    14,    50,
728       29,    69,    74,    17,    29,    15,     8,    48,    49,    55,
729       29,    73,    44,    70,    68,     9,    10,    59,     6,    58,
730       17,    17,    68,    29,    69,    72,    14,    41,    75,    57,
731       17,    59,    14,    70,    68,    17,    52,    56,    14,    29,
732       13,    14,    26,    27,    30,    42,    45,    53,    55,    60,
733       62,    63,    64,    65,    76,    77,    52,    29,    17,    29,
734       29,    17,    43,    17,    14,    15,    17,    17,    29,    17,
735       29,    17,    31,    17
738 /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
739 static const yytype_int8 yyr1[] =
741        0,    46,    47,    47,    47,    48,    48,    48,    49,    49,
742       50,    50,    51,    51,    52,    52,    52,    52,    52,    52,
743       52,    52,    52,    52,    54,    53,    56,    55,    57,    55,
744       58,    58,    59,    59,    60,    61,    62,    63,    63,    64,
745       64,    64,    65,    65,    66,    67,    67,    68,    68,    69,
746       70,    70,    72,    71,    73,    71,    74,    71,    75,    76,
747       76,    77
750 /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
751 static const yytype_int8 yyr2[] =
753        0,     2,     0,     2,     2,     1,     1,     1,     1,     1,
754        2,     0,     2,     2,     2,     2,     2,     2,     2,     2,
755        2,     2,     2,     0,     0,     5,     0,     8,     0,     7,
756        0,     2,     1,     1,     4,     4,     4,     3,     4,     5,
757        4,     3,     3,     2,     3,     2,     0,     2,     0,     2,
758        3,     0,     0,     7,     0,     6,     0,     5,     3,     3,
759        2,     2
763 enum { YYENOMEM = -2 };
765 #define yyerrok         (yyerrstatus = 0)
766 #define yyclearin       (yychar = YYEMPTY)
768 #define YYACCEPT        goto yyacceptlab
769 #define YYABORT         goto yyabortlab
770 #define YYERROR         goto yyerrorlab
771 #define YYNOMEM         goto yyexhaustedlab
774 #define YYRECOVERING()  (!!yyerrstatus)
776 #define YYBACKUP(Token, Value)                                    \
777   do                                                              \
778     if (yychar == YYEMPTY)                                        \
779       {                                                           \
780         yychar = (Token);                                         \
781         yylval = (Value);                                         \
782         YYPOPSTACK (yylen);                                       \
783         yystate = *yyssp;                                         \
784         goto yybackup;                                            \
785       }                                                           \
786     else                                                          \
787       {                                                           \
788         yyerror (YY_("syntax error: cannot back up")); \
789         YYERROR;                                                  \
790       }                                                           \
791   while (0)
793 /* Backward compatibility with an undocumented macro.
794    Use YYerror or YYUNDEF. */
795 #define YYERRCODE YYUNDEF
798 /* Enable debugging if requested.  */
799 #if YYDEBUG
801 # ifndef YYFPRINTF
802 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
803 #  define YYFPRINTF fprintf
804 # endif
806 # define YYDPRINTF(Args)                        \
807 do {                                            \
808   if (yydebug)                                  \
809     YYFPRINTF Args;                             \
810 } while (0)
815 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
816 do {                                                                      \
817   if (yydebug)                                                            \
818     {                                                                     \
819       YYFPRINTF (stderr, "%s ", Title);                                   \
820       yy_symbol_print (stderr,                                            \
821                   Kind, Value); \
822       YYFPRINTF (stderr, "\n");                                           \
823     }                                                                     \
824 } while (0)
827 /*-----------------------------------.
828 | Print this symbol's value on YYO.  |
829 `-----------------------------------*/
831 static void
832 yy_symbol_value_print (FILE *yyo,
833                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
835   FILE *yyoutput = yyo;
836   YY_USE (yyoutput);
837   if (!yyvaluep)
838     return;
839   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
840   YY_USE (yykind);
841   YY_IGNORE_MAYBE_UNINITIALIZED_END
845 /*---------------------------.
846 | Print this symbol on YYO.  |
847 `---------------------------*/
849 static void
850 yy_symbol_print (FILE *yyo,
851                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
853   YYFPRINTF (yyo, "%s %s (",
854              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
856   yy_symbol_value_print (yyo, yykind, yyvaluep);
857   YYFPRINTF (yyo, ")");
860 /*------------------------------------------------------------------.
861 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
862 | TOP (included).                                                   |
863 `------------------------------------------------------------------*/
865 static void
866 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
868   YYFPRINTF (stderr, "Stack now");
869   for (; yybottom <= yytop; yybottom++)
870     {
871       int yybot = *yybottom;
872       YYFPRINTF (stderr, " %d", yybot);
873     }
874   YYFPRINTF (stderr, "\n");
877 # define YY_STACK_PRINT(Bottom, Top)                            \
878 do {                                                            \
879   if (yydebug)                                                  \
880     yy_stack_print ((Bottom), (Top));                           \
881 } while (0)
884 /*------------------------------------------------.
885 | Report that the YYRULE is going to be reduced.  |
886 `------------------------------------------------*/
888 static void
889 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
890                  int yyrule)
892   int yylno = yyrline[yyrule];
893   int yynrhs = yyr2[yyrule];
894   int yyi;
895   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
896              yyrule - 1, yylno);
897   /* The symbols being reduced.  */
898   for (yyi = 0; yyi < yynrhs; yyi++)
899     {
900       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
901       yy_symbol_print (stderr,
902                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
903                        &yyvsp[(yyi + 1) - (yynrhs)]);
904       YYFPRINTF (stderr, "\n");
905     }
908 # define YY_REDUCE_PRINT(Rule)          \
909 do {                                    \
910   if (yydebug)                          \
911     yy_reduce_print (yyssp, yyvsp, Rule); \
912 } while (0)
914 /* Nonzero means print parse trace.  It is left uninitialized so that
915    multiple parsers can coexist.  */
916 int yydebug;
917 #else /* !YYDEBUG */
918 # define YYDPRINTF(Args) ((void) 0)
919 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
920 # define YY_STACK_PRINT(Bottom, Top)
921 # define YY_REDUCE_PRINT(Rule)
922 #endif /* !YYDEBUG */
925 /* YYINITDEPTH -- initial size of the parser's stacks.  */
926 #ifndef YYINITDEPTH
927 # define YYINITDEPTH 200
928 #endif
930 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
931    if the built-in stack extension method is used).
933    Do not make this value too large; the results are undefined if
934    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
935    evaluated with infinite-precision integer arithmetic.  */
937 #ifndef YYMAXDEPTH
938 # define YYMAXDEPTH 10000
939 #endif
946 /*-----------------------------------------------.
947 | Release the memory associated to this symbol.  |
948 `-----------------------------------------------*/
950 static void
951 yydestruct (const char *yymsg,
952             yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
954   YY_USE (yyvaluep);
955   if (!yymsg)
956     yymsg = "Deleting";
957   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
959   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
960   YY_USE (yykind);
961   YY_IGNORE_MAYBE_UNINITIALIZED_END
965 /* Lookahead token kind.  */
966 int yychar;
968 /* The semantic value of the lookahead symbol.  */
969 YYSTYPE yylval;
970 /* Number of syntax errors so far.  */
971 int yynerrs;
976 /*----------.
977 | yyparse.  |
978 `----------*/
981 yyparse (void)
983     yy_state_fast_t yystate = 0;
984     /* Number of tokens to shift before error messages enabled.  */
985     int yyerrstatus = 0;
987     /* Refer to the stacks through separate pointers, to allow yyoverflow
988        to reallocate them elsewhere.  */
990     /* Their size.  */
991     YYPTRDIFF_T yystacksize = YYINITDEPTH;
993     /* The state stack: array, bottom, top.  */
994     yy_state_t yyssa[YYINITDEPTH];
995     yy_state_t *yyss = yyssa;
996     yy_state_t *yyssp = yyss;
998     /* The semantic value stack: array, bottom, top.  */
999     YYSTYPE yyvsa[YYINITDEPTH];
1000     YYSTYPE *yyvs = yyvsa;
1001     YYSTYPE *yyvsp = yyvs;
1003   int yyn;
1004   /* The return value of yyparse.  */
1005   int yyresult;
1006   /* Lookahead symbol kind.  */
1007   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
1008   /* The variables used to return semantic value and location from the
1009      action routines.  */
1010   YYSTYPE yyval;
1014 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
1016   /* The number of symbols on the RHS of the reduced rule.
1017      Keep to zero when no symbol should be popped.  */
1018   int yylen = 0;
1020   YYDPRINTF ((stderr, "Starting parse\n"));
1022   yychar = YYEMPTY; /* Cause a token to be read.  */
1024   goto yysetstate;
1027 /*------------------------------------------------------------.
1028 | yynewstate -- push a new state, which is found in yystate.  |
1029 `------------------------------------------------------------*/
1030 yynewstate:
1031   /* In all cases, when you get here, the value and location stacks
1032      have just been pushed.  So pushing a state here evens the stacks.  */
1033   yyssp++;
1036 /*--------------------------------------------------------------------.
1037 | yysetstate -- set current state (the top of the stack) to yystate.  |
1038 `--------------------------------------------------------------------*/
1039 yysetstate:
1040   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1041   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1042   YY_IGNORE_USELESS_CAST_BEGIN
1043   *yyssp = YY_CAST (yy_state_t, yystate);
1044   YY_IGNORE_USELESS_CAST_END
1045   YY_STACK_PRINT (yyss, yyssp);
1047   if (yyss + yystacksize - 1 <= yyssp)
1048 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1049     YYNOMEM;
1050 #else
1051     {
1052       /* Get the current used size of the three stacks, in elements.  */
1053       YYPTRDIFF_T yysize = yyssp - yyss + 1;
1055 # if defined yyoverflow
1056       {
1057         /* Give user a chance to reallocate the stack.  Use copies of
1058            these so that the &'s don't force the real ones into
1059            memory.  */
1060         yy_state_t *yyss1 = yyss;
1061         YYSTYPE *yyvs1 = yyvs;
1063         /* Each stack pointer address is followed by the size of the
1064            data in use in that stack, in bytes.  This used to be a
1065            conditional around just the two extra args, but that might
1066            be undefined if yyoverflow is a macro.  */
1067         yyoverflow (YY_("memory exhausted"),
1068                     &yyss1, yysize * YYSIZEOF (*yyssp),
1069                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
1070                     &yystacksize);
1071         yyss = yyss1;
1072         yyvs = yyvs1;
1073       }
1074 # else /* defined YYSTACK_RELOCATE */
1075       /* Extend the stack our own way.  */
1076       if (YYMAXDEPTH <= yystacksize)
1077         YYNOMEM;
1078       yystacksize *= 2;
1079       if (YYMAXDEPTH < yystacksize)
1080         yystacksize = YYMAXDEPTH;
1082       {
1083         yy_state_t *yyss1 = yyss;
1084         union yyalloc *yyptr =
1085           YY_CAST (union yyalloc *,
1086                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1087         if (! yyptr)
1088           YYNOMEM;
1089         YYSTACK_RELOCATE (yyss_alloc, yyss);
1090         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1091 #  undef YYSTACK_RELOCATE
1092         if (yyss1 != yyssa)
1093           YYSTACK_FREE (yyss1);
1094       }
1095 # endif
1097       yyssp = yyss + yysize - 1;
1098       yyvsp = yyvs + yysize - 1;
1100       YY_IGNORE_USELESS_CAST_BEGIN
1101       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
1102                   YY_CAST (long, yystacksize)));
1103       YY_IGNORE_USELESS_CAST_END
1105       if (yyss + yystacksize - 1 <= yyssp)
1106         YYABORT;
1107     }
1108 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
1111   if (yystate == YYFINAL)
1112     YYACCEPT;
1114   goto yybackup;
1117 /*-----------.
1118 | yybackup.  |
1119 `-----------*/
1120 yybackup:
1121   /* Do appropriate processing given the current state.  Read a
1122      lookahead token if we need one and don't already have one.  */
1124   /* First try to decide what to do without reference to lookahead token.  */
1125   yyn = yypact[yystate];
1126   if (yypact_value_is_default (yyn))
1127     goto yydefault;
1129   /* Not known => get a lookahead token if don't already have one.  */
1131   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
1132   if (yychar == YYEMPTY)
1133     {
1134       YYDPRINTF ((stderr, "Reading a token\n"));
1135       yychar = yylex ();
1136     }
1138   if (yychar <= YYEOF)
1139     {
1140       yychar = YYEOF;
1141       yytoken = YYSYMBOL_YYEOF;
1142       YYDPRINTF ((stderr, "Now at end of input.\n"));
1143     }
1144   else if (yychar == YYerror)
1145     {
1146       /* The scanner already issued an error message, process directly
1147          to error recovery.  But do not keep the error token as
1148          lookahead, it is too special and may lead us to an endless
1149          loop in error recovery. */
1150       yychar = YYUNDEF;
1151       yytoken = YYSYMBOL_YYerror;
1152       goto yyerrlab1;
1153     }
1154   else
1155     {
1156       yytoken = YYTRANSLATE (yychar);
1157       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1158     }
1160   /* If the proper action on seeing token YYTOKEN is to reduce or to
1161      detect an error, take that action.  */
1162   yyn += yytoken;
1163   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1164     goto yydefault;
1165   yyn = yytable[yyn];
1166   if (yyn <= 0)
1167     {
1168       if (yytable_value_is_error (yyn))
1169         goto yyerrlab;
1170       yyn = -yyn;
1171       goto yyreduce;
1172     }
1174   /* Count tokens shifted since error; after three, turn off error
1175      status.  */
1176   if (yyerrstatus)
1177     yyerrstatus--;
1179   /* Shift the lookahead token.  */
1180   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1181   yystate = yyn;
1182   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1183   *++yyvsp = yylval;
1184   YY_IGNORE_MAYBE_UNINITIALIZED_END
1186   /* Discard the shifted token.  */
1187   yychar = YYEMPTY;
1188   goto yynewstate;
1191 /*-----------------------------------------------------------.
1192 | yydefault -- do the default action for the current state.  |
1193 `-----------------------------------------------------------*/
1194 yydefault:
1195   yyn = yydefact[yystate];
1196   if (yyn == 0)
1197     goto yyerrlab;
1198   goto yyreduce;
1201 /*-----------------------------.
1202 | yyreduce -- do a reduction.  |
1203 `-----------------------------*/
1204 yyreduce:
1205   /* yyn is the number of a rule to reduce with.  */
1206   yylen = yyr2[yyn];
1208   /* If YYLEN is nonzero, implement the default value of the action:
1209      '$$ = $1'.
1211      Otherwise, the following line sets YYVAL to garbage.
1212      This behavior is undocumented and Bison
1213      users should not rely upon it.  Assigning to YYVAL
1214      unconditionally makes the parser a bit smaller, and it avoids a
1215      GCC warning that YYVAL may be used uninitialized.  */
1216   yyval = yyvsp[1-yylen];
1219   YY_REDUCE_PRINT (yyn);
1220   switch (yyn)
1221     {
1222   case 2: /* devtree: %empty  */
1223          { cur_parent = root_parent; }
1224     break;
1226   case 24: /* @1: %empty  */
1227                                 {
1228         (yyval.chip_instance) = new_chip_instance((yyvsp[0].string));
1229         chip_enqueue_tail(cur_chip_instance);
1230         cur_chip_instance = (yyval.chip_instance);
1232     break;
1234   case 25: /* chip: CHIP STRING @1 chipchildren_dev END  */
1235                              {
1236         cur_chip_instance = chip_dequeue_tail();
1238     break;
1240   case 26: /* @2: %empty  */
1241                                                        {
1242         (yyval.dev) = new_device_raw(cur_parent, cur_chip_instance, (yyvsp[-3].number), (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].number));
1243         cur_parent = (yyval.dev)->bus;
1245     break;
1247   case 27: /* device: DEVICE BUS NUMBER alias status @2 devicechildren END  */
1248                            {
1249         cur_parent = (yyvsp[-2].dev)->parent;
1251     break;
1253   case 28: /* @3: %empty  */
1254                                        {
1255         (yyval.dev) = new_device_reference(cur_parent, cur_chip_instance, (yyvsp[-1].string), (yyvsp[0].number));
1256         cur_parent = (yyval.dev)->bus;
1258     break;
1260   case 29: /* device: DEVICE REFERENCE STRING status @3 devicechildren END  */
1261                            {
1262         cur_parent = (yyvsp[-2].dev)->parent;
1264     break;
1266   case 30: /* alias: %empty  */
1267                    {
1268         (yyval.string) = NULL;
1270     break;
1272   case 31: /* alias: ALIAS STRING  */
1273                  {
1274         (yyval.string) = (yyvsp[0].string);
1276     break;
1278   case 34: /* resource: RESOURCE NUMBER EQUALS NUMBER  */
1279         { add_resource(cur_parent, (yyvsp[-3].number), strtol((yyvsp[-2].string), NULL, 0), strtol((yyvsp[0].string), NULL, 0)); }
1280     break;
1282   case 35: /* reference: REFERENCE STRING ASSOCIATION STRING  */
1283         { add_reference(cur_chip_instance, (yyvsp[0].string), (yyvsp[-2].string)); }
1284     break;
1286   case 36: /* registers: REGISTER STRING EQUALS STRING  */
1287         { add_register(cur_chip_instance, (yyvsp[-2].string), (yyvsp[0].string)); }
1288     break;
1290   case 37: /* subsystemid: SUBSYSTEMID NUMBER NUMBER  */
1291         { add_pci_subsystem_ids(cur_parent, strtol((yyvsp[-1].string), NULL, 16), strtol((yyvsp[0].string), NULL, 16), 0); }
1292     break;
1294   case 38: /* subsystemid: SUBSYSTEMID NUMBER NUMBER INHERIT  */
1295         { add_pci_subsystem_ids(cur_parent, strtol((yyvsp[-2].string), NULL, 16), strtol((yyvsp[-1].string), NULL, 16), 1); }
1296     break;
1298   case 39: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING STRING  */
1299         { add_slot_desc(cur_parent, (yyvsp[-3].string), (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string)); }
1300     break;
1302   case 40: /* smbios_slot_desc: SLOT_DESC STRING STRING STRING  */
1303         { add_slot_desc(cur_parent, (yyvsp[-2].string), (yyvsp[-1].string), (yyvsp[0].string), NULL); }
1304     break;
1306   case 41: /* smbios_slot_desc: SLOT_DESC STRING STRING  */
1307         { add_slot_desc(cur_parent, (yyvsp[-1].string), (yyvsp[0].string), NULL, NULL); }
1308     break;
1310   case 42: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER STRING  */
1311         { add_smbios_dev_info(cur_parent, strtol((yyvsp[-1].string), NULL, 0), (yyvsp[0].string)); }
1312     break;
1314   case 43: /* smbios_dev_info: SMBIOS_DEV_INFO NUMBER  */
1315         { add_smbios_dev_info(cur_parent, strtol((yyvsp[0].string), NULL, 0), NULL); }
1316     break;
1318   case 44: /* fw_config_table: FW_CONFIG_TABLE fw_config_table_children END  */
1319                                                               { }
1320     break;
1322   case 49: /* fw_config_field_bits: NUMBER NUMBER  */
1324         append_fw_config_bits(&cur_bits, strtoul((yyvsp[-1].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0));
1326     break;
1328   case 52: /* $@4: %empty  */
1329         { cur_field = new_fw_config_field((yyvsp[-2].string), cur_bits); }
1330     break;
1332   case 53: /* fw_config_field: FW_CONFIG_FIELD STRING fw_config_field_bits fw_config_field_bits_repeating $@4 fw_config_field_children END  */
1333                                      { cur_bits = NULL; }
1334     break;
1336   case 54: /* $@5: %empty  */
1337                                                             {
1338         cur_bits = NULL;
1339         append_fw_config_bits(&cur_bits, strtoul((yyvsp[0].string), NULL, 0), strtoul((yyvsp[0].string), NULL, 0));
1340         cur_field = new_fw_config_field((yyvsp[-1].string), cur_bits);
1342     break;
1344   case 55: /* fw_config_field: FW_CONFIG_FIELD STRING NUMBER $@5 fw_config_field_children END  */
1345                                      { cur_bits = NULL; }
1346     break;
1348   case 56: /* $@6: %empty  */
1349                                         {
1350         cur_field = get_fw_config_field((yyvsp[0].string));
1352     break;
1354   case 57: /* fw_config_field: FW_CONFIG_FIELD STRING $@6 fw_config_field_children END  */
1355                                      { cur_bits = NULL; }
1356     break;
1358   case 58: /* fw_config_option: FW_CONFIG_OPTION STRING NUMBER  */
1359         { add_fw_config_option(cur_field, (yyvsp[-1].string), strtoull((yyvsp[0].string), NULL, 0)); }
1360     break;
1362   case 59: /* fw_config_probe: FW_CONFIG_PROBE STRING STRING  */
1363         { add_fw_config_probe(cur_parent, (yyvsp[-1].string), (yyvsp[0].string)); }
1364     break;
1366   case 60: /* fw_config_probe: FW_CONFIG_PROBE FW_CONFIG_UNPROVISIONED  */
1367         { probe_unprovisioned_fw_config(cur_parent); }
1368     break;
1370   case 61: /* ops: OPS STRING  */
1371         { add_device_ops(cur_parent, (yyvsp[0].string)); }
1372     break;
1376       default: break;
1377     }
1378   /* User semantic actions sometimes alter yychar, and that requires
1379      that yytoken be updated with the new translation.  We take the
1380      approach of translating immediately before every use of yytoken.
1381      One alternative is translating here after every semantic action,
1382      but that translation would be missed if the semantic action invokes
1383      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
1384      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
1385      incorrect destructor might then be invoked immediately.  In the
1386      case of YYERROR or YYBACKUP, subsequent parser actions might lead
1387      to an incorrect destructor call or verbose syntax error message
1388      before the lookahead is translated.  */
1389   YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
1391   YYPOPSTACK (yylen);
1392   yylen = 0;
1394   *++yyvsp = yyval;
1396   /* Now 'shift' the result of the reduction.  Determine what state
1397      that goes to, based on the state we popped back to and the rule
1398      number reduced by.  */
1399   {
1400     const int yylhs = yyr1[yyn] - YYNTOKENS;
1401     const int yyi = yypgoto[yylhs] + *yyssp;
1402     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
1403                ? yytable[yyi]
1404                : yydefgoto[yylhs]);
1405   }
1407   goto yynewstate;
1410 /*--------------------------------------.
1411 | yyerrlab -- here on detecting error.  |
1412 `--------------------------------------*/
1413 yyerrlab:
1414   /* Make sure we have latest lookahead translation.  See comments at
1415      user semantic actions for why this is necessary.  */
1416   yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
1417   /* If not already recovering from an error, report this error.  */
1418   if (!yyerrstatus)
1419     {
1420       ++yynerrs;
1421       yyerror (YY_("syntax error"));
1422     }
1424   if (yyerrstatus == 3)
1425     {
1426       /* If just tried and failed to reuse lookahead token after an
1427          error, discard it.  */
1429       if (yychar <= YYEOF)
1430         {
1431           /* Return failure if at end of input.  */
1432           if (yychar == YYEOF)
1433             YYABORT;
1434         }
1435       else
1436         {
1437           yydestruct ("Error: discarding",
1438                       yytoken, &yylval);
1439           yychar = YYEMPTY;
1440         }
1441     }
1443   /* Else will try to reuse lookahead token after shifting the error
1444      token.  */
1445   goto yyerrlab1;
1448 /*---------------------------------------------------.
1449 | yyerrorlab -- error raised explicitly by YYERROR.  |
1450 `---------------------------------------------------*/
1451 yyerrorlab:
1452   /* Pacify compilers when the user code never invokes YYERROR and the
1453      label yyerrorlab therefore never appears in user code.  */
1454   if (0)
1455     YYERROR;
1456   ++yynerrs;
1458   /* Do not reclaim the symbols of the rule whose action triggered
1459      this YYERROR.  */
1460   YYPOPSTACK (yylen);
1461   yylen = 0;
1462   YY_STACK_PRINT (yyss, yyssp);
1463   yystate = *yyssp;
1464   goto yyerrlab1;
1467 /*-------------------------------------------------------------.
1468 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
1469 `-------------------------------------------------------------*/
1470 yyerrlab1:
1471   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
1473   /* Pop stack until we find a state that shifts the error token.  */
1474   for (;;)
1475     {
1476       yyn = yypact[yystate];
1477       if (!yypact_value_is_default (yyn))
1478         {
1479           yyn += YYSYMBOL_YYerror;
1480           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
1481             {
1482               yyn = yytable[yyn];
1483               if (0 < yyn)
1484                 break;
1485             }
1486         }
1488       /* Pop the current state because it cannot handle the error token.  */
1489       if (yyssp == yyss)
1490         YYABORT;
1493       yydestruct ("Error: popping",
1494                   YY_ACCESSING_SYMBOL (yystate), yyvsp);
1495       YYPOPSTACK (1);
1496       yystate = *yyssp;
1497       YY_STACK_PRINT (yyss, yyssp);
1498     }
1500   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1501   *++yyvsp = yylval;
1502   YY_IGNORE_MAYBE_UNINITIALIZED_END
1505   /* Shift the error token.  */
1506   YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
1508   yystate = yyn;
1509   goto yynewstate;
1512 /*-------------------------------------.
1513 | yyacceptlab -- YYACCEPT comes here.  |
1514 `-------------------------------------*/
1515 yyacceptlab:
1516   yyresult = 0;
1517   goto yyreturnlab;
1520 /*-----------------------------------.
1521 | yyabortlab -- YYABORT comes here.  |
1522 `-----------------------------------*/
1523 yyabortlab:
1524   yyresult = 1;
1525   goto yyreturnlab;
1528 /*-----------------------------------------------------------.
1529 | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
1530 `-----------------------------------------------------------*/
1531 yyexhaustedlab:
1532   yyerror (YY_("memory exhausted"));
1533   yyresult = 2;
1534   goto yyreturnlab;
1537 /*----------------------------------------------------------.
1538 | yyreturnlab -- parsing is finished, clean up and return.  |
1539 `----------------------------------------------------------*/
1540 yyreturnlab:
1541   if (yychar != YYEMPTY)
1542     {
1543       /* Make sure we have latest lookahead translation.  See comments at
1544          user semantic actions for why this is necessary.  */
1545       yytoken = YYTRANSLATE (yychar);
1546       yydestruct ("Cleanup: discarding lookahead",
1547                   yytoken, &yylval);
1548     }
1549   /* Do not reclaim the symbols of the rule whose action triggered
1550      this YYABORT or YYACCEPT.  */
1551   YYPOPSTACK (yylen);
1552   YY_STACK_PRINT (yyss, yyssp);
1553   while (yyssp != yyss)
1554     {
1555       yydestruct ("Cleanup: popping",
1556                   YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
1557       YYPOPSTACK (1);
1558     }
1559 #ifndef yyoverflow
1560   if (yyss != yyssa)
1561     YYSTACK_FREE (yyss);
1562 #endif
1564   return yyresult;