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