Home | History | Annotate | Line # | Download | only in compiler
      1 
      2 /* A Bison parser, made by GNU Bison 2.4.1.  */
      3 
      4 /* Skeleton implementation for Bison's Yacc-like parsers in C
      5 
      6       Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
      7    Free Software Foundation, Inc.
      8 
      9    This program is free software: you can redistribute it and/or modify
     10    it under the terms of the GNU General Public License as published by
     11    the Free Software Foundation, either version 3 of the License, or
     12    (at your option) any later version.
     13 
     14    This program is distributed in the hope that it will be useful,
     15    but WITHOUT ANY WARRANTY; without even the implied warranty of
     16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     17    GNU General Public License for more details.
     18 
     19    You should have received a copy of the GNU General Public License
     20    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     21 
     22 /* As a special exception, you may create a larger work that contains
     23    part or all of the Bison parser skeleton and distribute that work
     24    under terms of your choice, so long as that work isn't itself a
     25    parser generator using the skeleton or a modified version thereof
     26    as a parser skeleton.  Alternatively, if you modify or redistribute
     27    the parser skeleton itself, you may (at your option) remove this
     28    special exception, which will cause the skeleton and the resulting
     29    Bison output files to be licensed under the GNU General Public
     30    License without this special exception.
     31 
     32    This special exception was added by the Free Software Foundation in
     33    version 2.2 of Bison.  */
     34 
     35 /* C LALR(1) parser skeleton written by Richard Stallman, by
     36    simplifying the original so-called "semantic" parser.  */
     37 
     38 /* All symbols defined below should begin with yy or YY, to avoid
     39    infringing on user name space.  This should be done even for local
     40    variables, as they might otherwise be expanded by user macros.
     41    There are some unavoidable exceptions within include files to
     42    define necessary library symbols; they are noted "INFRINGES ON
     43    USER NAME SPACE" below.  */
     44 
     45 /* Identify Bison output.  */
     46 #define YYBISON 1
     47 
     48 /* Bison version.  */
     49 #define YYBISON_VERSION "2.4.1"
     50 
     51 /* Skeleton name.  */
     52 #define YYSKELETON_NAME "yacc.c"
     53 
     54 /* Pure parsers.  */
     55 #define YYPURE 0
     56 
     57 /* Push parsers.  */
     58 #define YYPUSH 0
     59 
     60 /* Pull parsers.  */
     61 #define YYPULL 1
     62 
     63 /* Using locations.  */
     64 #define YYLSP_NEEDED 0
     65 
     66 
     67 
     68 /* Copy the first part of user declarations.  */
     69 
     70 /* Line 189 of yacc.c  */
     71 #line 1 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
     72 
     73 /******************************************************************************
     74  *
     75  * Module Name: prparser.y - Bison input file for preprocessor parser
     76  *
     77  *****************************************************************************/
     78 
     79 /*
     80  * Copyright (C) 2000 - 2025, Intel Corp.
     81  * All rights reserved.
     82  *
     83  * Redistribution and use in source and binary forms, with or without
     84  * modification, are permitted provided that the following conditions
     85  * are met:
     86  * 1. Redistributions of source code must retain the above copyright
     87  *    notice, this list of conditions, and the following disclaimer,
     88  *    without modification.
     89  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     90  *    substantially similar to the "NO WARRANTY" disclaimer below
     91  *    ("Disclaimer") and any redistribution must be conditioned upon
     92  *    including a substantially similar Disclaimer requirement for further
     93  *    binary redistribution.
     94  * 3. Neither the names of the above-listed copyright holders nor the names
     95  *    of any contributors may be used to endorse or promote products derived
     96  *    from this software without specific prior written permission.
     97  *
     98  * Alternatively, this software may be distributed under the terms of the
     99  * GNU General Public License ("GPL") version 2 as published by the Free
    100  * Software Foundation.
    101  *
    102  * NO WARRANTY
    103  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    104  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    105  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    106  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    107  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    108  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    109  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    110  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
    111  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
    112  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    113  * POSSIBILITY OF SUCH DAMAGES.
    114  */
    115 
    116 #include "aslcompiler.h"
    117 
    118 #define _COMPONENT          ASL_PREPROCESSOR
    119         ACPI_MODULE_NAME    ("prparser")
    120 
    121 void *                      AslLocalAllocate (unsigned int Size);
    122 
    123 /* Bison/yacc configuration */
    124 
    125 #undef alloca
    126 #define alloca              AslLocalAllocate
    127 
    128 int                         PrParserlex (void);
    129 int                         PrParserparse (void);
    130 void                        PrParsererror (char const *msg);
    131 extern char                 *PrParsertext;
    132 
    133 UINT64                      PrParserResult; /* Expression return value */
    134 
    135 /* Bison/yacc configuration */
    136 
    137 #define yytname             PrParsername
    138 #define YYDEBUG             1               /* Enable debug output */
    139 #define YYERROR_VERBOSE     1               /* Verbose error messages */
    140 #define YYFLAG              -32768
    141 
    142 /* Define YYMALLOC/YYFREE to prevent redefinition errors  */
    143 
    144 #define YYMALLOC            malloc
    145 #define YYFREE              free
    146 
    147 
    148 /* Line 189 of yacc.c  */
    149 #line 258 "prparser.tab.c"
    150 
    151 /* Enabling traces.  */
    152 #ifndef YYDEBUG
    153 # define YYDEBUG 0
    154 #endif
    155 
    156 /* Enabling verbose error messages.  */
    157 #ifdef YYERROR_VERBOSE
    158 # undef YYERROR_VERBOSE
    159 # define YYERROR_VERBOSE 1
    160 #else
    161 # define YYERROR_VERBOSE 0
    162 #endif
    163 
    164 /* Enabling the token table.  */
    165 #ifndef YYTOKEN_TABLE
    166 # define YYTOKEN_TABLE 0
    167 #endif
    168 
    169 
    170 /* Tokens.  */
    171 #ifndef YYTOKENTYPE
    172 # define YYTOKENTYPE
    173    /* Put the tokens into the symbol table, so that GDB and other debuggers
    174       know about them.  */
    175    enum yytokentype {
    176      EXPOP_EOF = 258,
    177      EXPOP_NEW_LINE = 259,
    178      EXPOP_NUMBER = 260,
    179      EXPOP_HEX_NUMBER = 261,
    180      EXPOP_RESERVED1 = 262,
    181      EXPOP_RESERVED2 = 263,
    182      EXPOP_PAREN_OPEN = 264,
    183      EXPOP_PAREN_CLOSE = 265,
    184      EXPOP_LOGICAL_OR = 266,
    185      EXPOP_LOGICAL_AND = 267,
    186      EXPOP_OR = 268,
    187      EXPOP_XOR = 269,
    188      EXPOP_AND = 270,
    189      EXPOP_NOT_EQUAL = 271,
    190      EXPOP_EQUAL = 272,
    191      EXPOP_LESS_EQUAL = 273,
    192      EXPOP_GREATER_EQUAL = 274,
    193      EXPOP_LESS = 275,
    194      EXPOP_GREATER = 276,
    195      EXPOP_SHIFT_LEFT = 277,
    196      EXPOP_SHIFT_RIGHT = 278,
    197      EXPOP_SUBTRACT = 279,
    198      EXPOP_ADD = 280,
    199      EXPOP_MODULO = 281,
    200      EXPOP_DIVIDE = 282,
    201      EXPOP_MULTIPLY = 283,
    202      EXPOP_LOGICAL_NOT = 284,
    203      EXPOP_ONES_COMPLIMENT = 285,
    204      EXPOP_DEFINE = 286,
    205      EXPOP_IDENTIFIER = 287
    206    };
    207 #endif
    208 
    209 
    210 
    211 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    212 typedef union YYSTYPE
    213 {
    214 
    215 /* Line 214 of yacc.c  */
    216 #line 186 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
    217 
    218      UINT64                 value;
    219      UINT32                 op;
    220      char                   *str;
    221 
    222 
    223 
    224 /* Line 214 of yacc.c  */
    225 #line 334 "prparser.tab.c"
    226 } YYSTYPE;
    227 # define YYSTYPE_IS_TRIVIAL 1
    228 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    229 # define YYSTYPE_IS_DECLARED 1
    230 #endif
    231 
    232 
    233 /* Copy the second part of user declarations.  */
    234 
    235 
    236 /* Line 264 of yacc.c  */
    237 #line 346 "prparser.tab.c"
    238 
    239 #ifdef short
    240 # undef short
    241 #endif
    242 
    243 #ifdef YYTYPE_UINT8
    244 typedef YYTYPE_UINT8 yytype_uint8;
    245 #else
    246 typedef unsigned char yytype_uint8;
    247 #endif
    248 
    249 #ifdef YYTYPE_INT8
    250 typedef YYTYPE_INT8 yytype_int8;
    251 #elif (defined __STDC__ || defined __C99__FUNC__ \
    252      || defined __cplusplus || defined _MSC_VER)
    253 typedef signed char yytype_int8;
    254 #else
    255 typedef short int yytype_int8;
    256 #endif
    257 
    258 #ifdef YYTYPE_UINT16
    259 typedef YYTYPE_UINT16 yytype_uint16;
    260 #else
    261 typedef unsigned short int yytype_uint16;
    262 #endif
    263 
    264 #ifdef YYTYPE_INT16
    265 typedef YYTYPE_INT16 yytype_int16;
    266 #else
    267 typedef short int yytype_int16;
    268 #endif
    269 
    270 #ifndef YYSIZE_T
    271 # ifdef __SIZE_TYPE__
    272 #  define YYSIZE_T __SIZE_TYPE__
    273 # elif defined size_t
    274 #  define YYSIZE_T size_t
    275 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
    276      || defined __cplusplus || defined _MSC_VER)
    277 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    278 #  define YYSIZE_T size_t
    279 # else
    280 #  define YYSIZE_T unsigned int
    281 # endif
    282 #endif
    283 
    284 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
    285 
    286 #ifndef YY_
    287 # if YYENABLE_NLS
    288 #  if ENABLE_NLS
    289 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    290 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
    291 #  endif
    292 # endif
    293 # ifndef YY_
    294 #  define YY_(msgid) msgid
    295 # endif
    296 #endif
    297 
    298 /* Suppress unused-variable warnings by "using" E.  */
    299 #if ! defined lint || defined __GNUC__
    300 # define YYUSE(e) ((void) (e))
    301 #else
    302 # define YYUSE(e) /* empty */
    303 #endif
    304 
    305 /* Identity function, used to suppress warnings about constant conditions.  */
    306 #ifndef lint
    307 # define YYID(n) (n)
    308 #else
    309 #if (defined __STDC__ || defined __C99__FUNC__ \
    310      || defined __cplusplus || defined _MSC_VER)
    311 static int
    312 YYID (int yyi)
    313 #else
    314 static int
    315 YYID (yyi)
    316     int yyi;
    317 #endif
    318 {
    319   return yyi;
    320 }
    321 #endif
    322 
    323 #if ! defined yyoverflow || YYERROR_VERBOSE
    324 
    325 /* The parser invokes alloca or malloc; define the necessary symbols.  */
    326 
    327 # ifdef YYSTACK_USE_ALLOCA
    328 #  if YYSTACK_USE_ALLOCA
    329 #   ifdef __GNUC__
    330 #    define YYSTACK_ALLOC __builtin_alloca
    331 #   elif defined __BUILTIN_VA_ARG_INCR
    332 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
    333 #   elif defined _AIX
    334 #    define YYSTACK_ALLOC __alloca
    335 #   elif defined _MSC_VER
    336 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
    337 #    define alloca _alloca
    338 #   else
    339 #    define YYSTACK_ALLOC alloca
    340 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    341      || defined __cplusplus || defined _MSC_VER)
    342 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    343 #     ifndef _STDLIB_H
    344 #      define _STDLIB_H 1
    345 #     endif
    346 #    endif
    347 #   endif
    348 #  endif
    349 # endif
    350 
    351 # ifdef YYSTACK_ALLOC
    352    /* Pacify GCC's `empty if-body' warning.  */
    353 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
    354 #  ifndef YYSTACK_ALLOC_MAXIMUM
    355     /* The OS might guarantee only one guard page at the bottom of the stack,
    356        and a page size can be as small as 4096 bytes.  So we cannot safely
    357        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
    358        to allow for a few compiler-allocated temporary stack slots.  */
    359 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
    360 #  endif
    361 # else
    362 #  define YYSTACK_ALLOC YYMALLOC
    363 #  define YYSTACK_FREE YYFREE
    364 #  ifndef YYSTACK_ALLOC_MAXIMUM
    365 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
    366 #  endif
    367 #  if (defined __cplusplus && ! defined _STDLIB_H \
    368        && ! ((defined YYMALLOC || defined malloc) \
    369 	     && (defined YYFREE || defined free)))
    370 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    371 #   ifndef _STDLIB_H
    372 #    define _STDLIB_H 1
    373 #   endif
    374 #  endif
    375 #  ifndef YYMALLOC
    376 #   define YYMALLOC malloc
    377 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    378      || defined __cplusplus || defined _MSC_VER)
    379 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    380 #   endif
    381 #  endif
    382 #  ifndef YYFREE
    383 #   define YYFREE free
    384 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    385      || defined __cplusplus || defined _MSC_VER)
    386 void free (void *); /* INFRINGES ON USER NAME SPACE */
    387 #   endif
    388 #  endif
    389 # endif
    390 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
    391 
    392 
    393 #if (! defined yyoverflow \
    394      && (! defined __cplusplus \
    395 	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    396 
    397 /* A type that is properly aligned for any stack member.  */
    398 union yyalloc
    399 {
    400   yytype_int16 yyss_alloc;
    401   YYSTYPE yyvs_alloc;
    402 };
    403 
    404 /* The size of the maximum gap between one aligned stack and the next.  */
    405 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
    406 
    407 /* The size of an array large to enough to hold all stacks, each with
    408    N elements.  */
    409 # define YYSTACK_BYTES(N) \
    410      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
    411       + YYSTACK_GAP_MAXIMUM)
    412 
    413 /* Copy COUNT objects from FROM to TO.  The source and destination do
    414    not overlap.  */
    415 # ifndef YYCOPY
    416 #  if defined __GNUC__ && 1 < __GNUC__
    417 #   define YYCOPY(To, From, Count) \
    418       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
    419 #  else
    420 #   define YYCOPY(To, From, Count)		\
    421       do					\
    422 	{					\
    423 	  YYSIZE_T yyi;				\
    424 	  for (yyi = 0; yyi < (Count); yyi++)	\
    425 	    (To)[yyi] = (From)[yyi];		\
    426 	}					\
    427       while (YYID (0))
    428 #  endif
    429 # endif
    430 
    431 /* Relocate STACK from its old location to the new one.  The
    432    local variables YYSIZE and YYSTACKSIZE give the old and new number of
    433    elements in the stack, and YYPTR gives the new location of the
    434    stack.  Advance YYPTR to a properly aligned location for the next
    435    stack.  */
    436 # define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
    437     do									\
    438       {									\
    439 	YYSIZE_T yynewbytes;						\
    440 	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
    441 	Stack = &yyptr->Stack_alloc;					\
    442 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
    443 	yyptr += yynewbytes / sizeof (*yyptr);				\
    444       }									\
    445     while (YYID (0))
    446 
    447 #endif
    448 
    449 /* YYFINAL -- State number of the termination state.  */
    450 #define YYFINAL  15
    451 /* YYLAST -- Last index in YYTABLE.  */
    452 #define YYLAST   175
    453 
    454 /* YYNTOKENS -- Number of terminals.  */
    455 #define YYNTOKENS  33
    456 /* YYNNTS -- Number of nonterminals.  */
    457 #define YYNNTS  3
    458 /* YYNRULES -- Number of rules.  */
    459 #define YYNRULES  29
    460 /* YYNRULES -- Number of states.  */
    461 #define YYNSTATES  57
    462 
    463 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    464 #define YYUNDEFTOK  2
    465 #define YYMAXUTOK   287
    466 
    467 #define YYTRANSLATE(YYX)						\
    468   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    469 
    470 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
    471 static const yytype_uint8 yytranslate[] =
    472 {
    473        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    474        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    475        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    476        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    477        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    478        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    479        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    480        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    481        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    482        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    483        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    484        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    485        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    486        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    487        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    488        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    489        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    490        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    491        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    492        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    493        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    494        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    495        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    496        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    497        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    498        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
    499        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    500       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    501       25,    26,    27,    28,    29,    30,    31,    32
    502 };
    503 
    504 #if YYDEBUG
    505 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    506    YYRHS.  */
    507 static const yytype_uint8 yyprhs[] =
    508 {
    509        0,     0,     3,     6,     9,    12,    15,    19,    23,    27,
    510       31,    35,    39,    43,    47,    51,    55,    59,    63,    67,
    511       71,    75,    79,    83,    87,    91,    96,    99,   101,   103
    512 };
    513 
    514 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
    515 static const yytype_int8 yyrhs[] =
    516 {
    517       34,     0,    -1,    35,     4,    -1,    35,     3,    -1,    29,
    518       35,    -1,    30,    35,    -1,    35,    28,    35,    -1,    35,
    519       27,    35,    -1,    35,    26,    35,    -1,    35,    25,    35,
    520       -1,    35,    24,    35,    -1,    35,    23,    35,    -1,    35,
    521       22,    35,    -1,    35,    21,    35,    -1,    35,    20,    35,
    522       -1,    35,    19,    35,    -1,    35,    18,    35,    -1,    35,
    523       17,    35,    -1,    35,    16,    35,    -1,    35,    15,    35,
    524       -1,    35,    14,    35,    -1,    35,    13,    35,    -1,    35,
    525       12,    35,    -1,    35,    11,    35,    -1,     9,    35,    10,
    526       -1,    31,     9,    32,    10,    -1,    31,    32,    -1,    32,
    527       -1,     5,    -1,     6,    -1
    528 };
    529 
    530 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
    531 static const yytype_uint16 yyrline[] =
    532 {
    533        0,   244,   244,   245,   252,   253,   257,   258,   259,   260,
    534      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
    535      271,   272,   273,   274,   278,   283,   286,   288,   292,   296
    536 };
    537 #endif
    538 
    539 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
    540 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    541    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
    542 static const char *const yytname[] =
    543 {
    544   "$end", "error", "$undefined", "EXPOP_EOF", "EXPOP_NEW_LINE",
    545   "EXPOP_NUMBER", "EXPOP_HEX_NUMBER", "EXPOP_RESERVED1", "EXPOP_RESERVED2",
    546   "EXPOP_PAREN_OPEN", "EXPOP_PAREN_CLOSE", "EXPOP_LOGICAL_OR",
    547   "EXPOP_LOGICAL_AND", "EXPOP_OR", "EXPOP_XOR", "EXPOP_AND",
    548   "EXPOP_NOT_EQUAL", "EXPOP_EQUAL", "EXPOP_LESS_EQUAL",
    549   "EXPOP_GREATER_EQUAL", "EXPOP_LESS", "EXPOP_GREATER", "EXPOP_SHIFT_LEFT",
    550   "EXPOP_SHIFT_RIGHT", "EXPOP_SUBTRACT", "EXPOP_ADD", "EXPOP_MODULO",
    551   "EXPOP_DIVIDE", "EXPOP_MULTIPLY", "EXPOP_LOGICAL_NOT",
    552   "EXPOP_ONES_COMPLIMENT", "EXPOP_DEFINE", "EXPOP_IDENTIFIER", "$accept",
    553   "Value", "Expression", 0
    554 };
    555 #endif
    556 
    557 # ifdef YYPRINT
    558 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    559    token YYLEX-NUM.  */
    560 static const yytype_uint16 yytoknum[] =
    561 {
    562        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
    563      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
    564      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
    565      285,   286,   287
    566 };
    567 # endif
    568 
    569 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    570 static const yytype_uint8 yyr1[] =
    571 {
    572        0,    33,    34,    34,    35,    35,    35,    35,    35,    35,
    573       35,    35,    35,    35,    35,    35,    35,    35,    35,    35,
    574       35,    35,    35,    35,    35,    35,    35,    35,    35,    35
    575 };
    576 
    577 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
    578 static const yytype_uint8 yyr2[] =
    579 {
    580        0,     2,     2,     2,     2,     2,     3,     3,     3,     3,
    581        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
    582        3,     3,     3,     3,     3,     4,     2,     1,     1,     1
    583 };
    584 
    585 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    586    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    587    means the default is an error.  */
    588 static const yytype_uint8 yydefact[] =
    589 {
    590        0,    28,    29,     0,     0,     0,     0,    27,     0,     0,
    591        0,     4,     5,     0,    26,     1,     3,     2,     0,     0,
    592        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    593        0,     0,     0,     0,     0,     0,    24,     0,    23,    22,
    594       21,    20,    19,    18,    17,    16,    15,    14,    13,    12,
    595       11,    10,     9,     8,     7,     6,    25
    596 };
    597 
    598 /* YYDEFGOTO[NTERM-NUM].  */
    599 static const yytype_int8 yydefgoto[] =
    600 {
    601       -1,     8,     9
    602 };
    603 
    604 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    605    STATE-NUM.  */
    606 #define YYPACT_NINF -22
    607 static const yytype_int16 yypact[] =
    608 {
    609        4,   -22,   -22,     4,     4,     4,    31,   -22,     8,    34,
    610       54,   -22,   -22,   -20,   -22,   -22,   -22,   -22,     4,     4,
    611        4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
    612        4,     4,     4,     4,     4,     4,   -22,     1,    71,    87,
    613      102,   116,   129,   140,   140,   147,   147,   147,   147,   -21,
    614      -21,    15,    15,   -22,   -22,   -22,   -22
    615 };
    616 
    617 /* YYPGOTO[NTERM-NUM].  */
    618 static const yytype_int8 yypgoto[] =
    619 {
    620      -22,   -22,    -3
    621 };
    622 
    623 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    624    positive, shift that token.  If negative, reduce the rule which
    625    number is the opposite.  If zero, do what YYDEFACT says.
    626    If YYTABLE_NINF, syntax error.  */
    627 #define YYTABLE_NINF -1
    628 static const yytype_uint8 yytable[] =
    629 {
    630       10,    11,    12,    31,    32,    33,    34,    35,    15,     1,
    631        2,    56,    37,     3,     0,    38,    39,    40,    41,    42,
    632       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
    633       53,    54,    55,     4,     5,     6,     7,    16,    17,     0,
    634       13,    33,    34,    35,     0,    18,    19,    20,    21,    22,
    635       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    636       33,    34,    35,    14,    36,    18,    19,    20,    21,    22,
    637       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    638       33,    34,    35,    19,    20,    21,    22,    23,    24,    25,
    639       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
    640       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
    641       30,    31,    32,    33,    34,    35,    21,    22,    23,    24,
    642       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
    643       35,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    644       31,    32,    33,    34,    35,    23,    24,    25,    26,    27,
    645       28,    29,    30,    31,    32,    33,    34,    35,    25,    26,
    646       27,    28,    29,    30,    31,    32,    33,    34,    35,    29,
    647       30,    31,    32,    33,    34,    35
    648 };
    649 
    650 static const yytype_int8 yycheck[] =
    651 {
    652        3,     4,     5,    24,    25,    26,    27,    28,     0,     5,
    653        6,    10,    32,     9,    -1,    18,    19,    20,    21,    22,
    654       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    655       33,    34,    35,    29,    30,    31,    32,     3,     4,    -1,
    656        9,    26,    27,    28,    -1,    11,    12,    13,    14,    15,
    657       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    658       26,    27,    28,    32,    10,    11,    12,    13,    14,    15,
    659       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    660       26,    27,    28,    12,    13,    14,    15,    16,    17,    18,
    661       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    662       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    663       23,    24,    25,    26,    27,    28,    14,    15,    16,    17,
    664       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    665       28,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    666       24,    25,    26,    27,    28,    16,    17,    18,    19,    20,
    667       21,    22,    23,    24,    25,    26,    27,    28,    18,    19,
    668       20,    21,    22,    23,    24,    25,    26,    27,    28,    22,
    669       23,    24,    25,    26,    27,    28
    670 };
    671 
    672 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    673    symbol of state STATE-NUM.  */
    674 static const yytype_uint8 yystos[] =
    675 {
    676        0,     5,     6,     9,    29,    30,    31,    32,    34,    35,
    677       35,    35,    35,     9,    32,     0,     3,     4,    11,    12,
    678       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    679       23,    24,    25,    26,    27,    28,    10,    32,    35,    35,
    680       35,    35,    35,    35,    35,    35,    35,    35,    35,    35,
    681       35,    35,    35,    35,    35,    35,    10
    682 };
    683 
    684 #define yyerrok		(yyerrstatus = 0)
    685 #define yyclearin	(yychar = YYEMPTY)
    686 #define YYEMPTY		(-2)
    687 #define YYEOF		0
    688 
    689 #define YYACCEPT	goto yyacceptlab
    690 #define YYABORT		goto yyabortlab
    691 #define YYERROR		goto yyerrorlab
    692 
    693 
    694 /* Like YYERROR except do call yyerror.  This remains here temporarily
    695    to ease the transition to the new meaning of YYERROR, for GCC.
    696    Once GCC version 2 has supplanted version 1, this can go.  */
    697 
    698 #define YYFAIL		goto yyerrlab
    699 
    700 #define YYRECOVERING()  (!!yyerrstatus)
    701 
    702 #define YYBACKUP(Token, Value)					\
    703 do								\
    704   if (yychar == YYEMPTY && yylen == 1)				\
    705     {								\
    706       yychar = (Token);						\
    707       yylval = (Value);						\
    708       yytoken = YYTRANSLATE (yychar);				\
    709       YYPOPSTACK (1);						\
    710       goto yybackup;						\
    711     }								\
    712   else								\
    713     {								\
    714       yyerror (YY_("syntax error: cannot back up")); \
    715       YYERROR;							\
    716     }								\
    717 while (YYID (0))
    718 
    719 
    720 #define YYTERROR	1
    721 #define YYERRCODE	256
    722 
    723 
    724 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    725    If N is 0, then set CURRENT to the empty location which ends
    726    the previous symbol: RHS[0] (always defined).  */
    727 
    728 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
    729 #ifndef YYLLOC_DEFAULT
    730 # define YYLLOC_DEFAULT(Current, Rhs, N)				\
    731     do									\
    732       if (YYID (N))                                                    \
    733 	{								\
    734 	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
    735 	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
    736 	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
    737 	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
    738 	}								\
    739       else								\
    740 	{								\
    741 	  (Current).first_line   = (Current).last_line   =		\
    742 	    YYRHSLOC (Rhs, 0).last_line;				\
    743 	  (Current).first_column = (Current).last_column =		\
    744 	    YYRHSLOC (Rhs, 0).last_column;				\
    745 	}								\
    746     while (YYID (0))
    747 #endif
    748 
    749 
    750 /* YY_LOCATION_PRINT -- Print the location on the stream.
    751    This macro was not mandated originally: define only if we know
    752    we won't break user code: when these are the locations we know.  */
    753 
    754 #ifndef YY_LOCATION_PRINT
    755 # if YYLTYPE_IS_TRIVIAL
    756 #  define YY_LOCATION_PRINT(File, Loc)			\
    757      fprintf (File, "%d.%d-%d.%d",			\
    758 	      (Loc).first_line, (Loc).first_column,	\
    759 	      (Loc).last_line,  (Loc).last_column)
    760 # else
    761 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    762 # endif
    763 #endif
    764 
    765 
    766 /* YYLEX -- calling `yylex' with the right arguments.  */
    767 
    768 #ifdef YYLEX_PARAM
    769 # define YYLEX yylex (YYLEX_PARAM)
    770 #else
    771 # define YYLEX yylex ()
    772 #endif
    773 
    774 /* Enable debugging if requested.  */
    775 #if YYDEBUG
    776 
    777 # ifndef YYFPRINTF
    778 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
    779 #  define YYFPRINTF fprintf
    780 # endif
    781 
    782 # define YYDPRINTF(Args)			\
    783 do {						\
    784   if (yydebug)					\
    785     YYFPRINTF Args;				\
    786 } while (YYID (0))
    787 
    788 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
    789 do {									  \
    790   if (yydebug)								  \
    791     {									  \
    792       YYFPRINTF (stderr, "%s ", Title);					  \
    793       yy_symbol_print (stderr,						  \
    794 		  Type, Value); \
    795       YYFPRINTF (stderr, "\n");						  \
    796     }									  \
    797 } while (YYID (0))
    798 
    799 
    800 /*--------------------------------.
    801 | Print this symbol on YYOUTPUT.  |
    802 `--------------------------------*/
    803 
    804 /*ARGSUSED*/
    805 #if (defined __STDC__ || defined __C99__FUNC__ \
    806      || defined __cplusplus || defined _MSC_VER)
    807 static void
    808 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    809 #else
    810 static void
    811 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    812     FILE *yyoutput;
    813     int yytype;
    814     YYSTYPE const * const yyvaluep;
    815 #endif
    816 {
    817   if (!yyvaluep)
    818     return;
    819 # ifdef YYPRINT
    820   if (yytype < YYNTOKENS)
    821     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
    822 # else
    823   YYUSE (yyoutput);
    824 # endif
    825   switch (yytype)
    826     {
    827       default:
    828 	break;
    829     }
    830 }
    831 
    832 
    833 /*--------------------------------.
    834 | Print this symbol on YYOUTPUT.  |
    835 `--------------------------------*/
    836 
    837 #if (defined __STDC__ || defined __C99__FUNC__ \
    838      || defined __cplusplus || defined _MSC_VER)
    839 static void
    840 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    841 #else
    842 static void
    843 yy_symbol_print (yyoutput, yytype, yyvaluep)
    844     FILE *yyoutput;
    845     int yytype;
    846     YYSTYPE const * const yyvaluep;
    847 #endif
    848 {
    849   if (yytype < YYNTOKENS)
    850     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
    851   else
    852     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
    853 
    854   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
    855   YYFPRINTF (yyoutput, ")");
    856 }
    857 
    858 /*------------------------------------------------------------------.
    859 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
    860 | TOP (included).                                                   |
    861 `------------------------------------------------------------------*/
    862 
    863 #if (defined __STDC__ || defined __C99__FUNC__ \
    864      || defined __cplusplus || defined _MSC_VER)
    865 static void
    866 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
    867 #else
    868 static void
    869 yy_stack_print (yybottom, yytop)
    870     yytype_int16 *yybottom;
    871     yytype_int16 *yytop;
    872 #endif
    873 {
    874   YYFPRINTF (stderr, "Stack now");
    875   for (; yybottom <= yytop; yybottom++)
    876     {
    877       int yybot = *yybottom;
    878       YYFPRINTF (stderr, " %d", yybot);
    879     }
    880   YYFPRINTF (stderr, "\n");
    881 }
    882 
    883 # define YY_STACK_PRINT(Bottom, Top)				\
    884 do {								\
    885   if (yydebug)							\
    886     yy_stack_print ((Bottom), (Top));				\
    887 } while (YYID (0))
    888 
    889 
    890 /*------------------------------------------------.
    891 | Report that the YYRULE is going to be reduced.  |
    892 `------------------------------------------------*/
    893 
    894 #if (defined __STDC__ || defined __C99__FUNC__ \
    895      || defined __cplusplus || defined _MSC_VER)
    896 static void
    897 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
    898 #else
    899 static void
    900 yy_reduce_print (yyvsp, yyrule)
    901     YYSTYPE *yyvsp;
    902     int yyrule;
    903 #endif
    904 {
    905   int yynrhs = yyr2[yyrule];
    906   int yyi;
    907   unsigned long int yylno = yyrline[yyrule];
    908   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    909 	     yyrule - 1, yylno);
    910   /* The symbols being reduced.  */
    911   for (yyi = 0; yyi < yynrhs; yyi++)
    912     {
    913       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    914       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
    915 		       &(yyvsp[(yyi + 1) - (yynrhs)])
    916 		       		       );
    917       YYFPRINTF (stderr, "\n");
    918     }
    919 }
    920 
    921 # define YY_REDUCE_PRINT(Rule)		\
    922 do {					\
    923   if (yydebug)				\
    924     yy_reduce_print (yyvsp, Rule); \
    925 } while (YYID (0))
    926 
    927 /* Nonzero means print parse trace.  It is left uninitialized so that
    928    multiple parsers can coexist.  */
    929 int yydebug;
    930 #else /* !YYDEBUG */
    931 # define YYDPRINTF(Args)
    932 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
    933 # define YY_STACK_PRINT(Bottom, Top)
    934 # define YY_REDUCE_PRINT(Rule)
    935 #endif /* !YYDEBUG */
    936 
    937 
    938 /* YYINITDEPTH -- initial size of the parser's stacks.  */
    939 #ifndef	YYINITDEPTH
    940 # define YYINITDEPTH 200
    941 #endif
    942 
    943 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
    944    if the built-in stack extension method is used).
    945 
    946    Do not make this value too large; the results are undefined if
    947    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
    948    evaluated with infinite-precision integer arithmetic.  */
    949 
    950 #ifndef YYMAXDEPTH
    951 # define YYMAXDEPTH 10000
    952 #endif
    953 
    954 
    955 
    957 #if YYERROR_VERBOSE
    958 
    959 # ifndef yystrlen
    960 #  if defined __GLIBC__ && defined _STRING_H
    961 #   define yystrlen strlen
    962 #  else
    963 /* Return the length of YYSTR.  */
    964 #if (defined __STDC__ || defined __C99__FUNC__ \
    965      || defined __cplusplus || defined _MSC_VER)
    966 static YYSIZE_T
    967 yystrlen (const char *yystr)
    968 #else
    969 static YYSIZE_T
    970 yystrlen (yystr)
    971     const char *yystr;
    972 #endif
    973 {
    974   YYSIZE_T yylen;
    975   for (yylen = 0; yystr[yylen]; yylen++)
    976     continue;
    977   return yylen;
    978 }
    979 #  endif
    980 # endif
    981 
    982 # ifndef yystpcpy
    983 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
    984 #   define yystpcpy stpcpy
    985 #  else
    986 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    987    YYDEST.  */
    988 #if (defined __STDC__ || defined __C99__FUNC__ \
    989      || defined __cplusplus || defined _MSC_VER)
    990 static char *
    991 yystpcpy (char *yydest, const char *yysrc)
    992 #else
    993 static char *
    994 yystpcpy (yydest, yysrc)
    995     char *yydest;
    996     const char *yysrc;
    997 #endif
    998 {
    999   char *yyd = yydest;
   1000   const char *yys = yysrc;
   1001 
   1002   while ((*yyd++ = *yys++) != '\0')
   1003     continue;
   1004 
   1005   return yyd - 1;
   1006 }
   1007 #  endif
   1008 # endif
   1009 
   1010 # ifndef yytnamerr
   1011 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
   1012    quotes and backslashes, so that it's suitable for yyerror.  The
   1013    heuristic is that double-quoting is unnecessary unless the string
   1014    contains an apostrophe, a comma, or backslash (other than
   1015    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
   1016    null, do not copy; instead, return the length of what the result
   1017    would have been.  */
   1018 static YYSIZE_T
   1019 yytnamerr (char *yyres, const char *yystr)
   1020 {
   1021   if (*yystr == '"')
   1022     {
   1023       YYSIZE_T yyn = 0;
   1024       char const *yyp = yystr;
   1025 
   1026       for (;;)
   1027 	switch (*++yyp)
   1028 	  {
   1029 	  case '\'':
   1030 	  case ',':
   1031 	    goto do_not_strip_quotes;
   1032 
   1033 	  case '\\':
   1034 	    if (*++yyp != '\\')
   1035 	      goto do_not_strip_quotes;
   1036 	    /* Fall through.  */
   1037 	  default:
   1038 	    if (yyres)
   1039 	      yyres[yyn] = *yyp;
   1040 	    yyn++;
   1041 	    break;
   1042 
   1043 	  case '"':
   1044 	    if (yyres)
   1045 	      yyres[yyn] = '\0';
   1046 	    return yyn;
   1047 	  }
   1048     do_not_strip_quotes: ;
   1049     }
   1050 
   1051   if (! yyres)
   1052     return yystrlen (yystr);
   1053 
   1054   return yystpcpy (yyres, yystr) - yyres;
   1055 }
   1056 # endif
   1057 
   1058 /* Copy into YYRESULT an error message about the unexpected token
   1059    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
   1060    including the terminating null byte.  If YYRESULT is null, do not
   1061    copy anything; just return the number of bytes that would be
   1062    copied.  As a special case, return 0 if an ordinary "syntax error"
   1063    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
   1064    size calculation.  */
   1065 static YYSIZE_T
   1066 yysyntax_error (char *yyresult, int yystate, int yychar)
   1067 {
   1068   int yyn = yypact[yystate];
   1069 
   1070   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
   1071     return 0;
   1072   else
   1073     {
   1074       int yytype = YYTRANSLATE (yychar);
   1075       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
   1076       YYSIZE_T yysize = yysize0;
   1077       YYSIZE_T yysize1;
   1078       int yysize_overflow = 0;
   1079       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   1080       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
   1081       int yyx;
   1082 
   1083 # if 0
   1084       /* This is so xgettext sees the translatable formats that are
   1085 	 constructed on the fly.  */
   1086       YY_("syntax error, unexpected %s");
   1087       YY_("syntax error, unexpected %s, expecting %s");
   1088       YY_("syntax error, unexpected %s, expecting %s or %s");
   1089       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
   1090       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
   1091 # endif
   1092       char *yyfmt;
   1093       char const *yyf;
   1094       static char const yyunexpected[] = "syntax error, unexpected %s";
   1095       static char const yyexpecting[] = ", expecting %s";
   1096       static char const yyor[] = " or %s";
   1097       char yyformat[sizeof yyunexpected
   1098 		    + sizeof yyexpecting - 1
   1099 		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
   1100 		       * (sizeof yyor - 1))];
   1101       char const *yyprefix = yyexpecting;
   1102 
   1103       /* Start YYX at -YYN if negative to avoid negative indexes in
   1104 	 YYCHECK.  */
   1105       int yyxbegin = yyn < 0 ? -yyn : 0;
   1106 
   1107       /* Stay within bounds of both yycheck and yytname.  */
   1108       int yychecklim = YYLAST - yyn + 1;
   1109       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
   1110       int yycount = 1;
   1111 
   1112       yyarg[0] = yytname[yytype];
   1113       yyfmt = yystpcpy (yyformat, yyunexpected);
   1114 
   1115       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
   1116 	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
   1117 	  {
   1118 	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
   1119 	      {
   1120 		yycount = 1;
   1121 		yysize = yysize0;
   1122 		yyformat[sizeof yyunexpected - 1] = '\0';
   1123 		break;
   1124 	      }
   1125 	    yyarg[yycount++] = yytname[yyx];
   1126 	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
   1127 	    yysize_overflow |= (yysize1 < yysize);
   1128 	    yysize = yysize1;
   1129 	    yyfmt = yystpcpy (yyfmt, yyprefix);
   1130 	    yyprefix = yyor;
   1131 	  }
   1132 
   1133       yyf = YY_(yyformat);
   1134       yysize1 = yysize + yystrlen (yyf);
   1135       yysize_overflow |= (yysize1 < yysize);
   1136       yysize = yysize1;
   1137 
   1138       if (yysize_overflow)
   1139 	return YYSIZE_MAXIMUM;
   1140 
   1141       if (yyresult)
   1142 	{
   1143 	  /* Avoid sprintf, as that infringes on the user's name space.
   1144 	     Don't have undefined behavior even if the translation
   1145 	     produced a string with the wrong number of "%s"s.  */
   1146 	  char *yyp = yyresult;
   1147 	  int yyi = 0;
   1148 	  while ((*yyp = *yyf) != '\0')
   1149 	    {
   1150 	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
   1151 		{
   1152 		  yyp += yytnamerr (yyp, yyarg[yyi++]);
   1153 		  yyf += 2;
   1154 		}
   1155 	      else
   1156 		{
   1157 		  yyp++;
   1158 		  yyf++;
   1159 		}
   1160 	    }
   1161 	}
   1162       return yysize;
   1163     }
   1164 }
   1165 #endif /* YYERROR_VERBOSE */
   1166 
   1167 
   1169 /*-----------------------------------------------.
   1170 | Release the memory associated to this symbol.  |
   1171 `-----------------------------------------------*/
   1172 
   1173 /*ARGSUSED*/
   1174 #if (defined __STDC__ || defined __C99__FUNC__ \
   1175      || defined __cplusplus || defined _MSC_VER)
   1176 static void
   1177 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
   1178 #else
   1179 static void
   1180 yydestruct (yymsg, yytype, yyvaluep)
   1181     const char *yymsg;
   1182     int yytype;
   1183     YYSTYPE *yyvaluep;
   1184 #endif
   1185 {
   1186   YYUSE (yyvaluep);
   1187 
   1188   if (!yymsg)
   1189     yymsg = "Deleting";
   1190   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
   1191 
   1192   switch (yytype)
   1193     {
   1194 
   1195       default:
   1196 	break;
   1197     }
   1198 }
   1199 
   1200 /* Prevent warnings from -Wmissing-prototypes.  */
   1201 #ifdef YYPARSE_PARAM
   1202 #if defined __STDC__ || defined __cplusplus
   1203 int yyparse (void *YYPARSE_PARAM);
   1204 #else
   1205 int yyparse ();
   1206 #endif
   1207 #else /* ! YYPARSE_PARAM */
   1208 #if defined __STDC__ || defined __cplusplus
   1209 int yyparse (void);
   1210 #else
   1211 int yyparse ();
   1212 #endif
   1213 #endif /* ! YYPARSE_PARAM */
   1214 
   1215 
   1216 /* The lookahead symbol.  */
   1217 int yychar;
   1218 
   1219 /* The semantic value of the lookahead symbol.  */
   1220 YYSTYPE yylval;
   1221 
   1222 /* Number of syntax errors so far.  */
   1223 int yynerrs;
   1224 
   1225 
   1226 
   1227 /*-------------------------.
   1228 | yyparse or yypush_parse.  |
   1229 `-------------------------*/
   1230 
   1231 #ifdef YYPARSE_PARAM
   1232 #if (defined __STDC__ || defined __C99__FUNC__ \
   1233      || defined __cplusplus || defined _MSC_VER)
   1234 int
   1235 yyparse (void *YYPARSE_PARAM)
   1236 #else
   1237 int
   1238 yyparse (YYPARSE_PARAM)
   1239     void *YYPARSE_PARAM;
   1240 #endif
   1241 #else /* ! YYPARSE_PARAM */
   1242 #if (defined __STDC__ || defined __C99__FUNC__ \
   1243      || defined __cplusplus || defined _MSC_VER)
   1244 int
   1245 yyparse (void)
   1246 #else
   1247 int
   1248 yyparse ()
   1249 
   1250 #endif
   1251 #endif
   1252 {
   1253 
   1254 
   1255     int yystate;
   1256     /* Number of tokens to shift before error messages enabled.  */
   1257     int yyerrstatus;
   1258 
   1259     /* The stacks and their tools:
   1260        `yyss': related to states.
   1261        `yyvs': related to semantic values.
   1262 
   1263        Refer to the stacks thru separate pointers, to allow yyoverflow
   1264        to reallocate them elsewhere.  */
   1265 
   1266     /* The state stack.  */
   1267     yytype_int16 yyssa[YYINITDEPTH];
   1268     yytype_int16 *yyss;
   1269     yytype_int16 *yyssp;
   1270 
   1271     /* The semantic value stack.  */
   1272     YYSTYPE yyvsa[YYINITDEPTH];
   1273     YYSTYPE *yyvs;
   1274     YYSTYPE *yyvsp;
   1275 
   1276     YYSIZE_T yystacksize;
   1277 
   1278   int yyn;
   1279   int yyresult;
   1280   /* Lookahead token as an internal (translated) token number.  */
   1281   int yytoken;
   1282   /* The variables used to return semantic value and location from the
   1283      action routines.  */
   1284   YYSTYPE yyval;
   1285 
   1286 #if YYERROR_VERBOSE
   1287   /* Buffer for error messages, and its allocated size.  */
   1288   char yymsgbuf[128];
   1289   char *yymsg = yymsgbuf;
   1290   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
   1291 #endif
   1292 
   1293 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
   1294 
   1295   /* The number of symbols on the RHS of the reduced rule.
   1296      Keep to zero when no symbol should be popped.  */
   1297   int yylen = 0;
   1298 
   1299   yytoken = 0;
   1300   yyss = yyssa;
   1301   yyvs = yyvsa;
   1302   yystacksize = YYINITDEPTH;
   1303 
   1304   YYDPRINTF ((stderr, "Starting parse\n"));
   1305 
   1306   yystate = 0;
   1307   yyerrstatus = 0;
   1308   yynerrs = 0;
   1309   yychar = YYEMPTY; /* Cause a token to be read.  */
   1310 
   1311   /* Initialize stack pointers.
   1312      Waste one element of value and location stack
   1313      so that they stay on the same level as the state stack.
   1314      The wasted elements are never initialized.  */
   1315   yyssp = yyss;
   1316   yyvsp = yyvs;
   1317 
   1318   goto yysetstate;
   1319 
   1320 /*------------------------------------------------------------.
   1321 | yynewstate -- Push a new state, which is found in yystate.  |
   1322 `------------------------------------------------------------*/
   1323  yynewstate:
   1324   /* In all cases, when you get here, the value and location stacks
   1325      have just been pushed.  So pushing a state here evens the stacks.  */
   1326   yyssp++;
   1327 
   1328  yysetstate:
   1329   *yyssp = yystate;
   1330 
   1331   if (yyss + yystacksize - 1 <= yyssp)
   1332     {
   1333       /* Get the current used size of the three stacks, in elements.  */
   1334       YYSIZE_T yysize = yyssp - yyss + 1;
   1335 
   1336 #ifdef yyoverflow
   1337       {
   1338 	/* Give user a chance to reallocate the stack.  Use copies of
   1339 	   these so that the &'s don't force the real ones into
   1340 	   memory.  */
   1341 	YYSTYPE *yyvs1 = yyvs;
   1342 	yytype_int16 *yyss1 = yyss;
   1343 
   1344 	/* Each stack pointer address is followed by the size of the
   1345 	   data in use in that stack, in bytes.  This used to be a
   1346 	   conditional around just the two extra args, but that might
   1347 	   be undefined if yyoverflow is a macro.  */
   1348 	yyoverflow (YY_("memory exhausted"),
   1349 		    &yyss1, yysize * sizeof (*yyssp),
   1350 		    &yyvs1, yysize * sizeof (*yyvsp),
   1351 		    &yystacksize);
   1352 
   1353 	yyss = yyss1;
   1354 	yyvs = yyvs1;
   1355       }
   1356 #else /* no yyoverflow */
   1357 # ifndef YYSTACK_RELOCATE
   1358       goto yyexhaustedlab;
   1359 # else
   1360       /* Extend the stack our own way.  */
   1361       if (YYMAXDEPTH <= yystacksize)
   1362 	goto yyexhaustedlab;
   1363       yystacksize *= 2;
   1364       if (YYMAXDEPTH < yystacksize)
   1365 	yystacksize = YYMAXDEPTH;
   1366 
   1367       {
   1368 	yytype_int16 *yyss1 = yyss;
   1369 	union yyalloc *yyptr =
   1370 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
   1371 	if (! yyptr)
   1372 	  goto yyexhaustedlab;
   1373 	YYSTACK_RELOCATE (yyss_alloc, yyss);
   1374 	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
   1375 #  undef YYSTACK_RELOCATE
   1376 	if (yyss1 != yyssa)
   1377 	  YYSTACK_FREE (yyss1);
   1378       }
   1379 # endif
   1380 #endif /* no yyoverflow */
   1381 
   1382       yyssp = yyss + yysize - 1;
   1383       yyvsp = yyvs + yysize - 1;
   1384 
   1385       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
   1386 		  (unsigned long int) yystacksize));
   1387 
   1388       if (yyss + yystacksize - 1 <= yyssp)
   1389 	YYABORT;
   1390     }
   1391 
   1392   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
   1393 
   1394   if (yystate == YYFINAL)
   1395     YYACCEPT;
   1396 
   1397   goto yybackup;
   1398 
   1399 /*-----------.
   1400 | yybackup.  |
   1401 `-----------*/
   1402 yybackup:
   1403 
   1404   /* Do appropriate processing given the current state.  Read a
   1405      lookahead token if we need one and don't already have one.  */
   1406 
   1407   /* First try to decide what to do without reference to lookahead token.  */
   1408   yyn = yypact[yystate];
   1409   if (yyn == YYPACT_NINF)
   1410     goto yydefault;
   1411 
   1412   /* Not known => get a lookahead token if don't already have one.  */
   1413 
   1414   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   1415   if (yychar == YYEMPTY)
   1416     {
   1417       YYDPRINTF ((stderr, "Reading a token: "));
   1418       yychar = YYLEX;
   1419     }
   1420 
   1421   if (yychar <= YYEOF)
   1422     {
   1423       yychar = yytoken = YYEOF;
   1424       YYDPRINTF ((stderr, "Now at end of input.\n"));
   1425     }
   1426   else
   1427     {
   1428       yytoken = YYTRANSLATE (yychar);
   1429       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
   1430     }
   1431 
   1432   /* If the proper action on seeing token YYTOKEN is to reduce or to
   1433      detect an error, take that action.  */
   1434   yyn += yytoken;
   1435   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
   1436     goto yydefault;
   1437   yyn = yytable[yyn];
   1438   if (yyn <= 0)
   1439     {
   1440       if (yyn == 0 || yyn == YYTABLE_NINF)
   1441 	goto yyerrlab;
   1442       yyn = -yyn;
   1443       goto yyreduce;
   1444     }
   1445 
   1446   /* Count tokens shifted since error; after three, turn off error
   1447      status.  */
   1448   if (yyerrstatus)
   1449     yyerrstatus--;
   1450 
   1451   /* Shift the lookahead token.  */
   1452   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
   1453 
   1454   /* Discard the shifted token.  */
   1455   yychar = YYEMPTY;
   1456 
   1457   yystate = yyn;
   1458   *++yyvsp = yylval;
   1459 
   1460   goto yynewstate;
   1461 
   1462 
   1463 /*-----------------------------------------------------------.
   1464 | yydefault -- do the default action for the current state.  |
   1465 `-----------------------------------------------------------*/
   1466 yydefault:
   1467   yyn = yydefact[yystate];
   1468   if (yyn == 0)
   1469     goto yyerrlab;
   1470   goto yyreduce;
   1471 
   1472 
   1473 /*-----------------------------.
   1474 | yyreduce -- Do a reduction.  |
   1475 `-----------------------------*/
   1476 yyreduce:
   1477   /* yyn is the number of a rule to reduce with.  */
   1478   yylen = yyr2[yyn];
   1479 
   1480   /* If YYLEN is nonzero, implement the default value of the action:
   1481      `$$ = $1'.
   1482 
   1483      Otherwise, the following line sets YYVAL to garbage.
   1484      This behavior is undocumented and Bison
   1485      users should not rely upon it.  Assigning to YYVAL
   1486      unconditionally makes the parser a bit smaller, and it avoids a
   1487      GCC warning that YYVAL may be used uninitialized.  */
   1488   yyval = yyvsp[1-yylen];
   1489 
   1490 
   1491   YY_REDUCE_PRINT (yyn);
   1492   switch (yyn)
   1493     {
   1494         case 2:
   1495 
   1496 /* Line 1455 of yacc.c  */
   1497 #line 244 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1498     { PrParserResult=(yyvsp[(1) - (2)].value); return 0; ;}
   1499     break;
   1500 
   1501   case 3:
   1502 
   1503 /* Line 1455 of yacc.c  */
   1504 #line 245 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1505     { PrParserResult=(yyvsp[(1) - (2)].value); return 0; ;}
   1506     break;
   1507 
   1508   case 4:
   1509 
   1510 /* Line 1455 of yacc.c  */
   1511 #line 252 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1512     { (yyval.value) = DtDoOperator ((yyvsp[(2) - (2)].value), EXPOP_LOGICAL_NOT,     (yyvsp[(2) - (2)].value));;}
   1513     break;
   1514 
   1515   case 5:
   1516 
   1517 /* Line 1455 of yacc.c  */
   1518 #line 253 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1519     { (yyval.value) = DtDoOperator ((yyvsp[(2) - (2)].value), EXPOP_ONES_COMPLIMENT, (yyvsp[(2) - (2)].value));;}
   1520     break;
   1521 
   1522   case 6:
   1523 
   1524 /* Line 1455 of yacc.c  */
   1525 #line 257 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1526     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_MULTIPLY,        (yyvsp[(3) - (3)].value));;}
   1527     break;
   1528 
   1529   case 7:
   1530 
   1531 /* Line 1455 of yacc.c  */
   1532 #line 258 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1533     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_DIVIDE,          (yyvsp[(3) - (3)].value));;}
   1534     break;
   1535 
   1536   case 8:
   1537 
   1538 /* Line 1455 of yacc.c  */
   1539 #line 259 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1540     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_MODULO,          (yyvsp[(3) - (3)].value));;}
   1541     break;
   1542 
   1543   case 9:
   1544 
   1545 /* Line 1455 of yacc.c  */
   1546 #line 260 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1547     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_ADD,             (yyvsp[(3) - (3)].value));;}
   1548     break;
   1549 
   1550   case 10:
   1551 
   1552 /* Line 1455 of yacc.c  */
   1553 #line 261 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1554     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_SUBTRACT,        (yyvsp[(3) - (3)].value));;}
   1555     break;
   1556 
   1557   case 11:
   1558 
   1559 /* Line 1455 of yacc.c  */
   1560 #line 262 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1561     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_SHIFT_RIGHT,     (yyvsp[(3) - (3)].value));;}
   1562     break;
   1563 
   1564   case 12:
   1565 
   1566 /* Line 1455 of yacc.c  */
   1567 #line 263 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1568     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_SHIFT_LEFT,      (yyvsp[(3) - (3)].value));;}
   1569     break;
   1570 
   1571   case 13:
   1572 
   1573 /* Line 1455 of yacc.c  */
   1574 #line 264 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1575     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_GREATER,         (yyvsp[(3) - (3)].value));;}
   1576     break;
   1577 
   1578   case 14:
   1579 
   1580 /* Line 1455 of yacc.c  */
   1581 #line 265 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1582     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_LESS,            (yyvsp[(3) - (3)].value));;}
   1583     break;
   1584 
   1585   case 15:
   1586 
   1587 /* Line 1455 of yacc.c  */
   1588 #line 266 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1589     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_GREATER_EQUAL,   (yyvsp[(3) - (3)].value));;}
   1590     break;
   1591 
   1592   case 16:
   1593 
   1594 /* Line 1455 of yacc.c  */
   1595 #line 267 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1596     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_LESS_EQUAL,      (yyvsp[(3) - (3)].value));;}
   1597     break;
   1598 
   1599   case 17:
   1600 
   1601 /* Line 1455 of yacc.c  */
   1602 #line 268 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1603     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_EQUAL,           (yyvsp[(3) - (3)].value));;}
   1604     break;
   1605 
   1606   case 18:
   1607 
   1608 /* Line 1455 of yacc.c  */
   1609 #line 269 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1610     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_NOT_EQUAL,       (yyvsp[(3) - (3)].value));;}
   1611     break;
   1612 
   1613   case 19:
   1614 
   1615 /* Line 1455 of yacc.c  */
   1616 #line 270 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1617     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_AND,             (yyvsp[(3) - (3)].value));;}
   1618     break;
   1619 
   1620   case 20:
   1621 
   1622 /* Line 1455 of yacc.c  */
   1623 #line 271 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1624     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_XOR,             (yyvsp[(3) - (3)].value));;}
   1625     break;
   1626 
   1627   case 21:
   1628 
   1629 /* Line 1455 of yacc.c  */
   1630 #line 272 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1631     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_OR,              (yyvsp[(3) - (3)].value));;}
   1632     break;
   1633 
   1634   case 22:
   1635 
   1636 /* Line 1455 of yacc.c  */
   1637 #line 273 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1638     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_LOGICAL_AND,     (yyvsp[(3) - (3)].value));;}
   1639     break;
   1640 
   1641   case 23:
   1642 
   1643 /* Line 1455 of yacc.c  */
   1644 #line 274 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1645     { (yyval.value) = DtDoOperator ((yyvsp[(1) - (3)].value), EXPOP_LOGICAL_OR,      (yyvsp[(3) - (3)].value));;}
   1646     break;
   1647 
   1648   case 24:
   1649 
   1650 /* Line 1455 of yacc.c  */
   1651 #line 279 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1652     { (yyval.value) = (yyvsp[(2) - (3)].value);;}
   1653     break;
   1654 
   1655   case 25:
   1656 
   1657 /* Line 1455 of yacc.c  */
   1658 #line 284 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1659     { (yyval.value) = PrIsDefined (PrParserlval.str);;}
   1660     break;
   1661 
   1662   case 26:
   1663 
   1664 /* Line 1455 of yacc.c  */
   1665 #line 286 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1666     { (yyval.value) = PrIsDefined (PrParserlval.str);;}
   1667     break;
   1668 
   1669   case 27:
   1670 
   1671 /* Line 1455 of yacc.c  */
   1672 #line 288 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1673     { (yyval.value) = PrResolveDefine (PrParserlval.str);;}
   1674     break;
   1675 
   1676   case 28:
   1677 
   1678 /* Line 1455 of yacc.c  */
   1679 #line 292 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1680     { AcpiUtStrtoul64 (PrParsertext, &(yyval.value));;}
   1681     break;
   1682 
   1683   case 29:
   1684 
   1685 /* Line 1455 of yacc.c  */
   1686 #line 296 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1687     { AcpiUtStrtoul64 (PrParsertext, &(yyval.value));;}
   1688     break;
   1689 
   1690 
   1691 
   1692 /* Line 1455 of yacc.c  */
   1693 #line 1800 "prparser.tab.c"
   1694       default: break;
   1695     }
   1696   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
   1697 
   1698   YYPOPSTACK (yylen);
   1699   yylen = 0;
   1700   YY_STACK_PRINT (yyss, yyssp);
   1701 
   1702   *++yyvsp = yyval;
   1703 
   1704   /* Now `shift' the result of the reduction.  Determine what state
   1705      that goes to, based on the state we popped back to and the rule
   1706      number reduced by.  */
   1707 
   1708   yyn = yyr1[yyn];
   1709 
   1710   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
   1711   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
   1712     yystate = yytable[yystate];
   1713   else
   1714     yystate = yydefgoto[yyn - YYNTOKENS];
   1715 
   1716   goto yynewstate;
   1717 
   1718 
   1719 /*------------------------------------.
   1720 | yyerrlab -- here on detecting error |
   1721 `------------------------------------*/
   1722 yyerrlab:
   1723   /* If not already recovering from an error, report this error.  */
   1724   if (!yyerrstatus)
   1725     {
   1726       ++yynerrs;
   1727 #if ! YYERROR_VERBOSE
   1728       yyerror (YY_("syntax error"));
   1729 #else
   1730       {
   1731 	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
   1732 	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
   1733 	  {
   1734 	    YYSIZE_T yyalloc = 2 * yysize;
   1735 	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
   1736 	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
   1737 	    if (yymsg != yymsgbuf)
   1738 	      YYSTACK_FREE (yymsg);
   1739 	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
   1740 	    if (yymsg)
   1741 	      yymsg_alloc = yyalloc;
   1742 	    else
   1743 	      {
   1744 		yymsg = yymsgbuf;
   1745 		yymsg_alloc = sizeof yymsgbuf;
   1746 	      }
   1747 	  }
   1748 
   1749 	if (0 < yysize && yysize <= yymsg_alloc)
   1750 	  {
   1751 	    (void) yysyntax_error (yymsg, yystate, yychar);
   1752 	    yyerror (yymsg);
   1753 	  }
   1754 	else
   1755 	  {
   1756 	    yyerror (YY_("syntax error"));
   1757 	    if (yysize != 0)
   1758 	      goto yyexhaustedlab;
   1759 	  }
   1760       }
   1761 #endif
   1762     }
   1763 
   1764 
   1765 
   1766   if (yyerrstatus == 3)
   1767     {
   1768       /* If just tried and failed to reuse lookahead token after an
   1769 	 error, discard it.  */
   1770 
   1771       if (yychar <= YYEOF)
   1772 	{
   1773 	  /* Return failure if at end of input.  */
   1774 	  if (yychar == YYEOF)
   1775 	    YYABORT;
   1776 	}
   1777       else
   1778 	{
   1779 	  yydestruct ("Error: discarding",
   1780 		      yytoken, &yylval);
   1781 	  yychar = YYEMPTY;
   1782 	}
   1783     }
   1784 
   1785   /* Else will try to reuse lookahead token after shifting the error
   1786      token.  */
   1787   goto yyerrlab1;
   1788 
   1789 
   1790 /*---------------------------------------------------.
   1791 | yyerrorlab -- error raised explicitly by YYERROR.  |
   1792 `---------------------------------------------------*/
   1793 yyerrorlab:
   1794 
   1795   /* Pacify compilers like GCC when the user code never invokes
   1796      YYERROR and the label yyerrorlab therefore never appears in user
   1797      code.  */
   1798   if (/*CONSTCOND*/ 0)
   1799      goto yyerrorlab;
   1800 
   1801   /* Do not reclaim the symbols of the rule which action triggered
   1802      this YYERROR.  */
   1803   YYPOPSTACK (yylen);
   1804   yylen = 0;
   1805   YY_STACK_PRINT (yyss, yyssp);
   1806   yystate = *yyssp;
   1807   goto yyerrlab1;
   1808 
   1809 
   1810 /*-------------------------------------------------------------.
   1811 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
   1812 `-------------------------------------------------------------*/
   1813 yyerrlab1:
   1814   yyerrstatus = 3;	/* Each real token shifted decrements this.  */
   1815 
   1816   for (;;)
   1817     {
   1818       yyn = yypact[yystate];
   1819       if (yyn != YYPACT_NINF)
   1820 	{
   1821 	  yyn += YYTERROR;
   1822 	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
   1823 	    {
   1824 	      yyn = yytable[yyn];
   1825 	      if (0 < yyn)
   1826 		break;
   1827 	    }
   1828 	}
   1829 
   1830       /* Pop the current state because it cannot handle the error token.  */
   1831       if (yyssp == yyss)
   1832 	YYABORT;
   1833 
   1834 
   1835       yydestruct ("Error: popping",
   1836 		  yystos[yystate], yyvsp);
   1837       YYPOPSTACK (1);
   1838       yystate = *yyssp;
   1839       YY_STACK_PRINT (yyss, yyssp);
   1840     }
   1841 
   1842   *++yyvsp = yylval;
   1843 
   1844 
   1845   /* Shift the error token.  */
   1846   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
   1847 
   1848   yystate = yyn;
   1849   goto yynewstate;
   1850 
   1851 
   1852 /*-------------------------------------.
   1853 | yyacceptlab -- YYACCEPT comes here.  |
   1854 `-------------------------------------*/
   1855 yyacceptlab:
   1856   yyresult = 0;
   1857   goto yyreturn;
   1858 
   1859 /*-----------------------------------.
   1860 | yyabortlab -- YYABORT comes here.  |
   1861 `-----------------------------------*/
   1862 yyabortlab:
   1863   yyresult = 1;
   1864   goto yyreturn;
   1865 
   1866 #if !defined(yyoverflow) || YYERROR_VERBOSE
   1867 /*-------------------------------------------------.
   1868 | yyexhaustedlab -- memory exhaustion comes here.  |
   1869 `-------------------------------------------------*/
   1870 yyexhaustedlab:
   1871   yyerror (YY_("memory exhausted"));
   1872   yyresult = 2;
   1873   /* Fall through.  */
   1874 #endif
   1875 
   1876 yyreturn:
   1877   if (yychar != YYEMPTY)
   1878      yydestruct ("Cleanup: discarding lookahead",
   1879 		 yytoken, &yylval);
   1880   /* Do not reclaim the symbols of the rule which action triggered
   1881      this YYABORT or YYACCEPT.  */
   1882   YYPOPSTACK (yylen);
   1883   YY_STACK_PRINT (yyss, yyssp);
   1884   while (yyssp != yyss)
   1885     {
   1886       yydestruct ("Cleanup: popping",
   1887 		  yystos[*yyssp], yyvsp);
   1888       YYPOPSTACK (1);
   1889     }
   1890 #ifndef yyoverflow
   1891   if (yyss != yyssa)
   1892     YYSTACK_FREE (yyss);
   1893 #endif
   1894 #if YYERROR_VERBOSE
   1895   if (yymsg != yymsgbuf)
   1896     YYSTACK_FREE (yymsg);
   1897 #endif
   1898   /* Make sure YYID is used.  */
   1899   return YYID (yyresult);
   1900 }
   1901 
   1902 
   1903 
   1904 /* Line 1675 of yacc.c  */
   1905 #line 298 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.y"
   1906 
   1907 
   1908 /*
   1909  * Local support functions, including parser entry point
   1910  */
   1911 #define PR_FIRST_PARSE_OPCODE   EXPOP_EOF
   1912 #define PR_YYTNAME_START        3
   1913 
   1914 
   1915 /******************************************************************************
   1916  *
   1917  * FUNCTION:    PrParsererror
   1918  *
   1919  * PARAMETERS:  Message             - Parser-generated error message
   1920  *
   1921  * RETURN:      None
   1922  *
   1923  * DESCRIPTION: Handler for parser errors
   1924  *
   1925  *****************************************************************************/
   1926 
   1927 void
   1928 PrParsererror (
   1929     char const              *Message)
   1930 {
   1931 
   1932     sprintf (AslGbl_StringBuffer, "Preprocessor Parser : %s (near line %u)",
   1933         Message, AslGbl_CurrentLineNumber);
   1934     DtError (ASL_ERROR, ASL_MSG_SYNTAX,
   1935         NULL, (char *) AslGbl_StringBuffer);
   1936 }
   1937 
   1938 
   1939 /******************************************************************************
   1940  *
   1941  * FUNCTION:    PrGetOpName
   1942  *
   1943  * PARAMETERS:  ParseOpcode         - Parser token (EXPOP_*)
   1944  *
   1945  * RETURN:      Pointer to the opcode name
   1946  *
   1947  * DESCRIPTION: Get the ascii name of the parse opcode for debug output
   1948  *
   1949  *****************************************************************************/
   1950 
   1951 char *
   1952 PrGetOpName (
   1953     UINT32                  ParseOpcode)
   1954 {
   1955 #ifdef ASL_YYTNAME_START
   1956     /*
   1957      * First entries (PR_YYTNAME_START) in yytname are special reserved names.
   1958      * Ignore first 6 characters of name (EXPOP_)
   1959      */
   1960     return ((char *) yytname
   1961         [(ParseOpcode - PR_FIRST_PARSE_OPCODE) + PR_YYTNAME_START] + 6);
   1962 #else
   1963     return ("[Unknown parser generator]");
   1964 #endif
   1965 }
   1966 
   1967 
   1968 /******************************************************************************
   1969  *
   1970  * FUNCTION:    PrEvaluateExpression
   1971  *
   1972  * PARAMETERS:  ExprString          - Expression to be evaluated. Must be
   1973  *                                    terminated by either a newline or a NUL
   1974  *                                    string terminator
   1975  *
   1976  * RETURN:      64-bit value for the expression
   1977  *
   1978  * DESCRIPTION: Main entry point for the DT expression parser
   1979  *
   1980  *****************************************************************************/
   1981 
   1982 UINT64
   1983 PrEvaluateExpression (
   1984     char                    *ExprString)
   1985 {
   1986 
   1987     DbgPrint (ASL_DEBUG_OUTPUT,
   1988         "**** Input expression: %s\n", ExprString);
   1989 
   1990     /* Point lexer to the input string */
   1991 
   1992     if (PrInitLexer (ExprString))
   1993     {
   1994         DtError (ASL_ERROR, ASL_MSG_COMPILER_INTERNAL,
   1995             NULL, "Could not initialize lexer");
   1996         return (0);
   1997     }
   1998 
   1999     /* Parse/Evaluate the input string (value returned in PrParserResult) */
   2000 
   2001     PrParserparse ();
   2002     PrTerminateLexer ();
   2003 
   2004     DbgPrint (ASL_DEBUG_OUTPUT,
   2005         "**** Parser returned value: %u (%8.8X%8.8X)\n",
   2006         (UINT32) PrParserResult, ACPI_FORMAT_UINT64 (PrParserResult));
   2007 
   2008     return (PrParserResult);
   2009 }
   2010 
   2011