diff mbox

[3/3] acpica: remove aslcompiler.y as it is generated from aslparser.y

Message ID 20161003093926.28976-4-colin.king@canonical.com
State Accepted
Headers show

Commit Message

Colin Ian King Oct. 3, 2016, 9:39 a.m. UTC
From: Colin Ian King <colin.king@canonical.com>

We don't need this source in the repository as it is generated
at built time from aslparser.y

Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 src/acpica/source/compiler/aslcompiler.y | 4378 ------------------------------
 1 file changed, 4378 deletions(-)
 delete mode 100644 src/acpica/source/compiler/aslcompiler.y

Comments

Alex Hung Oct. 3, 2016, 6:05 p.m. UTC | #1
On 2016-10-03 02:39 AM, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> We don't need this source in the repository as it is generated
> at built time from aslparser.y
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  src/acpica/source/compiler/aslcompiler.y | 4378 ------------------------------
>  1 file changed, 4378 deletions(-)
>  delete mode 100644 src/acpica/source/compiler/aslcompiler.y
>
> diff --git a/src/acpica/source/compiler/aslcompiler.y b/src/acpica/source/compiler/aslcompiler.y
> deleted file mode 100644
> index 4dd34d4..0000000
> --- a/src/acpica/source/compiler/aslcompiler.y
> +++ /dev/null
> @@ -1,4378 +0,0 @@
> -%{
> -/******************************************************************************
> - *
> - * Module Name: aslparser.y - Master Bison/Yacc input file for iASL
> - *
> - *****************************************************************************/
> -
> -/******************************************************************************
> - *
> - * 1. Copyright Notice
> - *
> - * Some or all of this work - Copyright (c) 1999 - 2016, Intel Corp.
> - * All rights reserved.
> - *
> - * 2. License
> - *
> - * 2.1. This is your license from Intel Corp. under its intellectual property
> - * rights. You may have additional license terms from the party that provided
> - * you this software, covering your right to use that party's intellectual
> - * property rights.
> - *
> - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
> - * copy of the source code appearing in this file ("Covered Code") an
> - * irrevocable, perpetual, worldwide license under Intel's copyrights in the
> - * base code distributed originally by Intel ("Original Intel Code") to copy,
> - * make derivatives, distribute, use and display any portion of the Covered
> - * Code in any form, with the right to sublicense such rights; and
> - *
> - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
> - * license (with the right to sublicense), under only those claims of Intel
> - * patents that are infringed by the Original Intel Code, to make, use, sell,
> - * offer to sell, and import the Covered Code and derivative works thereof
> - * solely to the minimum extent necessary to exercise the above copyright
> - * license, and in no event shall the patent license extend to any additions
> - * to or modifications of the Original Intel Code. No other license or right
> - * is granted directly or by implication, estoppel or otherwise;
> - *
> - * The above copyright and patent license is granted only if the following
> - * conditions are met:
> - *
> - * 3. Conditions
> - *
> - * 3.1. Redistribution of Source with Rights to Further Distribute Source.
> - * Redistribution of source code of any substantial portion of the Covered
> - * Code or modification with rights to further distribute source must include
> - * the above Copyright Notice, the above License, this list of Conditions,
> - * and the following Disclaimer and Export Compliance provision. In addition,
> - * Licensee must cause all Covered Code to which Licensee contributes to
> - * contain a file documenting the changes Licensee made to create that Covered
> - * Code and the date of any change. Licensee must include in that file the
> - * documentation of any changes made by any predecessor Licensee. Licensee
> - * must include a prominent statement that the modification is derived,
> - * directly or indirectly, from Original Intel Code.
> - *
> - * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
> - * Redistribution of source code of any substantial portion of the Covered
> - * Code or modification without rights to further distribute source must
> - * include the following Disclaimer and Export Compliance provision in the
> - * documentation and/or other materials provided with distribution. In
> - * addition, Licensee may not authorize further sublicense of source of any
> - * portion of the Covered Code, and must include terms to the effect that the
> - * license from Licensee to its licensee is limited to the intellectual
> - * property embodied in the software Licensee provides to its licensee, and
> - * not to intellectual property embodied in modifications its licensee may
> - * make.
> - *
> - * 3.3. Redistribution of Executable. Redistribution in executable form of any
> - * substantial portion of the Covered Code or modification must reproduce the
> - * above Copyright Notice, and the following Disclaimer and Export Compliance
> - * provision in the documentation and/or other materials provided with the
> - * distribution.
> - *
> - * 3.4. Intel retains all right, title, and interest in and to the Original
> - * Intel Code.
> - *
> - * 3.5. Neither the name Intel nor any other trademark owned or controlled by
> - * Intel shall be used in advertising or otherwise to promote the sale, use or
> - * other dealings in products derived from or relating to the Covered Code
> - * without prior written authorization from Intel.
> - *
> - * 4. Disclaimer and Export Compliance
> - *
> - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
> - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
> - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
> - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
> - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
> - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
> - * PARTICULAR PURPOSE.
> - *
> - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
> - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
> - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
> - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
> - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
> - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
> - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
> - * LIMITED REMEDY.
> - *
> - * 4.3. Licensee shall not export, either directly or indirectly, any of this
> - * software or system incorporating such software without first obtaining any
> - * required license or other approval from the U. S. Department of Commerce or
> - * any other agency or department of the United States Government. In the
> - * event Licensee exports any such software from the United States or
> - * re-exports any such software from a foreign destination, Licensee shall
> - * ensure that the distribution and export/re-export of the software is in
> - * compliance with all laws, regulations, orders, or other restrictions of the
> - * U.S. Export Administration Regulations. Licensee agrees that neither it nor
> - * any of its subsidiaries will export/re-export any technical data, process,
> - * software, or service, directly or indirectly, to any country for which the
> - * United States government or any agency thereof requires an export license,
> - * other governmental approval, or letter of assurance, without first obtaining
> - * such license, approval or letter.
> - *
> - *****************************************************************************/
> -
> -#include "aslcompiler.h"
> -#include "acpi.h"
> -#include "accommon.h"
> -
> -#define _COMPONENT          ACPI_COMPILER
> -        ACPI_MODULE_NAME    ("aslparse")
> -
> -/*
> - * Global Notes:
> - *
> - * October 2005: The following list terms have been optimized (from the
> - * original ASL grammar in the ACPI specification) to force the immediate
> - * reduction of each list item so that the parse stack use doesn't increase on
> - * each list element and possibly overflow on very large lists (>4000 items).
> - * This dramatically reduces use of the parse stack overall.
> - *
> - *      ArgList, TermList, ByteList, DWordList, PackageList,
> - *      ResourceMacroList, and FieldUnitList
> - */
> -
> -void *
> -AslLocalAllocate (
> -    unsigned int            Size);
> -
> -
> -/* Bison/yacc configuration */
> -
> -#define static
> -#undef malloc
> -#define malloc              AslLocalAllocate
> -#undef alloca
> -#define alloca              AslLocalAllocate
> -#define yytname             AslCompilername
> -
> -#define YYINITDEPTH         600             /* State stack depth */
> -#define YYDEBUG             1               /* Enable debug output */
> -#define YYERROR_VERBOSE     1               /* Verbose error messages */
> -#define YYFLAG              -32768
> -
> -/* Define YYMALLOC/YYFREE to prevent redefinition errors  */
> -
> -#define YYMALLOC            AslLocalAllocate
> -#define YYFREE              ACPI_FREE
> -%}
> -
> -/*
> - * Declare the type of values in the grammar
> - */
> -%union {
> -    UINT64              i;
> -    char                *s;
> -    ACPI_PARSE_OBJECT   *n;
> -}
> -
> -/*
> - * These shift/reduce conflicts are expected. There should be zero
> - * reduce/reduce conflicts.
> - */
> -%expect 102
> -
> -/*! [Begin] no source code translation */
> -
> -/*
> - * The M4 macro processor is used to bring in the parser items,
> - * in order to keep this master file smaller, and to break up
> - * the various parser items.
> - */
> -
> -
> -/* Token types */
> -
> -
> -
> -/******************************************************************************
> - *
> - * Token types: These are returned by the lexer
> - *
> - * NOTE: This list MUST match the AslKeywordMapping table found
> - *       in aslmap.c EXACTLY!  Double check any changes!
> - *
> - *****************************************************************************/
> -
> -/*
> - * Most tokens are defined to return <i>, which is a UINT64.
> - *
> - * These tokens return <s>, a pointer to the associated lexed string:
> - *
> - *  PARSEOP_NAMESEG
> - *  PARSEOP_NAMESTRING
> - *  PARSEOP_STRING_LITERAL
> - *  PARSEOP_STRUCTURE_NAMESTRING
> - */
> -%token <i> PARSEOP_ACCESSAS
> -%token <i> PARSEOP_ACCESSATTRIB_BLOCK
> -%token <i> PARSEOP_ACCESSATTRIB_BLOCK_CALL
> -%token <i> PARSEOP_ACCESSATTRIB_BYTE
> -%token <i> PARSEOP_ACCESSATTRIB_MULTIBYTE
> -%token <i> PARSEOP_ACCESSATTRIB_QUICK
> -%token <i> PARSEOP_ACCESSATTRIB_RAW_BYTES
> -%token <i> PARSEOP_ACCESSATTRIB_RAW_PROCESS
> -%token <i> PARSEOP_ACCESSATTRIB_SND_RCV
> -%token <i> PARSEOP_ACCESSATTRIB_WORD
> -%token <i> PARSEOP_ACCESSATTRIB_WORD_CALL
> -%token <i> PARSEOP_ACCESSTYPE_ANY
> -%token <i> PARSEOP_ACCESSTYPE_BUF
> -%token <i> PARSEOP_ACCESSTYPE_BYTE
> -%token <i> PARSEOP_ACCESSTYPE_DWORD
> -%token <i> PARSEOP_ACCESSTYPE_QWORD
> -%token <i> PARSEOP_ACCESSTYPE_WORD
> -%token <i> PARSEOP_ACQUIRE
> -%token <i> PARSEOP_ADD
> -%token <i> PARSEOP_ADDRESSINGMODE_7BIT
> -%token <i> PARSEOP_ADDRESSINGMODE_10BIT
> -%token <i> PARSEOP_ADDRESSTYPE_ACPI
> -%token <i> PARSEOP_ADDRESSTYPE_MEMORY
> -%token <i> PARSEOP_ADDRESSTYPE_NVS
> -%token <i> PARSEOP_ADDRESSTYPE_RESERVED
> -%token <i> PARSEOP_ALIAS
> -%token <i> PARSEOP_AND
> -%token <i> PARSEOP_ARG0
> -%token <i> PARSEOP_ARG1
> -%token <i> PARSEOP_ARG2
> -%token <i> PARSEOP_ARG3
> -%token <i> PARSEOP_ARG4
> -%token <i> PARSEOP_ARG5
> -%token <i> PARSEOP_ARG6
> -%token <i> PARSEOP_BANKFIELD
> -%token <i> PARSEOP_BITSPERBYTE_EIGHT
> -%token <i> PARSEOP_BITSPERBYTE_FIVE
> -%token <i> PARSEOP_BITSPERBYTE_NINE
> -%token <i> PARSEOP_BITSPERBYTE_SEVEN
> -%token <i> PARSEOP_BITSPERBYTE_SIX
> -%token <i> PARSEOP_BREAK
> -%token <i> PARSEOP_BREAKPOINT
> -%token <i> PARSEOP_BUFFER
> -%token <i> PARSEOP_BUSMASTERTYPE_MASTER
> -%token <i> PARSEOP_BUSMASTERTYPE_NOTMASTER
> -%token <i> PARSEOP_BYTECONST
> -%token <i> PARSEOP_CASE
> -%token <i> PARSEOP_CLOCKPHASE_FIRST
> -%token <i> PARSEOP_CLOCKPHASE_SECOND
> -%token <i> PARSEOP_CLOCKPOLARITY_HIGH
> -%token <i> PARSEOP_CLOCKPOLARITY_LOW
> -%token <i> PARSEOP_CONCATENATE
> -%token <i> PARSEOP_CONCATENATERESTEMPLATE
> -%token <i> PARSEOP_CONDREFOF
> -%token <i> PARSEOP_CONNECTION
> -%token <i> PARSEOP_CONTINUE
> -%token <i> PARSEOP_COPYOBJECT
> -%token <i> PARSEOP_CREATEBITFIELD
> -%token <i> PARSEOP_CREATEBYTEFIELD
> -%token <i> PARSEOP_CREATEDWORDFIELD
> -%token <i> PARSEOP_CREATEFIELD
> -%token <i> PARSEOP_CREATEQWORDFIELD
> -%token <i> PARSEOP_CREATEWORDFIELD
> -%token <i> PARSEOP_DATABUFFER
> -%token <i> PARSEOP_DATATABLEREGION
> -%token <i> PARSEOP_DEBUG
> -%token <i> PARSEOP_DECODETYPE_POS
> -%token <i> PARSEOP_DECODETYPE_SUB
> -%token <i> PARSEOP_DECREMENT
> -%token <i> PARSEOP_DEFAULT
> -%token <i> PARSEOP_DEFAULT_ARG
> -%token <i> PARSEOP_DEFINITION_BLOCK
> -%token <i> PARSEOP_DEREFOF
> -%token <i> PARSEOP_DEVICE
> -%token <i> PARSEOP_DEVICEPOLARITY_HIGH
> -%token <i> PARSEOP_DEVICEPOLARITY_LOW
> -%token <i> PARSEOP_DIVIDE
> -%token <i> PARSEOP_DMA
> -%token <i> PARSEOP_DMATYPE_A
> -%token <i> PARSEOP_DMATYPE_COMPATIBILITY
> -%token <i> PARSEOP_DMATYPE_B
> -%token <i> PARSEOP_DMATYPE_F
> -%token <i> PARSEOP_DWORDCONST
> -%token <i> PARSEOP_DWORDIO
> -%token <i> PARSEOP_DWORDMEMORY
> -%token <i> PARSEOP_DWORDSPACE
> -%token <i> PARSEOP_EISAID
> -%token <i> PARSEOP_ELSE
> -%token <i> PARSEOP_ELSEIF
> -%token <i> PARSEOP_ENDDEPENDENTFN
> -%token <i> PARSEOP_ENDIAN_BIG
> -%token <i> PARSEOP_ENDIAN_LITTLE
> -%token <i> PARSEOP_ENDTAG
> -%token <i> PARSEOP_ERRORNODE
> -%token <i> PARSEOP_EVENT
> -%token <i> PARSEOP_EXTENDEDIO
> -%token <i> PARSEOP_EXTENDEDMEMORY
> -%token <i> PARSEOP_EXTENDEDSPACE
> -%token <i> PARSEOP_EXTERNAL
> -%token <i> PARSEOP_FATAL
> -%token <i> PARSEOP_FIELD
> -%token <i> PARSEOP_FINDSETLEFTBIT
> -%token <i> PARSEOP_FINDSETRIGHTBIT
> -%token <i> PARSEOP_FIXEDDMA
> -%token <i> PARSEOP_FIXEDIO
> -%token <i> PARSEOP_FLOWCONTROL_HW
> -%token <i> PARSEOP_FLOWCONTROL_NONE
> -%token <i> PARSEOP_FLOWCONTROL_SW
> -%token <i> PARSEOP_FROMBCD
> -%token <i> PARSEOP_FUNCTION
> -%token <i> PARSEOP_GPIO_INT
> -%token <i> PARSEOP_GPIO_IO
> -%token <i> PARSEOP_I2C_SERIALBUS
> -%token <i> PARSEOP_I2C_SERIALBUS_V2
> -%token <i> PARSEOP_IF
> -%token <i> PARSEOP_INCLUDE
> -%token <i> PARSEOP_INCLUDE_END
> -%token <i> PARSEOP_INCREMENT
> -%token <i> PARSEOP_INDEX
> -%token <i> PARSEOP_INDEXFIELD
> -%token <i> PARSEOP_INTEGER
> -%token <i> PARSEOP_INTERRUPT
> -%token <i> PARSEOP_INTLEVEL_ACTIVEBOTH
> -%token <i> PARSEOP_INTLEVEL_ACTIVEHIGH
> -%token <i> PARSEOP_INTLEVEL_ACTIVELOW
> -%token <i> PARSEOP_INTTYPE_EDGE
> -%token <i> PARSEOP_INTTYPE_LEVEL
> -%token <i> PARSEOP_IO
> -%token <i> PARSEOP_IODECODETYPE_10
> -%token <i> PARSEOP_IODECODETYPE_16
> -%token <i> PARSEOP_IORESTRICT_IN
> -%token <i> PARSEOP_IORESTRICT_NONE
> -%token <i> PARSEOP_IORESTRICT_OUT
> -%token <i> PARSEOP_IORESTRICT_PRESERVE
> -%token <i> PARSEOP_IRQ
> -%token <i> PARSEOP_IRQNOFLAGS
> -%token <i> PARSEOP_LAND
> -%token <i> PARSEOP_LEQUAL
> -%token <i> PARSEOP_LGREATER
> -%token <i> PARSEOP_LGREATEREQUAL
> -%token <i> PARSEOP_LLESS
> -%token <i> PARSEOP_LLESSEQUAL
> -%token <i> PARSEOP_LNOT
> -%token <i> PARSEOP_LNOTEQUAL
> -%token <i> PARSEOP_LOAD
> -%token <i> PARSEOP_LOADTABLE
> -%token <i> PARSEOP_LOCAL0
> -%token <i> PARSEOP_LOCAL1
> -%token <i> PARSEOP_LOCAL2
> -%token <i> PARSEOP_LOCAL3
> -%token <i> PARSEOP_LOCAL4
> -%token <i> PARSEOP_LOCAL5
> -%token <i> PARSEOP_LOCAL6
> -%token <i> PARSEOP_LOCAL7
> -%token <i> PARSEOP_LOCKRULE_LOCK
> -%token <i> PARSEOP_LOCKRULE_NOLOCK
> -%token <i> PARSEOP_LOR
> -%token <i> PARSEOP_MATCH
> -%token <i> PARSEOP_MATCHTYPE_MEQ
> -%token <i> PARSEOP_MATCHTYPE_MGE
> -%token <i> PARSEOP_MATCHTYPE_MGT
> -%token <i> PARSEOP_MATCHTYPE_MLE
> -%token <i> PARSEOP_MATCHTYPE_MLT
> -%token <i> PARSEOP_MATCHTYPE_MTR
> -%token <i> PARSEOP_MAXTYPE_FIXED
> -%token <i> PARSEOP_MAXTYPE_NOTFIXED
> -%token <i> PARSEOP_MEMORY24
> -%token <i> PARSEOP_MEMORY32
> -%token <i> PARSEOP_MEMORY32FIXED
> -%token <i> PARSEOP_MEMTYPE_CACHEABLE
> -%token <i> PARSEOP_MEMTYPE_NONCACHEABLE
> -%token <i> PARSEOP_MEMTYPE_PREFETCHABLE
> -%token <i> PARSEOP_MEMTYPE_WRITECOMBINING
> -%token <i> PARSEOP_METHOD
> -%token <i> PARSEOP_METHODCALL
> -%token <i> PARSEOP_MID
> -%token <i> PARSEOP_MINTYPE_FIXED
> -%token <i> PARSEOP_MINTYPE_NOTFIXED
> -%token <i> PARSEOP_MOD
> -%token <i> PARSEOP_MULTIPLY
> -%token <i> PARSEOP_MUTEX
> -%token <i> PARSEOP_NAME
> -%token <s> PARSEOP_NAMESEG
> -%token <s> PARSEOP_NAMESTRING
> -%token <i> PARSEOP_NAND
> -%token <i> PARSEOP_NOOP
> -%token <i> PARSEOP_NOR
> -%token <i> PARSEOP_NOT
> -%token <i> PARSEOP_NOTIFY
> -%token <i> PARSEOP_OBJECTTYPE
> -%token <i> PARSEOP_OBJECTTYPE_BFF
> -%token <i> PARSEOP_OBJECTTYPE_BUF
> -%token <i> PARSEOP_OBJECTTYPE_DDB
> -%token <i> PARSEOP_OBJECTTYPE_DEV
> -%token <i> PARSEOP_OBJECTTYPE_EVT
> -%token <i> PARSEOP_OBJECTTYPE_FLD
> -%token <i> PARSEOP_OBJECTTYPE_INT
> -%token <i> PARSEOP_OBJECTTYPE_MTH
> -%token <i> PARSEOP_OBJECTTYPE_MTX
> -%token <i> PARSEOP_OBJECTTYPE_OPR
> -%token <i> PARSEOP_OBJECTTYPE_PKG
> -%token <i> PARSEOP_OBJECTTYPE_POW
> -%token <i> PARSEOP_OBJECTTYPE_PRO
> -%token <i> PARSEOP_OBJECTTYPE_STR
> -%token <i> PARSEOP_OBJECTTYPE_THZ
> -%token <i> PARSEOP_OBJECTTYPE_UNK
> -%token <i> PARSEOP_OFFSET
> -%token <i> PARSEOP_ONE
> -%token <i> PARSEOP_ONES
> -%token <i> PARSEOP_OPERATIONREGION
> -%token <i> PARSEOP_OR
> -%token <i> PARSEOP_PACKAGE
> -%token <i> PARSEOP_PACKAGE_LENGTH
> -%token <i> PARSEOP_PARITYTYPE_EVEN
> -%token <i> PARSEOP_PARITYTYPE_MARK
> -%token <i> PARSEOP_PARITYTYPE_NONE
> -%token <i> PARSEOP_PARITYTYPE_ODD
> -%token <i> PARSEOP_PARITYTYPE_SPACE
> -%token <i> PARSEOP_PIN_NOPULL
> -%token <i> PARSEOP_PIN_PULLDEFAULT
> -%token <i> PARSEOP_PIN_PULLDOWN
> -%token <i> PARSEOP_PIN_PULLUP
> -%token <i> PARSEOP_POWERRESOURCE
> -%token <i> PARSEOP_PROCESSOR
> -%token <i> PARSEOP_QWORDCONST
> -%token <i> PARSEOP_QWORDIO
> -%token <i> PARSEOP_QWORDMEMORY
> -%token <i> PARSEOP_QWORDSPACE
> -%token <i> PARSEOP_RANGETYPE_ENTIRE
> -%token <i> PARSEOP_RANGETYPE_ISAONLY
> -%token <i> PARSEOP_RANGETYPE_NONISAONLY
> -%token <i> PARSEOP_RAW_DATA
> -%token <i> PARSEOP_READWRITETYPE_BOTH
> -%token <i> PARSEOP_READWRITETYPE_READONLY
> -%token <i> PARSEOP_REFOF
> -%token <i> PARSEOP_REGIONSPACE_CMOS
> -%token <i> PARSEOP_REGIONSPACE_EC
> -%token <i> PARSEOP_REGIONSPACE_FFIXEDHW
> -%token <i> PARSEOP_REGIONSPACE_GPIO
> -%token <i> PARSEOP_REGIONSPACE_GSBUS
> -%token <i> PARSEOP_REGIONSPACE_IO
> -%token <i> PARSEOP_REGIONSPACE_IPMI
> -%token <i> PARSEOP_REGIONSPACE_MEM
> -%token <i> PARSEOP_REGIONSPACE_PCC
> -%token <i> PARSEOP_REGIONSPACE_PCI
> -%token <i> PARSEOP_REGIONSPACE_PCIBAR
> -%token <i> PARSEOP_REGIONSPACE_SMBUS
> -%token <i> PARSEOP_REGISTER
> -%token <i> PARSEOP_RELEASE
> -%token <i> PARSEOP_RESERVED_BYTES
> -%token <i> PARSEOP_RESET
> -%token <i> PARSEOP_RESOURCETEMPLATE
> -%token <i> PARSEOP_RESOURCETYPE_CONSUMER
> -%token <i> PARSEOP_RESOURCETYPE_PRODUCER
> -%token <i> PARSEOP_RETURN
> -%token <i> PARSEOP_REVISION
> -%token <i> PARSEOP_SCOPE
> -%token <i> PARSEOP_SERIALIZERULE_NOTSERIAL
> -%token <i> PARSEOP_SERIALIZERULE_SERIAL
> -%token <i> PARSEOP_SHARETYPE_EXCLUSIVE
> -%token <i> PARSEOP_SHARETYPE_EXCLUSIVEWAKE
> -%token <i> PARSEOP_SHARETYPE_SHARED
> -%token <i> PARSEOP_SHARETYPE_SHAREDWAKE
> -%token <i> PARSEOP_SHIFTLEFT
> -%token <i> PARSEOP_SHIFTRIGHT
> -%token <i> PARSEOP_SIGNAL
> -%token <i> PARSEOP_SIZEOF
> -%token <i> PARSEOP_SLAVEMODE_CONTROLLERINIT
> -%token <i> PARSEOP_SLAVEMODE_DEVICEINIT
> -%token <i> PARSEOP_SLEEP
> -%token <i> PARSEOP_SPI_SERIALBUS
> -%token <i> PARSEOP_SPI_SERIALBUS_V2
> -%token <i> PARSEOP_STALL
> -%token <i> PARSEOP_STARTDEPENDENTFN
> -%token <i> PARSEOP_STARTDEPENDENTFN_NOPRI
> -%token <i> PARSEOP_STOPBITS_ONE
> -%token <i> PARSEOP_STOPBITS_ONEPLUSHALF
> -%token <i> PARSEOP_STOPBITS_TWO
> -%token <i> PARSEOP_STOPBITS_ZERO
> -%token <i> PARSEOP_STORE
> -%token <s> PARSEOP_STRING_LITERAL
> -%token <i> PARSEOP_SUBTRACT
> -%token <i> PARSEOP_SWITCH
> -%token <i> PARSEOP_THERMALZONE
> -%token <i> PARSEOP_TIMER
> -%token <i> PARSEOP_TOBCD
> -%token <i> PARSEOP_TOBUFFER
> -%token <i> PARSEOP_TODECIMALSTRING
> -%token <i> PARSEOP_TOHEXSTRING
> -%token <i> PARSEOP_TOINTEGER
> -%token <i> PARSEOP_TOSTRING
> -%token <i> PARSEOP_TOUUID
> -%token <i> PARSEOP_TRANSLATIONTYPE_DENSE
> -%token <i> PARSEOP_TRANSLATIONTYPE_SPARSE
> -%token <i> PARSEOP_TYPE_STATIC
> -%token <i> PARSEOP_TYPE_TRANSLATION
> -%token <i> PARSEOP_UART_SERIALBUS
> -%token <i> PARSEOP_UART_SERIALBUS_V2
> -%token <i> PARSEOP_UNICODE
> -%token <i> PARSEOP_UNLOAD
> -%token <i> PARSEOP_UPDATERULE_ONES
> -%token <i> PARSEOP_UPDATERULE_PRESERVE
> -%token <i> PARSEOP_UPDATERULE_ZEROS
> -%token <i> PARSEOP_VAR_PACKAGE
> -%token <i> PARSEOP_VENDORLONG
> -%token <i> PARSEOP_VENDORSHORT
> -%token <i> PARSEOP_WAIT
> -%token <i> PARSEOP_WHILE
> -%token <i> PARSEOP_WIREMODE_FOUR
> -%token <i> PARSEOP_WIREMODE_THREE
> -%token <i> PARSEOP_WORDBUSNUMBER
> -%token <i> PARSEOP_WORDCONST
> -%token <i> PARSEOP_WORDIO
> -%token <i> PARSEOP_WORDSPACE
> -%token <i> PARSEOP_XFERSIZE_8
> -%token <i> PARSEOP_XFERSIZE_16
> -%token <i> PARSEOP_XFERSIZE_32
> -%token <i> PARSEOP_XFERSIZE_64
> -%token <i> PARSEOP_XFERSIZE_128
> -%token <i> PARSEOP_XFERSIZE_256
> -%token <i> PARSEOP_XFERTYPE_8
> -%token <i> PARSEOP_XFERTYPE_8_16
> -%token <i> PARSEOP_XFERTYPE_16
> -%token <i> PARSEOP_XOR
> -%token <i> PARSEOP_ZERO
> -
> -/* ToPld macro */
> -
> -%token <i> PARSEOP_TOPLD
> -%token <i> PARSEOP_PLD_REVISION
> -%token <i> PARSEOP_PLD_IGNORECOLOR
> -%token <i> PARSEOP_PLD_RED
> -%token <i> PARSEOP_PLD_GREEN
> -%token <i> PARSEOP_PLD_BLUE
> -%token <i> PARSEOP_PLD_WIDTH
> -%token <i> PARSEOP_PLD_HEIGHT
> -%token <i> PARSEOP_PLD_USERVISIBLE
> -%token <i> PARSEOP_PLD_DOCK
> -%token <i> PARSEOP_PLD_LID
> -%token <i> PARSEOP_PLD_PANEL
> -%token <i> PARSEOP_PLD_VERTICALPOSITION
> -%token <i> PARSEOP_PLD_HORIZONTALPOSITION
> -%token <i> PARSEOP_PLD_SHAPE
> -%token <i> PARSEOP_PLD_GROUPORIENTATION
> -%token <i> PARSEOP_PLD_GROUPTOKEN
> -%token <i> PARSEOP_PLD_GROUPPOSITION
> -%token <i> PARSEOP_PLD_BAY
> -%token <i> PARSEOP_PLD_EJECTABLE
> -%token <i> PARSEOP_PLD_EJECTREQUIRED
> -%token <i> PARSEOP_PLD_CABINETNUMBER
> -%token <i> PARSEOP_PLD_CARDCAGENUMBER
> -%token <i> PARSEOP_PLD_REFERENCE
> -%token <i> PARSEOP_PLD_ROTATION
> -%token <i> PARSEOP_PLD_ORDER
> -%token <i> PARSEOP_PLD_RESERVED
> -%token <i> PARSEOP_PLD_VERTICALOFFSET
> -%token <i> PARSEOP_PLD_HORIZONTALOFFSET
> -
> -/*
> - * C-style expression parser. These must appear after all of the
> - * standard ASL operators and keywords.
> - *
> - * Note: The order of these tokens implements the precedence rules
> - * (low precedence to high). See aslrules.y for an exhaustive list.
> - */
> -%right <i> PARSEOP_EXP_EQUALS
> -           PARSEOP_EXP_ADD_EQ
> -           PARSEOP_EXP_SUB_EQ
> -           PARSEOP_EXP_MUL_EQ
> -           PARSEOP_EXP_DIV_EQ
> -           PARSEOP_EXP_MOD_EQ
> -           PARSEOP_EXP_SHL_EQ
> -           PARSEOP_EXP_SHR_EQ
> -           PARSEOP_EXP_AND_EQ
> -           PARSEOP_EXP_XOR_EQ
> -           PARSEOP_EXP_OR_EQ
> -
> -%left <i>  PARSEOP_EXP_LOGICAL_OR
> -%left <i>  PARSEOP_EXP_LOGICAL_AND
> -%left <i>  PARSEOP_EXP_OR
> -%left <i>  PARSEOP_EXP_XOR
> -%left <i>  PARSEOP_EXP_AND
> -%left <i>  PARSEOP_EXP_EQUAL
> -           PARSEOP_EXP_NOT_EQUAL
> -%left <i>  PARSEOP_EXP_GREATER
> -           PARSEOP_EXP_LESS
> -           PARSEOP_EXP_GREATER_EQUAL
> -           PARSEOP_EXP_LESS_EQUAL
> -%left <i>  PARSEOP_EXP_SHIFT_RIGHT
> -           PARSEOP_EXP_SHIFT_LEFT
> -%left <i>  PARSEOP_EXP_ADD
> -           PARSEOP_EXP_SUBTRACT
> -%left <i>  PARSEOP_EXP_MULTIPLY
> -           PARSEOP_EXP_DIVIDE
> -           PARSEOP_EXP_MODULO
> -
> -%right <i> PARSEOP_EXP_NOT
> -           PARSEOP_EXP_LOGICAL_NOT
> -
> -%left <i>  PARSEOP_EXP_INCREMENT
> -           PARSEOP_EXP_DECREMENT
> -
> -/* Brackets for Index() support */
> -
> -%left <i>  PARSEOP_EXP_INDEX_LEFT
> -%right <i> PARSEOP_EXP_INDEX_RIGHT
> -
> -/* Macros */
> -
> -%token <i> PARSEOP_PRINTF
> -%token <i> PARSEOP_FPRINTF
> -%token <i> PARSEOP_FOR
> -
> -/* Structures */
> -
> -%token <i> PARSEOP_STRUCTURE
> -%token <s> PARSEOP_STRUCTURE_NAMESTRING
> -%token <i> PARSEOP_STRUCTURE_TAG
> -%token <i> PARSEOP_STRUCTURE_ELEMENT
> -%token <i> PARSEOP_STRUCTURE_INSTANCE
> -%token <i> PARSEOP_STRUCTURE_REFERENCE
> -%token <i> PARSEOP_STRUCTURE_POINTER
> -
> -/* Top level */
> -
> -%token <i> PARSEOP_ASL_CODE
> -
> -
> -/*******************************************************************************
> - *
> - * Tokens below are not in the aslmap.c file
> - *
> - ******************************************************************************/
> -
> -
> -/* Tokens below this are not in the aslmap.c file */
> -
> -/* Specific parentheses tokens are not used at this time */
> -           /* PARSEOP_EXP_PAREN_OPEN */
> -           /* PARSEOP_EXP_PAREN_CLOSE */
> -
> -/* ASL+ variable creation */
> -
> -%token <i> PARSEOP_INTEGER_TYPE
> -%token <i> PARSEOP_STRING_TYPE
> -%token <i> PARSEOP_BUFFER_TYPE
> -%token <i> PARSEOP_PACKAGE_TYPE
> -%token <i> PARSEOP_REFERENCE_TYPE
> -
> -
> -/*
> - * Special functions. These should probably stay at the end of this
> - * table.
> - */
> -%token <i> PARSEOP___DATE__
> -%token <i> PARSEOP___FILE__
> -%token <i> PARSEOP___LINE__
> -%token <i> PARSEOP___PATH__
> -
> -
> -/* Production types/names */
> -
> -
> -
> -/******************************************************************************
> - *
> - * Production names
> - *
> - *****************************************************************************/
> -
> -%type <n> ArgList
> -%type <n> AslCode
> -%type <n> BufferData
> -%type <n> BufferTermData
> -%type <n> CompilerDirective
> -%type <n> DataObject
> -%type <n> DefinitionBlockTerm
> -%type <n> DefinitionBlockList
> -%type <n> IntegerData
> -%type <n> NamedObject
> -%type <n> NameSpaceModifier
> -%type <n> Object
> -%type <n> PackageData
> -%type <n> ParameterTypePackage
> -%type <n> ParameterTypePackageList
> -%type <n> ParameterTypesPackage
> -%type <n> ParameterTypesPackageList
> -%type <n> RequiredTarget
> -%type <n> SimpleTarget
> -%type <n> StringData
> -%type <n> Target
> -%type <n> Term
> -%type <n> TermArg
> -%type <n> TermList
> -%type <n> MethodInvocationTerm
> -
> -/* Type4Opcode is obsolete */
> -
> -%type <n> Type1Opcode
> -%type <n> Type2BufferOpcode
> -%type <n> Type2BufferOrStringOpcode
> -%type <n> Type2IntegerOpcode
> -%type <n> Type2Opcode
> -%type <n> Type2StringOpcode
> -%type <n> Type3Opcode
> -%type <n> Type5Opcode
> -%type <n> Type6Opcode
> -
> -%type <n> AccessAsTerm
> -%type <n> ExternalTerm
> -%type <n> FieldUnit
> -%type <n> FieldUnitEntry
> -%type <n> FieldUnitList
> -%type <n> IncludeTerm
> -%type <n> OffsetTerm
> -%type <n> OptionalAccessAttribTerm
> -
> -/* Named Objects */
> -
> -%type <n> BankFieldTerm
> -%type <n> CreateBitFieldTerm
> -%type <n> CreateByteFieldTerm
> -%type <n> CreateDWordFieldTerm
> -%type <n> CreateFieldTerm
> -%type <n> CreateQWordFieldTerm
> -%type <n> CreateWordFieldTerm
> -%type <n> DataRegionTerm
> -%type <n> DeviceTerm
> -%type <n> EventTerm
> -%type <n> FieldTerm
> -%type <n> FunctionTerm
> -%type <n> IndexFieldTerm
> -%type <n> MethodTerm
> -%type <n> MutexTerm
> -%type <n> OpRegionTerm
> -%type <n> OpRegionSpaceIdTerm
> -%type <n> PowerResTerm
> -%type <n> ProcessorTerm
> -%type <n> ThermalZoneTerm
> -
> -/* Namespace modifiers */
> -
> -%type <n> AliasTerm
> -%type <n> NameTerm
> -%type <n> ScopeTerm
> -
> -/* Type 1 opcodes */
> -
> -%type <n> BreakPointTerm
> -%type <n> BreakTerm
> -%type <n> CaseDefaultTermList
> -%type <n> CaseTerm
> -%type <n> ContinueTerm
> -%type <n> DefaultTerm
> -%type <n> ElseTerm
> -%type <n> FatalTerm
> -%type <n> ElseIfTerm
> -%type <n> IfTerm
> -%type <n> LoadTerm
> -%type <n> NoOpTerm
> -%type <n> NotifyTerm
> -%type <n> ReleaseTerm
> -%type <n> ResetTerm
> -%type <n> ReturnTerm
> -%type <n> SignalTerm
> -%type <n> SleepTerm
> -%type <n> StallTerm
> -%type <n> SwitchTerm
> -%type <n> UnloadTerm
> -%type <n> WhileTerm
> -/* %type <n> CaseTermList */
> -
> -/* Type 2 opcodes */
> -
> -%type <n> AcquireTerm
> -%type <n> AddTerm
> -%type <n> AndTerm
> -%type <n> ConcatResTerm
> -%type <n> ConcatTerm
> -%type <n> CondRefOfTerm
> -%type <n> CopyObjectTerm
> -%type <n> DecTerm
> -%type <n> DerefOfTerm
> -%type <n> DivideTerm
> -%type <n> FindSetLeftBitTerm
> -%type <n> FindSetRightBitTerm
> -%type <n> FromBCDTerm
> -%type <n> IncTerm
> -%type <n> IndexTerm
> -%type <n> LAndTerm
> -%type <n> LEqualTerm
> -%type <n> LGreaterEqualTerm
> -%type <n> LGreaterTerm
> -%type <n> LLessEqualTerm
> -%type <n> LLessTerm
> -%type <n> LNotEqualTerm
> -%type <n> LNotTerm
> -%type <n> LoadTableTerm
> -%type <n> LOrTerm
> -%type <n> MatchTerm
> -%type <n> MidTerm
> -%type <n> ModTerm
> -%type <n> MultiplyTerm
> -%type <n> NAndTerm
> -%type <n> NOrTerm
> -%type <n> NotTerm
> -%type <n> ObjectTypeTerm
> -%type <n> OrTerm
> -%type <n> RawDataBufferTerm
> -%type <n> RefOfTerm
> -%type <n> ShiftLeftTerm
> -%type <n> ShiftRightTerm
> -%type <n> SizeOfTerm
> -%type <n> StoreTerm
> -%type <n> SubtractTerm
> -%type <n> TimerTerm
> -%type <n> ToBCDTerm
> -%type <n> ToBufferTerm
> -%type <n> ToDecimalStringTerm
> -%type <n> ToHexStringTerm
> -%type <n> ToIntegerTerm
> -%type <n> ToStringTerm
> -%type <n> WaitTerm
> -%type <n> XOrTerm
> -
> -/* Keywords */
> -
> -%type <n> AccessAttribKeyword
> -%type <n> AccessTypeKeyword
> -%type <n> AddressingModeKeyword
> -%type <n> AddressKeyword
> -%type <n> AddressSpaceKeyword
> -%type <n> BitsPerByteKeyword
> -%type <n> ClockPhaseKeyword
> -%type <n> ClockPolarityKeyword
> -%type <n> DecodeKeyword
> -%type <n> DevicePolarityKeyword
> -%type <n> DMATypeKeyword
> -%type <n> EndianKeyword
> -%type <n> FlowControlKeyword
> -%type <n> InterruptLevel
> -%type <n> InterruptTypeKeyword
> -%type <n> IODecodeKeyword
> -%type <n> IoRestrictionKeyword
> -%type <n> LockRuleKeyword
> -%type <n> MatchOpKeyword
> -%type <n> MaxKeyword
> -%type <n> MemTypeKeyword
> -%type <n> MinKeyword
> -%type <n> ObjectTypeKeyword
> -%type <n> OptionalBusMasterKeyword
> -%type <n> OptionalReadWriteKeyword
> -%type <n> ParityTypeKeyword
> -%type <n> PinConfigByte
> -%type <n> PinConfigKeyword
> -%type <n> RangeTypeKeyword
> -%type <n> RegionSpaceKeyword
> -%type <n> ResourceTypeKeyword
> -%type <n> SerializeRuleKeyword
> -%type <n> ShareTypeKeyword
> -%type <n> SlaveModeKeyword
> -%type <n> StopBitsKeyword
> -%type <n> TranslationKeyword
> -%type <n> TypeKeyword
> -%type <n> UpdateRuleKeyword
> -%type <n> WireModeKeyword
> -%type <n> XferSizeKeyword
> -%type <n> XferTypeKeyword
> -
> -/* Types */
> -
> -%type <n> SuperName
> -%type <n> ObjectTypeName
> -%type <n> ArgTerm
> -%type <n> LocalTerm
> -%type <n> DebugTerm
> -
> -%type <n> Integer
> -%type <n> ByteConst
> -%type <n> WordConst
> -%type <n> DWordConst
> -%type <n> QWordConst
> -%type <n> String
> -
> -%type <n> ConstTerm
> -%type <n> ConstExprTerm
> -%type <n> ByteConstExpr
> -%type <n> WordConstExpr
> -%type <n> DWordConstExpr
> -%type <n> QWordConstExpr
> -
> -%type <n> DWordList
> -%type <n> BufferTerm
> -%type <n> ByteList
> -
> -%type <n> PackageElement
> -%type <n> PackageList
> -%type <n> PackageTerm
> -
> -/* Macros */
> -
> -%type <n> EISAIDTerm
> -%type <n> ResourceMacroList
> -%type <n> ResourceMacroTerm
> -%type <n> ResourceTemplateTerm
> -%type <n> PldKeyword
> -%type <n> PldKeywordList
> -%type <n> ToPLDTerm
> -%type <n> ToUUIDTerm
> -%type <n> UnicodeTerm
> -%type <n> PrintfArgList
> -%type <n> PrintfTerm
> -%type <n> FprintfTerm
> -%type <n> ForTerm
> -
> -/* Resource Descriptors */
> -
> -%type <n> ConnectionTerm
> -%type <n> DMATerm
> -%type <n> DWordIOTerm
> -%type <n> DWordMemoryTerm
> -%type <n> DWordSpaceTerm
> -%type <n> EndDependentFnTerm
> -%type <n> ExtendedIOTerm
> -%type <n> ExtendedMemoryTerm
> -%type <n> ExtendedSpaceTerm
> -%type <n> FixedDmaTerm
> -%type <n> FixedIOTerm
> -%type <n> GpioIntTerm
> -%type <n> GpioIoTerm
> -%type <n> I2cSerialBusTerm
> -%type <n> I2cSerialBusTermV2
> -%type <n> InterruptTerm
> -%type <n> IOTerm
> -%type <n> IRQNoFlagsTerm
> -%type <n> IRQTerm
> -%type <n> Memory24Term
> -%type <n> Memory32FixedTerm
> -%type <n> Memory32Term
> -%type <n> NameSeg
> -%type <n> NameString
> -%type <n> QWordIOTerm
> -%type <n> QWordMemoryTerm
> -%type <n> QWordSpaceTerm
> -%type <n> RegisterTerm
> -%type <n> SpiSerialBusTerm
> -%type <n> SpiSerialBusTermV2
> -%type <n> StartDependentFnNoPriTerm
> -%type <n> StartDependentFnTerm
> -%type <n> UartSerialBusTerm
> -%type <n> UartSerialBusTermV2
> -%type <n> VendorLongTerm
> -%type <n> VendorShortTerm
> -%type <n> WordBusNumberTerm
> -%type <n> WordIOTerm
> -%type <n> WordSpaceTerm
> -
> -/* Local types that help construct the AML, not in ACPI spec */
> -
> -%type <n> AmlPackageLengthTerm
> -%type <n> IncludeEndTerm
> -%type <n> NameStringItem
> -%type <n> TermArgItem
> -
> -%type <n> OptionalAccessSize
> -%type <n> OptionalAddressingMode
> -%type <n> OptionalAddressRange
> -%type <n> OptionalBitsPerByte
> -%type <n> OptionalBuffer_Last
> -%type <n> OptionalByteConstExpr
> -%type <n> OptionalCount
> -%type <n> OptionalDataCount
> -%type <n> OptionalDecodeType
> -%type <n> OptionalDevicePolarity
> -%type <n> OptionalDWordConstExpr
> -%type <n> OptionalEndian
> -%type <n> OptionalFlowControl
> -%type <n> OptionalIoRestriction
> -%type <n> OptionalListString
> -%type <n> OptionalMaxType
> -%type <n> OptionalMemType
> -%type <n> OptionalMinType
> -%type <n> OptionalNameString
> -%type <n> OptionalNameString_First
> -%type <n> OptionalNameString_Last
> -%type <n> OptionalObjectTypeKeyword
> -%type <n> OptionalParameterTypePackage
> -%type <n> OptionalParameterTypesPackage
> -%type <n> OptionalParentheses
> -%type <n> OptionalParityType
> -%type <n> OptionalPredicate
> -%type <n> OptionalQWordConstExpr
> -%type <n> OptionalRangeType
> -%type <n> OptionalReference
> -%type <n> OptionalResourceType
> -%type <n> OptionalResourceType_First
> -%type <n> OptionalReturnArg
> -%type <n> OptionalSerializeRuleKeyword
> -%type <n> OptionalShareType
> -%type <n> OptionalShareType_First
> -%type <n> OptionalSlaveMode
> -%type <n> OptionalStopBits
> -%type <n> OptionalStringData
> -%type <n> OptionalTermArg
> -%type <n> OptionalTranslationType_Last
> -%type <n> OptionalType
> -%type <n> OptionalType_Last
> -%type <n> OptionalWireMode
> -%type <n> OptionalWordConst
> -%type <n> OptionalWordConstExpr
> -%type <n> OptionalXferSize
> -
> -/*
> - * ASL+ (C-style) parser
> - */
> -
> -/* Expressions and symbolic operators */
> -
> -%type <n> Expression
> -%type <n> EqualsTerm
> -%type <n> IndexExpTerm
> -
> -/* ASL+ Named object declaration support */
> -/*
> -%type <n> NameTermAslPlus
> -
> -%type <n> BufferBegin
> -%type <n> BufferEnd
> -%type <n> PackageBegin
> -%type <n> PackageEnd
> -%type <n> OptionalLength
> -*/
> -/* ASL+ Structure declarations */
> -/*
> -%type <n> StructureTerm
> -%type <n> StructureTermBegin
> -%type <n> StructureType
> -%type <n> StructureTag
> -%type <n> StructureElementList
> -%type <n> StructureElement
> -%type <n> StructureElementType
> -%type <n> OptionalStructureElementType
> -%type <n> StructureId
> -*/
> -/* Structure instantiantion */
> -/*
> -%type <n> StructureInstanceTerm
> -%type <n> StructureTagReference
> -%type <n> StructureInstanceEnd
> -*/
> -/* Pseudo-instantiantion for method Args/Locals */
> -/*
> -%type <n> MethodStructureTerm
> -%type <n> LocalStructureName
> -*/
> -/* Direct structure references via the Index operator */
> -/*
> -%type <n> StructureReference
> -%type <n> StructureIndexTerm
> -%type <n> StructurePointerTerm
> -%type <n> StructurePointerReference
> -%type <n> OptionalDefinePointer
> -*/
> -
> -%%
> -
> -/* Production rules */
> -
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Root and Secondary Terms
> - *
> - ******************************************************************************/
> -
> -/*
> - * Root term. Allow multiple #line directives before the definition block
> - * to handle output from preprocessors
> - */
> -AslCode
> -    : DefinitionBlockList           {$<n>$ = TrLinkChildren (
> -                                        TrCreateLeafNode (PARSEOP_ASL_CODE),1, $1);}
> -    | error                         {YYABORT; $$ = NULL;}
> -    ;
> -
> -
> -/*
> - * Note concerning support for "module-level code".
> - *
> - * ACPI 1.0 allowed Type1 and Type2 executable opcodes outside of control
> - * methods (the so-called module-level code.) This support was explicitly
> - * removed in ACPI 2.0, but this type of code continues to be created by
> - * BIOS vendors. In order to support the disassembly and recompilation of
> - * such code (and the porting of ASL code to iASL), iASL supports this
> - * code in violation of the current ACPI specification.
> - *
> - * The grammar change to support module-level code is to revert the
> - * {ObjectList} portion of the DefinitionBlockTerm in ACPI 2.0 to the
> - * original use of {TermList} instead (see below.) This allows the use
> - * of Type1 and Type2 opcodes at module level.
> - *
> - * 04/2016: The module-level code is now allowed in the following terms:
> - * DeviceTerm, PowerResTerm, ProcessorTerm, ScopeTerm, ThermalZoneTerm.
> - * The ObjectList term is obsolete and has been removed.
> - */
> -DefinitionBlockTerm
> -    : PARSEOP_DEFINITION_BLOCK '('  {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITION_BLOCK);}
> -        String ','
> -        String ','
> -        ByteConst ','
> -        String ','
> -        String ','
> -        DWordConst
> -        ')'                         {TrSetEndLineNumber ($<n>3);}
> -            '{' TermList '}'        {$$ = TrLinkChildren ($<n>3,7,
> -                                        $4,$6,$8,$10,$12,$14,$18);}
> -    ;
> -
> -DefinitionBlockList
> -    : DefinitionBlockTerm
> -    | DefinitionBlockTerm
> -        DefinitionBlockList         {$$ = TrLinkPeerNodes (2, $1,$2);}
> -    ;
> -
> -/* Allow IO, DMA, IRQ Resource macro and FOR macro names to also be used as identifiers */
> -
> -NameString
> -    : NameSeg                       {}
> -    | PARSEOP_NAMESTRING            {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) $1);}
> -    | PARSEOP_IO                    {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
> -    | PARSEOP_DMA                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
> -    | PARSEOP_IRQ                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
> -    | PARSEOP_FOR                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "FOR");}
> -    ;
> -/*
> -NameSeg
> -    : PARSEOP_NAMESEG               {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT)
> -                                            TrNormalizeNameSeg ($1));}
> -    ;
> -*/
> -
> -NameSeg
> -    : PARSEOP_NAMESEG               {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG,
> -                                            (ACPI_NATIVE_INT) AslCompilerlval.s);}
> -    ;
> -
> -
> -SuperName
> -    : NameString                    {}
> -    | ArgTerm                       {}
> -    | LocalTerm                     {}
> -    | DebugTerm                     {}
> -    | Type6Opcode                   {}
> -    ;
> -
> -Target
> -    :                               {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
> -    | ','                           {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
> -    | ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
> -    ;
> -
> -TermArg
> -    : Type2Opcode                   {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | DataObject                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | NameString                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | ArgTerm                       {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | LocalTerm                     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -
> -
> -    ;
> -
> -/*
> - NOTE: Removed from TermArg due to reduce/reduce conflicts:
> -    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -
> -*/
> -
> -MethodInvocationTerm
> -    : NameString '('                {TrUpdateNode (PARSEOP_METHODCALL, $1);}
> -        ArgList ')'                 {$$ = TrLinkChildNode ($1,$4);}
> -    ;
> -
> -/* OptionalCount must appear before ByteList or an incorrect reduction will result */
> -
> -OptionalCount
> -    :                               {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
> -    | ','                           {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
> -    | ',' TermArg                   {$$ = $2;}
> -    ;
> -
> -/*
> - * Data count for buffers and packages (byte count for buffers,
> - * element count for packages).
> - */
> -OptionalDataCount
> -
> -        /* Legacy ASL */
> -    :                               {$$ = NULL;}
> -    | '(' TermArg ')'               {$$ = $2;}
> -    | '('  ')'                      {$$ = NULL;}
> -
> -        /* C-style (ASL+) -- adds equals term */
> -
> -    |  PARSEOP_EXP_EQUALS           {$$ = NULL;}
> -
> -    | '(' TermArg ')'
> -        PARSEOP_EXP_EQUALS          {$$ = $2;}
> -
> -    | '('  ')' String
> -        PARSEOP_EXP_EQUALS          {$$ = NULL;}
> -    ;
> -
> -
> -/******* List Terms **************************************************/
> -
> -ArgList
> -    :                               {$$ = NULL;}
> -    | TermArg
> -    | ArgList ','                   /* Allows a trailing comma at list end */
> -    | ArgList ','
> -        TermArg                     {$$ = TrLinkPeerNode ($1,$3);}
> -    ;
> -
> -ByteList
> -    :                               {$$ = NULL;}
> -    | ByteConstExpr
> -    | ByteList ','                  /* Allows a trailing comma at list end */
> -    | ByteList ','
> -        ByteConstExpr               {$$ = TrLinkPeerNode ($1,$3);}
> -    ;
> -
> -DWordList
> -    :                               {$$ = NULL;}
> -    | DWordConstExpr
> -    | DWordList ','                 /* Allows a trailing comma at list end */
> -    | DWordList ','
> -        DWordConstExpr              {$$ = TrLinkPeerNode ($1,$3);}
> -    ;
> -
> -FieldUnitList
> -    :                               {$$ = NULL;}
> -    | FieldUnit
> -    | FieldUnitList ','             /* Allows a trailing comma at list end */
> -    | FieldUnitList ','
> -        FieldUnit                   {$$ = TrLinkPeerNode ($1,$3);}
> -    ;
> -
> -FieldUnit
> -    : FieldUnitEntry                {}
> -    | OffsetTerm                    {}
> -    | AccessAsTerm                  {}
> -    | ConnectionTerm                {}
> -    ;
> -
> -FieldUnitEntry
> -    : ',' AmlPackageLengthTerm      {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
> -    | NameSeg ','
> -        AmlPackageLengthTerm        {$$ = TrLinkChildNode ($1,$3);}
> -    ;
> -
> -Object
> -    : CompilerDirective             {}
> -    | NamedObject                   {}
> -    | NameSpaceModifier             {}
> -//    | StructureTerm                 {}
> -    ;
> -
> -PackageList
> -    :                               {$$ = NULL;}
> -    | PackageElement
> -    | PackageList ','               /* Allows a trailing comma at list end */
> -    | PackageList ','
> -        PackageElement              {$$ = TrLinkPeerNode ($1,$3);}
> -    ;
> -
> -PackageElement
> -    : DataObject                    {}
> -    | NameString                    {}
> -    ;
> -
> -    /* Rules for specifying the type of one method argument or return value */
> -
> -ParameterTypePackage
> -    :                               {$$ = NULL;}
> -    | ObjectTypeKeyword             {$$ = $1;}
> -    | ParameterTypePackage ','
> -        ObjectTypeKeyword           {$$ = TrLinkPeerNodes (2,$1,$3);}
> -    ;
> -
> -ParameterTypePackageList
> -    :                               {$$ = NULL;}
> -    | ObjectTypeKeyword             {$$ = $1;}
> -    | '{' ParameterTypePackage '}'  {$$ = $2;}
> -    ;
> -
> -OptionalParameterTypePackage
> -    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
> -    | ',' ParameterTypePackageList  {$$ = TrLinkChildren (
> -                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
> -    ;
> -
> -    /* Rules for specifying the types for method arguments */
> -
> -ParameterTypesPackage
> -    : ParameterTypePackageList      {$$ = $1;}
> -    | ParameterTypesPackage ','
> -        ParameterTypePackageList    {$$ = TrLinkPeerNodes (2,$1,$3);}
> -    ;
> -
> -ParameterTypesPackageList
> -    :                               {$$ = NULL;}
> -    | ObjectTypeKeyword             {$$ = $1;}
> -    | '{' ParameterTypesPackage '}' {$$ = $2;}
> -    ;
> -
> -OptionalParameterTypesPackage
> -    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
> -    | ',' ParameterTypesPackageList {$$ = TrLinkChildren (
> -                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
> -    ;
> -
> -    /* ACPI 3.0 -- allow semicolons between terms */
> -
> -TermList
> -    :                               {$$ = NULL;}
> -    | TermList Term                 {$$ = TrLinkPeerNode (
> -                                        TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
> -    | TermList Term ';'             {$$ = TrLinkPeerNode (
> -                                        TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
> -    | TermList ';' Term             {$$ = TrLinkPeerNode (
> -                                        TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
> -    | TermList ';' Term ';'         {$$ = TrLinkPeerNode (
> -                                        TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
> -    ;
> -
> -Term
> -    : Object                        {}
> -    | Type1Opcode                   {}
> -    | Type2Opcode                   {}
> -    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | Type2BufferOpcode             {}
> -    | Type2BufferOrStringOpcode     {}
> -    | error                         {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -/*
> - * Case-Default list; allow only one Default term and unlimited Case terms
> - */
> -CaseDefaultTermList
> -    :                               {$$ = NULL;}
> -    | CaseTerm  {}
> -    | DefaultTerm   {}
> -    | CaseDefaultTermList
> -        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
> -    | CaseDefaultTermList
> -        DefaultTerm                 {$$ = TrLinkPeerNode ($1,$2);}
> -
> -/* Original - attempts to force zero or one default term within the switch */
> -
> -/*
> -CaseDefaultTermList
> -    :                               {$$ = NULL;}
> -    | CaseTermList
> -        DefaultTerm
> -        CaseTermList                {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
> -    | CaseTermList
> -        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
> -    ;
> -
> -CaseTermList
> -    :                               {$$ = NULL;}
> -    | CaseTerm                      {}
> -    | CaseTermList
> -        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
> -    ;
> -*/
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Data and Constant Terms
> - *
> - ******************************************************************************/
> -
> -DataObject
> -    : BufferData                    {}
> -    | PackageData                   {}
> -    | IntegerData                   {}
> -    | StringData                    {}
> -    ;
> -
> -BufferData
> -    : Type5Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | BufferTerm                    {}
> -    ;
> -
> -PackageData
> -    : PackageTerm                   {}
> -    ;
> -
> -IntegerData
> -    : Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | Integer                       {}
> -    | ConstTerm                     {}
> -    ;
> -
> -StringData
> -    : Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | String                        {}
> -    ;
> -
> -ByteConst
> -    : Integer                       {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
> -    ;
> -
> -WordConst
> -    : Integer                       {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
> -    ;
> -
> -DWordConst
> -    : Integer                       {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
> -    ;
> -
> -QWordConst
> -    : Integer                       {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
> -    ;
> -
> -/*
> - * The NODE_COMPILE_TIME_CONST flag in the following constant expressions
> - * enables compile-time constant folding to reduce the Type3Opcodes/Type2IntegerOpcodes
> - * to simple integers. It is an error if these types of expressions cannot be
> - * reduced, since the AML grammar for ****ConstExpr requires a simple constant.
> - * Note: The required byte length of the constant is passed through to the
> - * constant folding code in the node AmlLength field.
> - */
> -ByteConstExpr
> -    : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 1);}
> -    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 1);}
> -    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
> -    | ByteConst                     {}
> -    ;
> -
> -WordConstExpr
> -    : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 2);}
> -    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 2);}
> -    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
> -    | WordConst                     {}
> -    ;
> -
> -DWordConstExpr
> -    : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 4);}
> -    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 4);}
> -    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
> -    | DWordConst                    {}
> -    ;
> -
> -QWordConstExpr
> -    : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 8);}
> -    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 8);}
> -    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
> -    | QWordConst                    {}
> -    ;
> -
> -ConstTerm
> -    : ConstExprTerm                 {}
> -    | PARSEOP_REVISION              {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
> -    ;
> -
> -ConstExprTerm
> -    : PARSEOP_ZERO                  {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
> -    | PARSEOP_ONE                   {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
> -    | PARSEOP_ONES                  {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_UINT64_MAX);}
> -    | PARSEOP___DATE__              {$$ = TrCreateConstantLeafNode (PARSEOP___DATE__);}
> -    | PARSEOP___FILE__              {$$ = TrCreateConstantLeafNode (PARSEOP___FILE__);}
> -    | PARSEOP___LINE__              {$$ = TrCreateConstantLeafNode (PARSEOP___LINE__);}
> -    | PARSEOP___PATH__              {$$ = TrCreateConstantLeafNode (PARSEOP___PATH__);}
> -    ;
> -
> -Integer
> -    : PARSEOP_INTEGER               {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER,
> -                                        AslCompilerlval.i);}
> -    ;
> -
> -String
> -    : PARSEOP_STRING_LITERAL        {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL,
> -                                        (ACPI_NATIVE_INT) AslCompilerlval.s);}
> -    ;
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Opcode Terms
> - *
> - ******************************************************************************/
> -
> -CompilerDirective
> -    : IncludeTerm                   {}
> -    | IncludeEndTerm                {}
> -    | ExternalTerm                  {}
> -    ;
> -
> -NamedObject
> -    : BankFieldTerm                 {}
> -    | CreateBitFieldTerm            {}
> -    | CreateByteFieldTerm           {}
> -    | CreateDWordFieldTerm          {}
> -    | CreateFieldTerm               {}
> -    | CreateQWordFieldTerm          {}
> -    | CreateWordFieldTerm           {}
> -    | DataRegionTerm                {}
> -    | DeviceTerm                    {}
> -    | EventTerm                     {}
> -    | FieldTerm                     {}
> -    | FunctionTerm                  {}
> -    | IndexFieldTerm                {}
> -    | MethodTerm                    {}
> -    | MutexTerm                     {}
> -    | OpRegionTerm                  {}
> -    | PowerResTerm                  {}
> -    | ProcessorTerm                 {}
> -    | ThermalZoneTerm               {}
> -    ;
> -
> -NameSpaceModifier
> -    : AliasTerm                     {}
> -    | NameTerm                      {}
> -//    | NameTermAslPlus               {}
> -    | ScopeTerm                     {}
> -    ;
> -
> -/* For ObjectType: SuperName except for MethodInvocationTerm */
> -
> -ObjectTypeName
> -    : NameString                    {}
> -    | ArgTerm                       {}
> -    | LocalTerm                     {}
> -    | DebugTerm                     {}
> -    | RefOfTerm                     {}
> -    | DerefOfTerm                   {}
> -    | IndexTerm                     {}
> -
> -/*    | MethodInvocationTerm          {} */  /* Caused reduce/reduce with Type6Opcode->MethodInvocationTerm */
> -    ;
> -
> -RequiredTarget
> -    : ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
> -    ;
> -
> -SimpleTarget
> -    : NameString                    {}
> -    | LocalTerm                     {}
> -    | ArgTerm                       {}
> -    ;
> -
> -/* Opcode types */
> -
> -Type1Opcode
> -    : BreakTerm                     {}
> -    | BreakPointTerm                {}
> -    | ContinueTerm                  {}
> -    | FatalTerm                     {}
> -    | ForTerm                       {}
> -    | ElseIfTerm                    {}
> -    | LoadTerm                      {}
> -    | NoOpTerm                      {}
> -    | NotifyTerm                    {}
> -    | ReleaseTerm                   {}
> -    | ResetTerm                     {}
> -    | ReturnTerm                    {}
> -    | SignalTerm                    {}
> -    | SleepTerm                     {}
> -    | StallTerm                     {}
> -    | SwitchTerm                    {}
> -    | UnloadTerm                    {}
> -    | WhileTerm                     {}
> -    ;
> -
> -Type2Opcode
> -    : AcquireTerm                   {}
> -    | CondRefOfTerm                 {}
> -    | CopyObjectTerm                {}
> -    | DerefOfTerm                   {}
> -    | ObjectTypeTerm                {}
> -    | RefOfTerm                     {}
> -    | SizeOfTerm                    {}
> -    | StoreTerm                     {}
> -    | EqualsTerm                    {}
> -    | TimerTerm                     {}
> -    | WaitTerm                      {}
> -    | MethodInvocationTerm          {}
> -    ;
> -
> -/*
> - * Type 3/4/5 opcodes
> - */
> -Type2IntegerOpcode                  /* "Type3" opcodes */
> -    : Expression                    {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | AddTerm                       {}
> -    | AndTerm                       {}
> -    | DecTerm                       {}
> -    | DivideTerm                    {}
> -    | FindSetLeftBitTerm            {}
> -    | FindSetRightBitTerm           {}
> -    | FromBCDTerm                   {}
> -    | IncTerm                       {}
> -    | IndexTerm                     {}
> -//    | StructureIndexTerm            {}
> -//    | StructurePointerTerm          {}
> -    | LAndTerm                      {}
> -    | LEqualTerm                    {}
> -    | LGreaterTerm                  {}
> -    | LGreaterEqualTerm             {}
> -    | LLessTerm                     {}
> -    | LLessEqualTerm                {}
> -    | LNotTerm                      {}
> -    | LNotEqualTerm                 {}
> -    | LoadTableTerm                 {}
> -    | LOrTerm                       {}
> -    | MatchTerm                     {}
> -    | ModTerm                       {}
> -    | MultiplyTerm                  {}
> -    | NAndTerm                      {}
> -    | NOrTerm                       {}
> -    | NotTerm                       {}
> -    | OrTerm                        {}
> -    | ShiftLeftTerm                 {}
> -    | ShiftRightTerm                {}
> -    | SubtractTerm                  {}
> -    | ToBCDTerm                     {}
> -    | ToIntegerTerm                 {}
> -    | XOrTerm                       {}
> -    ;
> -
> -Type2StringOpcode                   /* "Type4" Opcodes */
> -    : ToDecimalStringTerm           {}
> -    | ToHexStringTerm               {}
> -    | ToStringTerm                  {}
> -    ;
> -
> -Type2BufferOpcode                   /* "Type5" Opcodes */
> -    : ToBufferTerm                  {}
> -    | ConcatResTerm                 {}
> -    ;
> -
> -Type2BufferOrStringOpcode
> -    : ConcatTerm                    {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | PrintfTerm                    {}
> -    | FprintfTerm                   {}
> -    | MidTerm                       {}
> -    ;
> -
> -/*
> - * A type 3 opcode evaluates to an Integer and cannot have a destination operand
> - */
> -Type3Opcode
> -    : EISAIDTerm                    {}
> -    ;
> -
> -/* Obsolete
> -Type4Opcode
> -    : ConcatTerm                    {}
> -    | ToDecimalStringTerm           {}
> -    | ToHexStringTerm               {}
> -    | MidTerm                       {}
> -    | ToStringTerm                  {}
> -    ;
> -*/
> -
> -/* Type 5 opcodes are a subset of Type2 opcodes, and return a constant */
> -
> -Type5Opcode
> -    : ResourceTemplateTerm          {}
> -    | UnicodeTerm                   {}
> -    | ToPLDTerm                     {}
> -    | ToUUIDTerm                    {}
> -    ;
> -
> -Type6Opcode
> -    : RefOfTerm                     {}
> -    | DerefOfTerm                   {}
> -    | IndexTerm                     {}
> -    | IndexExpTerm                  {}
> -//    | StructureIndexTerm            {}
> -//    | StructurePointerTerm          {}
> -    | MethodInvocationTerm          {}
> -    ;
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Helper Terms
> - *
> - ******************************************************************************/
> -
> -AmlPackageLengthTerm
> -    : Integer                       {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,
> -                                        (ACPI_PARSE_OBJECT *) $1);}
> -    ;
> -
> -NameStringItem
> -    : ',' NameString                {$$ = $2;}
> -    | ',' error                     {$$ = AslDoError (); yyclearin;}
> -    ;
> -
> -TermArgItem
> -    : ',' TermArg                   {$$ = $2;}
> -    | ',' error                     {$$ = AslDoError (); yyclearin;}
> -    ;
> -
> -OptionalReference
> -    :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
> -    | ','                           {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
> -    | ',' TermArg                   {$$ = $2;}
> -    ;
> -
> -OptionalReturnArg
> -    :                               {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO),
> -                                            NODE_IS_NULL_RETURN);}       /* Placeholder is a ZeroOp object */
> -    | TermArg                       {$$ = $1;}
> -    ;
> -
> -OptionalSerializeRuleKeyword
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' SerializeRuleKeyword      {$$ = $2;}
> -    ;
> -
> -OptionalTermArg
> -    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
> -    | TermArg                       {$$ = $1;}
> -    ;
> -
> -OptionalWordConst
> -    :                               {$$ = NULL;}
> -    | WordConst                     {$$ = $1;}
> -    ;
> -
> -
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Primary Terms
> - *
> - ******************************************************************************/
> -
> -AccessAsTerm
> -    : PARSEOP_ACCESSAS '('
> -        AccessTypeKeyword
> -        OptionalAccessAttribTerm
> -        ')'                         {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
> -    | PARSEOP_ACCESSAS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -AcquireTerm
> -    : PARSEOP_ACQUIRE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
> -        SuperName
> -        ',' WordConstExpr
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
> -    | PARSEOP_ACQUIRE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -AddTerm
> -    : PARSEOP_ADD '('               {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_ADD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -AliasTerm
> -    : PARSEOP_ALIAS '('             {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);}
> -        NameString
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,
> -                                        TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_ALIAS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -AndTerm
> -    : PARSEOP_AND '('               {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_AND '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ArgTerm
> -    : PARSEOP_ARG0                  {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
> -    | PARSEOP_ARG1                  {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
> -    | PARSEOP_ARG2                  {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
> -    | PARSEOP_ARG3                  {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
> -    | PARSEOP_ARG4                  {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
> -    | PARSEOP_ARG5                  {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
> -    | PARSEOP_ARG6                  {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
> -    ;
> -
> -BankFieldTerm
> -    : PARSEOP_BANKFIELD '('         {$<n>$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
> -        NameString
> -        NameStringItem
> -        TermArgItem
> -        ',' AccessTypeKeyword
> -        ',' LockRuleKeyword
> -        ',' UpdateRuleKeyword
> -        ')' '{'
> -            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,7,
> -                                        $4,$5,$6,$8,$10,$12,$15);}
> -    | PARSEOP_BANKFIELD '('
> -        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -BreakTerm
> -    : PARSEOP_BREAK                 {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
> -    ;
> -
> -BreakPointTerm
> -    : PARSEOP_BREAKPOINT            {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
> -    ;
> -
> -BufferTerm
> -    : PARSEOP_BUFFER                {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);}
> -        OptionalDataCount
> -        '{' BufferTermData '}'      {$$ = TrLinkChildren ($<n>2,2,$3,$5);}
> -    ;
> -
> -BufferTermData
> -    : ByteList                      {}
> -    | StringData                    {}
> -    ;
> -
> -CaseTerm
> -    : PARSEOP_CASE '('              {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);}
> -        DataObject
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_CASE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ConcatTerm
> -    : PARSEOP_CONCATENATE '('       {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_CONCATENATE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ConcatResTerm
> -    : PARSEOP_CONCATENATERESTEMPLATE '(' {$<n>$ = TrCreateLeafNode (
> -                                            PARSEOP_CONCATENATERESTEMPLATE);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_CONCATENATERESTEMPLATE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ConnectionTerm
> -    : PARSEOP_CONNECTION '('
> -        NameString
> -        ')'                         {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);}
> -    | PARSEOP_CONNECTION '('        {$<n>$ = TrCreateLeafNode (PARSEOP_CONNECTION);}
> -        ResourceMacroTerm
> -        ')'                         {$$ = TrLinkChildren ($<n>3, 1,
> -                                        TrLinkChildren (
> -                                            TrCreateLeafNode (PARSEOP_RESOURCETEMPLATE), 3,
> -                                            TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
> -                                            TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
> -                                            $4));}
> -    | PARSEOP_CONNECTION '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CondRefOfTerm
> -    : PARSEOP_CONDREFOF '('         {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
> -        SuperName
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_CONDREFOF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ContinueTerm
> -    : PARSEOP_CONTINUE              {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
> -    ;
> -
> -CopyObjectTerm
> -    : PARSEOP_COPYOBJECT '('        {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
> -        TermArg
> -        ',' SimpleTarget
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,
> -                                        TrSetNodeFlags ($6, NODE_IS_TARGET));}
> -    | PARSEOP_COPYOBJECT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CreateBitFieldTerm
> -    : PARSEOP_CREATEBITFIELD '('    {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
> -        TermArg
> -        TermArgItem
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
> -                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_CREATEBITFIELD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CreateByteFieldTerm
> -    : PARSEOP_CREATEBYTEFIELD '('   {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
> -        TermArg
> -        TermArgItem
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
> -                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_CREATEBYTEFIELD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CreateDWordFieldTerm
> -    : PARSEOP_CREATEDWORDFIELD '('  {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
> -        TermArg
> -        TermArgItem
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
> -                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_CREATEDWORDFIELD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CreateFieldTerm
> -    : PARSEOP_CREATEFIELD '('       {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
> -        TermArg
> -        TermArgItem
> -        TermArgItem
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,
> -                                        TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_CREATEFIELD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CreateQWordFieldTerm
> -    : PARSEOP_CREATEQWORDFIELD '('  {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
> -        TermArg
> -        TermArgItem
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
> -                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_CREATEQWORDFIELD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CreateWordFieldTerm
> -    : PARSEOP_CREATEWORDFIELD '('   {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
> -        TermArg
> -        TermArgItem
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
> -                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_CREATEWORDFIELD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DataRegionTerm
> -    : PARSEOP_DATATABLEREGION '('   {$<n>$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
> -        NameString
> -        TermArgItem
> -        TermArgItem
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
> -    | PARSEOP_DATATABLEREGION '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DebugTerm
> -    : PARSEOP_DEBUG                 {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
> -    ;
> -
> -DecTerm
> -    : PARSEOP_DECREMENT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_DECREMENT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DefaultTerm
> -    : PARSEOP_DEFAULT '{'           {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
> -        TermList '}'                {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_DEFAULT '{'
> -        error '}'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DerefOfTerm
> -    : PARSEOP_DEREFOF '('           {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
> -        TermArg
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_DEREFOF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DeviceTerm
> -    : PARSEOP_DEVICE '('            {$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);}
> -        NameString
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
> -    | PARSEOP_DEVICE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DivideTerm
> -    : PARSEOP_DIVIDE '('            {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
> -    | PARSEOP_DIVIDE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -EISAIDTerm
> -    : PARSEOP_EISAID '('
> -        StringData ')'              {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
> -    | PARSEOP_EISAID '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ElseIfTerm
> -    : IfTerm ElseTerm               {$$ = TrLinkPeerNode ($1,$2);}
> -    ;
> -
> -ElseTerm
> -    :                               {$$ = NULL;}
> -    | PARSEOP_ELSE '{'              {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
> -        TermList '}'                {$$ = TrLinkChildren ($<n>3,1,$4);}
> -
> -    | PARSEOP_ELSE '{'
> -        error '}'                   {$$ = AslDoError(); yyclearin;}
> -
> -    | PARSEOP_ELSE
> -        error                       {$$ = AslDoError(); yyclearin;}
> -
> -    | PARSEOP_ELSEIF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
> -        TermArg                     {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
> -        ')' '{'
> -            TermList '}'            {TrLinkChildren ($<n>5,2,$4,$8);}
> -        ElseTerm                    {TrLinkPeerNode ($<n>5,$11);}
> -                                    {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
> -
> -    | PARSEOP_ELSEIF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -
> -    | PARSEOP_ELSEIF
> -        error                       {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -EventTerm
> -    : PARSEOP_EVENT '('             {$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);}
> -        NameString
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_EVENT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ExternalTerm
> -    : PARSEOP_EXTERNAL '('
> -        NameString
> -        OptionalObjectTypeKeyword
> -        OptionalParameterTypePackage
> -        OptionalParameterTypesPackage
> -        ')'                         {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
> -    | PARSEOP_EXTERNAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FatalTerm
> -    : PARSEOP_FATAL '('             {$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);}
> -        ByteConstExpr
> -        ',' DWordConstExpr
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
> -    | PARSEOP_FATAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FieldTerm
> -    : PARSEOP_FIELD '('             {$<n>$ = TrCreateLeafNode (PARSEOP_FIELD);}
> -        NameString
> -        ',' AccessTypeKeyword
> -        ',' LockRuleKeyword
> -        ',' UpdateRuleKeyword
> -        ')' '{'
> -            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
> -    | PARSEOP_FIELD '('
> -        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FindSetLeftBitTerm
> -    : PARSEOP_FINDSETLEFTBIT '('    {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_FINDSETLEFTBIT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FindSetRightBitTerm
> -    : PARSEOP_FINDSETRIGHTBIT '('   {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_FINDSETRIGHTBIT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -    /* Convert a For() loop to a While() loop */
> -ForTerm
> -    : PARSEOP_FOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
> -        OptionalTermArg ','         {}
> -        OptionalPredicate ','
> -        OptionalTermArg             {$<n>$ = TrLinkPeerNode ($4,$<n>3);
> -                                        TrSetParent ($9,$<n>3);}                /* New parent is WHILE */
> -        ')' '{' TermList '}'        {$<n>$ = TrLinkChildren ($<n>3,2,$7,$13);}
> -                                    {$<n>$ = TrLinkPeerNode ($13,$9);
> -                                        $$ = $<n>10;}
> -    ;
> -
> -OptionalPredicate
> -    :                               {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, 1);}
> -    | TermArg                       {$$ = $1;}
> -    ;
> -
> -FprintfTerm
> -    : PARSEOP_FPRINTF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_FPRINTF);}
> -        TermArg ','
> -        StringData
> -        PrintfArgList
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
> -    | PARSEOP_FPRINTF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FromBCDTerm
> -    : PARSEOP_FROMBCD '('           {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_FROMBCD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FunctionTerm
> -    : PARSEOP_FUNCTION '('          {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
> -        NameString
> -        OptionalParameterTypePackage
> -        OptionalParameterTypesPackage
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,7,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
> -                                        TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
> -                                        TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
> -                                        TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
> -    | PARSEOP_FUNCTION '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IfTerm
> -    : PARSEOP_IF '('                {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
> -        TermArg
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -
> -    | PARSEOP_IF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IncludeTerm
> -    : PARSEOP_INCLUDE '('
> -        String  ')'                 {$$ = TrUpdateNode (PARSEOP_INCLUDE, $3);
> -                                        FlOpenIncludeFile ($3);}
> -    ;
> -
> -IncludeEndTerm
> -    : PARSEOP_INCLUDE_END           {$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);
> -                                        TrSetCurrentFilename ($$);}
> -    ;
> -
> -IncTerm
> -    : PARSEOP_INCREMENT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_INCREMENT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IndexFieldTerm
> -    : PARSEOP_INDEXFIELD '('        {$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
> -        NameString
> -        NameStringItem
> -        ',' AccessTypeKeyword
> -        ',' LockRuleKeyword
> -        ',' UpdateRuleKeyword
> -        ')' '{'
> -            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
> -    | PARSEOP_INDEXFIELD '('
> -        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IndexTerm
> -    : PARSEOP_INDEX '('             {$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_INDEX '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LAndTerm
> -    : PARSEOP_LAND '('              {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_LAND '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LEqualTerm
> -    : PARSEOP_LEQUAL '('            {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_LEQUAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LGreaterEqualTerm
> -    : PARSEOP_LGREATEREQUAL '('     {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
> -                                        TrLinkChildren ($<n>3,2,$4,$5));}
> -    | PARSEOP_LGREATEREQUAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LGreaterTerm
> -    : PARSEOP_LGREATER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_LGREATER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LLessEqualTerm
> -    : PARSEOP_LLESSEQUAL '('        {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
> -                                        TrLinkChildren ($<n>3,2,$4,$5));}
> -    | PARSEOP_LLESSEQUAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LLessTerm
> -    : PARSEOP_LLESS '('             {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_LLESS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LNotEqualTerm
> -    : PARSEOP_LNOTEQUAL '('         {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
> -                                        TrLinkChildren ($<n>3,2,$4,$5));}
> -    | PARSEOP_LNOTEQUAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LNotTerm
> -    : PARSEOP_LNOT '('              {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
> -        TermArg
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_LNOT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LoadTableTerm
> -    : PARSEOP_LOADTABLE '('         {$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
> -        TermArg
> -        TermArgItem
> -        TermArgItem
> -        OptionalListString
> -        OptionalListString
> -        OptionalReference
> -        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
> -    | PARSEOP_LOADTABLE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LoadTerm
> -    : PARSEOP_LOAD '('              {$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);}
> -        NameString
> -        RequiredTarget
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_LOAD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LocalTerm
> -    : PARSEOP_LOCAL0                {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
> -    | PARSEOP_LOCAL1                {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
> -    | PARSEOP_LOCAL2                {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
> -    | PARSEOP_LOCAL3                {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
> -    | PARSEOP_LOCAL4                {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
> -    | PARSEOP_LOCAL5                {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
> -    | PARSEOP_LOCAL6                {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
> -    | PARSEOP_LOCAL7                {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
> -    ;
> -
> -LOrTerm
> -    : PARSEOP_LOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_LOR '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -MatchTerm
> -    : PARSEOP_MATCH '('             {$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);}
> -        TermArg
> -        ',' MatchOpKeyword
> -        TermArgItem
> -        ',' MatchOpKeyword
> -        TermArgItem
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
> -    | PARSEOP_MATCH '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -MethodTerm
> -    : PARSEOP_METHOD  '('           {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
> -        NameString
> -        OptionalByteConstExpr       {UtCheckIntegerRange ($5, 0, 7);}
> -        OptionalSerializeRuleKeyword
> -        OptionalByteConstExpr
> -        OptionalParameterTypePackage
> -        OptionalParameterTypesPackage
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,7,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
> -                                        $5,$7,$8,$9,$10,$13);}
> -    | PARSEOP_METHOD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -MidTerm
> -    : PARSEOP_MID '('               {$<n>$ = TrCreateLeafNode (PARSEOP_MID);}
> -        TermArg
> -        TermArgItem
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
> -    | PARSEOP_MID '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ModTerm
> -    : PARSEOP_MOD '('               {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_MOD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -MultiplyTerm
> -    : PARSEOP_MULTIPLY '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_MULTIPLY '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -MutexTerm
> -    : PARSEOP_MUTEX '('             {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);}
> -        NameString
> -        ',' ByteConstExpr
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
> -    | PARSEOP_MUTEX '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -NameTerm
> -    : PARSEOP_NAME '('              {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);}
> -        NameString
> -        ',' DataObject
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
> -    | PARSEOP_NAME '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -NAndTerm
> -    : PARSEOP_NAND '('              {$<n>$ = TrCreateLeafNode (PARSEOP_NAND);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_NAND '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -NoOpTerm
> -    : PARSEOP_NOOP                  {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
> -    ;
> -
> -NOrTerm
> -    : PARSEOP_NOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_NOR);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_NOR '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -NotifyTerm
> -    : PARSEOP_NOTIFY '('            {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
> -        SuperName
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_NOTIFY '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -NotTerm
> -    : PARSEOP_NOT '('               {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_NOT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ObjectTypeTerm
> -    : PARSEOP_OBJECTTYPE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
> -        ObjectTypeName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_OBJECTTYPE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -OffsetTerm
> -    : PARSEOP_OFFSET '('
> -        AmlPackageLengthTerm
> -        ')'                         {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
> -    | PARSEOP_OFFSET '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -OpRegionTerm
> -    : PARSEOP_OPERATIONREGION '('   {$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
> -        NameString
> -        ',' OpRegionSpaceIdTerm
> -        TermArgItem
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
> -                                        $6,$7,$8);}
> -    | PARSEOP_OPERATIONREGION '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -OpRegionSpaceIdTerm
> -    : RegionSpaceKeyword            {}
> -    | ByteConst                     {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
> -    ;
> -
> -OrTerm
> -    : PARSEOP_OR '('                {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_OR '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -PackageTerm
> -    : PARSEOP_PACKAGE               {$<n>$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
> -        OptionalDataCount
> -        '{' PackageList '}'         {$$ = TrLinkChildren ($<n>2,2,$3,$5);}
> -
> -PowerResTerm
> -    : PARSEOP_POWERRESOURCE '('     {$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
> -        NameString
> -        ',' ByteConstExpr
> -        ',' WordConstExpr
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,4,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
> -                                        $6,$8,$11);}
> -    | PARSEOP_POWERRESOURCE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -PrintfTerm
> -    : PARSEOP_PRINTF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);}
> -        StringData
> -        PrintfArgList
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_PRINTF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -PrintfArgList
> -    :                               {$$ = NULL;}
> -    | TermArg                       {$$ = $1;}
> -    | PrintfArgList ','
> -       TermArg                      {$$ = TrLinkPeerNode ($1, $3);}
> -    ;
> -
> -ProcessorTerm
> -    : PARSEOP_PROCESSOR '('         {$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
> -        NameString
> -        ',' ByteConstExpr
> -        OptionalDWordConstExpr
> -        OptionalByteConstExpr
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,5,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
> -                                        $6,$7,$8,$11);}
> -    | PARSEOP_PROCESSOR '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -RawDataBufferTerm
> -    : PARSEOP_DATABUFFER  '('       {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);}
> -        OptionalWordConst
> -        ')' '{'
> -            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_DATABUFFER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -/*
> - * In RefOf, the node isn't really a target, but we can't keep track of it after
> - * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
> - */
> -RefOfTerm
> -    : PARSEOP_REFOF '('             {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,
> -                                        TrSetNodeFlags ($4, NODE_IS_TARGET));}
> -    | PARSEOP_REFOF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ReleaseTerm
> -    : PARSEOP_RELEASE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_RELEASE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ResetTerm
> -    : PARSEOP_RESET '('             {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_RESET '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ReturnTerm
> -    : PARSEOP_RETURN '('            {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);}
> -        OptionalReturnArg
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_RETURN                {$$ = TrLinkChildren (
> -                                        TrCreateLeafNode (PARSEOP_RETURN),1,
> -                                        TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO),
> -                                            NODE_IS_NULL_RETURN));}
> -    | PARSEOP_RETURN '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ScopeTerm
> -    : PARSEOP_SCOPE '('             {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);}
> -        NameString
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
> -    | PARSEOP_SCOPE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ShiftLeftTerm
> -    : PARSEOP_SHIFTLEFT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_SHIFTLEFT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ShiftRightTerm
> -    : PARSEOP_SHIFTRIGHT '('        {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_SHIFTRIGHT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SignalTerm
> -    : PARSEOP_SIGNAL '('            {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_SIGNAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SizeOfTerm
> -    : PARSEOP_SIZEOF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_SIZEOF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SleepTerm
> -    : PARSEOP_SLEEP '('             {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);}
> -        TermArg
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_SLEEP '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -StallTerm
> -    : PARSEOP_STALL '('             {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);}
> -        TermArg
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_STALL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -StoreTerm
> -    : PARSEOP_STORE '('             {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);}
> -        TermArg
> -        ',' SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,
> -                                        TrSetNodeFlags ($6, NODE_IS_TARGET));}
> -    | PARSEOP_STORE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SubtractTerm
> -    : PARSEOP_SUBTRACT '('          {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_SUBTRACT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SwitchTerm
> -    : PARSEOP_SWITCH '('            {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);}
> -        TermArg
> -        ')' '{'
> -            CaseDefaultTermList '}'
> -                                    {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_SWITCH '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ThermalZoneTerm
> -    : PARSEOP_THERMALZONE '('       {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
> -        NameString
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
> -    | PARSEOP_THERMALZONE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -TimerTerm
> -    : PARSEOP_TIMER '('             {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);}
> -        ')'                         {$$ = TrLinkChildren ($<n>3,0);}
> -    | PARSEOP_TIMER                 {$$ = TrLinkChildren (
> -                                        TrCreateLeafNode (PARSEOP_TIMER),0);}
> -    | PARSEOP_TIMER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToBCDTerm
> -    : PARSEOP_TOBCD '('             {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_TOBCD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToBufferTerm
> -    : PARSEOP_TOBUFFER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_TOBUFFER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToDecimalStringTerm
> -    : PARSEOP_TODECIMALSTRING '('   {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_TODECIMALSTRING '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToHexStringTerm
> -    : PARSEOP_TOHEXSTRING '('       {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_TOHEXSTRING '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToIntegerTerm
> -    : PARSEOP_TOINTEGER '('         {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_TOINTEGER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToPLDTerm
> -    : PARSEOP_TOPLD '('             {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);}
> -        PldKeywordList
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_TOPLD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -PldKeywordList
> -    :                               {$$ = NULL;}
> -    | PldKeyword
> -        PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkChildren ($1,1,$3);}
> -    | PldKeyword
> -        PARSEOP_EXP_EQUALS String   {$$ = TrLinkChildren ($1,1,$3);}
> -    | PldKeywordList ','            /* Allows a trailing comma at list end */
> -    | PldKeywordList ','
> -        PldKeyword
> -        PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
> -    | PldKeywordList ','
> -        PldKeyword
> -        PARSEOP_EXP_EQUALS String   {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
> -    ;
> -
> -
> -ToStringTerm
> -    : PARSEOP_TOSTRING '('          {$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
> -        TermArg
> -        OptionalCount
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_TOSTRING '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToUUIDTerm
> -    : PARSEOP_TOUUID '('
> -        StringData ')'              {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
> -    | PARSEOP_TOUUID '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -UnicodeTerm
> -    : PARSEOP_UNICODE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);}
> -        StringData
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,0,$4);}
> -    | PARSEOP_UNICODE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -UnloadTerm
> -    : PARSEOP_UNLOAD '('            {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_UNLOAD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -WaitTerm
> -    : PARSEOP_WAIT '('              {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);}
> -        SuperName
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_WAIT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -XOrTerm
> -    : PARSEOP_XOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_XOR '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -WhileTerm
> -    : PARSEOP_WHILE '('             {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
> -        TermArg
> -        ')' '{' TermList '}'
> -                                    {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_WHILE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -
> -
> -/*******************************************************************************
> - *
> - * Production rules for the symbolic (c-style) operators
> - *
> - ******************************************************************************/
> -
> -/*
> - * ASL Extensions: C-style math/logical operators and expressions.
> - * The implementation transforms these operators into the standard
> - * AML opcodes and syntax.
> - *
> - * Supported operators and precedence rules (high-to-low)
> - *
> - * NOTE: The operator precedence and associativity rules are
> - * implemented by the tokens in asltokens.y
> - *
> - * (left-to-right):
> - *  1)      ( ) expr++ expr--
> - *
> - * (right-to-left):
> - *  2)      ! ~
> - *
> - * (left-to-right):
> - *  3)      *   /   %
> - *  4)      +   -
> - *  5)      >>  <<
> - *  6)      <   >   <=  >=
> - *  7)      ==  !=
> - *  8)      &
> - *  9)      ^
> - *  10)     |
> - *  11)     &&
> - *  12)     ||
> - *
> - * (right-to-left):
> - *  13)     = += -= *= /= %= <<= >>= &= ^= |=
> - */
> -
> -
> -/*******************************************************************************
> - *
> - * Basic operations for math and logical expressions.
> - *
> - ******************************************************************************/
> -
> -Expression
> -
> -    /* Unary operators */
> -
> -    : PARSEOP_EXP_LOGICAL_NOT           {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>2,1,$3);}
> -    | PARSEOP_EXP_NOT                   {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>2,2,$3,TrCreateNullTarget ());}
> -
> -    | SuperName PARSEOP_EXP_INCREMENT   {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
> -                                        {$$ = TrLinkChildren ($<n>3,1,$1);}
> -    | SuperName PARSEOP_EXP_DECREMENT   {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
> -                                        {$$ = TrLinkChildren ($<n>3,1,$1);}
> -
> -    /* Binary operators: math and logical */
> -
> -    | TermArg PARSEOP_EXP_ADD           {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_DIVIDE        {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,4,$1,$4,TrCreateNullTarget (),
> -                                            TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_MODULO        {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_MULTIPLY      {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_SHIFT_LEFT    {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_SHIFT_RIGHT   {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_SUBTRACT      {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -
> -    | TermArg PARSEOP_EXP_AND           {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_OR            {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_XOR           {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -
> -    | TermArg PARSEOP_EXP_GREATER       {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -    | TermArg PARSEOP_EXP_GREATER_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATEREQUAL);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -    | TermArg PARSEOP_EXP_LESS          {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -    | TermArg PARSEOP_EXP_LESS_EQUAL    {$<n>$ = TrCreateLeafNode (PARSEOP_LLESSEQUAL);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -
> -    | TermArg PARSEOP_EXP_EQUAL         {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -    | TermArg PARSEOP_EXP_NOT_EQUAL     {$<n>$ = TrCreateLeafNode (PARSEOP_LNOTEQUAL);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -
> -    | TermArg PARSEOP_EXP_LOGICAL_AND   {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -    | TermArg PARSEOP_EXP_LOGICAL_OR    {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -
> -    /* Parentheses */
> -
> -    | '(' TermArg ')'                   { $$ = $2;}
> -
> -    /* Index term -- "= BUF1[5]" on right-hand side of an equals (source) */
> -
> -    | SuperName PARSEOP_EXP_INDEX_LEFT
> -        TermArg PARSEOP_EXP_INDEX_RIGHT {$$ = TrCreateLeafNode (PARSEOP_INDEX);
> -                                        TrLinkChildren ($$,3,$1,$3,TrCreateNullTarget ());}
> -    ;
> -
> -    /* Index term -- "BUF1[5] = " on left-hand side of an equals (target) */
> -
> -IndexExpTerm
> -
> -    : SuperName PARSEOP_EXP_INDEX_LEFT
> -        TermArg PARSEOP_EXP_INDEX_RIGHT {$$ = TrCreateLeafNode (PARSEOP_INDEX);
> -                                        TrLinkChildren ($$,3,$1,$3,TrCreateNullTarget ());}
> -    ;
> -
> -
> -/*******************************************************************************
> - *
> - * All assignment-type operations -- math and logical. Includes simple
> - * assignment and compound assignments.
> - *
> - ******************************************************************************/
> -
> -EqualsTerm
> -
> -    /* Simple Store() operation */
> -
> -    : SuperName PARSEOP_EXP_EQUALS
> -        TermArg                         {$$ = TrCreateAssignmentNode ($1, $3);}
> -
> -    /* Compound assignments -- Add (operand, operand, target) */
> -
> -    | TermArg PARSEOP_EXP_ADD_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_DIV_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,4,$1,$4,TrCreateNullTarget (),
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_MOD_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_MUL_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_SHL_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_SHR_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_SUB_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_AND_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_OR_EQ         {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_XOR_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -    ;
> -
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Parameter Keyword Terms
> - *
> - ******************************************************************************/
> -
> -AccessAttribKeyword
> -    : PARSEOP_ACCESSATTRIB_BLOCK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
> -    | PARSEOP_ACCESSATTRIB_BLOCK_CALL       {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
> -    | PARSEOP_ACCESSATTRIB_BYTE             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
> -    | PARSEOP_ACCESSATTRIB_QUICK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
> -    | PARSEOP_ACCESSATTRIB_SND_RCV          {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
> -    | PARSEOP_ACCESSATTRIB_WORD             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
> -    | PARSEOP_ACCESSATTRIB_WORD_CALL        {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
> -    | PARSEOP_ACCESSATTRIB_MULTIBYTE '('    {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_MULTIBYTE);}
> -        ByteConst
> -        ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_ACCESSATTRIB_RAW_BYTES '('    {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_BYTES);}
> -        ByteConst
> -        ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_ACCESSATTRIB_RAW_PROCESS '('  {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_PROCESS);}
> -        ByteConst
> -        ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    ;
> -
> -AccessTypeKeyword
> -    : PARSEOP_ACCESSTYPE_ANY                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
> -    | PARSEOP_ACCESSTYPE_BYTE               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
> -    | PARSEOP_ACCESSTYPE_WORD               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
> -    | PARSEOP_ACCESSTYPE_DWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
> -    | PARSEOP_ACCESSTYPE_QWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
> -    | PARSEOP_ACCESSTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
> -    ;
> -
> -AddressingModeKeyword
> -    : PARSEOP_ADDRESSINGMODE_7BIT           {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_7BIT);}
> -    | PARSEOP_ADDRESSINGMODE_10BIT          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_10BIT);}
> -    ;
> -
> -AddressKeyword
> -    : PARSEOP_ADDRESSTYPE_MEMORY            {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
> -    | PARSEOP_ADDRESSTYPE_RESERVED          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
> -    | PARSEOP_ADDRESSTYPE_NVS               {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
> -    | PARSEOP_ADDRESSTYPE_ACPI              {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
> -    ;
> -
> -AddressSpaceKeyword
> -    : ByteConst                             {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);}
> -    | RegionSpaceKeyword                    {}
> -    ;
> -
> -BitsPerByteKeyword
> -    : PARSEOP_BITSPERBYTE_FIVE              {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_FIVE);}
> -    | PARSEOP_BITSPERBYTE_SIX               {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SIX);}
> -    | PARSEOP_BITSPERBYTE_SEVEN             {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SEVEN);}
> -    | PARSEOP_BITSPERBYTE_EIGHT             {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_EIGHT);}
> -    | PARSEOP_BITSPERBYTE_NINE              {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_NINE);}
> -    ;
> -
> -ClockPhaseKeyword
> -    : PARSEOP_CLOCKPHASE_FIRST              {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_FIRST);}
> -    | PARSEOP_CLOCKPHASE_SECOND             {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_SECOND);}
> -    ;
> -
> -ClockPolarityKeyword
> -    : PARSEOP_CLOCKPOLARITY_LOW             {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_LOW);}
> -    | PARSEOP_CLOCKPOLARITY_HIGH            {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_HIGH);}
> -    ;
> -
> -DecodeKeyword
> -    : PARSEOP_DECODETYPE_POS                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
> -    | PARSEOP_DECODETYPE_SUB                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
> -    ;
> -
> -DevicePolarityKeyword
> -    : PARSEOP_DEVICEPOLARITY_LOW            {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_LOW);}
> -    | PARSEOP_DEVICEPOLARITY_HIGH           {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_HIGH);}
> -    ;
> -
> -DMATypeKeyword
> -    : PARSEOP_DMATYPE_A                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
> -    | PARSEOP_DMATYPE_COMPATIBILITY         {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
> -    | PARSEOP_DMATYPE_B                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
> -    | PARSEOP_DMATYPE_F                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
> -    ;
> -
> -EndianKeyword
> -    : PARSEOP_ENDIAN_LITTLE                 {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_LITTLE);}
> -    | PARSEOP_ENDIAN_BIG                    {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_BIG);}
> -    ;
> -
> -FlowControlKeyword
> -    : PARSEOP_FLOWCONTROL_HW                {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_HW);}
> -    | PARSEOP_FLOWCONTROL_NONE              {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_NONE);}
> -    | PARSEOP_FLOWCONTROL_SW                {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_SW);}
> -    ;
> -
> -InterruptLevel
> -    : PARSEOP_INTLEVEL_ACTIVEBOTH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEBOTH);}
> -    | PARSEOP_INTLEVEL_ACTIVEHIGH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
> -    | PARSEOP_INTLEVEL_ACTIVELOW            {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
> -    ;
> -
> -InterruptTypeKeyword
> -    : PARSEOP_INTTYPE_EDGE                  {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
> -    | PARSEOP_INTTYPE_LEVEL                 {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
> -    ;
> -
> -IODecodeKeyword
> -    : PARSEOP_IODECODETYPE_16               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
> -    | PARSEOP_IODECODETYPE_10               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
> -    ;
> -
> -IoRestrictionKeyword
> -    : PARSEOP_IORESTRICT_IN                 {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);}
> -    | PARSEOP_IORESTRICT_OUT                {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);}
> -    | PARSEOP_IORESTRICT_NONE               {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);}
> -    | PARSEOP_IORESTRICT_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);}
> -    ;
> -
> -LockRuleKeyword
> -    : PARSEOP_LOCKRULE_LOCK                 {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
> -    | PARSEOP_LOCKRULE_NOLOCK               {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
> -    ;
> -
> -MatchOpKeyword
> -    : PARSEOP_MATCHTYPE_MTR                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
> -    | PARSEOP_MATCHTYPE_MEQ                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
> -    | PARSEOP_MATCHTYPE_MLE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
> -    | PARSEOP_MATCHTYPE_MLT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
> -    | PARSEOP_MATCHTYPE_MGE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
> -    | PARSEOP_MATCHTYPE_MGT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
> -    ;
> -
> -MaxKeyword
> -    : PARSEOP_MAXTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
> -    | PARSEOP_MAXTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
> -    ;
> -
> -MemTypeKeyword
> -    : PARSEOP_MEMTYPE_CACHEABLE             {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
> -    | PARSEOP_MEMTYPE_WRITECOMBINING        {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
> -    | PARSEOP_MEMTYPE_PREFETCHABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
> -    | PARSEOP_MEMTYPE_NONCACHEABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
> -    ;
> -
> -MinKeyword
> -    : PARSEOP_MINTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
> -    | PARSEOP_MINTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
> -    ;
> -
> -ObjectTypeKeyword
> -    : PARSEOP_OBJECTTYPE_UNK                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
> -    | PARSEOP_OBJECTTYPE_INT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
> -    | PARSEOP_OBJECTTYPE_STR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
> -    | PARSEOP_OBJECTTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
> -    | PARSEOP_OBJECTTYPE_PKG                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
> -    | PARSEOP_OBJECTTYPE_FLD                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
> -    | PARSEOP_OBJECTTYPE_DEV                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
> -    | PARSEOP_OBJECTTYPE_EVT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
> -    | PARSEOP_OBJECTTYPE_MTH                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
> -    | PARSEOP_OBJECTTYPE_MTX                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
> -    | PARSEOP_OBJECTTYPE_OPR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
> -    | PARSEOP_OBJECTTYPE_POW                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
> -    | PARSEOP_OBJECTTYPE_PRO                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
> -    | PARSEOP_OBJECTTYPE_THZ                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
> -    | PARSEOP_OBJECTTYPE_BFF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
> -    | PARSEOP_OBJECTTYPE_DDB                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
> -    ;
> -
> -ParityTypeKeyword
> -    : PARSEOP_PARITYTYPE_SPACE              {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_SPACE);}
> -    | PARSEOP_PARITYTYPE_MARK               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_MARK);}
> -    | PARSEOP_PARITYTYPE_ODD                {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_ODD);}
> -    | PARSEOP_PARITYTYPE_EVEN               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_EVEN);}
> -    | PARSEOP_PARITYTYPE_NONE               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_NONE);}
> -    ;
> -
> -PinConfigByte
> -    : PinConfigKeyword                      {$$ = $1;}
> -    | ByteConstExpr                         {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
> -    ;
> -
> -PinConfigKeyword
> -    : PARSEOP_PIN_NOPULL                    {$$ = TrCreateLeafNode (PARSEOP_PIN_NOPULL);}
> -    | PARSEOP_PIN_PULLDOWN                  {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDOWN);}
> -    | PARSEOP_PIN_PULLUP                    {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLUP);}
> -    | PARSEOP_PIN_PULLDEFAULT               {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDEFAULT);}
> -    ;
> -
> -PldKeyword
> -    : PARSEOP_PLD_REVISION                  {$$ = TrCreateLeafNode (PARSEOP_PLD_REVISION);}
> -    | PARSEOP_PLD_IGNORECOLOR               {$$ = TrCreateLeafNode (PARSEOP_PLD_IGNORECOLOR);}
> -    | PARSEOP_PLD_RED                       {$$ = TrCreateLeafNode (PARSEOP_PLD_RED);}
> -    | PARSEOP_PLD_GREEN                     {$$ = TrCreateLeafNode (PARSEOP_PLD_GREEN);}
> -    | PARSEOP_PLD_BLUE                      {$$ = TrCreateLeafNode (PARSEOP_PLD_BLUE);}
> -    | PARSEOP_PLD_WIDTH                     {$$ = TrCreateLeafNode (PARSEOP_PLD_WIDTH);}
> -    | PARSEOP_PLD_HEIGHT                    {$$ = TrCreateLeafNode (PARSEOP_PLD_HEIGHT);}
> -    | PARSEOP_PLD_USERVISIBLE               {$$ = TrCreateLeafNode (PARSEOP_PLD_USERVISIBLE);}
> -    | PARSEOP_PLD_DOCK                      {$$ = TrCreateLeafNode (PARSEOP_PLD_DOCK);}
> -    | PARSEOP_PLD_LID                       {$$ = TrCreateLeafNode (PARSEOP_PLD_LID);}
> -    | PARSEOP_PLD_PANEL                     {$$ = TrCreateLeafNode (PARSEOP_PLD_PANEL);}
> -    | PARSEOP_PLD_VERTICALPOSITION          {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALPOSITION);}
> -    | PARSEOP_PLD_HORIZONTALPOSITION        {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALPOSITION);}
> -    | PARSEOP_PLD_SHAPE                     {$$ = TrCreateLeafNode (PARSEOP_PLD_SHAPE);}
> -    | PARSEOP_PLD_GROUPORIENTATION          {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPORIENTATION);}
> -    | PARSEOP_PLD_GROUPTOKEN                {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPTOKEN);}
> -    | PARSEOP_PLD_GROUPPOSITION             {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPPOSITION);}
> -    | PARSEOP_PLD_BAY                       {$$ = TrCreateLeafNode (PARSEOP_PLD_BAY);}
> -    | PARSEOP_PLD_EJECTABLE                 {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTABLE);}
> -    | PARSEOP_PLD_EJECTREQUIRED             {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTREQUIRED);}
> -    | PARSEOP_PLD_CABINETNUMBER             {$$ = TrCreateLeafNode (PARSEOP_PLD_CABINETNUMBER);}
> -    | PARSEOP_PLD_CARDCAGENUMBER            {$$ = TrCreateLeafNode (PARSEOP_PLD_CARDCAGENUMBER);}
> -    | PARSEOP_PLD_REFERENCE                 {$$ = TrCreateLeafNode (PARSEOP_PLD_REFERENCE);}
> -    | PARSEOP_PLD_ROTATION                  {$$ = TrCreateLeafNode (PARSEOP_PLD_ROTATION);}
> -    | PARSEOP_PLD_ORDER                     {$$ = TrCreateLeafNode (PARSEOP_PLD_ORDER);}
> -    | PARSEOP_PLD_RESERVED                  {$$ = TrCreateLeafNode (PARSEOP_PLD_RESERVED);}
> -    | PARSEOP_PLD_VERTICALOFFSET            {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALOFFSET);}
> -    | PARSEOP_PLD_HORIZONTALOFFSET          {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALOFFSET);}
> -    ;
> -
> -RangeTypeKeyword
> -    : PARSEOP_RANGETYPE_ISAONLY             {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
> -    | PARSEOP_RANGETYPE_NONISAONLY          {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
> -    | PARSEOP_RANGETYPE_ENTIRE              {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
> -    ;
> -
> -RegionSpaceKeyword
> -    : PARSEOP_REGIONSPACE_IO                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
> -    | PARSEOP_REGIONSPACE_MEM               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
> -    | PARSEOP_REGIONSPACE_PCI               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
> -    | PARSEOP_REGIONSPACE_EC                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
> -    | PARSEOP_REGIONSPACE_SMBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
> -    | PARSEOP_REGIONSPACE_CMOS              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
> -    | PARSEOP_REGIONSPACE_PCIBAR            {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
> -    | PARSEOP_REGIONSPACE_IPMI              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);}
> -    | PARSEOP_REGIONSPACE_GPIO              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GPIO);}
> -    | PARSEOP_REGIONSPACE_GSBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GSBUS);}
> -    | PARSEOP_REGIONSPACE_PCC               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCC);}
> -    | PARSEOP_REGIONSPACE_FFIXEDHW          {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_FFIXEDHW);}
> -    ;
> -
> -ResourceTypeKeyword
> -    : PARSEOP_RESOURCETYPE_CONSUMER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
> -    | PARSEOP_RESOURCETYPE_PRODUCER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
> -    ;
> -
> -SerializeRuleKeyword
> -    : PARSEOP_SERIALIZERULE_SERIAL          {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
> -    | PARSEOP_SERIALIZERULE_NOTSERIAL       {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
> -    ;
> -
> -ShareTypeKeyword
> -    : PARSEOP_SHARETYPE_SHARED              {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
> -    | PARSEOP_SHARETYPE_EXCLUSIVE           {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
> -    | PARSEOP_SHARETYPE_SHAREDWAKE          {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHAREDWAKE);}
> -    | PARSEOP_SHARETYPE_EXCLUSIVEWAKE       {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVEWAKE);}
> -   ;
> -
> -SlaveModeKeyword
> -    : PARSEOP_SLAVEMODE_CONTROLLERINIT      {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_CONTROLLERINIT);}
> -    | PARSEOP_SLAVEMODE_DEVICEINIT          {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_DEVICEINIT);}
> -    ;
> -
> -StopBitsKeyword
> -    : PARSEOP_STOPBITS_TWO                  {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_TWO);}
> -    | PARSEOP_STOPBITS_ONEPLUSHALF          {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONEPLUSHALF);}
> -    | PARSEOP_STOPBITS_ONE                  {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONE);}
> -    | PARSEOP_STOPBITS_ZERO                 {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ZERO);}
> -    ;
> -
> -TranslationKeyword
> -    : PARSEOP_TRANSLATIONTYPE_SPARSE        {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
> -    | PARSEOP_TRANSLATIONTYPE_DENSE         {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
> -    ;
> -
> -TypeKeyword
> -    : PARSEOP_TYPE_TRANSLATION              {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
> -    | PARSEOP_TYPE_STATIC                   {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
> -    ;
> -
> -UpdateRuleKeyword
> -    : PARSEOP_UPDATERULE_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
> -    | PARSEOP_UPDATERULE_ONES               {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
> -    | PARSEOP_UPDATERULE_ZEROS              {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
> -    ;
> -
> -WireModeKeyword
> -    : PARSEOP_WIREMODE_FOUR                 {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_FOUR);}
> -    | PARSEOP_WIREMODE_THREE                {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_THREE);}
> -    ;
> -
> -XferSizeKeyword
> -    : PARSEOP_XFERSIZE_8                    {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_8,   0);}
> -    | PARSEOP_XFERSIZE_16                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_16,  1);}
> -    | PARSEOP_XFERSIZE_32                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32,  2);}
> -    | PARSEOP_XFERSIZE_64                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_64,  3);}
> -    | PARSEOP_XFERSIZE_128                  {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_128, 4);}
> -    | PARSEOP_XFERSIZE_256                  {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_256, 5);}
> -    ;
> -
> -XferTypeKeyword
> -    : PARSEOP_XFERTYPE_8                    {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
> -    | PARSEOP_XFERTYPE_8_16                 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
> -    | PARSEOP_XFERTYPE_16                   {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
> -    ;
> -
> -
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Resource Template Terms
> - *
> - ******************************************************************************/
> -
> -/*
> - * Note: Create two default nodes to allow conversion to a Buffer AML opcode
> - * Also, insert the EndTag at the end of the template.
> - */
> -ResourceTemplateTerm
> -    : PARSEOP_RESOURCETEMPLATE OptionalParentheses
> -        '{'
> -        ResourceMacroList '}'       {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
> -                                          TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
> -                                          TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
> -                                          $4,
> -                                          TrCreateLeafNode (PARSEOP_ENDTAG));}
> -    ;
> -
> -OptionalParentheses
> -    :                               {$$ = NULL;}
> -    | '(' ')'                       {$$ = NULL;}
> -    ;
> -
> -ResourceMacroList
> -    :                               {$$ = NULL;}
> -    | ResourceMacroList
> -        ResourceMacroTerm           {$$ = TrLinkPeerNode ($1,$2);}
> -    ;
> -
> -ResourceMacroTerm
> -    : DMATerm                       {}
> -    | DWordIOTerm                   {}
> -    | DWordMemoryTerm               {}
> -    | DWordSpaceTerm                {}
> -    | EndDependentFnTerm            {}
> -    | ExtendedIOTerm                {}
> -    | ExtendedMemoryTerm            {}
> -    | ExtendedSpaceTerm             {}
> -    | FixedDmaTerm                  {}
> -    | FixedIOTerm                   {}
> -    | GpioIntTerm                   {}
> -    | GpioIoTerm                    {}
> -    | I2cSerialBusTerm              {}
> -    | I2cSerialBusTermV2            {}
> -    | InterruptTerm                 {}
> -    | IOTerm                        {}
> -    | IRQNoFlagsTerm                {}
> -    | IRQTerm                       {}
> -    | Memory24Term                  {}
> -    | Memory32FixedTerm             {}
> -    | Memory32Term                  {}
> -    | QWordIOTerm                   {}
> -    | QWordMemoryTerm               {}
> -    | QWordSpaceTerm                {}
> -    | RegisterTerm                  {}
> -    | SpiSerialBusTerm              {}
> -    | SpiSerialBusTermV2            {}
> -    | StartDependentFnNoPriTerm     {}
> -    | StartDependentFnTerm          {}
> -    | UartSerialBusTerm             {}
> -    | UartSerialBusTermV2           {}
> -    | VendorLongTerm                {}
> -    | VendorShortTerm               {}
> -    | WordBusNumberTerm             {}
> -    | WordIOTerm                    {}
> -    | WordSpaceTerm                 {}
> -    ;
> -
> -DMATerm
> -    : PARSEOP_DMA '('               {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
> -        DMATypeKeyword
> -        OptionalBusMasterKeyword
> -        ',' XferTypeKeyword
> -        OptionalNameString_Last
> -        ')' '{'
> -            ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
> -    | PARSEOP_DMA '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DWordIOTerm
> -    : PARSEOP_DWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
> -        OptionalResourceType_First
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalDecodeType
> -        OptionalRangeType
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString
> -        OptionalType
> -        OptionalTranslationType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,15,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
> -    | PARSEOP_DWORDIO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DWordMemoryTerm
> -    : PARSEOP_DWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
> -        OptionalResourceType_First
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalMemType
> -        ',' OptionalReadWriteKeyword
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString
> -        OptionalAddressRange
> -        OptionalType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,16,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
> -    | PARSEOP_DWORDMEMORY '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DWordSpaceTerm
> -    : PARSEOP_DWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
> -        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
> -        OptionalResourceType
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        ',' ByteConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,14,
> -                                        $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
> -    | PARSEOP_DWORDSPACE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -EndDependentFnTerm
> -    : PARSEOP_ENDDEPENDENTFN '('
> -        ')'                         {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
> -    | PARSEOP_ENDDEPENDENTFN '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ExtendedIOTerm
> -    : PARSEOP_EXTENDEDIO '('        {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
> -        OptionalResourceType_First
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalDecodeType
> -        OptionalRangeType
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        OptionalQWordConstExpr
> -        OptionalNameString
> -        OptionalType
> -        OptionalTranslationType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,14,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
> -    | PARSEOP_EXTENDEDIO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ExtendedMemoryTerm
> -    : PARSEOP_EXTENDEDMEMORY '('    {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
> -        OptionalResourceType_First
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalMemType
> -        ',' OptionalReadWriteKeyword
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        OptionalQWordConstExpr
> -        OptionalNameString
> -        OptionalAddressRange
> -        OptionalType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,15,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
> -    | PARSEOP_EXTENDEDMEMORY '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ExtendedSpaceTerm
> -    : PARSEOP_EXTENDEDSPACE '('     {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
> -        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
> -        OptionalResourceType
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        ',' ByteConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        OptionalQWordConstExpr
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,13,
> -                                        $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
> -    | PARSEOP_EXTENDEDSPACE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FixedDmaTerm
> -    : PARSEOP_FIXEDDMA '('          {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
> -        WordConstExpr               /* 04: DMA RequestLines */
> -        ',' WordConstExpr           /* 06: DMA Channels */
> -        OptionalXferSize            /* 07: DMA TransferSize */
> -        OptionalNameString          /* 08: DescriptorName */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
> -    | PARSEOP_FIXEDDMA '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FixedIOTerm
> -    : PARSEOP_FIXEDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
> -        WordConstExpr
> -        ',' ByteConstExpr
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
> -    | PARSEOP_FIXEDIO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -GpioIntTerm
> -    : PARSEOP_GPIO_INT '('          {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
> -        InterruptTypeKeyword        /* 04: InterruptType */
> -        ',' InterruptLevel          /* 06: InterruptLevel */
> -        OptionalShareType           /* 07: SharedType */
> -        ',' PinConfigByte           /* 09: PinConfig */
> -        OptionalWordConstExpr       /* 10: DebounceTimeout */
> -        ',' StringData              /* 12: ResourceSource */
> -        OptionalByteConstExpr       /* 13: ResourceSourceIndex */
> -        OptionalResourceType        /* 14: ResourceType */
> -        OptionalNameString          /* 15: DescriptorName */
> -        OptionalBuffer_Last         /* 16: VendorData */
> -        ')' '{'
> -            DWordConstExpr '}'      {$$ = TrLinkChildren ($<n>3,11,
> -                                        $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
> -    | PARSEOP_GPIO_INT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -GpioIoTerm
> -    : PARSEOP_GPIO_IO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
> -        OptionalShareType_First     /* 04: SharedType */
> -        ',' PinConfigByte           /* 06: PinConfig */
> -        OptionalWordConstExpr       /* 07: DebounceTimeout */
> -        OptionalWordConstExpr       /* 08: DriveStrength */
> -        OptionalIoRestriction       /* 09: IoRestriction */
> -        ',' StringData              /* 11: ResourceSource */
> -        OptionalByteConstExpr       /* 12: ResourceSourceIndex */
> -        OptionalResourceType        /* 13: ResourceType */
> -        OptionalNameString          /* 14: DescriptorName */
> -        OptionalBuffer_Last         /* 15: VendorData */
> -        ')' '{'
> -            DWordList '}'           {$$ = TrLinkChildren ($<n>3,11,
> -                                        $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
> -    | PARSEOP_GPIO_IO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -I2cSerialBusTerm
> -    : PARSEOP_I2C_SERIALBUS '('     {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
> -        WordConstExpr               /* 04: SlaveAddress */
> -        OptionalSlaveMode           /* 05: SlaveMode */
> -        ',' DWordConstExpr          /* 07: ConnectionSpeed */
> -        OptionalAddressingMode      /* 08: AddressingMode */
> -        ',' StringData              /* 10: ResourceSource */
> -        OptionalByteConstExpr       /* 11: ResourceSourceIndex */
> -        OptionalResourceType        /* 12: ResourceType */
> -        OptionalNameString          /* 13: DescriptorName */
> -        OptionalBuffer_Last         /* 14: VendorData */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,10,
> -                                        $4,$5,$7,$8,$10,$11,$12,$13,
> -                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$14);}
> -    | PARSEOP_I2C_SERIALBUS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -I2cSerialBusTermV2
> -    : PARSEOP_I2C_SERIALBUS_V2 '('  {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS_V2);}
> -        WordConstExpr               /* 04: SlaveAddress */
> -        OptionalSlaveMode           /* 05: SlaveMode */
> -        ',' DWordConstExpr          /* 07: ConnectionSpeed */
> -        OptionalAddressingMode      /* 08: AddressingMode */
> -        ',' StringData              /* 10: ResourceSource */
> -        OptionalByteConstExpr       /* 11: ResourceSourceIndex */
> -        OptionalResourceType        /* 12: ResourceType */
> -        OptionalNameString          /* 13: DescriptorName */
> -        OptionalShareType           /* 14: Share */
> -        OptionalBuffer_Last         /* 15: VendorData */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,10,
> -                                        $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
> -    | PARSEOP_I2C_SERIALBUS_V2 '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -InterruptTerm
> -    : PARSEOP_INTERRUPT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
> -        OptionalResourceType_First
> -        ',' InterruptTypeKeyword
> -        ',' InterruptLevel
> -        OptionalShareType
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString_Last
> -        ')' '{'
> -            DWordList '}'           {$$ = TrLinkChildren ($<n>3,8,
> -                                        $4,$6,$8,$9,$10,$11,$12,$15);}
> -    | PARSEOP_INTERRUPT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IOTerm
> -    : PARSEOP_IO '('                {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
> -        IODecodeKeyword
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' ByteConstExpr
> -        ',' ByteConstExpr
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
> -    | PARSEOP_IO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IRQNoFlagsTerm
> -    : PARSEOP_IRQNOFLAGS '('        {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
> -        OptionalNameString_First
> -        ')' '{'
> -            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_IRQNOFLAGS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IRQTerm
> -    : PARSEOP_IRQ '('               {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
> -        InterruptTypeKeyword
> -        ',' InterruptLevel
> -        OptionalShareType
> -        OptionalNameString_Last
> -        ')' '{'
> -            ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
> -    | PARSEOP_IRQ '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -Memory24Term
> -    : PARSEOP_MEMORY24 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
> -        OptionalReadWriteKeyword
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
> -    | PARSEOP_MEMORY24 '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -Memory32FixedTerm
> -    : PARSEOP_MEMORY32FIXED '('     {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
> -        OptionalReadWriteKeyword
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
> -    | PARSEOP_MEMORY32FIXED '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -Memory32Term
> -    : PARSEOP_MEMORY32 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
> -        OptionalReadWriteKeyword
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
> -    | PARSEOP_MEMORY32 '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -QWordIOTerm
> -    : PARSEOP_QWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
> -        OptionalResourceType_First
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalDecodeType
> -        OptionalRangeType
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString
> -        OptionalType
> -        OptionalTranslationType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,15,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
> -    | PARSEOP_QWORDIO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -QWordMemoryTerm
> -    : PARSEOP_QWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
> -        OptionalResourceType_First
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalMemType
> -        ',' OptionalReadWriteKeyword
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString
> -        OptionalAddressRange
> -        OptionalType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,16,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
> -    | PARSEOP_QWORDMEMORY '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -QWordSpaceTerm
> -    : PARSEOP_QWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
> -        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
> -        OptionalResourceType
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        ',' ByteConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,14,
> -                                        $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
> -    | PARSEOP_QWORDSPACE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -RegisterTerm
> -    : PARSEOP_REGISTER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
> -        AddressSpaceKeyword
> -        ',' ByteConstExpr
> -        ',' ByteConstExpr
> -        ',' QWordConstExpr
> -        OptionalAccessSize
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
> -    | PARSEOP_REGISTER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SpiSerialBusTerm
> -    : PARSEOP_SPI_SERIALBUS '('     {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
> -        WordConstExpr               /* 04: DeviceSelection */
> -        OptionalDevicePolarity      /* 05: DevicePolarity */
> -        OptionalWireMode            /* 06: WireMode */
> -        ',' ByteConstExpr           /* 08: DataBitLength */
> -        OptionalSlaveMode           /* 09: SlaveMode */
> -        ',' DWordConstExpr          /* 11: ConnectionSpeed */
> -        ',' ClockPolarityKeyword    /* 13: ClockPolarity */
> -        ',' ClockPhaseKeyword       /* 15: ClockPhase */
> -        ',' StringData              /* 17: ResourceSource */
> -        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
> -        OptionalResourceType        /* 19: ResourceType */
> -        OptionalNameString          /* 20: DescriptorName */
> -        OptionalBuffer_Last         /* 21: VendorData */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,14,
> -                                        $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
> -                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
> -    | PARSEOP_SPI_SERIALBUS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SpiSerialBusTermV2
> -    : PARSEOP_SPI_SERIALBUS_V2 '('  {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS_V2);}
> -        WordConstExpr               /* 04: DeviceSelection */
> -        OptionalDevicePolarity      /* 05: DevicePolarity */
> -        OptionalWireMode            /* 06: WireMode */
> -        ',' ByteConstExpr           /* 08: DataBitLength */
> -        OptionalSlaveMode           /* 09: SlaveMode */
> -        ',' DWordConstExpr          /* 11: ConnectionSpeed */
> -        ',' ClockPolarityKeyword    /* 13: ClockPolarity */
> -        ',' ClockPhaseKeyword       /* 15: ClockPhase */
> -        ',' StringData              /* 17: ResourceSource */
> -        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
> -        OptionalResourceType        /* 19: ResourceType */
> -        OptionalNameString          /* 20: DescriptorName */
> -        OptionalShareType           /* 21: Share */
> -        OptionalBuffer_Last         /* 22: VendorData */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,14,
> -                                        $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
> -    | PARSEOP_SPI_SERIALBUS_V2 '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -StartDependentFnNoPriTerm
> -    : PARSEOP_STARTDEPENDENTFN_NOPRI '('    {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
> -        ')' '{'
> -        ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,1,$6);}
> -    | PARSEOP_STARTDEPENDENTFN_NOPRI '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -StartDependentFnTerm
> -    : PARSEOP_STARTDEPENDENTFN '('  {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
> -        ByteConstExpr
> -        ',' ByteConstExpr
> -        ')' '{'
> -        ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
> -    | PARSEOP_STARTDEPENDENTFN '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -UartSerialBusTerm
> -    : PARSEOP_UART_SERIALBUS '('    {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
> -        DWordConstExpr              /* 04: ConnectionSpeed */
> -        OptionalBitsPerByte         /* 05: BitsPerByte */
> -        OptionalStopBits            /* 06: StopBits */
> -        ',' ByteConstExpr           /* 08: LinesInUse */
> -        OptionalEndian              /* 09: Endianess */
> -        OptionalParityType          /* 10: Parity */
> -        OptionalFlowControl         /* 11: FlowControl */
> -        ',' WordConstExpr           /* 13: Rx BufferSize */
> -        ',' WordConstExpr           /* 15: Tx BufferSize */
> -        ',' StringData              /* 17: ResourceSource */
> -        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
> -        OptionalResourceType        /* 19: ResourceType */
> -        OptionalNameString          /* 20: DescriptorName */
> -        OptionalBuffer_Last         /* 21: VendorData */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,15,
> -                                        $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
> -                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
> -    | PARSEOP_UART_SERIALBUS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -UartSerialBusTermV2
> -    : PARSEOP_UART_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS_V2);}
> -        DWordConstExpr              /* 04: ConnectionSpeed */
> -        OptionalBitsPerByte         /* 05: BitsPerByte */
> -        OptionalStopBits            /* 06: StopBits */
> -        ',' ByteConstExpr           /* 08: LinesInUse */
> -        OptionalEndian              /* 09: Endianess */
> -        OptionalParityType          /* 10: Parity */
> -        OptionalFlowControl         /* 11: FlowControl */
> -        ',' WordConstExpr           /* 13: Rx BufferSize */
> -        ',' WordConstExpr           /* 15: Tx BufferSize */
> -        ',' StringData              /* 17: ResourceSource */
> -        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
> -        OptionalResourceType        /* 19: ResourceType */
> -        OptionalNameString          /* 20: DescriptorName */
> -        OptionalShareType           /* 21: Share */
> -        OptionalBuffer_Last         /* 22: VendorData */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,15,
> -                                        $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
> -    | PARSEOP_UART_SERIALBUS_V2 '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -VendorLongTerm
> -    : PARSEOP_VENDORLONG '('        {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
> -        OptionalNameString_First
> -        ')' '{'
> -            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_VENDORLONG '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -VendorShortTerm
> -    : PARSEOP_VENDORSHORT '('       {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
> -        OptionalNameString_First
> -        ')' '{'
> -            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_VENDORSHORT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -WordBusNumberTerm
> -    : PARSEOP_WORDBUSNUMBER '('     {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
> -        OptionalResourceType_First
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalDecodeType
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,12,
> -                                        $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
> -    | PARSEOP_WORDBUSNUMBER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -WordIOTerm
> -    : PARSEOP_WORDIO '('            {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
> -        OptionalResourceType_First
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalDecodeType
> -        OptionalRangeType
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString
> -        OptionalType
> -        OptionalTranslationType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,15,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
> -    | PARSEOP_WORDIO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -WordSpaceTerm
> -    : PARSEOP_WORDSPACE '('         {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
> -        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
> -        OptionalResourceType
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        ',' ByteConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,14,
> -                                        $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
> -    | PARSEOP_WORDSPACE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Helper Terms
> - *
> - ******************************************************************************/
> -
> -OptionalBusMasterKeyword
> -    : ','                                   {$$ = TrCreateLeafNode (
> -                                                PARSEOP_BUSMASTERTYPE_MASTER);}
> -    | ',' PARSEOP_BUSMASTERTYPE_MASTER      {$$ = TrCreateLeafNode (
> -                                                PARSEOP_BUSMASTERTYPE_MASTER);}
> -    | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER   {$$ = TrCreateLeafNode (
> -                                                PARSEOP_BUSMASTERTYPE_NOTMASTER);}
> -    ;
> -
> -OptionalAccessAttribTerm
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' ByteConstExpr             {$$ = $2;}
> -    | ',' AccessAttribKeyword       {$$ = $2;}
> -    ;
> -
> -OptionalAccessSize
> -    :                               {$$ = TrCreateValuedLeafNode (
> -                                        PARSEOP_BYTECONST, 0);}
> -    | ','                           {$$ = TrCreateValuedLeafNode (
> -                                        PARSEOP_BYTECONST, 0);}
> -    | ',' ByteConstExpr             {$$ = $2;}
> -    ;
> -
> -OptionalAddressingMode
> -    : ','                           {$$ = NULL;}
> -    | ',' AddressingModeKeyword     {$$ = $2;}
> -    ;
> -
> -OptionalAddressRange
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' AddressKeyword            {$$ = $2;}
> -    ;
> -
> -OptionalBitsPerByte
> -    : ','                           {$$ = NULL;}
> -    | ',' BitsPerByteKeyword        {$$ = $2;}
> -    ;
> -
> -OptionalBuffer_Last
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' RawDataBufferTerm         {$$ = $2;}
> -    ;
> -
> -OptionalByteConstExpr
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' ByteConstExpr             {$$ = $2;}
> -    ;
> -
> -OptionalDecodeType
> -    : ','                           {$$ = NULL;}
> -    | ',' DecodeKeyword             {$$ = $2;}
> -    ;
> -
> -OptionalDevicePolarity
> -    : ','                           {$$ = NULL;}
> -    | ',' DevicePolarityKeyword     {$$ = $2;}
> -    ;
> -
> -OptionalDWordConstExpr
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' DWordConstExpr            {$$ = $2;}
> -    ;
> -
> -OptionalEndian
> -    : ','                           {$$ = NULL;}
> -    | ',' EndianKeyword             {$$ = $2;}
> -    ;
> -
> -OptionalFlowControl
> -    : ','                           {$$ = NULL;}
> -    | ',' FlowControlKeyword        {$$ = $2;}
> -    ;
> -
> -OptionalIoRestriction
> -    : ','                           {$$ = NULL;}
> -    | ',' IoRestrictionKeyword      {$$ = $2;}
> -    ;
> -
> -OptionalListString
> -    :                               {$$ = TrCreateValuedLeafNode (
> -                                        PARSEOP_STRING_LITERAL,
> -                                        ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
> -    | ','                           {$$ = TrCreateValuedLeafNode (
> -                                        PARSEOP_STRING_LITERAL,
> -                                        ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
> -    | ',' TermArg                   {$$ = $2;}
> -    ;
> -
> -OptionalMaxType
> -    : ','                           {$$ = NULL;}
> -    | ',' MaxKeyword                {$$ = $2;}
> -    ;
> -
> -OptionalMemType
> -    : ','                           {$$ = NULL;}
> -    | ',' MemTypeKeyword            {$$ = $2;}
> -    ;
> -
> -OptionalMinType
> -    : ','                           {$$ = NULL;}
> -    | ',' MinKeyword                {$$ = $2;}
> -    ;
> -
> -OptionalNameString
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' NameString                {$$ = $2;}
> -    ;
> -
> -OptionalNameString_Last
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' NameString                {$$ = $2;}
> -    ;
> -
> -OptionalNameString_First
> -    :                               {$$ = TrCreateLeafNode (
> -                                        PARSEOP_ZERO);}
> -    | NameString                    {$$ = $1;}
> -    ;
> -
> -OptionalObjectTypeKeyword
> -    :                               {$$ = TrCreateLeafNode (
> -                                        PARSEOP_OBJECTTYPE_UNK);}
> -    | ',' ObjectTypeKeyword         {$$ = $2;}
> -    ;
> -
> -OptionalParityType
> -    : ','                           {$$ = NULL;}
> -    | ',' ParityTypeKeyword         {$$ = $2;}
> -    ;
> -
> -OptionalQWordConstExpr
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' QWordConstExpr            {$$ = $2;}
> -    ;
> -
> -OptionalRangeType
> -    : ','                           {$$ = NULL;}
> -    | ',' RangeTypeKeyword          {$$ = $2;}
> -    ;
> -
> -OptionalReadWriteKeyword
> -    :                                   {$$ = TrCreateLeafNode (
> -                                            PARSEOP_READWRITETYPE_BOTH);}
> -    | PARSEOP_READWRITETYPE_BOTH        {$$ = TrCreateLeafNode (
> -                                            PARSEOP_READWRITETYPE_BOTH);}
> -    | PARSEOP_READWRITETYPE_READONLY    {$$ = TrCreateLeafNode (
> -                                            PARSEOP_READWRITETYPE_READONLY);}
> -    ;
> -
> -OptionalResourceType_First
> -    :                               {$$ = TrCreateLeafNode (
> -                                        PARSEOP_RESOURCETYPE_CONSUMER);}
> -    | ResourceTypeKeyword           {$$ = $1;}
> -    ;
> -
> -OptionalResourceType
> -    :                               {$$ = TrCreateLeafNode (
> -                                        PARSEOP_RESOURCETYPE_CONSUMER);}
> -    | ','                           {$$ = TrCreateLeafNode (
> -                                        PARSEOP_RESOURCETYPE_CONSUMER);}
> -    | ',' ResourceTypeKeyword       {$$ = $2;}
> -    ;
> -
> -OptionalSlaveMode
> -    : ','                           {$$ = NULL;}
> -    | ',' SlaveModeKeyword          {$$ = $2;}
> -    ;
> -
> -OptionalShareType
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' ShareTypeKeyword          {$$ = $2;}
> -    ;
> -
> -OptionalShareType_First
> -    :                               {$$ = NULL;}
> -    | ShareTypeKeyword              {$$ = $1;}
> -    ;
> -
> -OptionalStopBits
> -    : ','                           {$$ = NULL;}
> -    | ',' StopBitsKeyword           {$$ = $2;}
> -    ;
> -
> -OptionalStringData
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' StringData                {$$ = $2;}
> -    ;
> -
> -OptionalTranslationType_Last
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' TranslationKeyword        {$$ = $2;}
> -    ;
> -
> -OptionalType
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' TypeKeyword               {$$ = $2;}
> -    ;
> -
> -OptionalType_Last
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' TypeKeyword               {$$ = $2;}
> -    ;
> -
> -OptionalWireMode
> -    : ','                           {$$ = NULL;}
> -    | ',' WireModeKeyword           {$$ = $2;}
> -    ;
> -
> -OptionalWordConstExpr
> -    : ','                           {$$ = NULL;}
> -    | ',' WordConstExpr             {$$ = $2;}
> -    ;
> -
> -OptionalXferSize
> -    :                               {$$ = TrCreateValuedLeafNode (
> -                                        PARSEOP_XFERSIZE_32, 2);}
> -    | ','                           {$$ = TrCreateValuedLeafNode (
> -                                        PARSEOP_XFERSIZE_32, 2);}
> -    | ',' XferSizeKeyword           {$$ = $2;}
> -    ;
> -
> -%%
> -
> -/*! [End] no source code translation !*/
> -
> -/* Local support functions in C */
> -
> -
> -
> -/******************************************************************************
> - *
> - * Local support functions
> - *
> - *****************************************************************************/
> -
> -/*! [Begin] no source code translation */
> -int
> -AslCompilerwrap(void)
> -{
> -  return (1);
> -}
> -/*! [End] no source code translation !*/
> -
> -
> -void *
> -AslLocalAllocate (
> -    unsigned int        Size)
> -{
> -    void                *Mem;
> -
> -
> -    DbgPrint (ASL_PARSE_OUTPUT,
> -        "\nAslLocalAllocate: Expanding Stack to %u\n\n", Size);
> -
> -    Mem = ACPI_ALLOCATE_ZEROED (Size);
> -    if (!Mem)
> -    {
> -        AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
> -            Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
> -            Gbl_InputByteCount, Gbl_CurrentColumn,
> -            Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
> -        exit (1);
> -    }
> -
> -    return (Mem);
> -}
> -
> -ACPI_PARSE_OBJECT *
> -AslDoError (
> -    void)
> -{
> -
> -    return (TrCreateLeafNode (PARSEOP_ERRORNODE));
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    UtGetOpName
> - *
> - * PARAMETERS:  ParseOpcode         - Parser keyword ID
> - *
> - * RETURN:      Pointer to the opcode name
> - *
> - * DESCRIPTION: Get the ascii name of the parse opcode
> - *
> - ******************************************************************************/
> -
> -char *
> -UtGetOpName (
> -    UINT32                  ParseOpcode)
> -{
> -#ifdef ASL_YYTNAME_START
> -    /*
> -     * First entries (ASL_YYTNAME_START) in yytname are special reserved names.
> -     * Ignore first 8 characters of the name
> -     */
> -    return ((char *) yytname
> -        [(ParseOpcode - ASL_FIRST_PARSE_OPCODE) + ASL_YYTNAME_START] + 8);
> -#else
> -    return ("[Unknown parser generator]");
> -#endif
> -}
> -
>

Acked-by: Alex Hung <alex.hung@canonical.com>
Ivan Hu Oct. 4, 2016, 7:56 a.m. UTC | #2
On 2016年10月03日 17:39, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> We don't need this source in the repository as it is generated
> at built time from aslparser.y
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>   src/acpica/source/compiler/aslcompiler.y | 4378 ------------------------------
>   1 file changed, 4378 deletions(-)
>   delete mode 100644 src/acpica/source/compiler/aslcompiler.y
>
> diff --git a/src/acpica/source/compiler/aslcompiler.y b/src/acpica/source/compiler/aslcompiler.y
> deleted file mode 100644
> index 4dd34d4..0000000
> --- a/src/acpica/source/compiler/aslcompiler.y
> +++ /dev/null
> @@ -1,4378 +0,0 @@
> -%{
> -/******************************************************************************
> - *
> - * Module Name: aslparser.y - Master Bison/Yacc input file for iASL
> - *
> - *****************************************************************************/
> -
> -/******************************************************************************
> - *
> - * 1. Copyright Notice
> - *
> - * Some or all of this work - Copyright (c) 1999 - 2016, Intel Corp.
> - * All rights reserved.
> - *
> - * 2. License
> - *
> - * 2.1. This is your license from Intel Corp. under its intellectual property
> - * rights. You may have additional license terms from the party that provided
> - * you this software, covering your right to use that party's intellectual
> - * property rights.
> - *
> - * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
> - * copy of the source code appearing in this file ("Covered Code") an
> - * irrevocable, perpetual, worldwide license under Intel's copyrights in the
> - * base code distributed originally by Intel ("Original Intel Code") to copy,
> - * make derivatives, distribute, use and display any portion of the Covered
> - * Code in any form, with the right to sublicense such rights; and
> - *
> - * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
> - * license (with the right to sublicense), under only those claims of Intel
> - * patents that are infringed by the Original Intel Code, to make, use, sell,
> - * offer to sell, and import the Covered Code and derivative works thereof
> - * solely to the minimum extent necessary to exercise the above copyright
> - * license, and in no event shall the patent license extend to any additions
> - * to or modifications of the Original Intel Code. No other license or right
> - * is granted directly or by implication, estoppel or otherwise;
> - *
> - * The above copyright and patent license is granted only if the following
> - * conditions are met:
> - *
> - * 3. Conditions
> - *
> - * 3.1. Redistribution of Source with Rights to Further Distribute Source.
> - * Redistribution of source code of any substantial portion of the Covered
> - * Code or modification with rights to further distribute source must include
> - * the above Copyright Notice, the above License, this list of Conditions,
> - * and the following Disclaimer and Export Compliance provision. In addition,
> - * Licensee must cause all Covered Code to which Licensee contributes to
> - * contain a file documenting the changes Licensee made to create that Covered
> - * Code and the date of any change. Licensee must include in that file the
> - * documentation of any changes made by any predecessor Licensee. Licensee
> - * must include a prominent statement that the modification is derived,
> - * directly or indirectly, from Original Intel Code.
> - *
> - * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
> - * Redistribution of source code of any substantial portion of the Covered
> - * Code or modification without rights to further distribute source must
> - * include the following Disclaimer and Export Compliance provision in the
> - * documentation and/or other materials provided with distribution. In
> - * addition, Licensee may not authorize further sublicense of source of any
> - * portion of the Covered Code, and must include terms to the effect that the
> - * license from Licensee to its licensee is limited to the intellectual
> - * property embodied in the software Licensee provides to its licensee, and
> - * not to intellectual property embodied in modifications its licensee may
> - * make.
> - *
> - * 3.3. Redistribution of Executable. Redistribution in executable form of any
> - * substantial portion of the Covered Code or modification must reproduce the
> - * above Copyright Notice, and the following Disclaimer and Export Compliance
> - * provision in the documentation and/or other materials provided with the
> - * distribution.
> - *
> - * 3.4. Intel retains all right, title, and interest in and to the Original
> - * Intel Code.
> - *
> - * 3.5. Neither the name Intel nor any other trademark owned or controlled by
> - * Intel shall be used in advertising or otherwise to promote the sale, use or
> - * other dealings in products derived from or relating to the Covered Code
> - * without prior written authorization from Intel.
> - *
> - * 4. Disclaimer and Export Compliance
> - *
> - * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
> - * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
> - * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
> - * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
> - * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
> - * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
> - * PARTICULAR PURPOSE.
> - *
> - * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
> - * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
> - * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
> - * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
> - * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
> - * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
> - * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
> - * LIMITED REMEDY.
> - *
> - * 4.3. Licensee shall not export, either directly or indirectly, any of this
> - * software or system incorporating such software without first obtaining any
> - * required license or other approval from the U. S. Department of Commerce or
> - * any other agency or department of the United States Government. In the
> - * event Licensee exports any such software from the United States or
> - * re-exports any such software from a foreign destination, Licensee shall
> - * ensure that the distribution and export/re-export of the software is in
> - * compliance with all laws, regulations, orders, or other restrictions of the
> - * U.S. Export Administration Regulations. Licensee agrees that neither it nor
> - * any of its subsidiaries will export/re-export any technical data, process,
> - * software, or service, directly or indirectly, to any country for which the
> - * United States government or any agency thereof requires an export license,
> - * other governmental approval, or letter of assurance, without first obtaining
> - * such license, approval or letter.
> - *
> - *****************************************************************************/
> -
> -#include "aslcompiler.h"
> -#include "acpi.h"
> -#include "accommon.h"
> -
> -#define _COMPONENT          ACPI_COMPILER
> -        ACPI_MODULE_NAME    ("aslparse")
> -
> -/*
> - * Global Notes:
> - *
> - * October 2005: The following list terms have been optimized (from the
> - * original ASL grammar in the ACPI specification) to force the immediate
> - * reduction of each list item so that the parse stack use doesn't increase on
> - * each list element and possibly overflow on very large lists (>4000 items).
> - * This dramatically reduces use of the parse stack overall.
> - *
> - *      ArgList, TermList, ByteList, DWordList, PackageList,
> - *      ResourceMacroList, and FieldUnitList
> - */
> -
> -void *
> -AslLocalAllocate (
> -    unsigned int            Size);
> -
> -
> -/* Bison/yacc configuration */
> -
> -#define static
> -#undef malloc
> -#define malloc              AslLocalAllocate
> -#undef alloca
> -#define alloca              AslLocalAllocate
> -#define yytname             AslCompilername
> -
> -#define YYINITDEPTH         600             /* State stack depth */
> -#define YYDEBUG             1               /* Enable debug output */
> -#define YYERROR_VERBOSE     1               /* Verbose error messages */
> -#define YYFLAG              -32768
> -
> -/* Define YYMALLOC/YYFREE to prevent redefinition errors  */
> -
> -#define YYMALLOC            AslLocalAllocate
> -#define YYFREE              ACPI_FREE
> -%}
> -
> -/*
> - * Declare the type of values in the grammar
> - */
> -%union {
> -    UINT64              i;
> -    char                *s;
> -    ACPI_PARSE_OBJECT   *n;
> -}
> -
> -/*
> - * These shift/reduce conflicts are expected. There should be zero
> - * reduce/reduce conflicts.
> - */
> -%expect 102
> -
> -/*! [Begin] no source code translation */
> -
> -/*
> - * The M4 macro processor is used to bring in the parser items,
> - * in order to keep this master file smaller, and to break up
> - * the various parser items.
> - */
> -
> -
> -/* Token types */
> -
> -
> -
> -/******************************************************************************
> - *
> - * Token types: These are returned by the lexer
> - *
> - * NOTE: This list MUST match the AslKeywordMapping table found
> - *       in aslmap.c EXACTLY!  Double check any changes!
> - *
> - *****************************************************************************/
> -
> -/*
> - * Most tokens are defined to return <i>, which is a UINT64.
> - *
> - * These tokens return <s>, a pointer to the associated lexed string:
> - *
> - *  PARSEOP_NAMESEG
> - *  PARSEOP_NAMESTRING
> - *  PARSEOP_STRING_LITERAL
> - *  PARSEOP_STRUCTURE_NAMESTRING
> - */
> -%token <i> PARSEOP_ACCESSAS
> -%token <i> PARSEOP_ACCESSATTRIB_BLOCK
> -%token <i> PARSEOP_ACCESSATTRIB_BLOCK_CALL
> -%token <i> PARSEOP_ACCESSATTRIB_BYTE
> -%token <i> PARSEOP_ACCESSATTRIB_MULTIBYTE
> -%token <i> PARSEOP_ACCESSATTRIB_QUICK
> -%token <i> PARSEOP_ACCESSATTRIB_RAW_BYTES
> -%token <i> PARSEOP_ACCESSATTRIB_RAW_PROCESS
> -%token <i> PARSEOP_ACCESSATTRIB_SND_RCV
> -%token <i> PARSEOP_ACCESSATTRIB_WORD
> -%token <i> PARSEOP_ACCESSATTRIB_WORD_CALL
> -%token <i> PARSEOP_ACCESSTYPE_ANY
> -%token <i> PARSEOP_ACCESSTYPE_BUF
> -%token <i> PARSEOP_ACCESSTYPE_BYTE
> -%token <i> PARSEOP_ACCESSTYPE_DWORD
> -%token <i> PARSEOP_ACCESSTYPE_QWORD
> -%token <i> PARSEOP_ACCESSTYPE_WORD
> -%token <i> PARSEOP_ACQUIRE
> -%token <i> PARSEOP_ADD
> -%token <i> PARSEOP_ADDRESSINGMODE_7BIT
> -%token <i> PARSEOP_ADDRESSINGMODE_10BIT
> -%token <i> PARSEOP_ADDRESSTYPE_ACPI
> -%token <i> PARSEOP_ADDRESSTYPE_MEMORY
> -%token <i> PARSEOP_ADDRESSTYPE_NVS
> -%token <i> PARSEOP_ADDRESSTYPE_RESERVED
> -%token <i> PARSEOP_ALIAS
> -%token <i> PARSEOP_AND
> -%token <i> PARSEOP_ARG0
> -%token <i> PARSEOP_ARG1
> -%token <i> PARSEOP_ARG2
> -%token <i> PARSEOP_ARG3
> -%token <i> PARSEOP_ARG4
> -%token <i> PARSEOP_ARG5
> -%token <i> PARSEOP_ARG6
> -%token <i> PARSEOP_BANKFIELD
> -%token <i> PARSEOP_BITSPERBYTE_EIGHT
> -%token <i> PARSEOP_BITSPERBYTE_FIVE
> -%token <i> PARSEOP_BITSPERBYTE_NINE
> -%token <i> PARSEOP_BITSPERBYTE_SEVEN
> -%token <i> PARSEOP_BITSPERBYTE_SIX
> -%token <i> PARSEOP_BREAK
> -%token <i> PARSEOP_BREAKPOINT
> -%token <i> PARSEOP_BUFFER
> -%token <i> PARSEOP_BUSMASTERTYPE_MASTER
> -%token <i> PARSEOP_BUSMASTERTYPE_NOTMASTER
> -%token <i> PARSEOP_BYTECONST
> -%token <i> PARSEOP_CASE
> -%token <i> PARSEOP_CLOCKPHASE_FIRST
> -%token <i> PARSEOP_CLOCKPHASE_SECOND
> -%token <i> PARSEOP_CLOCKPOLARITY_HIGH
> -%token <i> PARSEOP_CLOCKPOLARITY_LOW
> -%token <i> PARSEOP_CONCATENATE
> -%token <i> PARSEOP_CONCATENATERESTEMPLATE
> -%token <i> PARSEOP_CONDREFOF
> -%token <i> PARSEOP_CONNECTION
> -%token <i> PARSEOP_CONTINUE
> -%token <i> PARSEOP_COPYOBJECT
> -%token <i> PARSEOP_CREATEBITFIELD
> -%token <i> PARSEOP_CREATEBYTEFIELD
> -%token <i> PARSEOP_CREATEDWORDFIELD
> -%token <i> PARSEOP_CREATEFIELD
> -%token <i> PARSEOP_CREATEQWORDFIELD
> -%token <i> PARSEOP_CREATEWORDFIELD
> -%token <i> PARSEOP_DATABUFFER
> -%token <i> PARSEOP_DATATABLEREGION
> -%token <i> PARSEOP_DEBUG
> -%token <i> PARSEOP_DECODETYPE_POS
> -%token <i> PARSEOP_DECODETYPE_SUB
> -%token <i> PARSEOP_DECREMENT
> -%token <i> PARSEOP_DEFAULT
> -%token <i> PARSEOP_DEFAULT_ARG
> -%token <i> PARSEOP_DEFINITION_BLOCK
> -%token <i> PARSEOP_DEREFOF
> -%token <i> PARSEOP_DEVICE
> -%token <i> PARSEOP_DEVICEPOLARITY_HIGH
> -%token <i> PARSEOP_DEVICEPOLARITY_LOW
> -%token <i> PARSEOP_DIVIDE
> -%token <i> PARSEOP_DMA
> -%token <i> PARSEOP_DMATYPE_A
> -%token <i> PARSEOP_DMATYPE_COMPATIBILITY
> -%token <i> PARSEOP_DMATYPE_B
> -%token <i> PARSEOP_DMATYPE_F
> -%token <i> PARSEOP_DWORDCONST
> -%token <i> PARSEOP_DWORDIO
> -%token <i> PARSEOP_DWORDMEMORY
> -%token <i> PARSEOP_DWORDSPACE
> -%token <i> PARSEOP_EISAID
> -%token <i> PARSEOP_ELSE
> -%token <i> PARSEOP_ELSEIF
> -%token <i> PARSEOP_ENDDEPENDENTFN
> -%token <i> PARSEOP_ENDIAN_BIG
> -%token <i> PARSEOP_ENDIAN_LITTLE
> -%token <i> PARSEOP_ENDTAG
> -%token <i> PARSEOP_ERRORNODE
> -%token <i> PARSEOP_EVENT
> -%token <i> PARSEOP_EXTENDEDIO
> -%token <i> PARSEOP_EXTENDEDMEMORY
> -%token <i> PARSEOP_EXTENDEDSPACE
> -%token <i> PARSEOP_EXTERNAL
> -%token <i> PARSEOP_FATAL
> -%token <i> PARSEOP_FIELD
> -%token <i> PARSEOP_FINDSETLEFTBIT
> -%token <i> PARSEOP_FINDSETRIGHTBIT
> -%token <i> PARSEOP_FIXEDDMA
> -%token <i> PARSEOP_FIXEDIO
> -%token <i> PARSEOP_FLOWCONTROL_HW
> -%token <i> PARSEOP_FLOWCONTROL_NONE
> -%token <i> PARSEOP_FLOWCONTROL_SW
> -%token <i> PARSEOP_FROMBCD
> -%token <i> PARSEOP_FUNCTION
> -%token <i> PARSEOP_GPIO_INT
> -%token <i> PARSEOP_GPIO_IO
> -%token <i> PARSEOP_I2C_SERIALBUS
> -%token <i> PARSEOP_I2C_SERIALBUS_V2
> -%token <i> PARSEOP_IF
> -%token <i> PARSEOP_INCLUDE
> -%token <i> PARSEOP_INCLUDE_END
> -%token <i> PARSEOP_INCREMENT
> -%token <i> PARSEOP_INDEX
> -%token <i> PARSEOP_INDEXFIELD
> -%token <i> PARSEOP_INTEGER
> -%token <i> PARSEOP_INTERRUPT
> -%token <i> PARSEOP_INTLEVEL_ACTIVEBOTH
> -%token <i> PARSEOP_INTLEVEL_ACTIVEHIGH
> -%token <i> PARSEOP_INTLEVEL_ACTIVELOW
> -%token <i> PARSEOP_INTTYPE_EDGE
> -%token <i> PARSEOP_INTTYPE_LEVEL
> -%token <i> PARSEOP_IO
> -%token <i> PARSEOP_IODECODETYPE_10
> -%token <i> PARSEOP_IODECODETYPE_16
> -%token <i> PARSEOP_IORESTRICT_IN
> -%token <i> PARSEOP_IORESTRICT_NONE
> -%token <i> PARSEOP_IORESTRICT_OUT
> -%token <i> PARSEOP_IORESTRICT_PRESERVE
> -%token <i> PARSEOP_IRQ
> -%token <i> PARSEOP_IRQNOFLAGS
> -%token <i> PARSEOP_LAND
> -%token <i> PARSEOP_LEQUAL
> -%token <i> PARSEOP_LGREATER
> -%token <i> PARSEOP_LGREATEREQUAL
> -%token <i> PARSEOP_LLESS
> -%token <i> PARSEOP_LLESSEQUAL
> -%token <i> PARSEOP_LNOT
> -%token <i> PARSEOP_LNOTEQUAL
> -%token <i> PARSEOP_LOAD
> -%token <i> PARSEOP_LOADTABLE
> -%token <i> PARSEOP_LOCAL0
> -%token <i> PARSEOP_LOCAL1
> -%token <i> PARSEOP_LOCAL2
> -%token <i> PARSEOP_LOCAL3
> -%token <i> PARSEOP_LOCAL4
> -%token <i> PARSEOP_LOCAL5
> -%token <i> PARSEOP_LOCAL6
> -%token <i> PARSEOP_LOCAL7
> -%token <i> PARSEOP_LOCKRULE_LOCK
> -%token <i> PARSEOP_LOCKRULE_NOLOCK
> -%token <i> PARSEOP_LOR
> -%token <i> PARSEOP_MATCH
> -%token <i> PARSEOP_MATCHTYPE_MEQ
> -%token <i> PARSEOP_MATCHTYPE_MGE
> -%token <i> PARSEOP_MATCHTYPE_MGT
> -%token <i> PARSEOP_MATCHTYPE_MLE
> -%token <i> PARSEOP_MATCHTYPE_MLT
> -%token <i> PARSEOP_MATCHTYPE_MTR
> -%token <i> PARSEOP_MAXTYPE_FIXED
> -%token <i> PARSEOP_MAXTYPE_NOTFIXED
> -%token <i> PARSEOP_MEMORY24
> -%token <i> PARSEOP_MEMORY32
> -%token <i> PARSEOP_MEMORY32FIXED
> -%token <i> PARSEOP_MEMTYPE_CACHEABLE
> -%token <i> PARSEOP_MEMTYPE_NONCACHEABLE
> -%token <i> PARSEOP_MEMTYPE_PREFETCHABLE
> -%token <i> PARSEOP_MEMTYPE_WRITECOMBINING
> -%token <i> PARSEOP_METHOD
> -%token <i> PARSEOP_METHODCALL
> -%token <i> PARSEOP_MID
> -%token <i> PARSEOP_MINTYPE_FIXED
> -%token <i> PARSEOP_MINTYPE_NOTFIXED
> -%token <i> PARSEOP_MOD
> -%token <i> PARSEOP_MULTIPLY
> -%token <i> PARSEOP_MUTEX
> -%token <i> PARSEOP_NAME
> -%token <s> PARSEOP_NAMESEG
> -%token <s> PARSEOP_NAMESTRING
> -%token <i> PARSEOP_NAND
> -%token <i> PARSEOP_NOOP
> -%token <i> PARSEOP_NOR
> -%token <i> PARSEOP_NOT
> -%token <i> PARSEOP_NOTIFY
> -%token <i> PARSEOP_OBJECTTYPE
> -%token <i> PARSEOP_OBJECTTYPE_BFF
> -%token <i> PARSEOP_OBJECTTYPE_BUF
> -%token <i> PARSEOP_OBJECTTYPE_DDB
> -%token <i> PARSEOP_OBJECTTYPE_DEV
> -%token <i> PARSEOP_OBJECTTYPE_EVT
> -%token <i> PARSEOP_OBJECTTYPE_FLD
> -%token <i> PARSEOP_OBJECTTYPE_INT
> -%token <i> PARSEOP_OBJECTTYPE_MTH
> -%token <i> PARSEOP_OBJECTTYPE_MTX
> -%token <i> PARSEOP_OBJECTTYPE_OPR
> -%token <i> PARSEOP_OBJECTTYPE_PKG
> -%token <i> PARSEOP_OBJECTTYPE_POW
> -%token <i> PARSEOP_OBJECTTYPE_PRO
> -%token <i> PARSEOP_OBJECTTYPE_STR
> -%token <i> PARSEOP_OBJECTTYPE_THZ
> -%token <i> PARSEOP_OBJECTTYPE_UNK
> -%token <i> PARSEOP_OFFSET
> -%token <i> PARSEOP_ONE
> -%token <i> PARSEOP_ONES
> -%token <i> PARSEOP_OPERATIONREGION
> -%token <i> PARSEOP_OR
> -%token <i> PARSEOP_PACKAGE
> -%token <i> PARSEOP_PACKAGE_LENGTH
> -%token <i> PARSEOP_PARITYTYPE_EVEN
> -%token <i> PARSEOP_PARITYTYPE_MARK
> -%token <i> PARSEOP_PARITYTYPE_NONE
> -%token <i> PARSEOP_PARITYTYPE_ODD
> -%token <i> PARSEOP_PARITYTYPE_SPACE
> -%token <i> PARSEOP_PIN_NOPULL
> -%token <i> PARSEOP_PIN_PULLDEFAULT
> -%token <i> PARSEOP_PIN_PULLDOWN
> -%token <i> PARSEOP_PIN_PULLUP
> -%token <i> PARSEOP_POWERRESOURCE
> -%token <i> PARSEOP_PROCESSOR
> -%token <i> PARSEOP_QWORDCONST
> -%token <i> PARSEOP_QWORDIO
> -%token <i> PARSEOP_QWORDMEMORY
> -%token <i> PARSEOP_QWORDSPACE
> -%token <i> PARSEOP_RANGETYPE_ENTIRE
> -%token <i> PARSEOP_RANGETYPE_ISAONLY
> -%token <i> PARSEOP_RANGETYPE_NONISAONLY
> -%token <i> PARSEOP_RAW_DATA
> -%token <i> PARSEOP_READWRITETYPE_BOTH
> -%token <i> PARSEOP_READWRITETYPE_READONLY
> -%token <i> PARSEOP_REFOF
> -%token <i> PARSEOP_REGIONSPACE_CMOS
> -%token <i> PARSEOP_REGIONSPACE_EC
> -%token <i> PARSEOP_REGIONSPACE_FFIXEDHW
> -%token <i> PARSEOP_REGIONSPACE_GPIO
> -%token <i> PARSEOP_REGIONSPACE_GSBUS
> -%token <i> PARSEOP_REGIONSPACE_IO
> -%token <i> PARSEOP_REGIONSPACE_IPMI
> -%token <i> PARSEOP_REGIONSPACE_MEM
> -%token <i> PARSEOP_REGIONSPACE_PCC
> -%token <i> PARSEOP_REGIONSPACE_PCI
> -%token <i> PARSEOP_REGIONSPACE_PCIBAR
> -%token <i> PARSEOP_REGIONSPACE_SMBUS
> -%token <i> PARSEOP_REGISTER
> -%token <i> PARSEOP_RELEASE
> -%token <i> PARSEOP_RESERVED_BYTES
> -%token <i> PARSEOP_RESET
> -%token <i> PARSEOP_RESOURCETEMPLATE
> -%token <i> PARSEOP_RESOURCETYPE_CONSUMER
> -%token <i> PARSEOP_RESOURCETYPE_PRODUCER
> -%token <i> PARSEOP_RETURN
> -%token <i> PARSEOP_REVISION
> -%token <i> PARSEOP_SCOPE
> -%token <i> PARSEOP_SERIALIZERULE_NOTSERIAL
> -%token <i> PARSEOP_SERIALIZERULE_SERIAL
> -%token <i> PARSEOP_SHARETYPE_EXCLUSIVE
> -%token <i> PARSEOP_SHARETYPE_EXCLUSIVEWAKE
> -%token <i> PARSEOP_SHARETYPE_SHARED
> -%token <i> PARSEOP_SHARETYPE_SHAREDWAKE
> -%token <i> PARSEOP_SHIFTLEFT
> -%token <i> PARSEOP_SHIFTRIGHT
> -%token <i> PARSEOP_SIGNAL
> -%token <i> PARSEOP_SIZEOF
> -%token <i> PARSEOP_SLAVEMODE_CONTROLLERINIT
> -%token <i> PARSEOP_SLAVEMODE_DEVICEINIT
> -%token <i> PARSEOP_SLEEP
> -%token <i> PARSEOP_SPI_SERIALBUS
> -%token <i> PARSEOP_SPI_SERIALBUS_V2
> -%token <i> PARSEOP_STALL
> -%token <i> PARSEOP_STARTDEPENDENTFN
> -%token <i> PARSEOP_STARTDEPENDENTFN_NOPRI
> -%token <i> PARSEOP_STOPBITS_ONE
> -%token <i> PARSEOP_STOPBITS_ONEPLUSHALF
> -%token <i> PARSEOP_STOPBITS_TWO
> -%token <i> PARSEOP_STOPBITS_ZERO
> -%token <i> PARSEOP_STORE
> -%token <s> PARSEOP_STRING_LITERAL
> -%token <i> PARSEOP_SUBTRACT
> -%token <i> PARSEOP_SWITCH
> -%token <i> PARSEOP_THERMALZONE
> -%token <i> PARSEOP_TIMER
> -%token <i> PARSEOP_TOBCD
> -%token <i> PARSEOP_TOBUFFER
> -%token <i> PARSEOP_TODECIMALSTRING
> -%token <i> PARSEOP_TOHEXSTRING
> -%token <i> PARSEOP_TOINTEGER
> -%token <i> PARSEOP_TOSTRING
> -%token <i> PARSEOP_TOUUID
> -%token <i> PARSEOP_TRANSLATIONTYPE_DENSE
> -%token <i> PARSEOP_TRANSLATIONTYPE_SPARSE
> -%token <i> PARSEOP_TYPE_STATIC
> -%token <i> PARSEOP_TYPE_TRANSLATION
> -%token <i> PARSEOP_UART_SERIALBUS
> -%token <i> PARSEOP_UART_SERIALBUS_V2
> -%token <i> PARSEOP_UNICODE
> -%token <i> PARSEOP_UNLOAD
> -%token <i> PARSEOP_UPDATERULE_ONES
> -%token <i> PARSEOP_UPDATERULE_PRESERVE
> -%token <i> PARSEOP_UPDATERULE_ZEROS
> -%token <i> PARSEOP_VAR_PACKAGE
> -%token <i> PARSEOP_VENDORLONG
> -%token <i> PARSEOP_VENDORSHORT
> -%token <i> PARSEOP_WAIT
> -%token <i> PARSEOP_WHILE
> -%token <i> PARSEOP_WIREMODE_FOUR
> -%token <i> PARSEOP_WIREMODE_THREE
> -%token <i> PARSEOP_WORDBUSNUMBER
> -%token <i> PARSEOP_WORDCONST
> -%token <i> PARSEOP_WORDIO
> -%token <i> PARSEOP_WORDSPACE
> -%token <i> PARSEOP_XFERSIZE_8
> -%token <i> PARSEOP_XFERSIZE_16
> -%token <i> PARSEOP_XFERSIZE_32
> -%token <i> PARSEOP_XFERSIZE_64
> -%token <i> PARSEOP_XFERSIZE_128
> -%token <i> PARSEOP_XFERSIZE_256
> -%token <i> PARSEOP_XFERTYPE_8
> -%token <i> PARSEOP_XFERTYPE_8_16
> -%token <i> PARSEOP_XFERTYPE_16
> -%token <i> PARSEOP_XOR
> -%token <i> PARSEOP_ZERO
> -
> -/* ToPld macro */
> -
> -%token <i> PARSEOP_TOPLD
> -%token <i> PARSEOP_PLD_REVISION
> -%token <i> PARSEOP_PLD_IGNORECOLOR
> -%token <i> PARSEOP_PLD_RED
> -%token <i> PARSEOP_PLD_GREEN
> -%token <i> PARSEOP_PLD_BLUE
> -%token <i> PARSEOP_PLD_WIDTH
> -%token <i> PARSEOP_PLD_HEIGHT
> -%token <i> PARSEOP_PLD_USERVISIBLE
> -%token <i> PARSEOP_PLD_DOCK
> -%token <i> PARSEOP_PLD_LID
> -%token <i> PARSEOP_PLD_PANEL
> -%token <i> PARSEOP_PLD_VERTICALPOSITION
> -%token <i> PARSEOP_PLD_HORIZONTALPOSITION
> -%token <i> PARSEOP_PLD_SHAPE
> -%token <i> PARSEOP_PLD_GROUPORIENTATION
> -%token <i> PARSEOP_PLD_GROUPTOKEN
> -%token <i> PARSEOP_PLD_GROUPPOSITION
> -%token <i> PARSEOP_PLD_BAY
> -%token <i> PARSEOP_PLD_EJECTABLE
> -%token <i> PARSEOP_PLD_EJECTREQUIRED
> -%token <i> PARSEOP_PLD_CABINETNUMBER
> -%token <i> PARSEOP_PLD_CARDCAGENUMBER
> -%token <i> PARSEOP_PLD_REFERENCE
> -%token <i> PARSEOP_PLD_ROTATION
> -%token <i> PARSEOP_PLD_ORDER
> -%token <i> PARSEOP_PLD_RESERVED
> -%token <i> PARSEOP_PLD_VERTICALOFFSET
> -%token <i> PARSEOP_PLD_HORIZONTALOFFSET
> -
> -/*
> - * C-style expression parser. These must appear after all of the
> - * standard ASL operators and keywords.
> - *
> - * Note: The order of these tokens implements the precedence rules
> - * (low precedence to high). See aslrules.y for an exhaustive list.
> - */
> -%right <i> PARSEOP_EXP_EQUALS
> -           PARSEOP_EXP_ADD_EQ
> -           PARSEOP_EXP_SUB_EQ
> -           PARSEOP_EXP_MUL_EQ
> -           PARSEOP_EXP_DIV_EQ
> -           PARSEOP_EXP_MOD_EQ
> -           PARSEOP_EXP_SHL_EQ
> -           PARSEOP_EXP_SHR_EQ
> -           PARSEOP_EXP_AND_EQ
> -           PARSEOP_EXP_XOR_EQ
> -           PARSEOP_EXP_OR_EQ
> -
> -%left <i>  PARSEOP_EXP_LOGICAL_OR
> -%left <i>  PARSEOP_EXP_LOGICAL_AND
> -%left <i>  PARSEOP_EXP_OR
> -%left <i>  PARSEOP_EXP_XOR
> -%left <i>  PARSEOP_EXP_AND
> -%left <i>  PARSEOP_EXP_EQUAL
> -           PARSEOP_EXP_NOT_EQUAL
> -%left <i>  PARSEOP_EXP_GREATER
> -           PARSEOP_EXP_LESS
> -           PARSEOP_EXP_GREATER_EQUAL
> -           PARSEOP_EXP_LESS_EQUAL
> -%left <i>  PARSEOP_EXP_SHIFT_RIGHT
> -           PARSEOP_EXP_SHIFT_LEFT
> -%left <i>  PARSEOP_EXP_ADD
> -           PARSEOP_EXP_SUBTRACT
> -%left <i>  PARSEOP_EXP_MULTIPLY
> -           PARSEOP_EXP_DIVIDE
> -           PARSEOP_EXP_MODULO
> -
> -%right <i> PARSEOP_EXP_NOT
> -           PARSEOP_EXP_LOGICAL_NOT
> -
> -%left <i>  PARSEOP_EXP_INCREMENT
> -           PARSEOP_EXP_DECREMENT
> -
> -/* Brackets for Index() support */
> -
> -%left <i>  PARSEOP_EXP_INDEX_LEFT
> -%right <i> PARSEOP_EXP_INDEX_RIGHT
> -
> -/* Macros */
> -
> -%token <i> PARSEOP_PRINTF
> -%token <i> PARSEOP_FPRINTF
> -%token <i> PARSEOP_FOR
> -
> -/* Structures */
> -
> -%token <i> PARSEOP_STRUCTURE
> -%token <s> PARSEOP_STRUCTURE_NAMESTRING
> -%token <i> PARSEOP_STRUCTURE_TAG
> -%token <i> PARSEOP_STRUCTURE_ELEMENT
> -%token <i> PARSEOP_STRUCTURE_INSTANCE
> -%token <i> PARSEOP_STRUCTURE_REFERENCE
> -%token <i> PARSEOP_STRUCTURE_POINTER
> -
> -/* Top level */
> -
> -%token <i> PARSEOP_ASL_CODE
> -
> -
> -/*******************************************************************************
> - *
> - * Tokens below are not in the aslmap.c file
> - *
> - ******************************************************************************/
> -
> -
> -/* Tokens below this are not in the aslmap.c file */
> -
> -/* Specific parentheses tokens are not used at this time */
> -           /* PARSEOP_EXP_PAREN_OPEN */
> -           /* PARSEOP_EXP_PAREN_CLOSE */
> -
> -/* ASL+ variable creation */
> -
> -%token <i> PARSEOP_INTEGER_TYPE
> -%token <i> PARSEOP_STRING_TYPE
> -%token <i> PARSEOP_BUFFER_TYPE
> -%token <i> PARSEOP_PACKAGE_TYPE
> -%token <i> PARSEOP_REFERENCE_TYPE
> -
> -
> -/*
> - * Special functions. These should probably stay at the end of this
> - * table.
> - */
> -%token <i> PARSEOP___DATE__
> -%token <i> PARSEOP___FILE__
> -%token <i> PARSEOP___LINE__
> -%token <i> PARSEOP___PATH__
> -
> -
> -/* Production types/names */
> -
> -
> -
> -/******************************************************************************
> - *
> - * Production names
> - *
> - *****************************************************************************/
> -
> -%type <n> ArgList
> -%type <n> AslCode
> -%type <n> BufferData
> -%type <n> BufferTermData
> -%type <n> CompilerDirective
> -%type <n> DataObject
> -%type <n> DefinitionBlockTerm
> -%type <n> DefinitionBlockList
> -%type <n> IntegerData
> -%type <n> NamedObject
> -%type <n> NameSpaceModifier
> -%type <n> Object
> -%type <n> PackageData
> -%type <n> ParameterTypePackage
> -%type <n> ParameterTypePackageList
> -%type <n> ParameterTypesPackage
> -%type <n> ParameterTypesPackageList
> -%type <n> RequiredTarget
> -%type <n> SimpleTarget
> -%type <n> StringData
> -%type <n> Target
> -%type <n> Term
> -%type <n> TermArg
> -%type <n> TermList
> -%type <n> MethodInvocationTerm
> -
> -/* Type4Opcode is obsolete */
> -
> -%type <n> Type1Opcode
> -%type <n> Type2BufferOpcode
> -%type <n> Type2BufferOrStringOpcode
> -%type <n> Type2IntegerOpcode
> -%type <n> Type2Opcode
> -%type <n> Type2StringOpcode
> -%type <n> Type3Opcode
> -%type <n> Type5Opcode
> -%type <n> Type6Opcode
> -
> -%type <n> AccessAsTerm
> -%type <n> ExternalTerm
> -%type <n> FieldUnit
> -%type <n> FieldUnitEntry
> -%type <n> FieldUnitList
> -%type <n> IncludeTerm
> -%type <n> OffsetTerm
> -%type <n> OptionalAccessAttribTerm
> -
> -/* Named Objects */
> -
> -%type <n> BankFieldTerm
> -%type <n> CreateBitFieldTerm
> -%type <n> CreateByteFieldTerm
> -%type <n> CreateDWordFieldTerm
> -%type <n> CreateFieldTerm
> -%type <n> CreateQWordFieldTerm
> -%type <n> CreateWordFieldTerm
> -%type <n> DataRegionTerm
> -%type <n> DeviceTerm
> -%type <n> EventTerm
> -%type <n> FieldTerm
> -%type <n> FunctionTerm
> -%type <n> IndexFieldTerm
> -%type <n> MethodTerm
> -%type <n> MutexTerm
> -%type <n> OpRegionTerm
> -%type <n> OpRegionSpaceIdTerm
> -%type <n> PowerResTerm
> -%type <n> ProcessorTerm
> -%type <n> ThermalZoneTerm
> -
> -/* Namespace modifiers */
> -
> -%type <n> AliasTerm
> -%type <n> NameTerm
> -%type <n> ScopeTerm
> -
> -/* Type 1 opcodes */
> -
> -%type <n> BreakPointTerm
> -%type <n> BreakTerm
> -%type <n> CaseDefaultTermList
> -%type <n> CaseTerm
> -%type <n> ContinueTerm
> -%type <n> DefaultTerm
> -%type <n> ElseTerm
> -%type <n> FatalTerm
> -%type <n> ElseIfTerm
> -%type <n> IfTerm
> -%type <n> LoadTerm
> -%type <n> NoOpTerm
> -%type <n> NotifyTerm
> -%type <n> ReleaseTerm
> -%type <n> ResetTerm
> -%type <n> ReturnTerm
> -%type <n> SignalTerm
> -%type <n> SleepTerm
> -%type <n> StallTerm
> -%type <n> SwitchTerm
> -%type <n> UnloadTerm
> -%type <n> WhileTerm
> -/* %type <n> CaseTermList */
> -
> -/* Type 2 opcodes */
> -
> -%type <n> AcquireTerm
> -%type <n> AddTerm
> -%type <n> AndTerm
> -%type <n> ConcatResTerm
> -%type <n> ConcatTerm
> -%type <n> CondRefOfTerm
> -%type <n> CopyObjectTerm
> -%type <n> DecTerm
> -%type <n> DerefOfTerm
> -%type <n> DivideTerm
> -%type <n> FindSetLeftBitTerm
> -%type <n> FindSetRightBitTerm
> -%type <n> FromBCDTerm
> -%type <n> IncTerm
> -%type <n> IndexTerm
> -%type <n> LAndTerm
> -%type <n> LEqualTerm
> -%type <n> LGreaterEqualTerm
> -%type <n> LGreaterTerm
> -%type <n> LLessEqualTerm
> -%type <n> LLessTerm
> -%type <n> LNotEqualTerm
> -%type <n> LNotTerm
> -%type <n> LoadTableTerm
> -%type <n> LOrTerm
> -%type <n> MatchTerm
> -%type <n> MidTerm
> -%type <n> ModTerm
> -%type <n> MultiplyTerm
> -%type <n> NAndTerm
> -%type <n> NOrTerm
> -%type <n> NotTerm
> -%type <n> ObjectTypeTerm
> -%type <n> OrTerm
> -%type <n> RawDataBufferTerm
> -%type <n> RefOfTerm
> -%type <n> ShiftLeftTerm
> -%type <n> ShiftRightTerm
> -%type <n> SizeOfTerm
> -%type <n> StoreTerm
> -%type <n> SubtractTerm
> -%type <n> TimerTerm
> -%type <n> ToBCDTerm
> -%type <n> ToBufferTerm
> -%type <n> ToDecimalStringTerm
> -%type <n> ToHexStringTerm
> -%type <n> ToIntegerTerm
> -%type <n> ToStringTerm
> -%type <n> WaitTerm
> -%type <n> XOrTerm
> -
> -/* Keywords */
> -
> -%type <n> AccessAttribKeyword
> -%type <n> AccessTypeKeyword
> -%type <n> AddressingModeKeyword
> -%type <n> AddressKeyword
> -%type <n> AddressSpaceKeyword
> -%type <n> BitsPerByteKeyword
> -%type <n> ClockPhaseKeyword
> -%type <n> ClockPolarityKeyword
> -%type <n> DecodeKeyword
> -%type <n> DevicePolarityKeyword
> -%type <n> DMATypeKeyword
> -%type <n> EndianKeyword
> -%type <n> FlowControlKeyword
> -%type <n> InterruptLevel
> -%type <n> InterruptTypeKeyword
> -%type <n> IODecodeKeyword
> -%type <n> IoRestrictionKeyword
> -%type <n> LockRuleKeyword
> -%type <n> MatchOpKeyword
> -%type <n> MaxKeyword
> -%type <n> MemTypeKeyword
> -%type <n> MinKeyword
> -%type <n> ObjectTypeKeyword
> -%type <n> OptionalBusMasterKeyword
> -%type <n> OptionalReadWriteKeyword
> -%type <n> ParityTypeKeyword
> -%type <n> PinConfigByte
> -%type <n> PinConfigKeyword
> -%type <n> RangeTypeKeyword
> -%type <n> RegionSpaceKeyword
> -%type <n> ResourceTypeKeyword
> -%type <n> SerializeRuleKeyword
> -%type <n> ShareTypeKeyword
> -%type <n> SlaveModeKeyword
> -%type <n> StopBitsKeyword
> -%type <n> TranslationKeyword
> -%type <n> TypeKeyword
> -%type <n> UpdateRuleKeyword
> -%type <n> WireModeKeyword
> -%type <n> XferSizeKeyword
> -%type <n> XferTypeKeyword
> -
> -/* Types */
> -
> -%type <n> SuperName
> -%type <n> ObjectTypeName
> -%type <n> ArgTerm
> -%type <n> LocalTerm
> -%type <n> DebugTerm
> -
> -%type <n> Integer
> -%type <n> ByteConst
> -%type <n> WordConst
> -%type <n> DWordConst
> -%type <n> QWordConst
> -%type <n> String
> -
> -%type <n> ConstTerm
> -%type <n> ConstExprTerm
> -%type <n> ByteConstExpr
> -%type <n> WordConstExpr
> -%type <n> DWordConstExpr
> -%type <n> QWordConstExpr
> -
> -%type <n> DWordList
> -%type <n> BufferTerm
> -%type <n> ByteList
> -
> -%type <n> PackageElement
> -%type <n> PackageList
> -%type <n> PackageTerm
> -
> -/* Macros */
> -
> -%type <n> EISAIDTerm
> -%type <n> ResourceMacroList
> -%type <n> ResourceMacroTerm
> -%type <n> ResourceTemplateTerm
> -%type <n> PldKeyword
> -%type <n> PldKeywordList
> -%type <n> ToPLDTerm
> -%type <n> ToUUIDTerm
> -%type <n> UnicodeTerm
> -%type <n> PrintfArgList
> -%type <n> PrintfTerm
> -%type <n> FprintfTerm
> -%type <n> ForTerm
> -
> -/* Resource Descriptors */
> -
> -%type <n> ConnectionTerm
> -%type <n> DMATerm
> -%type <n> DWordIOTerm
> -%type <n> DWordMemoryTerm
> -%type <n> DWordSpaceTerm
> -%type <n> EndDependentFnTerm
> -%type <n> ExtendedIOTerm
> -%type <n> ExtendedMemoryTerm
> -%type <n> ExtendedSpaceTerm
> -%type <n> FixedDmaTerm
> -%type <n> FixedIOTerm
> -%type <n> GpioIntTerm
> -%type <n> GpioIoTerm
> -%type <n> I2cSerialBusTerm
> -%type <n> I2cSerialBusTermV2
> -%type <n> InterruptTerm
> -%type <n> IOTerm
> -%type <n> IRQNoFlagsTerm
> -%type <n> IRQTerm
> -%type <n> Memory24Term
> -%type <n> Memory32FixedTerm
> -%type <n> Memory32Term
> -%type <n> NameSeg
> -%type <n> NameString
> -%type <n> QWordIOTerm
> -%type <n> QWordMemoryTerm
> -%type <n> QWordSpaceTerm
> -%type <n> RegisterTerm
> -%type <n> SpiSerialBusTerm
> -%type <n> SpiSerialBusTermV2
> -%type <n> StartDependentFnNoPriTerm
> -%type <n> StartDependentFnTerm
> -%type <n> UartSerialBusTerm
> -%type <n> UartSerialBusTermV2
> -%type <n> VendorLongTerm
> -%type <n> VendorShortTerm
> -%type <n> WordBusNumberTerm
> -%type <n> WordIOTerm
> -%type <n> WordSpaceTerm
> -
> -/* Local types that help construct the AML, not in ACPI spec */
> -
> -%type <n> AmlPackageLengthTerm
> -%type <n> IncludeEndTerm
> -%type <n> NameStringItem
> -%type <n> TermArgItem
> -
> -%type <n> OptionalAccessSize
> -%type <n> OptionalAddressingMode
> -%type <n> OptionalAddressRange
> -%type <n> OptionalBitsPerByte
> -%type <n> OptionalBuffer_Last
> -%type <n> OptionalByteConstExpr
> -%type <n> OptionalCount
> -%type <n> OptionalDataCount
> -%type <n> OptionalDecodeType
> -%type <n> OptionalDevicePolarity
> -%type <n> OptionalDWordConstExpr
> -%type <n> OptionalEndian
> -%type <n> OptionalFlowControl
> -%type <n> OptionalIoRestriction
> -%type <n> OptionalListString
> -%type <n> OptionalMaxType
> -%type <n> OptionalMemType
> -%type <n> OptionalMinType
> -%type <n> OptionalNameString
> -%type <n> OptionalNameString_First
> -%type <n> OptionalNameString_Last
> -%type <n> OptionalObjectTypeKeyword
> -%type <n> OptionalParameterTypePackage
> -%type <n> OptionalParameterTypesPackage
> -%type <n> OptionalParentheses
> -%type <n> OptionalParityType
> -%type <n> OptionalPredicate
> -%type <n> OptionalQWordConstExpr
> -%type <n> OptionalRangeType
> -%type <n> OptionalReference
> -%type <n> OptionalResourceType
> -%type <n> OptionalResourceType_First
> -%type <n> OptionalReturnArg
> -%type <n> OptionalSerializeRuleKeyword
> -%type <n> OptionalShareType
> -%type <n> OptionalShareType_First
> -%type <n> OptionalSlaveMode
> -%type <n> OptionalStopBits
> -%type <n> OptionalStringData
> -%type <n> OptionalTermArg
> -%type <n> OptionalTranslationType_Last
> -%type <n> OptionalType
> -%type <n> OptionalType_Last
> -%type <n> OptionalWireMode
> -%type <n> OptionalWordConst
> -%type <n> OptionalWordConstExpr
> -%type <n> OptionalXferSize
> -
> -/*
> - * ASL+ (C-style) parser
> - */
> -
> -/* Expressions and symbolic operators */
> -
> -%type <n> Expression
> -%type <n> EqualsTerm
> -%type <n> IndexExpTerm
> -
> -/* ASL+ Named object declaration support */
> -/*
> -%type <n> NameTermAslPlus
> -
> -%type <n> BufferBegin
> -%type <n> BufferEnd
> -%type <n> PackageBegin
> -%type <n> PackageEnd
> -%type <n> OptionalLength
> -*/
> -/* ASL+ Structure declarations */
> -/*
> -%type <n> StructureTerm
> -%type <n> StructureTermBegin
> -%type <n> StructureType
> -%type <n> StructureTag
> -%type <n> StructureElementList
> -%type <n> StructureElement
> -%type <n> StructureElementType
> -%type <n> OptionalStructureElementType
> -%type <n> StructureId
> -*/
> -/* Structure instantiantion */
> -/*
> -%type <n> StructureInstanceTerm
> -%type <n> StructureTagReference
> -%type <n> StructureInstanceEnd
> -*/
> -/* Pseudo-instantiantion for method Args/Locals */
> -/*
> -%type <n> MethodStructureTerm
> -%type <n> LocalStructureName
> -*/
> -/* Direct structure references via the Index operator */
> -/*
> -%type <n> StructureReference
> -%type <n> StructureIndexTerm
> -%type <n> StructurePointerTerm
> -%type <n> StructurePointerReference
> -%type <n> OptionalDefinePointer
> -*/
> -
> -%%
> -
> -/* Production rules */
> -
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Root and Secondary Terms
> - *
> - ******************************************************************************/
> -
> -/*
> - * Root term. Allow multiple #line directives before the definition block
> - * to handle output from preprocessors
> - */
> -AslCode
> -    : DefinitionBlockList           {$<n>$ = TrLinkChildren (
> -                                        TrCreateLeafNode (PARSEOP_ASL_CODE),1, $1);}
> -    | error                         {YYABORT; $$ = NULL;}
> -    ;
> -
> -
> -/*
> - * Note concerning support for "module-level code".
> - *
> - * ACPI 1.0 allowed Type1 and Type2 executable opcodes outside of control
> - * methods (the so-called module-level code.) This support was explicitly
> - * removed in ACPI 2.0, but this type of code continues to be created by
> - * BIOS vendors. In order to support the disassembly and recompilation of
> - * such code (and the porting of ASL code to iASL), iASL supports this
> - * code in violation of the current ACPI specification.
> - *
> - * The grammar change to support module-level code is to revert the
> - * {ObjectList} portion of the DefinitionBlockTerm in ACPI 2.0 to the
> - * original use of {TermList} instead (see below.) This allows the use
> - * of Type1 and Type2 opcodes at module level.
> - *
> - * 04/2016: The module-level code is now allowed in the following terms:
> - * DeviceTerm, PowerResTerm, ProcessorTerm, ScopeTerm, ThermalZoneTerm.
> - * The ObjectList term is obsolete and has been removed.
> - */
> -DefinitionBlockTerm
> -    : PARSEOP_DEFINITION_BLOCK '('  {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITION_BLOCK);}
> -        String ','
> -        String ','
> -        ByteConst ','
> -        String ','
> -        String ','
> -        DWordConst
> -        ')'                         {TrSetEndLineNumber ($<n>3);}
> -            '{' TermList '}'        {$$ = TrLinkChildren ($<n>3,7,
> -                                        $4,$6,$8,$10,$12,$14,$18);}
> -    ;
> -
> -DefinitionBlockList
> -    : DefinitionBlockTerm
> -    | DefinitionBlockTerm
> -        DefinitionBlockList         {$$ = TrLinkPeerNodes (2, $1,$2);}
> -    ;
> -
> -/* Allow IO, DMA, IRQ Resource macro and FOR macro names to also be used as identifiers */
> -
> -NameString
> -    : NameSeg                       {}
> -    | PARSEOP_NAMESTRING            {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) $1);}
> -    | PARSEOP_IO                    {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
> -    | PARSEOP_DMA                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
> -    | PARSEOP_IRQ                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
> -    | PARSEOP_FOR                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "FOR");}
> -    ;
> -/*
> -NameSeg
> -    : PARSEOP_NAMESEG               {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT)
> -                                            TrNormalizeNameSeg ($1));}
> -    ;
> -*/
> -
> -NameSeg
> -    : PARSEOP_NAMESEG               {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG,
> -                                            (ACPI_NATIVE_INT) AslCompilerlval.s);}
> -    ;
> -
> -
> -SuperName
> -    : NameString                    {}
> -    | ArgTerm                       {}
> -    | LocalTerm                     {}
> -    | DebugTerm                     {}
> -    | Type6Opcode                   {}
> -    ;
> -
> -Target
> -    :                               {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
> -    | ','                           {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
> -    | ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
> -    ;
> -
> -TermArg
> -    : Type2Opcode                   {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | DataObject                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | NameString                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | ArgTerm                       {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | LocalTerm                     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -
> -
> -    ;
> -
> -/*
> - NOTE: Removed from TermArg due to reduce/reduce conflicts:
> -    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
> -
> -*/
> -
> -MethodInvocationTerm
> -    : NameString '('                {TrUpdateNode (PARSEOP_METHODCALL, $1);}
> -        ArgList ')'                 {$$ = TrLinkChildNode ($1,$4);}
> -    ;
> -
> -/* OptionalCount must appear before ByteList or an incorrect reduction will result */
> -
> -OptionalCount
> -    :                               {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
> -    | ','                           {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
> -    | ',' TermArg                   {$$ = $2;}
> -    ;
> -
> -/*
> - * Data count for buffers and packages (byte count for buffers,
> - * element count for packages).
> - */
> -OptionalDataCount
> -
> -        /* Legacy ASL */
> -    :                               {$$ = NULL;}
> -    | '(' TermArg ')'               {$$ = $2;}
> -    | '('  ')'                      {$$ = NULL;}
> -
> -        /* C-style (ASL+) -- adds equals term */
> -
> -    |  PARSEOP_EXP_EQUALS           {$$ = NULL;}
> -
> -    | '(' TermArg ')'
> -        PARSEOP_EXP_EQUALS          {$$ = $2;}
> -
> -    | '('  ')' String
> -        PARSEOP_EXP_EQUALS          {$$ = NULL;}
> -    ;
> -
> -
> -/******* List Terms **************************************************/
> -
> -ArgList
> -    :                               {$$ = NULL;}
> -    | TermArg
> -    | ArgList ','                   /* Allows a trailing comma at list end */
> -    | ArgList ','
> -        TermArg                     {$$ = TrLinkPeerNode ($1,$3);}
> -    ;
> -
> -ByteList
> -    :                               {$$ = NULL;}
> -    | ByteConstExpr
> -    | ByteList ','                  /* Allows a trailing comma at list end */
> -    | ByteList ','
> -        ByteConstExpr               {$$ = TrLinkPeerNode ($1,$3);}
> -    ;
> -
> -DWordList
> -    :                               {$$ = NULL;}
> -    | DWordConstExpr
> -    | DWordList ','                 /* Allows a trailing comma at list end */
> -    | DWordList ','
> -        DWordConstExpr              {$$ = TrLinkPeerNode ($1,$3);}
> -    ;
> -
> -FieldUnitList
> -    :                               {$$ = NULL;}
> -    | FieldUnit
> -    | FieldUnitList ','             /* Allows a trailing comma at list end */
> -    | FieldUnitList ','
> -        FieldUnit                   {$$ = TrLinkPeerNode ($1,$3);}
> -    ;
> -
> -FieldUnit
> -    : FieldUnitEntry                {}
> -    | OffsetTerm                    {}
> -    | AccessAsTerm                  {}
> -    | ConnectionTerm                {}
> -    ;
> -
> -FieldUnitEntry
> -    : ',' AmlPackageLengthTerm      {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
> -    | NameSeg ','
> -        AmlPackageLengthTerm        {$$ = TrLinkChildNode ($1,$3);}
> -    ;
> -
> -Object
> -    : CompilerDirective             {}
> -    | NamedObject                   {}
> -    | NameSpaceModifier             {}
> -//    | StructureTerm                 {}
> -    ;
> -
> -PackageList
> -    :                               {$$ = NULL;}
> -    | PackageElement
> -    | PackageList ','               /* Allows a trailing comma at list end */
> -    | PackageList ','
> -        PackageElement              {$$ = TrLinkPeerNode ($1,$3);}
> -    ;
> -
> -PackageElement
> -    : DataObject                    {}
> -    | NameString                    {}
> -    ;
> -
> -    /* Rules for specifying the type of one method argument or return value */
> -
> -ParameterTypePackage
> -    :                               {$$ = NULL;}
> -    | ObjectTypeKeyword             {$$ = $1;}
> -    | ParameterTypePackage ','
> -        ObjectTypeKeyword           {$$ = TrLinkPeerNodes (2,$1,$3);}
> -    ;
> -
> -ParameterTypePackageList
> -    :                               {$$ = NULL;}
> -    | ObjectTypeKeyword             {$$ = $1;}
> -    | '{' ParameterTypePackage '}'  {$$ = $2;}
> -    ;
> -
> -OptionalParameterTypePackage
> -    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
> -    | ',' ParameterTypePackageList  {$$ = TrLinkChildren (
> -                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
> -    ;
> -
> -    /* Rules for specifying the types for method arguments */
> -
> -ParameterTypesPackage
> -    : ParameterTypePackageList      {$$ = $1;}
> -    | ParameterTypesPackage ','
> -        ParameterTypePackageList    {$$ = TrLinkPeerNodes (2,$1,$3);}
> -    ;
> -
> -ParameterTypesPackageList
> -    :                               {$$ = NULL;}
> -    | ObjectTypeKeyword             {$$ = $1;}
> -    | '{' ParameterTypesPackage '}' {$$ = $2;}
> -    ;
> -
> -OptionalParameterTypesPackage
> -    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
> -    | ',' ParameterTypesPackageList {$$ = TrLinkChildren (
> -                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
> -    ;
> -
> -    /* ACPI 3.0 -- allow semicolons between terms */
> -
> -TermList
> -    :                               {$$ = NULL;}
> -    | TermList Term                 {$$ = TrLinkPeerNode (
> -                                        TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
> -    | TermList Term ';'             {$$ = TrLinkPeerNode (
> -                                        TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
> -    | TermList ';' Term             {$$ = TrLinkPeerNode (
> -                                        TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
> -    | TermList ';' Term ';'         {$$ = TrLinkPeerNode (
> -                                        TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
> -    ;
> -
> -Term
> -    : Object                        {}
> -    | Type1Opcode                   {}
> -    | Type2Opcode                   {}
> -    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | Type2BufferOpcode             {}
> -    | Type2BufferOrStringOpcode     {}
> -    | error                         {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -/*
> - * Case-Default list; allow only one Default term and unlimited Case terms
> - */
> -CaseDefaultTermList
> -    :                               {$$ = NULL;}
> -    | CaseTerm  {}
> -    | DefaultTerm   {}
> -    | CaseDefaultTermList
> -        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
> -    | CaseDefaultTermList
> -        DefaultTerm                 {$$ = TrLinkPeerNode ($1,$2);}
> -
> -/* Original - attempts to force zero or one default term within the switch */
> -
> -/*
> -CaseDefaultTermList
> -    :                               {$$ = NULL;}
> -    | CaseTermList
> -        DefaultTerm
> -        CaseTermList                {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
> -    | CaseTermList
> -        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
> -    ;
> -
> -CaseTermList
> -    :                               {$$ = NULL;}
> -    | CaseTerm                      {}
> -    | CaseTermList
> -        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
> -    ;
> -*/
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Data and Constant Terms
> - *
> - ******************************************************************************/
> -
> -DataObject
> -    : BufferData                    {}
> -    | PackageData                   {}
> -    | IntegerData                   {}
> -    | StringData                    {}
> -    ;
> -
> -BufferData
> -    : Type5Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | BufferTerm                    {}
> -    ;
> -
> -PackageData
> -    : PackageTerm                   {}
> -    ;
> -
> -IntegerData
> -    : Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | Integer                       {}
> -    | ConstTerm                     {}
> -    ;
> -
> -StringData
> -    : Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | String                        {}
> -    ;
> -
> -ByteConst
> -    : Integer                       {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
> -    ;
> -
> -WordConst
> -    : Integer                       {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
> -    ;
> -
> -DWordConst
> -    : Integer                       {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
> -    ;
> -
> -QWordConst
> -    : Integer                       {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
> -    ;
> -
> -/*
> - * The NODE_COMPILE_TIME_CONST flag in the following constant expressions
> - * enables compile-time constant folding to reduce the Type3Opcodes/Type2IntegerOpcodes
> - * to simple integers. It is an error if these types of expressions cannot be
> - * reduced, since the AML grammar for ****ConstExpr requires a simple constant.
> - * Note: The required byte length of the constant is passed through to the
> - * constant folding code in the node AmlLength field.
> - */
> -ByteConstExpr
> -    : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 1);}
> -    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 1);}
> -    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
> -    | ByteConst                     {}
> -    ;
> -
> -WordConstExpr
> -    : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 2);}
> -    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 2);}
> -    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
> -    | WordConst                     {}
> -    ;
> -
> -DWordConstExpr
> -    : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 4);}
> -    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 4);}
> -    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
> -    | DWordConst                    {}
> -    ;
> -
> -QWordConstExpr
> -    : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 8);}
> -    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
> -                                        TrSetNodeAmlLength ($1, 8);}
> -    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
> -    | QWordConst                    {}
> -    ;
> -
> -ConstTerm
> -    : ConstExprTerm                 {}
> -    | PARSEOP_REVISION              {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
> -    ;
> -
> -ConstExprTerm
> -    : PARSEOP_ZERO                  {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
> -    | PARSEOP_ONE                   {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
> -    | PARSEOP_ONES                  {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_UINT64_MAX);}
> -    | PARSEOP___DATE__              {$$ = TrCreateConstantLeafNode (PARSEOP___DATE__);}
> -    | PARSEOP___FILE__              {$$ = TrCreateConstantLeafNode (PARSEOP___FILE__);}
> -    | PARSEOP___LINE__              {$$ = TrCreateConstantLeafNode (PARSEOP___LINE__);}
> -    | PARSEOP___PATH__              {$$ = TrCreateConstantLeafNode (PARSEOP___PATH__);}
> -    ;
> -
> -Integer
> -    : PARSEOP_INTEGER               {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER,
> -                                        AslCompilerlval.i);}
> -    ;
> -
> -String
> -    : PARSEOP_STRING_LITERAL        {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL,
> -                                        (ACPI_NATIVE_INT) AslCompilerlval.s);}
> -    ;
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Opcode Terms
> - *
> - ******************************************************************************/
> -
> -CompilerDirective
> -    : IncludeTerm                   {}
> -    | IncludeEndTerm                {}
> -    | ExternalTerm                  {}
> -    ;
> -
> -NamedObject
> -    : BankFieldTerm                 {}
> -    | CreateBitFieldTerm            {}
> -    | CreateByteFieldTerm           {}
> -    | CreateDWordFieldTerm          {}
> -    | CreateFieldTerm               {}
> -    | CreateQWordFieldTerm          {}
> -    | CreateWordFieldTerm           {}
> -    | DataRegionTerm                {}
> -    | DeviceTerm                    {}
> -    | EventTerm                     {}
> -    | FieldTerm                     {}
> -    | FunctionTerm                  {}
> -    | IndexFieldTerm                {}
> -    | MethodTerm                    {}
> -    | MutexTerm                     {}
> -    | OpRegionTerm                  {}
> -    | PowerResTerm                  {}
> -    | ProcessorTerm                 {}
> -    | ThermalZoneTerm               {}
> -    ;
> -
> -NameSpaceModifier
> -    : AliasTerm                     {}
> -    | NameTerm                      {}
> -//    | NameTermAslPlus               {}
> -    | ScopeTerm                     {}
> -    ;
> -
> -/* For ObjectType: SuperName except for MethodInvocationTerm */
> -
> -ObjectTypeName
> -    : NameString                    {}
> -    | ArgTerm                       {}
> -    | LocalTerm                     {}
> -    | DebugTerm                     {}
> -    | RefOfTerm                     {}
> -    | DerefOfTerm                   {}
> -    | IndexTerm                     {}
> -
> -/*    | MethodInvocationTerm          {} */  /* Caused reduce/reduce with Type6Opcode->MethodInvocationTerm */
> -    ;
> -
> -RequiredTarget
> -    : ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
> -    ;
> -
> -SimpleTarget
> -    : NameString                    {}
> -    | LocalTerm                     {}
> -    | ArgTerm                       {}
> -    ;
> -
> -/* Opcode types */
> -
> -Type1Opcode
> -    : BreakTerm                     {}
> -    | BreakPointTerm                {}
> -    | ContinueTerm                  {}
> -    | FatalTerm                     {}
> -    | ForTerm                       {}
> -    | ElseIfTerm                    {}
> -    | LoadTerm                      {}
> -    | NoOpTerm                      {}
> -    | NotifyTerm                    {}
> -    | ReleaseTerm                   {}
> -    | ResetTerm                     {}
> -    | ReturnTerm                    {}
> -    | SignalTerm                    {}
> -    | SleepTerm                     {}
> -    | StallTerm                     {}
> -    | SwitchTerm                    {}
> -    | UnloadTerm                    {}
> -    | WhileTerm                     {}
> -    ;
> -
> -Type2Opcode
> -    : AcquireTerm                   {}
> -    | CondRefOfTerm                 {}
> -    | CopyObjectTerm                {}
> -    | DerefOfTerm                   {}
> -    | ObjectTypeTerm                {}
> -    | RefOfTerm                     {}
> -    | SizeOfTerm                    {}
> -    | StoreTerm                     {}
> -    | EqualsTerm                    {}
> -    | TimerTerm                     {}
> -    | WaitTerm                      {}
> -    | MethodInvocationTerm          {}
> -    ;
> -
> -/*
> - * Type 3/4/5 opcodes
> - */
> -Type2IntegerOpcode                  /* "Type3" opcodes */
> -    : Expression                    {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | AddTerm                       {}
> -    | AndTerm                       {}
> -    | DecTerm                       {}
> -    | DivideTerm                    {}
> -    | FindSetLeftBitTerm            {}
> -    | FindSetRightBitTerm           {}
> -    | FromBCDTerm                   {}
> -    | IncTerm                       {}
> -    | IndexTerm                     {}
> -//    | StructureIndexTerm            {}
> -//    | StructurePointerTerm          {}
> -    | LAndTerm                      {}
> -    | LEqualTerm                    {}
> -    | LGreaterTerm                  {}
> -    | LGreaterEqualTerm             {}
> -    | LLessTerm                     {}
> -    | LLessEqualTerm                {}
> -    | LNotTerm                      {}
> -    | LNotEqualTerm                 {}
> -    | LoadTableTerm                 {}
> -    | LOrTerm                       {}
> -    | MatchTerm                     {}
> -    | ModTerm                       {}
> -    | MultiplyTerm                  {}
> -    | NAndTerm                      {}
> -    | NOrTerm                       {}
> -    | NotTerm                       {}
> -    | OrTerm                        {}
> -    | ShiftLeftTerm                 {}
> -    | ShiftRightTerm                {}
> -    | SubtractTerm                  {}
> -    | ToBCDTerm                     {}
> -    | ToIntegerTerm                 {}
> -    | XOrTerm                       {}
> -    ;
> -
> -Type2StringOpcode                   /* "Type4" Opcodes */
> -    : ToDecimalStringTerm           {}
> -    | ToHexStringTerm               {}
> -    | ToStringTerm                  {}
> -    ;
> -
> -Type2BufferOpcode                   /* "Type5" Opcodes */
> -    : ToBufferTerm                  {}
> -    | ConcatResTerm                 {}
> -    ;
> -
> -Type2BufferOrStringOpcode
> -    : ConcatTerm                    {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
> -    | PrintfTerm                    {}
> -    | FprintfTerm                   {}
> -    | MidTerm                       {}
> -    ;
> -
> -/*
> - * A type 3 opcode evaluates to an Integer and cannot have a destination operand
> - */
> -Type3Opcode
> -    : EISAIDTerm                    {}
> -    ;
> -
> -/* Obsolete
> -Type4Opcode
> -    : ConcatTerm                    {}
> -    | ToDecimalStringTerm           {}
> -    | ToHexStringTerm               {}
> -    | MidTerm                       {}
> -    | ToStringTerm                  {}
> -    ;
> -*/
> -
> -/* Type 5 opcodes are a subset of Type2 opcodes, and return a constant */
> -
> -Type5Opcode
> -    : ResourceTemplateTerm          {}
> -    | UnicodeTerm                   {}
> -    | ToPLDTerm                     {}
> -    | ToUUIDTerm                    {}
> -    ;
> -
> -Type6Opcode
> -    : RefOfTerm                     {}
> -    | DerefOfTerm                   {}
> -    | IndexTerm                     {}
> -    | IndexExpTerm                  {}
> -//    | StructureIndexTerm            {}
> -//    | StructurePointerTerm          {}
> -    | MethodInvocationTerm          {}
> -    ;
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Helper Terms
> - *
> - ******************************************************************************/
> -
> -AmlPackageLengthTerm
> -    : Integer                       {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,
> -                                        (ACPI_PARSE_OBJECT *) $1);}
> -    ;
> -
> -NameStringItem
> -    : ',' NameString                {$$ = $2;}
> -    | ',' error                     {$$ = AslDoError (); yyclearin;}
> -    ;
> -
> -TermArgItem
> -    : ',' TermArg                   {$$ = $2;}
> -    | ',' error                     {$$ = AslDoError (); yyclearin;}
> -    ;
> -
> -OptionalReference
> -    :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
> -    | ','                           {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
> -    | ',' TermArg                   {$$ = $2;}
> -    ;
> -
> -OptionalReturnArg
> -    :                               {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO),
> -                                            NODE_IS_NULL_RETURN);}       /* Placeholder is a ZeroOp object */
> -    | TermArg                       {$$ = $1;}
> -    ;
> -
> -OptionalSerializeRuleKeyword
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' SerializeRuleKeyword      {$$ = $2;}
> -    ;
> -
> -OptionalTermArg
> -    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
> -    | TermArg                       {$$ = $1;}
> -    ;
> -
> -OptionalWordConst
> -    :                               {$$ = NULL;}
> -    | WordConst                     {$$ = $1;}
> -    ;
> -
> -
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Primary Terms
> - *
> - ******************************************************************************/
> -
> -AccessAsTerm
> -    : PARSEOP_ACCESSAS '('
> -        AccessTypeKeyword
> -        OptionalAccessAttribTerm
> -        ')'                         {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
> -    | PARSEOP_ACCESSAS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -AcquireTerm
> -    : PARSEOP_ACQUIRE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
> -        SuperName
> -        ',' WordConstExpr
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
> -    | PARSEOP_ACQUIRE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -AddTerm
> -    : PARSEOP_ADD '('               {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_ADD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -AliasTerm
> -    : PARSEOP_ALIAS '('             {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);}
> -        NameString
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,
> -                                        TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_ALIAS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -AndTerm
> -    : PARSEOP_AND '('               {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_AND '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ArgTerm
> -    : PARSEOP_ARG0                  {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
> -    | PARSEOP_ARG1                  {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
> -    | PARSEOP_ARG2                  {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
> -    | PARSEOP_ARG3                  {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
> -    | PARSEOP_ARG4                  {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
> -    | PARSEOP_ARG5                  {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
> -    | PARSEOP_ARG6                  {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
> -    ;
> -
> -BankFieldTerm
> -    : PARSEOP_BANKFIELD '('         {$<n>$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
> -        NameString
> -        NameStringItem
> -        TermArgItem
> -        ',' AccessTypeKeyword
> -        ',' LockRuleKeyword
> -        ',' UpdateRuleKeyword
> -        ')' '{'
> -            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,7,
> -                                        $4,$5,$6,$8,$10,$12,$15);}
> -    | PARSEOP_BANKFIELD '('
> -        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -BreakTerm
> -    : PARSEOP_BREAK                 {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
> -    ;
> -
> -BreakPointTerm
> -    : PARSEOP_BREAKPOINT            {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
> -    ;
> -
> -BufferTerm
> -    : PARSEOP_BUFFER                {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);}
> -        OptionalDataCount
> -        '{' BufferTermData '}'      {$$ = TrLinkChildren ($<n>2,2,$3,$5);}
> -    ;
> -
> -BufferTermData
> -    : ByteList                      {}
> -    | StringData                    {}
> -    ;
> -
> -CaseTerm
> -    : PARSEOP_CASE '('              {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);}
> -        DataObject
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_CASE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ConcatTerm
> -    : PARSEOP_CONCATENATE '('       {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_CONCATENATE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ConcatResTerm
> -    : PARSEOP_CONCATENATERESTEMPLATE '(' {$<n>$ = TrCreateLeafNode (
> -                                            PARSEOP_CONCATENATERESTEMPLATE);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_CONCATENATERESTEMPLATE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ConnectionTerm
> -    : PARSEOP_CONNECTION '('
> -        NameString
> -        ')'                         {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);}
> -    | PARSEOP_CONNECTION '('        {$<n>$ = TrCreateLeafNode (PARSEOP_CONNECTION);}
> -        ResourceMacroTerm
> -        ')'                         {$$ = TrLinkChildren ($<n>3, 1,
> -                                        TrLinkChildren (
> -                                            TrCreateLeafNode (PARSEOP_RESOURCETEMPLATE), 3,
> -                                            TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
> -                                            TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
> -                                            $4));}
> -    | PARSEOP_CONNECTION '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CondRefOfTerm
> -    : PARSEOP_CONDREFOF '('         {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
> -        SuperName
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_CONDREFOF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ContinueTerm
> -    : PARSEOP_CONTINUE              {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
> -    ;
> -
> -CopyObjectTerm
> -    : PARSEOP_COPYOBJECT '('        {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
> -        TermArg
> -        ',' SimpleTarget
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,
> -                                        TrSetNodeFlags ($6, NODE_IS_TARGET));}
> -    | PARSEOP_COPYOBJECT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CreateBitFieldTerm
> -    : PARSEOP_CREATEBITFIELD '('    {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
> -        TermArg
> -        TermArgItem
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
> -                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_CREATEBITFIELD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CreateByteFieldTerm
> -    : PARSEOP_CREATEBYTEFIELD '('   {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
> -        TermArg
> -        TermArgItem
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
> -                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_CREATEBYTEFIELD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CreateDWordFieldTerm
> -    : PARSEOP_CREATEDWORDFIELD '('  {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
> -        TermArg
> -        TermArgItem
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
> -                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_CREATEDWORDFIELD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CreateFieldTerm
> -    : PARSEOP_CREATEFIELD '('       {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
> -        TermArg
> -        TermArgItem
> -        TermArgItem
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,
> -                                        TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_CREATEFIELD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CreateQWordFieldTerm
> -    : PARSEOP_CREATEQWORDFIELD '('  {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
> -        TermArg
> -        TermArgItem
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
> -                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_CREATEQWORDFIELD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -CreateWordFieldTerm
> -    : PARSEOP_CREATEWORDFIELD '('   {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
> -        TermArg
> -        TermArgItem
> -        NameStringItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
> -                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_CREATEWORDFIELD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DataRegionTerm
> -    : PARSEOP_DATATABLEREGION '('   {$<n>$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
> -        NameString
> -        TermArgItem
> -        TermArgItem
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
> -    | PARSEOP_DATATABLEREGION '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DebugTerm
> -    : PARSEOP_DEBUG                 {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
> -    ;
> -
> -DecTerm
> -    : PARSEOP_DECREMENT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_DECREMENT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DefaultTerm
> -    : PARSEOP_DEFAULT '{'           {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
> -        TermList '}'                {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_DEFAULT '{'
> -        error '}'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DerefOfTerm
> -    : PARSEOP_DEREFOF '('           {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
> -        TermArg
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_DEREFOF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DeviceTerm
> -    : PARSEOP_DEVICE '('            {$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);}
> -        NameString
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
> -    | PARSEOP_DEVICE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DivideTerm
> -    : PARSEOP_DIVIDE '('            {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
> -    | PARSEOP_DIVIDE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -EISAIDTerm
> -    : PARSEOP_EISAID '('
> -        StringData ')'              {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
> -    | PARSEOP_EISAID '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ElseIfTerm
> -    : IfTerm ElseTerm               {$$ = TrLinkPeerNode ($1,$2);}
> -    ;
> -
> -ElseTerm
> -    :                               {$$ = NULL;}
> -    | PARSEOP_ELSE '{'              {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
> -        TermList '}'                {$$ = TrLinkChildren ($<n>3,1,$4);}
> -
> -    | PARSEOP_ELSE '{'
> -        error '}'                   {$$ = AslDoError(); yyclearin;}
> -
> -    | PARSEOP_ELSE
> -        error                       {$$ = AslDoError(); yyclearin;}
> -
> -    | PARSEOP_ELSEIF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
> -        TermArg                     {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
> -        ')' '{'
> -            TermList '}'            {TrLinkChildren ($<n>5,2,$4,$8);}
> -        ElseTerm                    {TrLinkPeerNode ($<n>5,$11);}
> -                                    {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
> -
> -    | PARSEOP_ELSEIF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -
> -    | PARSEOP_ELSEIF
> -        error                       {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -EventTerm
> -    : PARSEOP_EVENT '('             {$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);}
> -        NameString
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
> -    | PARSEOP_EVENT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ExternalTerm
> -    : PARSEOP_EXTERNAL '('
> -        NameString
> -        OptionalObjectTypeKeyword
> -        OptionalParameterTypePackage
> -        OptionalParameterTypesPackage
> -        ')'                         {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
> -    | PARSEOP_EXTERNAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FatalTerm
> -    : PARSEOP_FATAL '('             {$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);}
> -        ByteConstExpr
> -        ',' DWordConstExpr
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
> -    | PARSEOP_FATAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FieldTerm
> -    : PARSEOP_FIELD '('             {$<n>$ = TrCreateLeafNode (PARSEOP_FIELD);}
> -        NameString
> -        ',' AccessTypeKeyword
> -        ',' LockRuleKeyword
> -        ',' UpdateRuleKeyword
> -        ')' '{'
> -            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
> -    | PARSEOP_FIELD '('
> -        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FindSetLeftBitTerm
> -    : PARSEOP_FINDSETLEFTBIT '('    {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_FINDSETLEFTBIT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FindSetRightBitTerm
> -    : PARSEOP_FINDSETRIGHTBIT '('   {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_FINDSETRIGHTBIT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -    /* Convert a For() loop to a While() loop */
> -ForTerm
> -    : PARSEOP_FOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
> -        OptionalTermArg ','         {}
> -        OptionalPredicate ','
> -        OptionalTermArg             {$<n>$ = TrLinkPeerNode ($4,$<n>3);
> -                                        TrSetParent ($9,$<n>3);}                /* New parent is WHILE */
> -        ')' '{' TermList '}'        {$<n>$ = TrLinkChildren ($<n>3,2,$7,$13);}
> -                                    {$<n>$ = TrLinkPeerNode ($13,$9);
> -                                        $$ = $<n>10;}
> -    ;
> -
> -OptionalPredicate
> -    :                               {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, 1);}
> -    | TermArg                       {$$ = $1;}
> -    ;
> -
> -FprintfTerm
> -    : PARSEOP_FPRINTF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_FPRINTF);}
> -        TermArg ','
> -        StringData
> -        PrintfArgList
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
> -    | PARSEOP_FPRINTF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FromBCDTerm
> -    : PARSEOP_FROMBCD '('           {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_FROMBCD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FunctionTerm
> -    : PARSEOP_FUNCTION '('          {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
> -        NameString
> -        OptionalParameterTypePackage
> -        OptionalParameterTypesPackage
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,7,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
> -                                        TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
> -                                        TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
> -                                        TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
> -    | PARSEOP_FUNCTION '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IfTerm
> -    : PARSEOP_IF '('                {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
> -        TermArg
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -
> -    | PARSEOP_IF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IncludeTerm
> -    : PARSEOP_INCLUDE '('
> -        String  ')'                 {$$ = TrUpdateNode (PARSEOP_INCLUDE, $3);
> -                                        FlOpenIncludeFile ($3);}
> -    ;
> -
> -IncludeEndTerm
> -    : PARSEOP_INCLUDE_END           {$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);
> -                                        TrSetCurrentFilename ($$);}
> -    ;
> -
> -IncTerm
> -    : PARSEOP_INCREMENT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_INCREMENT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IndexFieldTerm
> -    : PARSEOP_INDEXFIELD '('        {$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
> -        NameString
> -        NameStringItem
> -        ',' AccessTypeKeyword
> -        ',' LockRuleKeyword
> -        ',' UpdateRuleKeyword
> -        ')' '{'
> -            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
> -    | PARSEOP_INDEXFIELD '('
> -        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IndexTerm
> -    : PARSEOP_INDEX '('             {$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_INDEX '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LAndTerm
> -    : PARSEOP_LAND '('              {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_LAND '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LEqualTerm
> -    : PARSEOP_LEQUAL '('            {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_LEQUAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LGreaterEqualTerm
> -    : PARSEOP_LGREATEREQUAL '('     {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
> -                                        TrLinkChildren ($<n>3,2,$4,$5));}
> -    | PARSEOP_LGREATEREQUAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LGreaterTerm
> -    : PARSEOP_LGREATER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_LGREATER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LLessEqualTerm
> -    : PARSEOP_LLESSEQUAL '('        {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
> -                                        TrLinkChildren ($<n>3,2,$4,$5));}
> -    | PARSEOP_LLESSEQUAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LLessTerm
> -    : PARSEOP_LLESS '('             {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_LLESS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LNotEqualTerm
> -    : PARSEOP_LNOTEQUAL '('         {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
> -                                        TrLinkChildren ($<n>3,2,$4,$5));}
> -    | PARSEOP_LNOTEQUAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LNotTerm
> -    : PARSEOP_LNOT '('              {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
> -        TermArg
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_LNOT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LoadTableTerm
> -    : PARSEOP_LOADTABLE '('         {$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
> -        TermArg
> -        TermArgItem
> -        TermArgItem
> -        OptionalListString
> -        OptionalListString
> -        OptionalReference
> -        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
> -    | PARSEOP_LOADTABLE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LoadTerm
> -    : PARSEOP_LOAD '('              {$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);}
> -        NameString
> -        RequiredTarget
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_LOAD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -LocalTerm
> -    : PARSEOP_LOCAL0                {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
> -    | PARSEOP_LOCAL1                {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
> -    | PARSEOP_LOCAL2                {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
> -    | PARSEOP_LOCAL3                {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
> -    | PARSEOP_LOCAL4                {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
> -    | PARSEOP_LOCAL5                {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
> -    | PARSEOP_LOCAL6                {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
> -    | PARSEOP_LOCAL7                {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
> -    ;
> -
> -LOrTerm
> -    : PARSEOP_LOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
> -        TermArg
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_LOR '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -MatchTerm
> -    : PARSEOP_MATCH '('             {$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);}
> -        TermArg
> -        ',' MatchOpKeyword
> -        TermArgItem
> -        ',' MatchOpKeyword
> -        TermArgItem
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
> -    | PARSEOP_MATCH '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -MethodTerm
> -    : PARSEOP_METHOD  '('           {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
> -        NameString
> -        OptionalByteConstExpr       {UtCheckIntegerRange ($5, 0, 7);}
> -        OptionalSerializeRuleKeyword
> -        OptionalByteConstExpr
> -        OptionalParameterTypePackage
> -        OptionalParameterTypesPackage
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,7,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
> -                                        $5,$7,$8,$9,$10,$13);}
> -    | PARSEOP_METHOD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -MidTerm
> -    : PARSEOP_MID '('               {$<n>$ = TrCreateLeafNode (PARSEOP_MID);}
> -        TermArg
> -        TermArgItem
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
> -    | PARSEOP_MID '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ModTerm
> -    : PARSEOP_MOD '('               {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_MOD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -MultiplyTerm
> -    : PARSEOP_MULTIPLY '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_MULTIPLY '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -MutexTerm
> -    : PARSEOP_MUTEX '('             {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);}
> -        NameString
> -        ',' ByteConstExpr
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
> -    | PARSEOP_MUTEX '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -NameTerm
> -    : PARSEOP_NAME '('              {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);}
> -        NameString
> -        ',' DataObject
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
> -    | PARSEOP_NAME '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -NAndTerm
> -    : PARSEOP_NAND '('              {$<n>$ = TrCreateLeafNode (PARSEOP_NAND);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_NAND '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -NoOpTerm
> -    : PARSEOP_NOOP                  {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
> -    ;
> -
> -NOrTerm
> -    : PARSEOP_NOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_NOR);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_NOR '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -NotifyTerm
> -    : PARSEOP_NOTIFY '('            {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
> -        SuperName
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_NOTIFY '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -NotTerm
> -    : PARSEOP_NOT '('               {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_NOT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ObjectTypeTerm
> -    : PARSEOP_OBJECTTYPE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
> -        ObjectTypeName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_OBJECTTYPE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -OffsetTerm
> -    : PARSEOP_OFFSET '('
> -        AmlPackageLengthTerm
> -        ')'                         {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
> -    | PARSEOP_OFFSET '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -OpRegionTerm
> -    : PARSEOP_OPERATIONREGION '('   {$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
> -        NameString
> -        ',' OpRegionSpaceIdTerm
> -        TermArgItem
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
> -                                        $6,$7,$8);}
> -    | PARSEOP_OPERATIONREGION '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -OpRegionSpaceIdTerm
> -    : RegionSpaceKeyword            {}
> -    | ByteConst                     {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
> -    ;
> -
> -OrTerm
> -    : PARSEOP_OR '('                {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_OR '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -PackageTerm
> -    : PARSEOP_PACKAGE               {$<n>$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
> -        OptionalDataCount
> -        '{' PackageList '}'         {$$ = TrLinkChildren ($<n>2,2,$3,$5);}
> -
> -PowerResTerm
> -    : PARSEOP_POWERRESOURCE '('     {$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
> -        NameString
> -        ',' ByteConstExpr
> -        ',' WordConstExpr
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,4,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
> -                                        $6,$8,$11);}
> -    | PARSEOP_POWERRESOURCE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -PrintfTerm
> -    : PARSEOP_PRINTF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);}
> -        StringData
> -        PrintfArgList
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_PRINTF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -PrintfArgList
> -    :                               {$$ = NULL;}
> -    | TermArg                       {$$ = $1;}
> -    | PrintfArgList ','
> -       TermArg                      {$$ = TrLinkPeerNode ($1, $3);}
> -    ;
> -
> -ProcessorTerm
> -    : PARSEOP_PROCESSOR '('         {$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
> -        NameString
> -        ',' ByteConstExpr
> -        OptionalDWordConstExpr
> -        OptionalByteConstExpr
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,5,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
> -                                        $6,$7,$8,$11);}
> -    | PARSEOP_PROCESSOR '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -RawDataBufferTerm
> -    : PARSEOP_DATABUFFER  '('       {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);}
> -        OptionalWordConst
> -        ')' '{'
> -            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_DATABUFFER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -/*
> - * In RefOf, the node isn't really a target, but we can't keep track of it after
> - * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
> - */
> -RefOfTerm
> -    : PARSEOP_REFOF '('             {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,
> -                                        TrSetNodeFlags ($4, NODE_IS_TARGET));}
> -    | PARSEOP_REFOF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ReleaseTerm
> -    : PARSEOP_RELEASE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_RELEASE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ResetTerm
> -    : PARSEOP_RESET '('             {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_RESET '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ReturnTerm
> -    : PARSEOP_RETURN '('            {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);}
> -        OptionalReturnArg
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_RETURN                {$$ = TrLinkChildren (
> -                                        TrCreateLeafNode (PARSEOP_RETURN),1,
> -                                        TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO),
> -                                            NODE_IS_NULL_RETURN));}
> -    | PARSEOP_RETURN '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ScopeTerm
> -    : PARSEOP_SCOPE '('             {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);}
> -        NameString
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
> -    | PARSEOP_SCOPE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ShiftLeftTerm
> -    : PARSEOP_SHIFTLEFT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_SHIFTLEFT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ShiftRightTerm
> -    : PARSEOP_SHIFTRIGHT '('        {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_SHIFTRIGHT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SignalTerm
> -    : PARSEOP_SIGNAL '('            {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_SIGNAL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SizeOfTerm
> -    : PARSEOP_SIZEOF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_SIZEOF '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SleepTerm
> -    : PARSEOP_SLEEP '('             {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);}
> -        TermArg
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_SLEEP '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -StallTerm
> -    : PARSEOP_STALL '('             {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);}
> -        TermArg
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_STALL '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -StoreTerm
> -    : PARSEOP_STORE '('             {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);}
> -        TermArg
> -        ',' SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,
> -                                        TrSetNodeFlags ($6, NODE_IS_TARGET));}
> -    | PARSEOP_STORE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SubtractTerm
> -    : PARSEOP_SUBTRACT '('          {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_SUBTRACT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SwitchTerm
> -    : PARSEOP_SWITCH '('            {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);}
> -        TermArg
> -        ')' '{'
> -            CaseDefaultTermList '}'
> -                                    {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_SWITCH '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ThermalZoneTerm
> -    : PARSEOP_THERMALZONE '('       {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
> -        NameString
> -        ')' '{'
> -            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,
> -                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
> -    | PARSEOP_THERMALZONE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -TimerTerm
> -    : PARSEOP_TIMER '('             {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);}
> -        ')'                         {$$ = TrLinkChildren ($<n>3,0);}
> -    | PARSEOP_TIMER                 {$$ = TrLinkChildren (
> -                                        TrCreateLeafNode (PARSEOP_TIMER),0);}
> -    | PARSEOP_TIMER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToBCDTerm
> -    : PARSEOP_TOBCD '('             {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_TOBCD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToBufferTerm
> -    : PARSEOP_TOBUFFER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_TOBUFFER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToDecimalStringTerm
> -    : PARSEOP_TODECIMALSTRING '('   {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_TODECIMALSTRING '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToHexStringTerm
> -    : PARSEOP_TOHEXSTRING '('       {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_TOHEXSTRING '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToIntegerTerm
> -    : PARSEOP_TOINTEGER '('         {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
> -        TermArg
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_TOINTEGER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToPLDTerm
> -    : PARSEOP_TOPLD '('             {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);}
> -        PldKeywordList
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_TOPLD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -PldKeywordList
> -    :                               {$$ = NULL;}
> -    | PldKeyword
> -        PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkChildren ($1,1,$3);}
> -    | PldKeyword
> -        PARSEOP_EXP_EQUALS String   {$$ = TrLinkChildren ($1,1,$3);}
> -    | PldKeywordList ','            /* Allows a trailing comma at list end */
> -    | PldKeywordList ','
> -        PldKeyword
> -        PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
> -    | PldKeywordList ','
> -        PldKeyword
> -        PARSEOP_EXP_EQUALS String   {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
> -    ;
> -
> -
> -ToStringTerm
> -    : PARSEOP_TOSTRING '('          {$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
> -        TermArg
> -        OptionalCount
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_TOSTRING '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ToUUIDTerm
> -    : PARSEOP_TOUUID '('
> -        StringData ')'              {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
> -    | PARSEOP_TOUUID '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -UnicodeTerm
> -    : PARSEOP_UNICODE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);}
> -        StringData
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,0,$4);}
> -    | PARSEOP_UNICODE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -UnloadTerm
> -    : PARSEOP_UNLOAD '('            {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
> -        SuperName
> -        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_UNLOAD '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -WaitTerm
> -    : PARSEOP_WAIT '('              {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);}
> -        SuperName
> -        TermArgItem
> -        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
> -    | PARSEOP_WAIT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -XOrTerm
> -    : PARSEOP_XOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
> -        TermArg
> -        TermArgItem
> -        Target
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
> -    | PARSEOP_XOR '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -WhileTerm
> -    : PARSEOP_WHILE '('             {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
> -        TermArg
> -        ')' '{' TermList '}'
> -                                    {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_WHILE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -
> -
> -/*******************************************************************************
> - *
> - * Production rules for the symbolic (c-style) operators
> - *
> - ******************************************************************************/
> -
> -/*
> - * ASL Extensions: C-style math/logical operators and expressions.
> - * The implementation transforms these operators into the standard
> - * AML opcodes and syntax.
> - *
> - * Supported operators and precedence rules (high-to-low)
> - *
> - * NOTE: The operator precedence and associativity rules are
> - * implemented by the tokens in asltokens.y
> - *
> - * (left-to-right):
> - *  1)      ( ) expr++ expr--
> - *
> - * (right-to-left):
> - *  2)      ! ~
> - *
> - * (left-to-right):
> - *  3)      *   /   %
> - *  4)      +   -
> - *  5)      >>  <<
> - *  6)      <   >   <=  >=
> - *  7)      ==  !=
> - *  8)      &
> - *  9)      ^
> - *  10)     |
> - *  11)     &&
> - *  12)     ||
> - *
> - * (right-to-left):
> - *  13)     = += -= *= /= %= <<= >>= &= ^= |=
> - */
> -
> -
> -/*******************************************************************************
> - *
> - * Basic operations for math and logical expressions.
> - *
> - ******************************************************************************/
> -
> -Expression
> -
> -    /* Unary operators */
> -
> -    : PARSEOP_EXP_LOGICAL_NOT           {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>2,1,$3);}
> -    | PARSEOP_EXP_NOT                   {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>2,2,$3,TrCreateNullTarget ());}
> -
> -    | SuperName PARSEOP_EXP_INCREMENT   {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
> -                                        {$$ = TrLinkChildren ($<n>3,1,$1);}
> -    | SuperName PARSEOP_EXP_DECREMENT   {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
> -                                        {$$ = TrLinkChildren ($<n>3,1,$1);}
> -
> -    /* Binary operators: math and logical */
> -
> -    | TermArg PARSEOP_EXP_ADD           {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_DIVIDE        {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,4,$1,$4,TrCreateNullTarget (),
> -                                            TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_MODULO        {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_MULTIPLY      {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_SHIFT_LEFT    {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_SHIFT_RIGHT   {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_SUBTRACT      {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -
> -    | TermArg PARSEOP_EXP_AND           {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_OR            {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -    | TermArg PARSEOP_EXP_XOR           {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
> -
> -    | TermArg PARSEOP_EXP_GREATER       {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -    | TermArg PARSEOP_EXP_GREATER_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATEREQUAL);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -    | TermArg PARSEOP_EXP_LESS          {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -    | TermArg PARSEOP_EXP_LESS_EQUAL    {$<n>$ = TrCreateLeafNode (PARSEOP_LLESSEQUAL);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -
> -    | TermArg PARSEOP_EXP_EQUAL         {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -    | TermArg PARSEOP_EXP_NOT_EQUAL     {$<n>$ = TrCreateLeafNode (PARSEOP_LNOTEQUAL);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -
> -    | TermArg PARSEOP_EXP_LOGICAL_AND   {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -    | TermArg PARSEOP_EXP_LOGICAL_OR    {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
> -
> -    /* Parentheses */
> -
> -    | '(' TermArg ')'                   { $$ = $2;}
> -
> -    /* Index term -- "= BUF1[5]" on right-hand side of an equals (source) */
> -
> -    | SuperName PARSEOP_EXP_INDEX_LEFT
> -        TermArg PARSEOP_EXP_INDEX_RIGHT {$$ = TrCreateLeafNode (PARSEOP_INDEX);
> -                                        TrLinkChildren ($$,3,$1,$3,TrCreateNullTarget ());}
> -    ;
> -
> -    /* Index term -- "BUF1[5] = " on left-hand side of an equals (target) */
> -
> -IndexExpTerm
> -
> -    : SuperName PARSEOP_EXP_INDEX_LEFT
> -        TermArg PARSEOP_EXP_INDEX_RIGHT {$$ = TrCreateLeafNode (PARSEOP_INDEX);
> -                                        TrLinkChildren ($$,3,$1,$3,TrCreateNullTarget ());}
> -    ;
> -
> -
> -/*******************************************************************************
> - *
> - * All assignment-type operations -- math and logical. Includes simple
> - * assignment and compound assignments.
> - *
> - ******************************************************************************/
> -
> -EqualsTerm
> -
> -    /* Simple Store() operation */
> -
> -    : SuperName PARSEOP_EXP_EQUALS
> -        TermArg                         {$$ = TrCreateAssignmentNode ($1, $3);}
> -
> -    /* Compound assignments -- Add (operand, operand, target) */
> -
> -    | TermArg PARSEOP_EXP_ADD_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_DIV_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,4,$1,$4,TrCreateNullTarget (),
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_MOD_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_MUL_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_SHL_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_SHR_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_SUB_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_AND_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_OR_EQ         {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -
> -    | TermArg PARSEOP_EXP_XOR_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
> -        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
> -                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
> -    ;
> -
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Parameter Keyword Terms
> - *
> - ******************************************************************************/
> -
> -AccessAttribKeyword
> -    : PARSEOP_ACCESSATTRIB_BLOCK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
> -    | PARSEOP_ACCESSATTRIB_BLOCK_CALL       {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
> -    | PARSEOP_ACCESSATTRIB_BYTE             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
> -    | PARSEOP_ACCESSATTRIB_QUICK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
> -    | PARSEOP_ACCESSATTRIB_SND_RCV          {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
> -    | PARSEOP_ACCESSATTRIB_WORD             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
> -    | PARSEOP_ACCESSATTRIB_WORD_CALL        {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
> -    | PARSEOP_ACCESSATTRIB_MULTIBYTE '('    {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_MULTIBYTE);}
> -        ByteConst
> -        ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_ACCESSATTRIB_RAW_BYTES '('    {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_BYTES);}
> -        ByteConst
> -        ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    | PARSEOP_ACCESSATTRIB_RAW_PROCESS '('  {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_PROCESS);}
> -        ByteConst
> -        ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
> -    ;
> -
> -AccessTypeKeyword
> -    : PARSEOP_ACCESSTYPE_ANY                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
> -    | PARSEOP_ACCESSTYPE_BYTE               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
> -    | PARSEOP_ACCESSTYPE_WORD               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
> -    | PARSEOP_ACCESSTYPE_DWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
> -    | PARSEOP_ACCESSTYPE_QWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
> -    | PARSEOP_ACCESSTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
> -    ;
> -
> -AddressingModeKeyword
> -    : PARSEOP_ADDRESSINGMODE_7BIT           {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_7BIT);}
> -    | PARSEOP_ADDRESSINGMODE_10BIT          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_10BIT);}
> -    ;
> -
> -AddressKeyword
> -    : PARSEOP_ADDRESSTYPE_MEMORY            {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
> -    | PARSEOP_ADDRESSTYPE_RESERVED          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
> -    | PARSEOP_ADDRESSTYPE_NVS               {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
> -    | PARSEOP_ADDRESSTYPE_ACPI              {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
> -    ;
> -
> -AddressSpaceKeyword
> -    : ByteConst                             {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);}
> -    | RegionSpaceKeyword                    {}
> -    ;
> -
> -BitsPerByteKeyword
> -    : PARSEOP_BITSPERBYTE_FIVE              {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_FIVE);}
> -    | PARSEOP_BITSPERBYTE_SIX               {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SIX);}
> -    | PARSEOP_BITSPERBYTE_SEVEN             {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SEVEN);}
> -    | PARSEOP_BITSPERBYTE_EIGHT             {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_EIGHT);}
> -    | PARSEOP_BITSPERBYTE_NINE              {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_NINE);}
> -    ;
> -
> -ClockPhaseKeyword
> -    : PARSEOP_CLOCKPHASE_FIRST              {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_FIRST);}
> -    | PARSEOP_CLOCKPHASE_SECOND             {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_SECOND);}
> -    ;
> -
> -ClockPolarityKeyword
> -    : PARSEOP_CLOCKPOLARITY_LOW             {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_LOW);}
> -    | PARSEOP_CLOCKPOLARITY_HIGH            {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_HIGH);}
> -    ;
> -
> -DecodeKeyword
> -    : PARSEOP_DECODETYPE_POS                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
> -    | PARSEOP_DECODETYPE_SUB                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
> -    ;
> -
> -DevicePolarityKeyword
> -    : PARSEOP_DEVICEPOLARITY_LOW            {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_LOW);}
> -    | PARSEOP_DEVICEPOLARITY_HIGH           {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_HIGH);}
> -    ;
> -
> -DMATypeKeyword
> -    : PARSEOP_DMATYPE_A                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
> -    | PARSEOP_DMATYPE_COMPATIBILITY         {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
> -    | PARSEOP_DMATYPE_B                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
> -    | PARSEOP_DMATYPE_F                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
> -    ;
> -
> -EndianKeyword
> -    : PARSEOP_ENDIAN_LITTLE                 {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_LITTLE);}
> -    | PARSEOP_ENDIAN_BIG                    {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_BIG);}
> -    ;
> -
> -FlowControlKeyword
> -    : PARSEOP_FLOWCONTROL_HW                {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_HW);}
> -    | PARSEOP_FLOWCONTROL_NONE              {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_NONE);}
> -    | PARSEOP_FLOWCONTROL_SW                {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_SW);}
> -    ;
> -
> -InterruptLevel
> -    : PARSEOP_INTLEVEL_ACTIVEBOTH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEBOTH);}
> -    | PARSEOP_INTLEVEL_ACTIVEHIGH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
> -    | PARSEOP_INTLEVEL_ACTIVELOW            {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
> -    ;
> -
> -InterruptTypeKeyword
> -    : PARSEOP_INTTYPE_EDGE                  {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
> -    | PARSEOP_INTTYPE_LEVEL                 {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
> -    ;
> -
> -IODecodeKeyword
> -    : PARSEOP_IODECODETYPE_16               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
> -    | PARSEOP_IODECODETYPE_10               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
> -    ;
> -
> -IoRestrictionKeyword
> -    : PARSEOP_IORESTRICT_IN                 {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);}
> -    | PARSEOP_IORESTRICT_OUT                {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);}
> -    | PARSEOP_IORESTRICT_NONE               {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);}
> -    | PARSEOP_IORESTRICT_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);}
> -    ;
> -
> -LockRuleKeyword
> -    : PARSEOP_LOCKRULE_LOCK                 {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
> -    | PARSEOP_LOCKRULE_NOLOCK               {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
> -    ;
> -
> -MatchOpKeyword
> -    : PARSEOP_MATCHTYPE_MTR                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
> -    | PARSEOP_MATCHTYPE_MEQ                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
> -    | PARSEOP_MATCHTYPE_MLE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
> -    | PARSEOP_MATCHTYPE_MLT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
> -    | PARSEOP_MATCHTYPE_MGE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
> -    | PARSEOP_MATCHTYPE_MGT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
> -    ;
> -
> -MaxKeyword
> -    : PARSEOP_MAXTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
> -    | PARSEOP_MAXTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
> -    ;
> -
> -MemTypeKeyword
> -    : PARSEOP_MEMTYPE_CACHEABLE             {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
> -    | PARSEOP_MEMTYPE_WRITECOMBINING        {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
> -    | PARSEOP_MEMTYPE_PREFETCHABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
> -    | PARSEOP_MEMTYPE_NONCACHEABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
> -    ;
> -
> -MinKeyword
> -    : PARSEOP_MINTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
> -    | PARSEOP_MINTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
> -    ;
> -
> -ObjectTypeKeyword
> -    : PARSEOP_OBJECTTYPE_UNK                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
> -    | PARSEOP_OBJECTTYPE_INT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
> -    | PARSEOP_OBJECTTYPE_STR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
> -    | PARSEOP_OBJECTTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
> -    | PARSEOP_OBJECTTYPE_PKG                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
> -    | PARSEOP_OBJECTTYPE_FLD                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
> -    | PARSEOP_OBJECTTYPE_DEV                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
> -    | PARSEOP_OBJECTTYPE_EVT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
> -    | PARSEOP_OBJECTTYPE_MTH                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
> -    | PARSEOP_OBJECTTYPE_MTX                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
> -    | PARSEOP_OBJECTTYPE_OPR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
> -    | PARSEOP_OBJECTTYPE_POW                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
> -    | PARSEOP_OBJECTTYPE_PRO                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
> -    | PARSEOP_OBJECTTYPE_THZ                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
> -    | PARSEOP_OBJECTTYPE_BFF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
> -    | PARSEOP_OBJECTTYPE_DDB                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
> -    ;
> -
> -ParityTypeKeyword
> -    : PARSEOP_PARITYTYPE_SPACE              {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_SPACE);}
> -    | PARSEOP_PARITYTYPE_MARK               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_MARK);}
> -    | PARSEOP_PARITYTYPE_ODD                {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_ODD);}
> -    | PARSEOP_PARITYTYPE_EVEN               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_EVEN);}
> -    | PARSEOP_PARITYTYPE_NONE               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_NONE);}
> -    ;
> -
> -PinConfigByte
> -    : PinConfigKeyword                      {$$ = $1;}
> -    | ByteConstExpr                         {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
> -    ;
> -
> -PinConfigKeyword
> -    : PARSEOP_PIN_NOPULL                    {$$ = TrCreateLeafNode (PARSEOP_PIN_NOPULL);}
> -    | PARSEOP_PIN_PULLDOWN                  {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDOWN);}
> -    | PARSEOP_PIN_PULLUP                    {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLUP);}
> -    | PARSEOP_PIN_PULLDEFAULT               {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDEFAULT);}
> -    ;
> -
> -PldKeyword
> -    : PARSEOP_PLD_REVISION                  {$$ = TrCreateLeafNode (PARSEOP_PLD_REVISION);}
> -    | PARSEOP_PLD_IGNORECOLOR               {$$ = TrCreateLeafNode (PARSEOP_PLD_IGNORECOLOR);}
> -    | PARSEOP_PLD_RED                       {$$ = TrCreateLeafNode (PARSEOP_PLD_RED);}
> -    | PARSEOP_PLD_GREEN                     {$$ = TrCreateLeafNode (PARSEOP_PLD_GREEN);}
> -    | PARSEOP_PLD_BLUE                      {$$ = TrCreateLeafNode (PARSEOP_PLD_BLUE);}
> -    | PARSEOP_PLD_WIDTH                     {$$ = TrCreateLeafNode (PARSEOP_PLD_WIDTH);}
> -    | PARSEOP_PLD_HEIGHT                    {$$ = TrCreateLeafNode (PARSEOP_PLD_HEIGHT);}
> -    | PARSEOP_PLD_USERVISIBLE               {$$ = TrCreateLeafNode (PARSEOP_PLD_USERVISIBLE);}
> -    | PARSEOP_PLD_DOCK                      {$$ = TrCreateLeafNode (PARSEOP_PLD_DOCK);}
> -    | PARSEOP_PLD_LID                       {$$ = TrCreateLeafNode (PARSEOP_PLD_LID);}
> -    | PARSEOP_PLD_PANEL                     {$$ = TrCreateLeafNode (PARSEOP_PLD_PANEL);}
> -    | PARSEOP_PLD_VERTICALPOSITION          {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALPOSITION);}
> -    | PARSEOP_PLD_HORIZONTALPOSITION        {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALPOSITION);}
> -    | PARSEOP_PLD_SHAPE                     {$$ = TrCreateLeafNode (PARSEOP_PLD_SHAPE);}
> -    | PARSEOP_PLD_GROUPORIENTATION          {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPORIENTATION);}
> -    | PARSEOP_PLD_GROUPTOKEN                {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPTOKEN);}
> -    | PARSEOP_PLD_GROUPPOSITION             {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPPOSITION);}
> -    | PARSEOP_PLD_BAY                       {$$ = TrCreateLeafNode (PARSEOP_PLD_BAY);}
> -    | PARSEOP_PLD_EJECTABLE                 {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTABLE);}
> -    | PARSEOP_PLD_EJECTREQUIRED             {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTREQUIRED);}
> -    | PARSEOP_PLD_CABINETNUMBER             {$$ = TrCreateLeafNode (PARSEOP_PLD_CABINETNUMBER);}
> -    | PARSEOP_PLD_CARDCAGENUMBER            {$$ = TrCreateLeafNode (PARSEOP_PLD_CARDCAGENUMBER);}
> -    | PARSEOP_PLD_REFERENCE                 {$$ = TrCreateLeafNode (PARSEOP_PLD_REFERENCE);}
> -    | PARSEOP_PLD_ROTATION                  {$$ = TrCreateLeafNode (PARSEOP_PLD_ROTATION);}
> -    | PARSEOP_PLD_ORDER                     {$$ = TrCreateLeafNode (PARSEOP_PLD_ORDER);}
> -    | PARSEOP_PLD_RESERVED                  {$$ = TrCreateLeafNode (PARSEOP_PLD_RESERVED);}
> -    | PARSEOP_PLD_VERTICALOFFSET            {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALOFFSET);}
> -    | PARSEOP_PLD_HORIZONTALOFFSET          {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALOFFSET);}
> -    ;
> -
> -RangeTypeKeyword
> -    : PARSEOP_RANGETYPE_ISAONLY             {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
> -    | PARSEOP_RANGETYPE_NONISAONLY          {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
> -    | PARSEOP_RANGETYPE_ENTIRE              {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
> -    ;
> -
> -RegionSpaceKeyword
> -    : PARSEOP_REGIONSPACE_IO                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
> -    | PARSEOP_REGIONSPACE_MEM               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
> -    | PARSEOP_REGIONSPACE_PCI               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
> -    | PARSEOP_REGIONSPACE_EC                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
> -    | PARSEOP_REGIONSPACE_SMBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
> -    | PARSEOP_REGIONSPACE_CMOS              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
> -    | PARSEOP_REGIONSPACE_PCIBAR            {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
> -    | PARSEOP_REGIONSPACE_IPMI              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);}
> -    | PARSEOP_REGIONSPACE_GPIO              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GPIO);}
> -    | PARSEOP_REGIONSPACE_GSBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GSBUS);}
> -    | PARSEOP_REGIONSPACE_PCC               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCC);}
> -    | PARSEOP_REGIONSPACE_FFIXEDHW          {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_FFIXEDHW);}
> -    ;
> -
> -ResourceTypeKeyword
> -    : PARSEOP_RESOURCETYPE_CONSUMER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
> -    | PARSEOP_RESOURCETYPE_PRODUCER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
> -    ;
> -
> -SerializeRuleKeyword
> -    : PARSEOP_SERIALIZERULE_SERIAL          {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
> -    | PARSEOP_SERIALIZERULE_NOTSERIAL       {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
> -    ;
> -
> -ShareTypeKeyword
> -    : PARSEOP_SHARETYPE_SHARED              {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
> -    | PARSEOP_SHARETYPE_EXCLUSIVE           {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
> -    | PARSEOP_SHARETYPE_SHAREDWAKE          {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHAREDWAKE);}
> -    | PARSEOP_SHARETYPE_EXCLUSIVEWAKE       {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVEWAKE);}
> -   ;
> -
> -SlaveModeKeyword
> -    : PARSEOP_SLAVEMODE_CONTROLLERINIT      {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_CONTROLLERINIT);}
> -    | PARSEOP_SLAVEMODE_DEVICEINIT          {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_DEVICEINIT);}
> -    ;
> -
> -StopBitsKeyword
> -    : PARSEOP_STOPBITS_TWO                  {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_TWO);}
> -    | PARSEOP_STOPBITS_ONEPLUSHALF          {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONEPLUSHALF);}
> -    | PARSEOP_STOPBITS_ONE                  {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONE);}
> -    | PARSEOP_STOPBITS_ZERO                 {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ZERO);}
> -    ;
> -
> -TranslationKeyword
> -    : PARSEOP_TRANSLATIONTYPE_SPARSE        {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
> -    | PARSEOP_TRANSLATIONTYPE_DENSE         {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
> -    ;
> -
> -TypeKeyword
> -    : PARSEOP_TYPE_TRANSLATION              {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
> -    | PARSEOP_TYPE_STATIC                   {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
> -    ;
> -
> -UpdateRuleKeyword
> -    : PARSEOP_UPDATERULE_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
> -    | PARSEOP_UPDATERULE_ONES               {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
> -    | PARSEOP_UPDATERULE_ZEROS              {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
> -    ;
> -
> -WireModeKeyword
> -    : PARSEOP_WIREMODE_FOUR                 {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_FOUR);}
> -    | PARSEOP_WIREMODE_THREE                {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_THREE);}
> -    ;
> -
> -XferSizeKeyword
> -    : PARSEOP_XFERSIZE_8                    {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_8,   0);}
> -    | PARSEOP_XFERSIZE_16                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_16,  1);}
> -    | PARSEOP_XFERSIZE_32                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32,  2);}
> -    | PARSEOP_XFERSIZE_64                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_64,  3);}
> -    | PARSEOP_XFERSIZE_128                  {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_128, 4);}
> -    | PARSEOP_XFERSIZE_256                  {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_256, 5);}
> -    ;
> -
> -XferTypeKeyword
> -    : PARSEOP_XFERTYPE_8                    {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
> -    | PARSEOP_XFERTYPE_8_16                 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
> -    | PARSEOP_XFERTYPE_16                   {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
> -    ;
> -
> -
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Resource Template Terms
> - *
> - ******************************************************************************/
> -
> -/*
> - * Note: Create two default nodes to allow conversion to a Buffer AML opcode
> - * Also, insert the EndTag at the end of the template.
> - */
> -ResourceTemplateTerm
> -    : PARSEOP_RESOURCETEMPLATE OptionalParentheses
> -        '{'
> -        ResourceMacroList '}'       {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
> -                                          TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
> -                                          TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
> -                                          $4,
> -                                          TrCreateLeafNode (PARSEOP_ENDTAG));}
> -    ;
> -
> -OptionalParentheses
> -    :                               {$$ = NULL;}
> -    | '(' ')'                       {$$ = NULL;}
> -    ;
> -
> -ResourceMacroList
> -    :                               {$$ = NULL;}
> -    | ResourceMacroList
> -        ResourceMacroTerm           {$$ = TrLinkPeerNode ($1,$2);}
> -    ;
> -
> -ResourceMacroTerm
> -    : DMATerm                       {}
> -    | DWordIOTerm                   {}
> -    | DWordMemoryTerm               {}
> -    | DWordSpaceTerm                {}
> -    | EndDependentFnTerm            {}
> -    | ExtendedIOTerm                {}
> -    | ExtendedMemoryTerm            {}
> -    | ExtendedSpaceTerm             {}
> -    | FixedDmaTerm                  {}
> -    | FixedIOTerm                   {}
> -    | GpioIntTerm                   {}
> -    | GpioIoTerm                    {}
> -    | I2cSerialBusTerm              {}
> -    | I2cSerialBusTermV2            {}
> -    | InterruptTerm                 {}
> -    | IOTerm                        {}
> -    | IRQNoFlagsTerm                {}
> -    | IRQTerm                       {}
> -    | Memory24Term                  {}
> -    | Memory32FixedTerm             {}
> -    | Memory32Term                  {}
> -    | QWordIOTerm                   {}
> -    | QWordMemoryTerm               {}
> -    | QWordSpaceTerm                {}
> -    | RegisterTerm                  {}
> -    | SpiSerialBusTerm              {}
> -    | SpiSerialBusTermV2            {}
> -    | StartDependentFnNoPriTerm     {}
> -    | StartDependentFnTerm          {}
> -    | UartSerialBusTerm             {}
> -    | UartSerialBusTermV2           {}
> -    | VendorLongTerm                {}
> -    | VendorShortTerm               {}
> -    | WordBusNumberTerm             {}
> -    | WordIOTerm                    {}
> -    | WordSpaceTerm                 {}
> -    ;
> -
> -DMATerm
> -    : PARSEOP_DMA '('               {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
> -        DMATypeKeyword
> -        OptionalBusMasterKeyword
> -        ',' XferTypeKeyword
> -        OptionalNameString_Last
> -        ')' '{'
> -            ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
> -    | PARSEOP_DMA '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DWordIOTerm
> -    : PARSEOP_DWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
> -        OptionalResourceType_First
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalDecodeType
> -        OptionalRangeType
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString
> -        OptionalType
> -        OptionalTranslationType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,15,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
> -    | PARSEOP_DWORDIO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DWordMemoryTerm
> -    : PARSEOP_DWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
> -        OptionalResourceType_First
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalMemType
> -        ',' OptionalReadWriteKeyword
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString
> -        OptionalAddressRange
> -        OptionalType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,16,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
> -    | PARSEOP_DWORDMEMORY '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -DWordSpaceTerm
> -    : PARSEOP_DWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
> -        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
> -        OptionalResourceType
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        ',' ByteConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,14,
> -                                        $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
> -    | PARSEOP_DWORDSPACE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -EndDependentFnTerm
> -    : PARSEOP_ENDDEPENDENTFN '('
> -        ')'                         {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
> -    | PARSEOP_ENDDEPENDENTFN '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ExtendedIOTerm
> -    : PARSEOP_EXTENDEDIO '('        {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
> -        OptionalResourceType_First
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalDecodeType
> -        OptionalRangeType
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        OptionalQWordConstExpr
> -        OptionalNameString
> -        OptionalType
> -        OptionalTranslationType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,14,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
> -    | PARSEOP_EXTENDEDIO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ExtendedMemoryTerm
> -    : PARSEOP_EXTENDEDMEMORY '('    {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
> -        OptionalResourceType_First
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalMemType
> -        ',' OptionalReadWriteKeyword
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        OptionalQWordConstExpr
> -        OptionalNameString
> -        OptionalAddressRange
> -        OptionalType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,15,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
> -    | PARSEOP_EXTENDEDMEMORY '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -ExtendedSpaceTerm
> -    : PARSEOP_EXTENDEDSPACE '('     {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
> -        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
> -        OptionalResourceType
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        ',' ByteConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        OptionalQWordConstExpr
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,13,
> -                                        $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
> -    | PARSEOP_EXTENDEDSPACE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FixedDmaTerm
> -    : PARSEOP_FIXEDDMA '('          {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
> -        WordConstExpr               /* 04: DMA RequestLines */
> -        ',' WordConstExpr           /* 06: DMA Channels */
> -        OptionalXferSize            /* 07: DMA TransferSize */
> -        OptionalNameString          /* 08: DescriptorName */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
> -    | PARSEOP_FIXEDDMA '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -FixedIOTerm
> -    : PARSEOP_FIXEDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
> -        WordConstExpr
> -        ',' ByteConstExpr
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
> -    | PARSEOP_FIXEDIO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -GpioIntTerm
> -    : PARSEOP_GPIO_INT '('          {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
> -        InterruptTypeKeyword        /* 04: InterruptType */
> -        ',' InterruptLevel          /* 06: InterruptLevel */
> -        OptionalShareType           /* 07: SharedType */
> -        ',' PinConfigByte           /* 09: PinConfig */
> -        OptionalWordConstExpr       /* 10: DebounceTimeout */
> -        ',' StringData              /* 12: ResourceSource */
> -        OptionalByteConstExpr       /* 13: ResourceSourceIndex */
> -        OptionalResourceType        /* 14: ResourceType */
> -        OptionalNameString          /* 15: DescriptorName */
> -        OptionalBuffer_Last         /* 16: VendorData */
> -        ')' '{'
> -            DWordConstExpr '}'      {$$ = TrLinkChildren ($<n>3,11,
> -                                        $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
> -    | PARSEOP_GPIO_INT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -GpioIoTerm
> -    : PARSEOP_GPIO_IO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
> -        OptionalShareType_First     /* 04: SharedType */
> -        ',' PinConfigByte           /* 06: PinConfig */
> -        OptionalWordConstExpr       /* 07: DebounceTimeout */
> -        OptionalWordConstExpr       /* 08: DriveStrength */
> -        OptionalIoRestriction       /* 09: IoRestriction */
> -        ',' StringData              /* 11: ResourceSource */
> -        OptionalByteConstExpr       /* 12: ResourceSourceIndex */
> -        OptionalResourceType        /* 13: ResourceType */
> -        OptionalNameString          /* 14: DescriptorName */
> -        OptionalBuffer_Last         /* 15: VendorData */
> -        ')' '{'
> -            DWordList '}'           {$$ = TrLinkChildren ($<n>3,11,
> -                                        $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
> -    | PARSEOP_GPIO_IO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -I2cSerialBusTerm
> -    : PARSEOP_I2C_SERIALBUS '('     {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
> -        WordConstExpr               /* 04: SlaveAddress */
> -        OptionalSlaveMode           /* 05: SlaveMode */
> -        ',' DWordConstExpr          /* 07: ConnectionSpeed */
> -        OptionalAddressingMode      /* 08: AddressingMode */
> -        ',' StringData              /* 10: ResourceSource */
> -        OptionalByteConstExpr       /* 11: ResourceSourceIndex */
> -        OptionalResourceType        /* 12: ResourceType */
> -        OptionalNameString          /* 13: DescriptorName */
> -        OptionalBuffer_Last         /* 14: VendorData */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,10,
> -                                        $4,$5,$7,$8,$10,$11,$12,$13,
> -                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$14);}
> -    | PARSEOP_I2C_SERIALBUS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -I2cSerialBusTermV2
> -    : PARSEOP_I2C_SERIALBUS_V2 '('  {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS_V2);}
> -        WordConstExpr               /* 04: SlaveAddress */
> -        OptionalSlaveMode           /* 05: SlaveMode */
> -        ',' DWordConstExpr          /* 07: ConnectionSpeed */
> -        OptionalAddressingMode      /* 08: AddressingMode */
> -        ',' StringData              /* 10: ResourceSource */
> -        OptionalByteConstExpr       /* 11: ResourceSourceIndex */
> -        OptionalResourceType        /* 12: ResourceType */
> -        OptionalNameString          /* 13: DescriptorName */
> -        OptionalShareType           /* 14: Share */
> -        OptionalBuffer_Last         /* 15: VendorData */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,10,
> -                                        $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
> -    | PARSEOP_I2C_SERIALBUS_V2 '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -InterruptTerm
> -    : PARSEOP_INTERRUPT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
> -        OptionalResourceType_First
> -        ',' InterruptTypeKeyword
> -        ',' InterruptLevel
> -        OptionalShareType
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString_Last
> -        ')' '{'
> -            DWordList '}'           {$$ = TrLinkChildren ($<n>3,8,
> -                                        $4,$6,$8,$9,$10,$11,$12,$15);}
> -    | PARSEOP_INTERRUPT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IOTerm
> -    : PARSEOP_IO '('                {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
> -        IODecodeKeyword
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' ByteConstExpr
> -        ',' ByteConstExpr
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
> -    | PARSEOP_IO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IRQNoFlagsTerm
> -    : PARSEOP_IRQNOFLAGS '('        {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
> -        OptionalNameString_First
> -        ')' '{'
> -            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_IRQNOFLAGS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -IRQTerm
> -    : PARSEOP_IRQ '('               {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
> -        InterruptTypeKeyword
> -        ',' InterruptLevel
> -        OptionalShareType
> -        OptionalNameString_Last
> -        ')' '{'
> -            ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
> -    | PARSEOP_IRQ '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -Memory24Term
> -    : PARSEOP_MEMORY24 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
> -        OptionalReadWriteKeyword
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
> -    | PARSEOP_MEMORY24 '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -Memory32FixedTerm
> -    : PARSEOP_MEMORY32FIXED '('     {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
> -        OptionalReadWriteKeyword
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
> -    | PARSEOP_MEMORY32FIXED '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -Memory32Term
> -    : PARSEOP_MEMORY32 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
> -        OptionalReadWriteKeyword
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        ',' DWordConstExpr
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
> -    | PARSEOP_MEMORY32 '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -QWordIOTerm
> -    : PARSEOP_QWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
> -        OptionalResourceType_First
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalDecodeType
> -        OptionalRangeType
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString
> -        OptionalType
> -        OptionalTranslationType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,15,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
> -    | PARSEOP_QWORDIO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -QWordMemoryTerm
> -    : PARSEOP_QWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
> -        OptionalResourceType_First
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalMemType
> -        ',' OptionalReadWriteKeyword
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString
> -        OptionalAddressRange
> -        OptionalType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,16,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
> -    | PARSEOP_QWORDMEMORY '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -QWordSpaceTerm
> -    : PARSEOP_QWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
> -        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
> -        OptionalResourceType
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        ',' ByteConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        ',' QWordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,14,
> -                                        $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
> -    | PARSEOP_QWORDSPACE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -RegisterTerm
> -    : PARSEOP_REGISTER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
> -        AddressSpaceKeyword
> -        ',' ByteConstExpr
> -        ',' ByteConstExpr
> -        ',' QWordConstExpr
> -        OptionalAccessSize
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
> -    | PARSEOP_REGISTER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SpiSerialBusTerm
> -    : PARSEOP_SPI_SERIALBUS '('     {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
> -        WordConstExpr               /* 04: DeviceSelection */
> -        OptionalDevicePolarity      /* 05: DevicePolarity */
> -        OptionalWireMode            /* 06: WireMode */
> -        ',' ByteConstExpr           /* 08: DataBitLength */
> -        OptionalSlaveMode           /* 09: SlaveMode */
> -        ',' DWordConstExpr          /* 11: ConnectionSpeed */
> -        ',' ClockPolarityKeyword    /* 13: ClockPolarity */
> -        ',' ClockPhaseKeyword       /* 15: ClockPhase */
> -        ',' StringData              /* 17: ResourceSource */
> -        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
> -        OptionalResourceType        /* 19: ResourceType */
> -        OptionalNameString          /* 20: DescriptorName */
> -        OptionalBuffer_Last         /* 21: VendorData */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,14,
> -                                        $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
> -                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
> -    | PARSEOP_SPI_SERIALBUS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -SpiSerialBusTermV2
> -    : PARSEOP_SPI_SERIALBUS_V2 '('  {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS_V2);}
> -        WordConstExpr               /* 04: DeviceSelection */
> -        OptionalDevicePolarity      /* 05: DevicePolarity */
> -        OptionalWireMode            /* 06: WireMode */
> -        ',' ByteConstExpr           /* 08: DataBitLength */
> -        OptionalSlaveMode           /* 09: SlaveMode */
> -        ',' DWordConstExpr          /* 11: ConnectionSpeed */
> -        ',' ClockPolarityKeyword    /* 13: ClockPolarity */
> -        ',' ClockPhaseKeyword       /* 15: ClockPhase */
> -        ',' StringData              /* 17: ResourceSource */
> -        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
> -        OptionalResourceType        /* 19: ResourceType */
> -        OptionalNameString          /* 20: DescriptorName */
> -        OptionalShareType           /* 21: Share */
> -        OptionalBuffer_Last         /* 22: VendorData */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,14,
> -                                        $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
> -    | PARSEOP_SPI_SERIALBUS_V2 '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -StartDependentFnNoPriTerm
> -    : PARSEOP_STARTDEPENDENTFN_NOPRI '('    {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
> -        ')' '{'
> -        ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,1,$6);}
> -    | PARSEOP_STARTDEPENDENTFN_NOPRI '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -StartDependentFnTerm
> -    : PARSEOP_STARTDEPENDENTFN '('  {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
> -        ByteConstExpr
> -        ',' ByteConstExpr
> -        ')' '{'
> -        ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
> -    | PARSEOP_STARTDEPENDENTFN '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -UartSerialBusTerm
> -    : PARSEOP_UART_SERIALBUS '('    {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
> -        DWordConstExpr              /* 04: ConnectionSpeed */
> -        OptionalBitsPerByte         /* 05: BitsPerByte */
> -        OptionalStopBits            /* 06: StopBits */
> -        ',' ByteConstExpr           /* 08: LinesInUse */
> -        OptionalEndian              /* 09: Endianess */
> -        OptionalParityType          /* 10: Parity */
> -        OptionalFlowControl         /* 11: FlowControl */
> -        ',' WordConstExpr           /* 13: Rx BufferSize */
> -        ',' WordConstExpr           /* 15: Tx BufferSize */
> -        ',' StringData              /* 17: ResourceSource */
> -        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
> -        OptionalResourceType        /* 19: ResourceType */
> -        OptionalNameString          /* 20: DescriptorName */
> -        OptionalBuffer_Last         /* 21: VendorData */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,15,
> -                                        $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
> -                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
> -    | PARSEOP_UART_SERIALBUS '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -UartSerialBusTermV2
> -    : PARSEOP_UART_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS_V2);}
> -        DWordConstExpr              /* 04: ConnectionSpeed */
> -        OptionalBitsPerByte         /* 05: BitsPerByte */
> -        OptionalStopBits            /* 06: StopBits */
> -        ',' ByteConstExpr           /* 08: LinesInUse */
> -        OptionalEndian              /* 09: Endianess */
> -        OptionalParityType          /* 10: Parity */
> -        OptionalFlowControl         /* 11: FlowControl */
> -        ',' WordConstExpr           /* 13: Rx BufferSize */
> -        ',' WordConstExpr           /* 15: Tx BufferSize */
> -        ',' StringData              /* 17: ResourceSource */
> -        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
> -        OptionalResourceType        /* 19: ResourceType */
> -        OptionalNameString          /* 20: DescriptorName */
> -        OptionalShareType           /* 21: Share */
> -        OptionalBuffer_Last         /* 22: VendorData */
> -        ')'                         {$$ = TrLinkChildren ($<n>3,15,
> -                                        $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
> -    | PARSEOP_UART_SERIALBUS_V2 '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -VendorLongTerm
> -    : PARSEOP_VENDORLONG '('        {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
> -        OptionalNameString_First
> -        ')' '{'
> -            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_VENDORLONG '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -VendorShortTerm
> -    : PARSEOP_VENDORSHORT '('       {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
> -        OptionalNameString_First
> -        ')' '{'
> -            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
> -    | PARSEOP_VENDORSHORT '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -WordBusNumberTerm
> -    : PARSEOP_WORDBUSNUMBER '('     {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
> -        OptionalResourceType_First
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalDecodeType
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,12,
> -                                        $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
> -    | PARSEOP_WORDBUSNUMBER '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -WordIOTerm
> -    : PARSEOP_WORDIO '('            {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
> -        OptionalResourceType_First
> -        OptionalMinType
> -        OptionalMaxType
> -        OptionalDecodeType
> -        OptionalRangeType
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString
> -        OptionalType
> -        OptionalTranslationType_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,15,
> -                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
> -    | PARSEOP_WORDIO '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -WordSpaceTerm
> -    : PARSEOP_WORDSPACE '('         {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
> -        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
> -        OptionalResourceType
> -        OptionalDecodeType
> -        OptionalMinType
> -        OptionalMaxType
> -        ',' ByteConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        ',' WordConstExpr
> -        OptionalByteConstExpr
> -        OptionalStringData
> -        OptionalNameString_Last
> -        ')'                         {$$ = TrLinkChildren ($<n>3,14,
> -                                        $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
> -    | PARSEOP_WORDSPACE '('
> -        error ')'                   {$$ = AslDoError(); yyclearin;}
> -    ;
> -
> -
> -
> -
> -/*******************************************************************************
> - *
> - * ASL Helper Terms
> - *
> - ******************************************************************************/
> -
> -OptionalBusMasterKeyword
> -    : ','                                   {$$ = TrCreateLeafNode (
> -                                                PARSEOP_BUSMASTERTYPE_MASTER);}
> -    | ',' PARSEOP_BUSMASTERTYPE_MASTER      {$$ = TrCreateLeafNode (
> -                                                PARSEOP_BUSMASTERTYPE_MASTER);}
> -    | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER   {$$ = TrCreateLeafNode (
> -                                                PARSEOP_BUSMASTERTYPE_NOTMASTER);}
> -    ;
> -
> -OptionalAccessAttribTerm
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' ByteConstExpr             {$$ = $2;}
> -    | ',' AccessAttribKeyword       {$$ = $2;}
> -    ;
> -
> -OptionalAccessSize
> -    :                               {$$ = TrCreateValuedLeafNode (
> -                                        PARSEOP_BYTECONST, 0);}
> -    | ','                           {$$ = TrCreateValuedLeafNode (
> -                                        PARSEOP_BYTECONST, 0);}
> -    | ',' ByteConstExpr             {$$ = $2;}
> -    ;
> -
> -OptionalAddressingMode
> -    : ','                           {$$ = NULL;}
> -    | ',' AddressingModeKeyword     {$$ = $2;}
> -    ;
> -
> -OptionalAddressRange
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' AddressKeyword            {$$ = $2;}
> -    ;
> -
> -OptionalBitsPerByte
> -    : ','                           {$$ = NULL;}
> -    | ',' BitsPerByteKeyword        {$$ = $2;}
> -    ;
> -
> -OptionalBuffer_Last
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' RawDataBufferTerm         {$$ = $2;}
> -    ;
> -
> -OptionalByteConstExpr
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' ByteConstExpr             {$$ = $2;}
> -    ;
> -
> -OptionalDecodeType
> -    : ','                           {$$ = NULL;}
> -    | ',' DecodeKeyword             {$$ = $2;}
> -    ;
> -
> -OptionalDevicePolarity
> -    : ','                           {$$ = NULL;}
> -    | ',' DevicePolarityKeyword     {$$ = $2;}
> -    ;
> -
> -OptionalDWordConstExpr
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' DWordConstExpr            {$$ = $2;}
> -    ;
> -
> -OptionalEndian
> -    : ','                           {$$ = NULL;}
> -    | ',' EndianKeyword             {$$ = $2;}
> -    ;
> -
> -OptionalFlowControl
> -    : ','                           {$$ = NULL;}
> -    | ',' FlowControlKeyword        {$$ = $2;}
> -    ;
> -
> -OptionalIoRestriction
> -    : ','                           {$$ = NULL;}
> -    | ',' IoRestrictionKeyword      {$$ = $2;}
> -    ;
> -
> -OptionalListString
> -    :                               {$$ = TrCreateValuedLeafNode (
> -                                        PARSEOP_STRING_LITERAL,
> -                                        ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
> -    | ','                           {$$ = TrCreateValuedLeafNode (
> -                                        PARSEOP_STRING_LITERAL,
> -                                        ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
> -    | ',' TermArg                   {$$ = $2;}
> -    ;
> -
> -OptionalMaxType
> -    : ','                           {$$ = NULL;}
> -    | ',' MaxKeyword                {$$ = $2;}
> -    ;
> -
> -OptionalMemType
> -    : ','                           {$$ = NULL;}
> -    | ',' MemTypeKeyword            {$$ = $2;}
> -    ;
> -
> -OptionalMinType
> -    : ','                           {$$ = NULL;}
> -    | ',' MinKeyword                {$$ = $2;}
> -    ;
> -
> -OptionalNameString
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' NameString                {$$ = $2;}
> -    ;
> -
> -OptionalNameString_Last
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' NameString                {$$ = $2;}
> -    ;
> -
> -OptionalNameString_First
> -    :                               {$$ = TrCreateLeafNode (
> -                                        PARSEOP_ZERO);}
> -    | NameString                    {$$ = $1;}
> -    ;
> -
> -OptionalObjectTypeKeyword
> -    :                               {$$ = TrCreateLeafNode (
> -                                        PARSEOP_OBJECTTYPE_UNK);}
> -    | ',' ObjectTypeKeyword         {$$ = $2;}
> -    ;
> -
> -OptionalParityType
> -    : ','                           {$$ = NULL;}
> -    | ',' ParityTypeKeyword         {$$ = $2;}
> -    ;
> -
> -OptionalQWordConstExpr
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' QWordConstExpr            {$$ = $2;}
> -    ;
> -
> -OptionalRangeType
> -    : ','                           {$$ = NULL;}
> -    | ',' RangeTypeKeyword          {$$ = $2;}
> -    ;
> -
> -OptionalReadWriteKeyword
> -    :                                   {$$ = TrCreateLeafNode (
> -                                            PARSEOP_READWRITETYPE_BOTH);}
> -    | PARSEOP_READWRITETYPE_BOTH        {$$ = TrCreateLeafNode (
> -                                            PARSEOP_READWRITETYPE_BOTH);}
> -    | PARSEOP_READWRITETYPE_READONLY    {$$ = TrCreateLeafNode (
> -                                            PARSEOP_READWRITETYPE_READONLY);}
> -    ;
> -
> -OptionalResourceType_First
> -    :                               {$$ = TrCreateLeafNode (
> -                                        PARSEOP_RESOURCETYPE_CONSUMER);}
> -    | ResourceTypeKeyword           {$$ = $1;}
> -    ;
> -
> -OptionalResourceType
> -    :                               {$$ = TrCreateLeafNode (
> -                                        PARSEOP_RESOURCETYPE_CONSUMER);}
> -    | ','                           {$$ = TrCreateLeafNode (
> -                                        PARSEOP_RESOURCETYPE_CONSUMER);}
> -    | ',' ResourceTypeKeyword       {$$ = $2;}
> -    ;
> -
> -OptionalSlaveMode
> -    : ','                           {$$ = NULL;}
> -    | ',' SlaveModeKeyword          {$$ = $2;}
> -    ;
> -
> -OptionalShareType
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' ShareTypeKeyword          {$$ = $2;}
> -    ;
> -
> -OptionalShareType_First
> -    :                               {$$ = NULL;}
> -    | ShareTypeKeyword              {$$ = $1;}
> -    ;
> -
> -OptionalStopBits
> -    : ','                           {$$ = NULL;}
> -    | ',' StopBitsKeyword           {$$ = $2;}
> -    ;
> -
> -OptionalStringData
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' StringData                {$$ = $2;}
> -    ;
> -
> -OptionalTranslationType_Last
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' TranslationKeyword        {$$ = $2;}
> -    ;
> -
> -OptionalType
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' TypeKeyword               {$$ = $2;}
> -    ;
> -
> -OptionalType_Last
> -    :                               {$$ = NULL;}
> -    | ','                           {$$ = NULL;}
> -    | ',' TypeKeyword               {$$ = $2;}
> -    ;
> -
> -OptionalWireMode
> -    : ','                           {$$ = NULL;}
> -    | ',' WireModeKeyword           {$$ = $2;}
> -    ;
> -
> -OptionalWordConstExpr
> -    : ','                           {$$ = NULL;}
> -    | ',' WordConstExpr             {$$ = $2;}
> -    ;
> -
> -OptionalXferSize
> -    :                               {$$ = TrCreateValuedLeafNode (
> -                                        PARSEOP_XFERSIZE_32, 2);}
> -    | ','                           {$$ = TrCreateValuedLeafNode (
> -                                        PARSEOP_XFERSIZE_32, 2);}
> -    | ',' XferSizeKeyword           {$$ = $2;}
> -    ;
> -
> -%%
> -
> -/*! [End] no source code translation !*/
> -
> -/* Local support functions in C */
> -
> -
> -
> -/******************************************************************************
> - *
> - * Local support functions
> - *
> - *****************************************************************************/
> -
> -/*! [Begin] no source code translation */
> -int
> -AslCompilerwrap(void)
> -{
> -  return (1);
> -}
> -/*! [End] no source code translation !*/
> -
> -
> -void *
> -AslLocalAllocate (
> -    unsigned int        Size)
> -{
> -    void                *Mem;
> -
> -
> -    DbgPrint (ASL_PARSE_OUTPUT,
> -        "\nAslLocalAllocate: Expanding Stack to %u\n\n", Size);
> -
> -    Mem = ACPI_ALLOCATE_ZEROED (Size);
> -    if (!Mem)
> -    {
> -        AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
> -            Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
> -            Gbl_InputByteCount, Gbl_CurrentColumn,
> -            Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
> -        exit (1);
> -    }
> -
> -    return (Mem);
> -}
> -
> -ACPI_PARSE_OBJECT *
> -AslDoError (
> -    void)
> -{
> -
> -    return (TrCreateLeafNode (PARSEOP_ERRORNODE));
> -}
> -
> -
> -/*******************************************************************************
> - *
> - * FUNCTION:    UtGetOpName
> - *
> - * PARAMETERS:  ParseOpcode         - Parser keyword ID
> - *
> - * RETURN:      Pointer to the opcode name
> - *
> - * DESCRIPTION: Get the ascii name of the parse opcode
> - *
> - ******************************************************************************/
> -
> -char *
> -UtGetOpName (
> -    UINT32                  ParseOpcode)
> -{
> -#ifdef ASL_YYTNAME_START
> -    /*
> -     * First entries (ASL_YYTNAME_START) in yytname are special reserved names.
> -     * Ignore first 8 characters of the name
> -     */
> -    return ((char *) yytname
> -        [(ParseOpcode - ASL_FIRST_PARSE_OPCODE) + ASL_YYTNAME_START] + 8);
> -#else
> -    return ("[Unknown parser generator]");
> -#endif
> -}
> -
Acked-by: Ivan Hu <ivan.hu@canonical.com>
diff mbox

Patch

diff --git a/src/acpica/source/compiler/aslcompiler.y b/src/acpica/source/compiler/aslcompiler.y
deleted file mode 100644
index 4dd34d4..0000000
--- a/src/acpica/source/compiler/aslcompiler.y
+++ /dev/null
@@ -1,4378 +0,0 @@ 
-%{
-/******************************************************************************
- *
- * Module Name: aslparser.y - Master Bison/Yacc input file for iASL
- *
- *****************************************************************************/
-
-/******************************************************************************
- *
- * 1. Copyright Notice
- *
- * Some or all of this work - Copyright (c) 1999 - 2016, Intel Corp.
- * All rights reserved.
- *
- * 2. License
- *
- * 2.1. This is your license from Intel Corp. under its intellectual property
- * rights. You may have additional license terms from the party that provided
- * you this software, covering your right to use that party's intellectual
- * property rights.
- *
- * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
- * copy of the source code appearing in this file ("Covered Code") an
- * irrevocable, perpetual, worldwide license under Intel's copyrights in the
- * base code distributed originally by Intel ("Original Intel Code") to copy,
- * make derivatives, distribute, use and display any portion of the Covered
- * Code in any form, with the right to sublicense such rights; and
- *
- * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
- * license (with the right to sublicense), under only those claims of Intel
- * patents that are infringed by the Original Intel Code, to make, use, sell,
- * offer to sell, and import the Covered Code and derivative works thereof
- * solely to the minimum extent necessary to exercise the above copyright
- * license, and in no event shall the patent license extend to any additions
- * to or modifications of the Original Intel Code. No other license or right
- * is granted directly or by implication, estoppel or otherwise;
- *
- * The above copyright and patent license is granted only if the following
- * conditions are met:
- *
- * 3. Conditions
- *
- * 3.1. Redistribution of Source with Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification with rights to further distribute source must include
- * the above Copyright Notice, the above License, this list of Conditions,
- * and the following Disclaimer and Export Compliance provision. In addition,
- * Licensee must cause all Covered Code to which Licensee contributes to
- * contain a file documenting the changes Licensee made to create that Covered
- * Code and the date of any change. Licensee must include in that file the
- * documentation of any changes made by any predecessor Licensee. Licensee
- * must include a prominent statement that the modification is derived,
- * directly or indirectly, from Original Intel Code.
- *
- * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
- * Redistribution of source code of any substantial portion of the Covered
- * Code or modification without rights to further distribute source must
- * include the following Disclaimer and Export Compliance provision in the
- * documentation and/or other materials provided with distribution. In
- * addition, Licensee may not authorize further sublicense of source of any
- * portion of the Covered Code, and must include terms to the effect that the
- * license from Licensee to its licensee is limited to the intellectual
- * property embodied in the software Licensee provides to its licensee, and
- * not to intellectual property embodied in modifications its licensee may
- * make.
- *
- * 3.3. Redistribution of Executable. Redistribution in executable form of any
- * substantial portion of the Covered Code or modification must reproduce the
- * above Copyright Notice, and the following Disclaimer and Export Compliance
- * provision in the documentation and/or other materials provided with the
- * distribution.
- *
- * 3.4. Intel retains all right, title, and interest in and to the Original
- * Intel Code.
- *
- * 3.5. Neither the name Intel nor any other trademark owned or controlled by
- * Intel shall be used in advertising or otherwise to promote the sale, use or
- * other dealings in products derived from or relating to the Covered Code
- * without prior written authorization from Intel.
- *
- * 4. Disclaimer and Export Compliance
- *
- * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
- * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
- * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
- * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
- * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
- * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
- * PARTICULAR PURPOSE.
- *
- * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
- * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
- * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
- * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
- * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
- * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
- * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
- * LIMITED REMEDY.
- *
- * 4.3. Licensee shall not export, either directly or indirectly, any of this
- * software or system incorporating such software without first obtaining any
- * required license or other approval from the U. S. Department of Commerce or
- * any other agency or department of the United States Government. In the
- * event Licensee exports any such software from the United States or
- * re-exports any such software from a foreign destination, Licensee shall
- * ensure that the distribution and export/re-export of the software is in
- * compliance with all laws, regulations, orders, or other restrictions of the
- * U.S. Export Administration Regulations. Licensee agrees that neither it nor
- * any of its subsidiaries will export/re-export any technical data, process,
- * software, or service, directly or indirectly, to any country for which the
- * United States government or any agency thereof requires an export license,
- * other governmental approval, or letter of assurance, without first obtaining
- * such license, approval or letter.
- *
- *****************************************************************************/
-
-#include "aslcompiler.h"
-#include "acpi.h"
-#include "accommon.h"
-
-#define _COMPONENT          ACPI_COMPILER
-        ACPI_MODULE_NAME    ("aslparse")
-
-/*
- * Global Notes:
- *
- * October 2005: The following list terms have been optimized (from the
- * original ASL grammar in the ACPI specification) to force the immediate
- * reduction of each list item so that the parse stack use doesn't increase on
- * each list element and possibly overflow on very large lists (>4000 items).
- * This dramatically reduces use of the parse stack overall.
- *
- *      ArgList, TermList, ByteList, DWordList, PackageList,
- *      ResourceMacroList, and FieldUnitList
- */
-
-void *
-AslLocalAllocate (
-    unsigned int            Size);
-
-
-/* Bison/yacc configuration */
-
-#define static
-#undef malloc
-#define malloc              AslLocalAllocate
-#undef alloca
-#define alloca              AslLocalAllocate
-#define yytname             AslCompilername
-
-#define YYINITDEPTH         600             /* State stack depth */
-#define YYDEBUG             1               /* Enable debug output */
-#define YYERROR_VERBOSE     1               /* Verbose error messages */
-#define YYFLAG              -32768
-
-/* Define YYMALLOC/YYFREE to prevent redefinition errors  */
-
-#define YYMALLOC            AslLocalAllocate
-#define YYFREE              ACPI_FREE
-%}
-
-/*
- * Declare the type of values in the grammar
- */
-%union {
-    UINT64              i;
-    char                *s;
-    ACPI_PARSE_OBJECT   *n;
-}
-
-/*
- * These shift/reduce conflicts are expected. There should be zero
- * reduce/reduce conflicts.
- */
-%expect 102
-
-/*! [Begin] no source code translation */
-
-/*
- * The M4 macro processor is used to bring in the parser items,
- * in order to keep this master file smaller, and to break up
- * the various parser items.
- */
-
-
-/* Token types */
-
-
-
-/******************************************************************************
- *
- * Token types: These are returned by the lexer
- *
- * NOTE: This list MUST match the AslKeywordMapping table found
- *       in aslmap.c EXACTLY!  Double check any changes!
- *
- *****************************************************************************/
-
-/*
- * Most tokens are defined to return <i>, which is a UINT64.
- *
- * These tokens return <s>, a pointer to the associated lexed string:
- *
- *  PARSEOP_NAMESEG
- *  PARSEOP_NAMESTRING
- *  PARSEOP_STRING_LITERAL
- *  PARSEOP_STRUCTURE_NAMESTRING
- */
-%token <i> PARSEOP_ACCESSAS
-%token <i> PARSEOP_ACCESSATTRIB_BLOCK
-%token <i> PARSEOP_ACCESSATTRIB_BLOCK_CALL
-%token <i> PARSEOP_ACCESSATTRIB_BYTE
-%token <i> PARSEOP_ACCESSATTRIB_MULTIBYTE
-%token <i> PARSEOP_ACCESSATTRIB_QUICK
-%token <i> PARSEOP_ACCESSATTRIB_RAW_BYTES
-%token <i> PARSEOP_ACCESSATTRIB_RAW_PROCESS
-%token <i> PARSEOP_ACCESSATTRIB_SND_RCV
-%token <i> PARSEOP_ACCESSATTRIB_WORD
-%token <i> PARSEOP_ACCESSATTRIB_WORD_CALL
-%token <i> PARSEOP_ACCESSTYPE_ANY
-%token <i> PARSEOP_ACCESSTYPE_BUF
-%token <i> PARSEOP_ACCESSTYPE_BYTE
-%token <i> PARSEOP_ACCESSTYPE_DWORD
-%token <i> PARSEOP_ACCESSTYPE_QWORD
-%token <i> PARSEOP_ACCESSTYPE_WORD
-%token <i> PARSEOP_ACQUIRE
-%token <i> PARSEOP_ADD
-%token <i> PARSEOP_ADDRESSINGMODE_7BIT
-%token <i> PARSEOP_ADDRESSINGMODE_10BIT
-%token <i> PARSEOP_ADDRESSTYPE_ACPI
-%token <i> PARSEOP_ADDRESSTYPE_MEMORY
-%token <i> PARSEOP_ADDRESSTYPE_NVS
-%token <i> PARSEOP_ADDRESSTYPE_RESERVED
-%token <i> PARSEOP_ALIAS
-%token <i> PARSEOP_AND
-%token <i> PARSEOP_ARG0
-%token <i> PARSEOP_ARG1
-%token <i> PARSEOP_ARG2
-%token <i> PARSEOP_ARG3
-%token <i> PARSEOP_ARG4
-%token <i> PARSEOP_ARG5
-%token <i> PARSEOP_ARG6
-%token <i> PARSEOP_BANKFIELD
-%token <i> PARSEOP_BITSPERBYTE_EIGHT
-%token <i> PARSEOP_BITSPERBYTE_FIVE
-%token <i> PARSEOP_BITSPERBYTE_NINE
-%token <i> PARSEOP_BITSPERBYTE_SEVEN
-%token <i> PARSEOP_BITSPERBYTE_SIX
-%token <i> PARSEOP_BREAK
-%token <i> PARSEOP_BREAKPOINT
-%token <i> PARSEOP_BUFFER
-%token <i> PARSEOP_BUSMASTERTYPE_MASTER
-%token <i> PARSEOP_BUSMASTERTYPE_NOTMASTER
-%token <i> PARSEOP_BYTECONST
-%token <i> PARSEOP_CASE
-%token <i> PARSEOP_CLOCKPHASE_FIRST
-%token <i> PARSEOP_CLOCKPHASE_SECOND
-%token <i> PARSEOP_CLOCKPOLARITY_HIGH
-%token <i> PARSEOP_CLOCKPOLARITY_LOW
-%token <i> PARSEOP_CONCATENATE
-%token <i> PARSEOP_CONCATENATERESTEMPLATE
-%token <i> PARSEOP_CONDREFOF
-%token <i> PARSEOP_CONNECTION
-%token <i> PARSEOP_CONTINUE
-%token <i> PARSEOP_COPYOBJECT
-%token <i> PARSEOP_CREATEBITFIELD
-%token <i> PARSEOP_CREATEBYTEFIELD
-%token <i> PARSEOP_CREATEDWORDFIELD
-%token <i> PARSEOP_CREATEFIELD
-%token <i> PARSEOP_CREATEQWORDFIELD
-%token <i> PARSEOP_CREATEWORDFIELD
-%token <i> PARSEOP_DATABUFFER
-%token <i> PARSEOP_DATATABLEREGION
-%token <i> PARSEOP_DEBUG
-%token <i> PARSEOP_DECODETYPE_POS
-%token <i> PARSEOP_DECODETYPE_SUB
-%token <i> PARSEOP_DECREMENT
-%token <i> PARSEOP_DEFAULT
-%token <i> PARSEOP_DEFAULT_ARG
-%token <i> PARSEOP_DEFINITION_BLOCK
-%token <i> PARSEOP_DEREFOF
-%token <i> PARSEOP_DEVICE
-%token <i> PARSEOP_DEVICEPOLARITY_HIGH
-%token <i> PARSEOP_DEVICEPOLARITY_LOW
-%token <i> PARSEOP_DIVIDE
-%token <i> PARSEOP_DMA
-%token <i> PARSEOP_DMATYPE_A
-%token <i> PARSEOP_DMATYPE_COMPATIBILITY
-%token <i> PARSEOP_DMATYPE_B
-%token <i> PARSEOP_DMATYPE_F
-%token <i> PARSEOP_DWORDCONST
-%token <i> PARSEOP_DWORDIO
-%token <i> PARSEOP_DWORDMEMORY
-%token <i> PARSEOP_DWORDSPACE
-%token <i> PARSEOP_EISAID
-%token <i> PARSEOP_ELSE
-%token <i> PARSEOP_ELSEIF
-%token <i> PARSEOP_ENDDEPENDENTFN
-%token <i> PARSEOP_ENDIAN_BIG
-%token <i> PARSEOP_ENDIAN_LITTLE
-%token <i> PARSEOP_ENDTAG
-%token <i> PARSEOP_ERRORNODE
-%token <i> PARSEOP_EVENT
-%token <i> PARSEOP_EXTENDEDIO
-%token <i> PARSEOP_EXTENDEDMEMORY
-%token <i> PARSEOP_EXTENDEDSPACE
-%token <i> PARSEOP_EXTERNAL
-%token <i> PARSEOP_FATAL
-%token <i> PARSEOP_FIELD
-%token <i> PARSEOP_FINDSETLEFTBIT
-%token <i> PARSEOP_FINDSETRIGHTBIT
-%token <i> PARSEOP_FIXEDDMA
-%token <i> PARSEOP_FIXEDIO
-%token <i> PARSEOP_FLOWCONTROL_HW
-%token <i> PARSEOP_FLOWCONTROL_NONE
-%token <i> PARSEOP_FLOWCONTROL_SW
-%token <i> PARSEOP_FROMBCD
-%token <i> PARSEOP_FUNCTION
-%token <i> PARSEOP_GPIO_INT
-%token <i> PARSEOP_GPIO_IO
-%token <i> PARSEOP_I2C_SERIALBUS
-%token <i> PARSEOP_I2C_SERIALBUS_V2
-%token <i> PARSEOP_IF
-%token <i> PARSEOP_INCLUDE
-%token <i> PARSEOP_INCLUDE_END
-%token <i> PARSEOP_INCREMENT
-%token <i> PARSEOP_INDEX
-%token <i> PARSEOP_INDEXFIELD
-%token <i> PARSEOP_INTEGER
-%token <i> PARSEOP_INTERRUPT
-%token <i> PARSEOP_INTLEVEL_ACTIVEBOTH
-%token <i> PARSEOP_INTLEVEL_ACTIVEHIGH
-%token <i> PARSEOP_INTLEVEL_ACTIVELOW
-%token <i> PARSEOP_INTTYPE_EDGE
-%token <i> PARSEOP_INTTYPE_LEVEL
-%token <i> PARSEOP_IO
-%token <i> PARSEOP_IODECODETYPE_10
-%token <i> PARSEOP_IODECODETYPE_16
-%token <i> PARSEOP_IORESTRICT_IN
-%token <i> PARSEOP_IORESTRICT_NONE
-%token <i> PARSEOP_IORESTRICT_OUT
-%token <i> PARSEOP_IORESTRICT_PRESERVE
-%token <i> PARSEOP_IRQ
-%token <i> PARSEOP_IRQNOFLAGS
-%token <i> PARSEOP_LAND
-%token <i> PARSEOP_LEQUAL
-%token <i> PARSEOP_LGREATER
-%token <i> PARSEOP_LGREATEREQUAL
-%token <i> PARSEOP_LLESS
-%token <i> PARSEOP_LLESSEQUAL
-%token <i> PARSEOP_LNOT
-%token <i> PARSEOP_LNOTEQUAL
-%token <i> PARSEOP_LOAD
-%token <i> PARSEOP_LOADTABLE
-%token <i> PARSEOP_LOCAL0
-%token <i> PARSEOP_LOCAL1
-%token <i> PARSEOP_LOCAL2
-%token <i> PARSEOP_LOCAL3
-%token <i> PARSEOP_LOCAL4
-%token <i> PARSEOP_LOCAL5
-%token <i> PARSEOP_LOCAL6
-%token <i> PARSEOP_LOCAL7
-%token <i> PARSEOP_LOCKRULE_LOCK
-%token <i> PARSEOP_LOCKRULE_NOLOCK
-%token <i> PARSEOP_LOR
-%token <i> PARSEOP_MATCH
-%token <i> PARSEOP_MATCHTYPE_MEQ
-%token <i> PARSEOP_MATCHTYPE_MGE
-%token <i> PARSEOP_MATCHTYPE_MGT
-%token <i> PARSEOP_MATCHTYPE_MLE
-%token <i> PARSEOP_MATCHTYPE_MLT
-%token <i> PARSEOP_MATCHTYPE_MTR
-%token <i> PARSEOP_MAXTYPE_FIXED
-%token <i> PARSEOP_MAXTYPE_NOTFIXED
-%token <i> PARSEOP_MEMORY24
-%token <i> PARSEOP_MEMORY32
-%token <i> PARSEOP_MEMORY32FIXED
-%token <i> PARSEOP_MEMTYPE_CACHEABLE
-%token <i> PARSEOP_MEMTYPE_NONCACHEABLE
-%token <i> PARSEOP_MEMTYPE_PREFETCHABLE
-%token <i> PARSEOP_MEMTYPE_WRITECOMBINING
-%token <i> PARSEOP_METHOD
-%token <i> PARSEOP_METHODCALL
-%token <i> PARSEOP_MID
-%token <i> PARSEOP_MINTYPE_FIXED
-%token <i> PARSEOP_MINTYPE_NOTFIXED
-%token <i> PARSEOP_MOD
-%token <i> PARSEOP_MULTIPLY
-%token <i> PARSEOP_MUTEX
-%token <i> PARSEOP_NAME
-%token <s> PARSEOP_NAMESEG
-%token <s> PARSEOP_NAMESTRING
-%token <i> PARSEOP_NAND
-%token <i> PARSEOP_NOOP
-%token <i> PARSEOP_NOR
-%token <i> PARSEOP_NOT
-%token <i> PARSEOP_NOTIFY
-%token <i> PARSEOP_OBJECTTYPE
-%token <i> PARSEOP_OBJECTTYPE_BFF
-%token <i> PARSEOP_OBJECTTYPE_BUF
-%token <i> PARSEOP_OBJECTTYPE_DDB
-%token <i> PARSEOP_OBJECTTYPE_DEV
-%token <i> PARSEOP_OBJECTTYPE_EVT
-%token <i> PARSEOP_OBJECTTYPE_FLD
-%token <i> PARSEOP_OBJECTTYPE_INT
-%token <i> PARSEOP_OBJECTTYPE_MTH
-%token <i> PARSEOP_OBJECTTYPE_MTX
-%token <i> PARSEOP_OBJECTTYPE_OPR
-%token <i> PARSEOP_OBJECTTYPE_PKG
-%token <i> PARSEOP_OBJECTTYPE_POW
-%token <i> PARSEOP_OBJECTTYPE_PRO
-%token <i> PARSEOP_OBJECTTYPE_STR
-%token <i> PARSEOP_OBJECTTYPE_THZ
-%token <i> PARSEOP_OBJECTTYPE_UNK
-%token <i> PARSEOP_OFFSET
-%token <i> PARSEOP_ONE
-%token <i> PARSEOP_ONES
-%token <i> PARSEOP_OPERATIONREGION
-%token <i> PARSEOP_OR
-%token <i> PARSEOP_PACKAGE
-%token <i> PARSEOP_PACKAGE_LENGTH
-%token <i> PARSEOP_PARITYTYPE_EVEN
-%token <i> PARSEOP_PARITYTYPE_MARK
-%token <i> PARSEOP_PARITYTYPE_NONE
-%token <i> PARSEOP_PARITYTYPE_ODD
-%token <i> PARSEOP_PARITYTYPE_SPACE
-%token <i> PARSEOP_PIN_NOPULL
-%token <i> PARSEOP_PIN_PULLDEFAULT
-%token <i> PARSEOP_PIN_PULLDOWN
-%token <i> PARSEOP_PIN_PULLUP
-%token <i> PARSEOP_POWERRESOURCE
-%token <i> PARSEOP_PROCESSOR
-%token <i> PARSEOP_QWORDCONST
-%token <i> PARSEOP_QWORDIO
-%token <i> PARSEOP_QWORDMEMORY
-%token <i> PARSEOP_QWORDSPACE
-%token <i> PARSEOP_RANGETYPE_ENTIRE
-%token <i> PARSEOP_RANGETYPE_ISAONLY
-%token <i> PARSEOP_RANGETYPE_NONISAONLY
-%token <i> PARSEOP_RAW_DATA
-%token <i> PARSEOP_READWRITETYPE_BOTH
-%token <i> PARSEOP_READWRITETYPE_READONLY
-%token <i> PARSEOP_REFOF
-%token <i> PARSEOP_REGIONSPACE_CMOS
-%token <i> PARSEOP_REGIONSPACE_EC
-%token <i> PARSEOP_REGIONSPACE_FFIXEDHW
-%token <i> PARSEOP_REGIONSPACE_GPIO
-%token <i> PARSEOP_REGIONSPACE_GSBUS
-%token <i> PARSEOP_REGIONSPACE_IO
-%token <i> PARSEOP_REGIONSPACE_IPMI
-%token <i> PARSEOP_REGIONSPACE_MEM
-%token <i> PARSEOP_REGIONSPACE_PCC
-%token <i> PARSEOP_REGIONSPACE_PCI
-%token <i> PARSEOP_REGIONSPACE_PCIBAR
-%token <i> PARSEOP_REGIONSPACE_SMBUS
-%token <i> PARSEOP_REGISTER
-%token <i> PARSEOP_RELEASE
-%token <i> PARSEOP_RESERVED_BYTES
-%token <i> PARSEOP_RESET
-%token <i> PARSEOP_RESOURCETEMPLATE
-%token <i> PARSEOP_RESOURCETYPE_CONSUMER
-%token <i> PARSEOP_RESOURCETYPE_PRODUCER
-%token <i> PARSEOP_RETURN
-%token <i> PARSEOP_REVISION
-%token <i> PARSEOP_SCOPE
-%token <i> PARSEOP_SERIALIZERULE_NOTSERIAL
-%token <i> PARSEOP_SERIALIZERULE_SERIAL
-%token <i> PARSEOP_SHARETYPE_EXCLUSIVE
-%token <i> PARSEOP_SHARETYPE_EXCLUSIVEWAKE
-%token <i> PARSEOP_SHARETYPE_SHARED
-%token <i> PARSEOP_SHARETYPE_SHAREDWAKE
-%token <i> PARSEOP_SHIFTLEFT
-%token <i> PARSEOP_SHIFTRIGHT
-%token <i> PARSEOP_SIGNAL
-%token <i> PARSEOP_SIZEOF
-%token <i> PARSEOP_SLAVEMODE_CONTROLLERINIT
-%token <i> PARSEOP_SLAVEMODE_DEVICEINIT
-%token <i> PARSEOP_SLEEP
-%token <i> PARSEOP_SPI_SERIALBUS
-%token <i> PARSEOP_SPI_SERIALBUS_V2
-%token <i> PARSEOP_STALL
-%token <i> PARSEOP_STARTDEPENDENTFN
-%token <i> PARSEOP_STARTDEPENDENTFN_NOPRI
-%token <i> PARSEOP_STOPBITS_ONE
-%token <i> PARSEOP_STOPBITS_ONEPLUSHALF
-%token <i> PARSEOP_STOPBITS_TWO
-%token <i> PARSEOP_STOPBITS_ZERO
-%token <i> PARSEOP_STORE
-%token <s> PARSEOP_STRING_LITERAL
-%token <i> PARSEOP_SUBTRACT
-%token <i> PARSEOP_SWITCH
-%token <i> PARSEOP_THERMALZONE
-%token <i> PARSEOP_TIMER
-%token <i> PARSEOP_TOBCD
-%token <i> PARSEOP_TOBUFFER
-%token <i> PARSEOP_TODECIMALSTRING
-%token <i> PARSEOP_TOHEXSTRING
-%token <i> PARSEOP_TOINTEGER
-%token <i> PARSEOP_TOSTRING
-%token <i> PARSEOP_TOUUID
-%token <i> PARSEOP_TRANSLATIONTYPE_DENSE
-%token <i> PARSEOP_TRANSLATIONTYPE_SPARSE
-%token <i> PARSEOP_TYPE_STATIC
-%token <i> PARSEOP_TYPE_TRANSLATION
-%token <i> PARSEOP_UART_SERIALBUS
-%token <i> PARSEOP_UART_SERIALBUS_V2
-%token <i> PARSEOP_UNICODE
-%token <i> PARSEOP_UNLOAD
-%token <i> PARSEOP_UPDATERULE_ONES
-%token <i> PARSEOP_UPDATERULE_PRESERVE
-%token <i> PARSEOP_UPDATERULE_ZEROS
-%token <i> PARSEOP_VAR_PACKAGE
-%token <i> PARSEOP_VENDORLONG
-%token <i> PARSEOP_VENDORSHORT
-%token <i> PARSEOP_WAIT
-%token <i> PARSEOP_WHILE
-%token <i> PARSEOP_WIREMODE_FOUR
-%token <i> PARSEOP_WIREMODE_THREE
-%token <i> PARSEOP_WORDBUSNUMBER
-%token <i> PARSEOP_WORDCONST
-%token <i> PARSEOP_WORDIO
-%token <i> PARSEOP_WORDSPACE
-%token <i> PARSEOP_XFERSIZE_8
-%token <i> PARSEOP_XFERSIZE_16
-%token <i> PARSEOP_XFERSIZE_32
-%token <i> PARSEOP_XFERSIZE_64
-%token <i> PARSEOP_XFERSIZE_128
-%token <i> PARSEOP_XFERSIZE_256
-%token <i> PARSEOP_XFERTYPE_8
-%token <i> PARSEOP_XFERTYPE_8_16
-%token <i> PARSEOP_XFERTYPE_16
-%token <i> PARSEOP_XOR
-%token <i> PARSEOP_ZERO
-
-/* ToPld macro */
-
-%token <i> PARSEOP_TOPLD
-%token <i> PARSEOP_PLD_REVISION
-%token <i> PARSEOP_PLD_IGNORECOLOR
-%token <i> PARSEOP_PLD_RED
-%token <i> PARSEOP_PLD_GREEN
-%token <i> PARSEOP_PLD_BLUE
-%token <i> PARSEOP_PLD_WIDTH
-%token <i> PARSEOP_PLD_HEIGHT
-%token <i> PARSEOP_PLD_USERVISIBLE
-%token <i> PARSEOP_PLD_DOCK
-%token <i> PARSEOP_PLD_LID
-%token <i> PARSEOP_PLD_PANEL
-%token <i> PARSEOP_PLD_VERTICALPOSITION
-%token <i> PARSEOP_PLD_HORIZONTALPOSITION
-%token <i> PARSEOP_PLD_SHAPE
-%token <i> PARSEOP_PLD_GROUPORIENTATION
-%token <i> PARSEOP_PLD_GROUPTOKEN
-%token <i> PARSEOP_PLD_GROUPPOSITION
-%token <i> PARSEOP_PLD_BAY
-%token <i> PARSEOP_PLD_EJECTABLE
-%token <i> PARSEOP_PLD_EJECTREQUIRED
-%token <i> PARSEOP_PLD_CABINETNUMBER
-%token <i> PARSEOP_PLD_CARDCAGENUMBER
-%token <i> PARSEOP_PLD_REFERENCE
-%token <i> PARSEOP_PLD_ROTATION
-%token <i> PARSEOP_PLD_ORDER
-%token <i> PARSEOP_PLD_RESERVED
-%token <i> PARSEOP_PLD_VERTICALOFFSET
-%token <i> PARSEOP_PLD_HORIZONTALOFFSET
-
-/*
- * C-style expression parser. These must appear after all of the
- * standard ASL operators and keywords.
- *
- * Note: The order of these tokens implements the precedence rules
- * (low precedence to high). See aslrules.y for an exhaustive list.
- */
-%right <i> PARSEOP_EXP_EQUALS
-           PARSEOP_EXP_ADD_EQ
-           PARSEOP_EXP_SUB_EQ
-           PARSEOP_EXP_MUL_EQ
-           PARSEOP_EXP_DIV_EQ
-           PARSEOP_EXP_MOD_EQ
-           PARSEOP_EXP_SHL_EQ
-           PARSEOP_EXP_SHR_EQ
-           PARSEOP_EXP_AND_EQ
-           PARSEOP_EXP_XOR_EQ
-           PARSEOP_EXP_OR_EQ
-
-%left <i>  PARSEOP_EXP_LOGICAL_OR
-%left <i>  PARSEOP_EXP_LOGICAL_AND
-%left <i>  PARSEOP_EXP_OR
-%left <i>  PARSEOP_EXP_XOR
-%left <i>  PARSEOP_EXP_AND
-%left <i>  PARSEOP_EXP_EQUAL
-           PARSEOP_EXP_NOT_EQUAL
-%left <i>  PARSEOP_EXP_GREATER
-           PARSEOP_EXP_LESS
-           PARSEOP_EXP_GREATER_EQUAL
-           PARSEOP_EXP_LESS_EQUAL
-%left <i>  PARSEOP_EXP_SHIFT_RIGHT
-           PARSEOP_EXP_SHIFT_LEFT
-%left <i>  PARSEOP_EXP_ADD
-           PARSEOP_EXP_SUBTRACT
-%left <i>  PARSEOP_EXP_MULTIPLY
-           PARSEOP_EXP_DIVIDE
-           PARSEOP_EXP_MODULO
-
-%right <i> PARSEOP_EXP_NOT
-           PARSEOP_EXP_LOGICAL_NOT
-
-%left <i>  PARSEOP_EXP_INCREMENT
-           PARSEOP_EXP_DECREMENT
-
-/* Brackets for Index() support */
-
-%left <i>  PARSEOP_EXP_INDEX_LEFT
-%right <i> PARSEOP_EXP_INDEX_RIGHT
-
-/* Macros */
-
-%token <i> PARSEOP_PRINTF
-%token <i> PARSEOP_FPRINTF
-%token <i> PARSEOP_FOR
-
-/* Structures */
-
-%token <i> PARSEOP_STRUCTURE
-%token <s> PARSEOP_STRUCTURE_NAMESTRING
-%token <i> PARSEOP_STRUCTURE_TAG
-%token <i> PARSEOP_STRUCTURE_ELEMENT
-%token <i> PARSEOP_STRUCTURE_INSTANCE
-%token <i> PARSEOP_STRUCTURE_REFERENCE
-%token <i> PARSEOP_STRUCTURE_POINTER
-
-/* Top level */
-
-%token <i> PARSEOP_ASL_CODE
-
-
-/*******************************************************************************
- *
- * Tokens below are not in the aslmap.c file
- *
- ******************************************************************************/
-
-
-/* Tokens below this are not in the aslmap.c file */
-
-/* Specific parentheses tokens are not used at this time */
-           /* PARSEOP_EXP_PAREN_OPEN */
-           /* PARSEOP_EXP_PAREN_CLOSE */
-
-/* ASL+ variable creation */
-
-%token <i> PARSEOP_INTEGER_TYPE
-%token <i> PARSEOP_STRING_TYPE
-%token <i> PARSEOP_BUFFER_TYPE
-%token <i> PARSEOP_PACKAGE_TYPE
-%token <i> PARSEOP_REFERENCE_TYPE
-
-
-/*
- * Special functions. These should probably stay at the end of this
- * table.
- */
-%token <i> PARSEOP___DATE__
-%token <i> PARSEOP___FILE__
-%token <i> PARSEOP___LINE__
-%token <i> PARSEOP___PATH__
-
-
-/* Production types/names */
-
-
-
-/******************************************************************************
- *
- * Production names
- *
- *****************************************************************************/
-
-%type <n> ArgList
-%type <n> AslCode
-%type <n> BufferData
-%type <n> BufferTermData
-%type <n> CompilerDirective
-%type <n> DataObject
-%type <n> DefinitionBlockTerm
-%type <n> DefinitionBlockList
-%type <n> IntegerData
-%type <n> NamedObject
-%type <n> NameSpaceModifier
-%type <n> Object
-%type <n> PackageData
-%type <n> ParameterTypePackage
-%type <n> ParameterTypePackageList
-%type <n> ParameterTypesPackage
-%type <n> ParameterTypesPackageList
-%type <n> RequiredTarget
-%type <n> SimpleTarget
-%type <n> StringData
-%type <n> Target
-%type <n> Term
-%type <n> TermArg
-%type <n> TermList
-%type <n> MethodInvocationTerm
-
-/* Type4Opcode is obsolete */
-
-%type <n> Type1Opcode
-%type <n> Type2BufferOpcode
-%type <n> Type2BufferOrStringOpcode
-%type <n> Type2IntegerOpcode
-%type <n> Type2Opcode
-%type <n> Type2StringOpcode
-%type <n> Type3Opcode
-%type <n> Type5Opcode
-%type <n> Type6Opcode
-
-%type <n> AccessAsTerm
-%type <n> ExternalTerm
-%type <n> FieldUnit
-%type <n> FieldUnitEntry
-%type <n> FieldUnitList
-%type <n> IncludeTerm
-%type <n> OffsetTerm
-%type <n> OptionalAccessAttribTerm
-
-/* Named Objects */
-
-%type <n> BankFieldTerm
-%type <n> CreateBitFieldTerm
-%type <n> CreateByteFieldTerm
-%type <n> CreateDWordFieldTerm
-%type <n> CreateFieldTerm
-%type <n> CreateQWordFieldTerm
-%type <n> CreateWordFieldTerm
-%type <n> DataRegionTerm
-%type <n> DeviceTerm
-%type <n> EventTerm
-%type <n> FieldTerm
-%type <n> FunctionTerm
-%type <n> IndexFieldTerm
-%type <n> MethodTerm
-%type <n> MutexTerm
-%type <n> OpRegionTerm
-%type <n> OpRegionSpaceIdTerm
-%type <n> PowerResTerm
-%type <n> ProcessorTerm
-%type <n> ThermalZoneTerm
-
-/* Namespace modifiers */
-
-%type <n> AliasTerm
-%type <n> NameTerm
-%type <n> ScopeTerm
-
-/* Type 1 opcodes */
-
-%type <n> BreakPointTerm
-%type <n> BreakTerm
-%type <n> CaseDefaultTermList
-%type <n> CaseTerm
-%type <n> ContinueTerm
-%type <n> DefaultTerm
-%type <n> ElseTerm
-%type <n> FatalTerm
-%type <n> ElseIfTerm
-%type <n> IfTerm
-%type <n> LoadTerm
-%type <n> NoOpTerm
-%type <n> NotifyTerm
-%type <n> ReleaseTerm
-%type <n> ResetTerm
-%type <n> ReturnTerm
-%type <n> SignalTerm
-%type <n> SleepTerm
-%type <n> StallTerm
-%type <n> SwitchTerm
-%type <n> UnloadTerm
-%type <n> WhileTerm
-/* %type <n> CaseTermList */
-
-/* Type 2 opcodes */
-
-%type <n> AcquireTerm
-%type <n> AddTerm
-%type <n> AndTerm
-%type <n> ConcatResTerm
-%type <n> ConcatTerm
-%type <n> CondRefOfTerm
-%type <n> CopyObjectTerm
-%type <n> DecTerm
-%type <n> DerefOfTerm
-%type <n> DivideTerm
-%type <n> FindSetLeftBitTerm
-%type <n> FindSetRightBitTerm
-%type <n> FromBCDTerm
-%type <n> IncTerm
-%type <n> IndexTerm
-%type <n> LAndTerm
-%type <n> LEqualTerm
-%type <n> LGreaterEqualTerm
-%type <n> LGreaterTerm
-%type <n> LLessEqualTerm
-%type <n> LLessTerm
-%type <n> LNotEqualTerm
-%type <n> LNotTerm
-%type <n> LoadTableTerm
-%type <n> LOrTerm
-%type <n> MatchTerm
-%type <n> MidTerm
-%type <n> ModTerm
-%type <n> MultiplyTerm
-%type <n> NAndTerm
-%type <n> NOrTerm
-%type <n> NotTerm
-%type <n> ObjectTypeTerm
-%type <n> OrTerm
-%type <n> RawDataBufferTerm
-%type <n> RefOfTerm
-%type <n> ShiftLeftTerm
-%type <n> ShiftRightTerm
-%type <n> SizeOfTerm
-%type <n> StoreTerm
-%type <n> SubtractTerm
-%type <n> TimerTerm
-%type <n> ToBCDTerm
-%type <n> ToBufferTerm
-%type <n> ToDecimalStringTerm
-%type <n> ToHexStringTerm
-%type <n> ToIntegerTerm
-%type <n> ToStringTerm
-%type <n> WaitTerm
-%type <n> XOrTerm
-
-/* Keywords */
-
-%type <n> AccessAttribKeyword
-%type <n> AccessTypeKeyword
-%type <n> AddressingModeKeyword
-%type <n> AddressKeyword
-%type <n> AddressSpaceKeyword
-%type <n> BitsPerByteKeyword
-%type <n> ClockPhaseKeyword
-%type <n> ClockPolarityKeyword
-%type <n> DecodeKeyword
-%type <n> DevicePolarityKeyword
-%type <n> DMATypeKeyword
-%type <n> EndianKeyword
-%type <n> FlowControlKeyword
-%type <n> InterruptLevel
-%type <n> InterruptTypeKeyword
-%type <n> IODecodeKeyword
-%type <n> IoRestrictionKeyword
-%type <n> LockRuleKeyword
-%type <n> MatchOpKeyword
-%type <n> MaxKeyword
-%type <n> MemTypeKeyword
-%type <n> MinKeyword
-%type <n> ObjectTypeKeyword
-%type <n> OptionalBusMasterKeyword
-%type <n> OptionalReadWriteKeyword
-%type <n> ParityTypeKeyword
-%type <n> PinConfigByte
-%type <n> PinConfigKeyword
-%type <n> RangeTypeKeyword
-%type <n> RegionSpaceKeyword
-%type <n> ResourceTypeKeyword
-%type <n> SerializeRuleKeyword
-%type <n> ShareTypeKeyword
-%type <n> SlaveModeKeyword
-%type <n> StopBitsKeyword
-%type <n> TranslationKeyword
-%type <n> TypeKeyword
-%type <n> UpdateRuleKeyword
-%type <n> WireModeKeyword
-%type <n> XferSizeKeyword
-%type <n> XferTypeKeyword
-
-/* Types */
-
-%type <n> SuperName
-%type <n> ObjectTypeName
-%type <n> ArgTerm
-%type <n> LocalTerm
-%type <n> DebugTerm
-
-%type <n> Integer
-%type <n> ByteConst
-%type <n> WordConst
-%type <n> DWordConst
-%type <n> QWordConst
-%type <n> String
-
-%type <n> ConstTerm
-%type <n> ConstExprTerm
-%type <n> ByteConstExpr
-%type <n> WordConstExpr
-%type <n> DWordConstExpr
-%type <n> QWordConstExpr
-
-%type <n> DWordList
-%type <n> BufferTerm
-%type <n> ByteList
-
-%type <n> PackageElement
-%type <n> PackageList
-%type <n> PackageTerm
-
-/* Macros */
-
-%type <n> EISAIDTerm
-%type <n> ResourceMacroList
-%type <n> ResourceMacroTerm
-%type <n> ResourceTemplateTerm
-%type <n> PldKeyword
-%type <n> PldKeywordList
-%type <n> ToPLDTerm
-%type <n> ToUUIDTerm
-%type <n> UnicodeTerm
-%type <n> PrintfArgList
-%type <n> PrintfTerm
-%type <n> FprintfTerm
-%type <n> ForTerm
-
-/* Resource Descriptors */
-
-%type <n> ConnectionTerm
-%type <n> DMATerm
-%type <n> DWordIOTerm
-%type <n> DWordMemoryTerm
-%type <n> DWordSpaceTerm
-%type <n> EndDependentFnTerm
-%type <n> ExtendedIOTerm
-%type <n> ExtendedMemoryTerm
-%type <n> ExtendedSpaceTerm
-%type <n> FixedDmaTerm
-%type <n> FixedIOTerm
-%type <n> GpioIntTerm
-%type <n> GpioIoTerm
-%type <n> I2cSerialBusTerm
-%type <n> I2cSerialBusTermV2
-%type <n> InterruptTerm
-%type <n> IOTerm
-%type <n> IRQNoFlagsTerm
-%type <n> IRQTerm
-%type <n> Memory24Term
-%type <n> Memory32FixedTerm
-%type <n> Memory32Term
-%type <n> NameSeg
-%type <n> NameString
-%type <n> QWordIOTerm
-%type <n> QWordMemoryTerm
-%type <n> QWordSpaceTerm
-%type <n> RegisterTerm
-%type <n> SpiSerialBusTerm
-%type <n> SpiSerialBusTermV2
-%type <n> StartDependentFnNoPriTerm
-%type <n> StartDependentFnTerm
-%type <n> UartSerialBusTerm
-%type <n> UartSerialBusTermV2
-%type <n> VendorLongTerm
-%type <n> VendorShortTerm
-%type <n> WordBusNumberTerm
-%type <n> WordIOTerm
-%type <n> WordSpaceTerm
-
-/* Local types that help construct the AML, not in ACPI spec */
-
-%type <n> AmlPackageLengthTerm
-%type <n> IncludeEndTerm
-%type <n> NameStringItem
-%type <n> TermArgItem
-
-%type <n> OptionalAccessSize
-%type <n> OptionalAddressingMode
-%type <n> OptionalAddressRange
-%type <n> OptionalBitsPerByte
-%type <n> OptionalBuffer_Last
-%type <n> OptionalByteConstExpr
-%type <n> OptionalCount
-%type <n> OptionalDataCount
-%type <n> OptionalDecodeType
-%type <n> OptionalDevicePolarity
-%type <n> OptionalDWordConstExpr
-%type <n> OptionalEndian
-%type <n> OptionalFlowControl
-%type <n> OptionalIoRestriction
-%type <n> OptionalListString
-%type <n> OptionalMaxType
-%type <n> OptionalMemType
-%type <n> OptionalMinType
-%type <n> OptionalNameString
-%type <n> OptionalNameString_First
-%type <n> OptionalNameString_Last
-%type <n> OptionalObjectTypeKeyword
-%type <n> OptionalParameterTypePackage
-%type <n> OptionalParameterTypesPackage
-%type <n> OptionalParentheses
-%type <n> OptionalParityType
-%type <n> OptionalPredicate
-%type <n> OptionalQWordConstExpr
-%type <n> OptionalRangeType
-%type <n> OptionalReference
-%type <n> OptionalResourceType
-%type <n> OptionalResourceType_First
-%type <n> OptionalReturnArg
-%type <n> OptionalSerializeRuleKeyword
-%type <n> OptionalShareType
-%type <n> OptionalShareType_First
-%type <n> OptionalSlaveMode
-%type <n> OptionalStopBits
-%type <n> OptionalStringData
-%type <n> OptionalTermArg
-%type <n> OptionalTranslationType_Last
-%type <n> OptionalType
-%type <n> OptionalType_Last
-%type <n> OptionalWireMode
-%type <n> OptionalWordConst
-%type <n> OptionalWordConstExpr
-%type <n> OptionalXferSize
-
-/*
- * ASL+ (C-style) parser
- */
-
-/* Expressions and symbolic operators */
-
-%type <n> Expression
-%type <n> EqualsTerm
-%type <n> IndexExpTerm
-
-/* ASL+ Named object declaration support */
-/*
-%type <n> NameTermAslPlus
-
-%type <n> BufferBegin
-%type <n> BufferEnd
-%type <n> PackageBegin
-%type <n> PackageEnd
-%type <n> OptionalLength
-*/
-/* ASL+ Structure declarations */
-/*
-%type <n> StructureTerm
-%type <n> StructureTermBegin
-%type <n> StructureType
-%type <n> StructureTag
-%type <n> StructureElementList
-%type <n> StructureElement
-%type <n> StructureElementType
-%type <n> OptionalStructureElementType
-%type <n> StructureId
-*/
-/* Structure instantiantion */
-/*
-%type <n> StructureInstanceTerm
-%type <n> StructureTagReference
-%type <n> StructureInstanceEnd
-*/
-/* Pseudo-instantiantion for method Args/Locals */
-/*
-%type <n> MethodStructureTerm
-%type <n> LocalStructureName
-*/
-/* Direct structure references via the Index operator */
-/*
-%type <n> StructureReference
-%type <n> StructureIndexTerm
-%type <n> StructurePointerTerm
-%type <n> StructurePointerReference
-%type <n> OptionalDefinePointer
-*/
-
-%%
-
-/* Production rules */
-
-
-
-/*******************************************************************************
- *
- * ASL Root and Secondary Terms
- *
- ******************************************************************************/
-
-/*
- * Root term. Allow multiple #line directives before the definition block
- * to handle output from preprocessors
- */
-AslCode
-    : DefinitionBlockList           {$<n>$ = TrLinkChildren (
-                                        TrCreateLeafNode (PARSEOP_ASL_CODE),1, $1);}
-    | error                         {YYABORT; $$ = NULL;}
-    ;
-
-
-/*
- * Note concerning support for "module-level code".
- *
- * ACPI 1.0 allowed Type1 and Type2 executable opcodes outside of control
- * methods (the so-called module-level code.) This support was explicitly
- * removed in ACPI 2.0, but this type of code continues to be created by
- * BIOS vendors. In order to support the disassembly and recompilation of
- * such code (and the porting of ASL code to iASL), iASL supports this
- * code in violation of the current ACPI specification.
- *
- * The grammar change to support module-level code is to revert the
- * {ObjectList} portion of the DefinitionBlockTerm in ACPI 2.0 to the
- * original use of {TermList} instead (see below.) This allows the use
- * of Type1 and Type2 opcodes at module level.
- *
- * 04/2016: The module-level code is now allowed in the following terms:
- * DeviceTerm, PowerResTerm, ProcessorTerm, ScopeTerm, ThermalZoneTerm.
- * The ObjectList term is obsolete and has been removed.
- */
-DefinitionBlockTerm
-    : PARSEOP_DEFINITION_BLOCK '('  {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITION_BLOCK);}
-        String ','
-        String ','
-        ByteConst ','
-        String ','
-        String ','
-        DWordConst
-        ')'                         {TrSetEndLineNumber ($<n>3);}
-            '{' TermList '}'        {$$ = TrLinkChildren ($<n>3,7,
-                                        $4,$6,$8,$10,$12,$14,$18);}
-    ;
-
-DefinitionBlockList
-    : DefinitionBlockTerm
-    | DefinitionBlockTerm
-        DefinitionBlockList         {$$ = TrLinkPeerNodes (2, $1,$2);}
-    ;
-
-/* Allow IO, DMA, IRQ Resource macro and FOR macro names to also be used as identifiers */
-
-NameString
-    : NameSeg                       {}
-    | PARSEOP_NAMESTRING            {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) $1);}
-    | PARSEOP_IO                    {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
-    | PARSEOP_DMA                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
-    | PARSEOP_IRQ                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
-    | PARSEOP_FOR                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "FOR");}
-    ;
-/*
-NameSeg
-    : PARSEOP_NAMESEG               {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT)
-                                            TrNormalizeNameSeg ($1));}
-    ;
-*/
-
-NameSeg
-    : PARSEOP_NAMESEG               {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG,
-                                            (ACPI_NATIVE_INT) AslCompilerlval.s);}
-    ;
-
-
-SuperName
-    : NameString                    {}
-    | ArgTerm                       {}
-    | LocalTerm                     {}
-    | DebugTerm                     {}
-    | Type6Opcode                   {}
-    ;
-
-Target
-    :                               {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
-    | ','                           {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
-    | ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
-    ;
-
-TermArg
-    : Type2Opcode                   {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | DataObject                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | NameString                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | ArgTerm                       {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | LocalTerm                     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-
-
-    ;
-
-/*
- NOTE: Removed from TermArg due to reduce/reduce conflicts:
-    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
-
-*/
-
-MethodInvocationTerm
-    : NameString '('                {TrUpdateNode (PARSEOP_METHODCALL, $1);}
-        ArgList ')'                 {$$ = TrLinkChildNode ($1,$4);}
-    ;
-
-/* OptionalCount must appear before ByteList or an incorrect reduction will result */
-
-OptionalCount
-    :                               {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
-    | ','                           {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
-    | ',' TermArg                   {$$ = $2;}
-    ;
-
-/*
- * Data count for buffers and packages (byte count for buffers,
- * element count for packages).
- */
-OptionalDataCount
-
-        /* Legacy ASL */
-    :                               {$$ = NULL;}
-    | '(' TermArg ')'               {$$ = $2;}
-    | '('  ')'                      {$$ = NULL;}
-
-        /* C-style (ASL+) -- adds equals term */
-
-    |  PARSEOP_EXP_EQUALS           {$$ = NULL;}
-
-    | '(' TermArg ')'
-        PARSEOP_EXP_EQUALS          {$$ = $2;}
-
-    | '('  ')' String
-        PARSEOP_EXP_EQUALS          {$$ = NULL;}
-    ;
-
-
-/******* List Terms **************************************************/
-
-ArgList
-    :                               {$$ = NULL;}
-    | TermArg
-    | ArgList ','                   /* Allows a trailing comma at list end */
-    | ArgList ','
-        TermArg                     {$$ = TrLinkPeerNode ($1,$3);}
-    ;
-
-ByteList
-    :                               {$$ = NULL;}
-    | ByteConstExpr
-    | ByteList ','                  /* Allows a trailing comma at list end */
-    | ByteList ','
-        ByteConstExpr               {$$ = TrLinkPeerNode ($1,$3);}
-    ;
-
-DWordList
-    :                               {$$ = NULL;}
-    | DWordConstExpr
-    | DWordList ','                 /* Allows a trailing comma at list end */
-    | DWordList ','
-        DWordConstExpr              {$$ = TrLinkPeerNode ($1,$3);}
-    ;
-
-FieldUnitList
-    :                               {$$ = NULL;}
-    | FieldUnit
-    | FieldUnitList ','             /* Allows a trailing comma at list end */
-    | FieldUnitList ','
-        FieldUnit                   {$$ = TrLinkPeerNode ($1,$3);}
-    ;
-
-FieldUnit
-    : FieldUnitEntry                {}
-    | OffsetTerm                    {}
-    | AccessAsTerm                  {}
-    | ConnectionTerm                {}
-    ;
-
-FieldUnitEntry
-    : ',' AmlPackageLengthTerm      {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
-    | NameSeg ','
-        AmlPackageLengthTerm        {$$ = TrLinkChildNode ($1,$3);}
-    ;
-
-Object
-    : CompilerDirective             {}
-    | NamedObject                   {}
-    | NameSpaceModifier             {}
-//    | StructureTerm                 {}
-    ;
-
-PackageList
-    :                               {$$ = NULL;}
-    | PackageElement
-    | PackageList ','               /* Allows a trailing comma at list end */
-    | PackageList ','
-        PackageElement              {$$ = TrLinkPeerNode ($1,$3);}
-    ;
-
-PackageElement
-    : DataObject                    {}
-    | NameString                    {}
-    ;
-
-    /* Rules for specifying the type of one method argument or return value */
-
-ParameterTypePackage
-    :                               {$$ = NULL;}
-    | ObjectTypeKeyword             {$$ = $1;}
-    | ParameterTypePackage ','
-        ObjectTypeKeyword           {$$ = TrLinkPeerNodes (2,$1,$3);}
-    ;
-
-ParameterTypePackageList
-    :                               {$$ = NULL;}
-    | ObjectTypeKeyword             {$$ = $1;}
-    | '{' ParameterTypePackage '}'  {$$ = $2;}
-    ;
-
-OptionalParameterTypePackage
-    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
-    | ',' ParameterTypePackageList  {$$ = TrLinkChildren (
-                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
-    ;
-
-    /* Rules for specifying the types for method arguments */
-
-ParameterTypesPackage
-    : ParameterTypePackageList      {$$ = $1;}
-    | ParameterTypesPackage ','
-        ParameterTypePackageList    {$$ = TrLinkPeerNodes (2,$1,$3);}
-    ;
-
-ParameterTypesPackageList
-    :                               {$$ = NULL;}
-    | ObjectTypeKeyword             {$$ = $1;}
-    | '{' ParameterTypesPackage '}' {$$ = $2;}
-    ;
-
-OptionalParameterTypesPackage
-    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
-    | ',' ParameterTypesPackageList {$$ = TrLinkChildren (
-                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
-    ;
-
-    /* ACPI 3.0 -- allow semicolons between terms */
-
-TermList
-    :                               {$$ = NULL;}
-    | TermList Term                 {$$ = TrLinkPeerNode (
-                                        TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
-    | TermList Term ';'             {$$ = TrLinkPeerNode (
-                                        TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
-    | TermList ';' Term             {$$ = TrLinkPeerNode (
-                                        TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
-    | TermList ';' Term ';'         {$$ = TrLinkPeerNode (
-                                        TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
-    ;
-
-Term
-    : Object                        {}
-    | Type1Opcode                   {}
-    | Type2Opcode                   {}
-    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | Type2BufferOpcode             {}
-    | Type2BufferOrStringOpcode     {}
-    | error                         {$$ = AslDoError(); yyclearin;}
-    ;
-
-/*
- * Case-Default list; allow only one Default term and unlimited Case terms
- */
-CaseDefaultTermList
-    :                               {$$ = NULL;}
-    | CaseTerm  {}
-    | DefaultTerm   {}
-    | CaseDefaultTermList
-        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
-    | CaseDefaultTermList
-        DefaultTerm                 {$$ = TrLinkPeerNode ($1,$2);}
-
-/* Original - attempts to force zero or one default term within the switch */
-
-/*
-CaseDefaultTermList
-    :                               {$$ = NULL;}
-    | CaseTermList
-        DefaultTerm
-        CaseTermList                {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
-    | CaseTermList
-        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
-    ;
-
-CaseTermList
-    :                               {$$ = NULL;}
-    | CaseTerm                      {}
-    | CaseTermList
-        CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
-    ;
-*/
-
-
-/*******************************************************************************
- *
- * ASL Data and Constant Terms
- *
- ******************************************************************************/
-
-DataObject
-    : BufferData                    {}
-    | PackageData                   {}
-    | IntegerData                   {}
-    | StringData                    {}
-    ;
-
-BufferData
-    : Type5Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | BufferTerm                    {}
-    ;
-
-PackageData
-    : PackageTerm                   {}
-    ;
-
-IntegerData
-    : Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | Integer                       {}
-    | ConstTerm                     {}
-    ;
-
-StringData
-    : Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | String                        {}
-    ;
-
-ByteConst
-    : Integer                       {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
-    ;
-
-WordConst
-    : Integer                       {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
-    ;
-
-DWordConst
-    : Integer                       {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
-    ;
-
-QWordConst
-    : Integer                       {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
-    ;
-
-/*
- * The NODE_COMPILE_TIME_CONST flag in the following constant expressions
- * enables compile-time constant folding to reduce the Type3Opcodes/Type2IntegerOpcodes
- * to simple integers. It is an error if these types of expressions cannot be
- * reduced, since the AML grammar for ****ConstExpr requires a simple constant.
- * Note: The required byte length of the constant is passed through to the
- * constant folding code in the node AmlLength field.
- */
-ByteConstExpr
-    : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
-                                        TrSetNodeAmlLength ($1, 1);}
-    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
-                                        TrSetNodeAmlLength ($1, 1);}
-    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
-    | ByteConst                     {}
-    ;
-
-WordConstExpr
-    : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
-                                        TrSetNodeAmlLength ($1, 2);}
-    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
-                                        TrSetNodeAmlLength ($1, 2);}
-    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
-    | WordConst                     {}
-    ;
-
-DWordConstExpr
-    : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
-                                        TrSetNodeAmlLength ($1, 4);}
-    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
-                                        TrSetNodeAmlLength ($1, 4);}
-    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
-    | DWordConst                    {}
-    ;
-
-QWordConstExpr
-    : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
-                                        TrSetNodeAmlLength ($1, 8);}
-    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);
-                                        TrSetNodeAmlLength ($1, 8);}
-    | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
-    | QWordConst                    {}
-    ;
-
-ConstTerm
-    : ConstExprTerm                 {}
-    | PARSEOP_REVISION              {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
-    ;
-
-ConstExprTerm
-    : PARSEOP_ZERO                  {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
-    | PARSEOP_ONE                   {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
-    | PARSEOP_ONES                  {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_UINT64_MAX);}
-    | PARSEOP___DATE__              {$$ = TrCreateConstantLeafNode (PARSEOP___DATE__);}
-    | PARSEOP___FILE__              {$$ = TrCreateConstantLeafNode (PARSEOP___FILE__);}
-    | PARSEOP___LINE__              {$$ = TrCreateConstantLeafNode (PARSEOP___LINE__);}
-    | PARSEOP___PATH__              {$$ = TrCreateConstantLeafNode (PARSEOP___PATH__);}
-    ;
-
-Integer
-    : PARSEOP_INTEGER               {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER,
-                                        AslCompilerlval.i);}
-    ;
-
-String
-    : PARSEOP_STRING_LITERAL        {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL,
-                                        (ACPI_NATIVE_INT) AslCompilerlval.s);}
-    ;
-
-
-/*******************************************************************************
- *
- * ASL Opcode Terms
- *
- ******************************************************************************/
-
-CompilerDirective
-    : IncludeTerm                   {}
-    | IncludeEndTerm                {}
-    | ExternalTerm                  {}
-    ;
-
-NamedObject
-    : BankFieldTerm                 {}
-    | CreateBitFieldTerm            {}
-    | CreateByteFieldTerm           {}
-    | CreateDWordFieldTerm          {}
-    | CreateFieldTerm               {}
-    | CreateQWordFieldTerm          {}
-    | CreateWordFieldTerm           {}
-    | DataRegionTerm                {}
-    | DeviceTerm                    {}
-    | EventTerm                     {}
-    | FieldTerm                     {}
-    | FunctionTerm                  {}
-    | IndexFieldTerm                {}
-    | MethodTerm                    {}
-    | MutexTerm                     {}
-    | OpRegionTerm                  {}
-    | PowerResTerm                  {}
-    | ProcessorTerm                 {}
-    | ThermalZoneTerm               {}
-    ;
-
-NameSpaceModifier
-    : AliasTerm                     {}
-    | NameTerm                      {}
-//    | NameTermAslPlus               {}
-    | ScopeTerm                     {}
-    ;
-
-/* For ObjectType: SuperName except for MethodInvocationTerm */
-
-ObjectTypeName
-    : NameString                    {}
-    | ArgTerm                       {}
-    | LocalTerm                     {}
-    | DebugTerm                     {}
-    | RefOfTerm                     {}
-    | DerefOfTerm                   {}
-    | IndexTerm                     {}
-
-/*    | MethodInvocationTerm          {} */  /* Caused reduce/reduce with Type6Opcode->MethodInvocationTerm */
-    ;
-
-RequiredTarget
-    : ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
-    ;
-
-SimpleTarget
-    : NameString                    {}
-    | LocalTerm                     {}
-    | ArgTerm                       {}
-    ;
-
-/* Opcode types */
-
-Type1Opcode
-    : BreakTerm                     {}
-    | BreakPointTerm                {}
-    | ContinueTerm                  {}
-    | FatalTerm                     {}
-    | ForTerm                       {}
-    | ElseIfTerm                    {}
-    | LoadTerm                      {}
-    | NoOpTerm                      {}
-    | NotifyTerm                    {}
-    | ReleaseTerm                   {}
-    | ResetTerm                     {}
-    | ReturnTerm                    {}
-    | SignalTerm                    {}
-    | SleepTerm                     {}
-    | StallTerm                     {}
-    | SwitchTerm                    {}
-    | UnloadTerm                    {}
-    | WhileTerm                     {}
-    ;
-
-Type2Opcode
-    : AcquireTerm                   {}
-    | CondRefOfTerm                 {}
-    | CopyObjectTerm                {}
-    | DerefOfTerm                   {}
-    | ObjectTypeTerm                {}
-    | RefOfTerm                     {}
-    | SizeOfTerm                    {}
-    | StoreTerm                     {}
-    | EqualsTerm                    {}
-    | TimerTerm                     {}
-    | WaitTerm                      {}
-    | MethodInvocationTerm          {}
-    ;
-
-/*
- * Type 3/4/5 opcodes
- */
-Type2IntegerOpcode                  /* "Type3" opcodes */
-    : Expression                    {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | AddTerm                       {}
-    | AndTerm                       {}
-    | DecTerm                       {}
-    | DivideTerm                    {}
-    | FindSetLeftBitTerm            {}
-    | FindSetRightBitTerm           {}
-    | FromBCDTerm                   {}
-    | IncTerm                       {}
-    | IndexTerm                     {}
-//    | StructureIndexTerm            {}
-//    | StructurePointerTerm          {}
-    | LAndTerm                      {}
-    | LEqualTerm                    {}
-    | LGreaterTerm                  {}
-    | LGreaterEqualTerm             {}
-    | LLessTerm                     {}
-    | LLessEqualTerm                {}
-    | LNotTerm                      {}
-    | LNotEqualTerm                 {}
-    | LoadTableTerm                 {}
-    | LOrTerm                       {}
-    | MatchTerm                     {}
-    | ModTerm                       {}
-    | MultiplyTerm                  {}
-    | NAndTerm                      {}
-    | NOrTerm                       {}
-    | NotTerm                       {}
-    | OrTerm                        {}
-    | ShiftLeftTerm                 {}
-    | ShiftRightTerm                {}
-    | SubtractTerm                  {}
-    | ToBCDTerm                     {}
-    | ToIntegerTerm                 {}
-    | XOrTerm                       {}
-    ;
-
-Type2StringOpcode                   /* "Type4" Opcodes */
-    : ToDecimalStringTerm           {}
-    | ToHexStringTerm               {}
-    | ToStringTerm                  {}
-    ;
-
-Type2BufferOpcode                   /* "Type5" Opcodes */
-    : ToBufferTerm                  {}
-    | ConcatResTerm                 {}
-    ;
-
-Type2BufferOrStringOpcode
-    : ConcatTerm                    {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
-    | PrintfTerm                    {}
-    | FprintfTerm                   {}
-    | MidTerm                       {}
-    ;
-
-/*
- * A type 3 opcode evaluates to an Integer and cannot have a destination operand
- */
-Type3Opcode
-    : EISAIDTerm                    {}
-    ;
-
-/* Obsolete
-Type4Opcode
-    : ConcatTerm                    {}
-    | ToDecimalStringTerm           {}
-    | ToHexStringTerm               {}
-    | MidTerm                       {}
-    | ToStringTerm                  {}
-    ;
-*/
-
-/* Type 5 opcodes are a subset of Type2 opcodes, and return a constant */
-
-Type5Opcode
-    : ResourceTemplateTerm          {}
-    | UnicodeTerm                   {}
-    | ToPLDTerm                     {}
-    | ToUUIDTerm                    {}
-    ;
-
-Type6Opcode
-    : RefOfTerm                     {}
-    | DerefOfTerm                   {}
-    | IndexTerm                     {}
-    | IndexExpTerm                  {}
-//    | StructureIndexTerm            {}
-//    | StructurePointerTerm          {}
-    | MethodInvocationTerm          {}
-    ;
-
-
-/*******************************************************************************
- *
- * ASL Helper Terms
- *
- ******************************************************************************/
-
-AmlPackageLengthTerm
-    : Integer                       {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,
-                                        (ACPI_PARSE_OBJECT *) $1);}
-    ;
-
-NameStringItem
-    : ',' NameString                {$$ = $2;}
-    | ',' error                     {$$ = AslDoError (); yyclearin;}
-    ;
-
-TermArgItem
-    : ',' TermArg                   {$$ = $2;}
-    | ',' error                     {$$ = AslDoError (); yyclearin;}
-    ;
-
-OptionalReference
-    :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
-    | ','                           {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
-    | ',' TermArg                   {$$ = $2;}
-    ;
-
-OptionalReturnArg
-    :                               {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO),
-                                            NODE_IS_NULL_RETURN);}       /* Placeholder is a ZeroOp object */
-    | TermArg                       {$$ = $1;}
-    ;
-
-OptionalSerializeRuleKeyword
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' SerializeRuleKeyword      {$$ = $2;}
-    ;
-
-OptionalTermArg
-    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
-    | TermArg                       {$$ = $1;}
-    ;
-
-OptionalWordConst
-    :                               {$$ = NULL;}
-    | WordConst                     {$$ = $1;}
-    ;
-
-
-
-
-/*******************************************************************************
- *
- * ASL Primary Terms
- *
- ******************************************************************************/
-
-AccessAsTerm
-    : PARSEOP_ACCESSAS '('
-        AccessTypeKeyword
-        OptionalAccessAttribTerm
-        ')'                         {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
-    | PARSEOP_ACCESSAS '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-AcquireTerm
-    : PARSEOP_ACQUIRE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
-        SuperName
-        ',' WordConstExpr
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
-    | PARSEOP_ACQUIRE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-AddTerm
-    : PARSEOP_ADD '('               {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_ADD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-AliasTerm
-    : PARSEOP_ALIAS '('             {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);}
-        NameString
-        NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,
-                                        TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
-    | PARSEOP_ALIAS '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-AndTerm
-    : PARSEOP_AND '('               {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_AND '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ArgTerm
-    : PARSEOP_ARG0                  {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
-    | PARSEOP_ARG1                  {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
-    | PARSEOP_ARG2                  {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
-    | PARSEOP_ARG3                  {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
-    | PARSEOP_ARG4                  {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
-    | PARSEOP_ARG5                  {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
-    | PARSEOP_ARG6                  {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
-    ;
-
-BankFieldTerm
-    : PARSEOP_BANKFIELD '('         {$<n>$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
-        NameString
-        NameStringItem
-        TermArgItem
-        ',' AccessTypeKeyword
-        ',' LockRuleKeyword
-        ',' UpdateRuleKeyword
-        ')' '{'
-            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,7,
-                                        $4,$5,$6,$8,$10,$12,$15);}
-    | PARSEOP_BANKFIELD '('
-        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
-    ;
-
-BreakTerm
-    : PARSEOP_BREAK                 {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
-    ;
-
-BreakPointTerm
-    : PARSEOP_BREAKPOINT            {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
-    ;
-
-BufferTerm
-    : PARSEOP_BUFFER                {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);}
-        OptionalDataCount
-        '{' BufferTermData '}'      {$$ = TrLinkChildren ($<n>2,2,$3,$5);}
-    ;
-
-BufferTermData
-    : ByteList                      {}
-    | StringData                    {}
-    ;
-
-CaseTerm
-    : PARSEOP_CASE '('              {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);}
-        DataObject
-        ')' '{'
-            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
-    | PARSEOP_CASE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ConcatTerm
-    : PARSEOP_CONCATENATE '('       {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_CONCATENATE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ConcatResTerm
-    : PARSEOP_CONCATENATERESTEMPLATE '(' {$<n>$ = TrCreateLeafNode (
-                                            PARSEOP_CONCATENATERESTEMPLATE);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_CONCATENATERESTEMPLATE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ConnectionTerm
-    : PARSEOP_CONNECTION '('
-        NameString
-        ')'                         {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);}
-    | PARSEOP_CONNECTION '('        {$<n>$ = TrCreateLeafNode (PARSEOP_CONNECTION);}
-        ResourceMacroTerm
-        ')'                         {$$ = TrLinkChildren ($<n>3, 1,
-                                        TrLinkChildren (
-                                            TrCreateLeafNode (PARSEOP_RESOURCETEMPLATE), 3,
-                                            TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
-                                            TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
-                                            $4));}
-    | PARSEOP_CONNECTION '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-CondRefOfTerm
-    : PARSEOP_CONDREFOF '('         {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
-        SuperName
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_CONDREFOF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ContinueTerm
-    : PARSEOP_CONTINUE              {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
-    ;
-
-CopyObjectTerm
-    : PARSEOP_COPYOBJECT '('        {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
-        TermArg
-        ',' SimpleTarget
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,
-                                        TrSetNodeFlags ($6, NODE_IS_TARGET));}
-    | PARSEOP_COPYOBJECT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-CreateBitFieldTerm
-    : PARSEOP_CREATEBITFIELD '('    {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
-        TermArg
-        TermArgItem
-        NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
-                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
-    | PARSEOP_CREATEBITFIELD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-CreateByteFieldTerm
-    : PARSEOP_CREATEBYTEFIELD '('   {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
-        TermArg
-        TermArgItem
-        NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
-                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
-    | PARSEOP_CREATEBYTEFIELD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-CreateDWordFieldTerm
-    : PARSEOP_CREATEDWORDFIELD '('  {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
-        TermArg
-        TermArgItem
-        NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
-                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
-    | PARSEOP_CREATEDWORDFIELD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-CreateFieldTerm
-    : PARSEOP_CREATEFIELD '('       {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
-        TermArg
-        TermArgItem
-        TermArgItem
-        NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,
-                                        TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
-    | PARSEOP_CREATEFIELD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-CreateQWordFieldTerm
-    : PARSEOP_CREATEQWORDFIELD '('  {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
-        TermArg
-        TermArgItem
-        NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
-                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
-    | PARSEOP_CREATEQWORDFIELD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-CreateWordFieldTerm
-    : PARSEOP_CREATEWORDFIELD '('   {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
-        TermArg
-        TermArgItem
-        NameStringItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
-                                        TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
-    | PARSEOP_CREATEWORDFIELD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-DataRegionTerm
-    : PARSEOP_DATATABLEREGION '('   {$<n>$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
-        NameString
-        TermArgItem
-        TermArgItem
-        TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,
-                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
-    | PARSEOP_DATATABLEREGION '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-DebugTerm
-    : PARSEOP_DEBUG                 {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
-    ;
-
-DecTerm
-    : PARSEOP_DECREMENT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
-        SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_DECREMENT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-DefaultTerm
-    : PARSEOP_DEFAULT '{'           {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
-        TermList '}'                {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_DEFAULT '{'
-        error '}'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-DerefOfTerm
-    : PARSEOP_DEREFOF '('           {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
-        TermArg
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_DEREFOF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-DeviceTerm
-    : PARSEOP_DEVICE '('            {$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);}
-        NameString
-        ')' '{'
-            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,
-                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
-    | PARSEOP_DEVICE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-DivideTerm
-    : PARSEOP_DIVIDE '('            {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
-        TermArg
-        TermArgItem
-        Target
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
-    | PARSEOP_DIVIDE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-EISAIDTerm
-    : PARSEOP_EISAID '('
-        StringData ')'              {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
-    | PARSEOP_EISAID '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ElseIfTerm
-    : IfTerm ElseTerm               {$$ = TrLinkPeerNode ($1,$2);}
-    ;
-
-ElseTerm
-    :                               {$$ = NULL;}
-    | PARSEOP_ELSE '{'              {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
-        TermList '}'                {$$ = TrLinkChildren ($<n>3,1,$4);}
-
-    | PARSEOP_ELSE '{'
-        error '}'                   {$$ = AslDoError(); yyclearin;}
-
-    | PARSEOP_ELSE
-        error                       {$$ = AslDoError(); yyclearin;}
-
-    | PARSEOP_ELSEIF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
-        TermArg                     {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
-        ')' '{'
-            TermList '}'            {TrLinkChildren ($<n>5,2,$4,$8);}
-        ElseTerm                    {TrLinkPeerNode ($<n>5,$11);}
-                                    {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
-
-    | PARSEOP_ELSEIF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-
-    | PARSEOP_ELSEIF
-        error                       {$$ = AslDoError(); yyclearin;}
-    ;
-
-EventTerm
-    : PARSEOP_EVENT '('             {$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);}
-        NameString
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,
-                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
-    | PARSEOP_EVENT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ExternalTerm
-    : PARSEOP_EXTERNAL '('
-        NameString
-        OptionalObjectTypeKeyword
-        OptionalParameterTypePackage
-        OptionalParameterTypesPackage
-        ')'                         {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
-    | PARSEOP_EXTERNAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-FatalTerm
-    : PARSEOP_FATAL '('             {$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);}
-        ByteConstExpr
-        ',' DWordConstExpr
-        TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
-    | PARSEOP_FATAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-FieldTerm
-    : PARSEOP_FIELD '('             {$<n>$ = TrCreateLeafNode (PARSEOP_FIELD);}
-        NameString
-        ',' AccessTypeKeyword
-        ',' LockRuleKeyword
-        ',' UpdateRuleKeyword
-        ')' '{'
-            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
-    | PARSEOP_FIELD '('
-        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
-    ;
-
-FindSetLeftBitTerm
-    : PARSEOP_FINDSETLEFTBIT '('    {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
-        TermArg
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_FINDSETLEFTBIT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-FindSetRightBitTerm
-    : PARSEOP_FINDSETRIGHTBIT '('   {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
-        TermArg
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_FINDSETRIGHTBIT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-    /* Convert a For() loop to a While() loop */
-ForTerm
-    : PARSEOP_FOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
-        OptionalTermArg ','         {}
-        OptionalPredicate ','
-        OptionalTermArg             {$<n>$ = TrLinkPeerNode ($4,$<n>3);
-                                        TrSetParent ($9,$<n>3);}                /* New parent is WHILE */
-        ')' '{' TermList '}'        {$<n>$ = TrLinkChildren ($<n>3,2,$7,$13);}
-                                    {$<n>$ = TrLinkPeerNode ($13,$9);
-                                        $$ = $<n>10;}
-    ;
-
-OptionalPredicate
-    :                               {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, 1);}
-    | TermArg                       {$$ = $1;}
-    ;
-
-FprintfTerm
-    : PARSEOP_FPRINTF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_FPRINTF);}
-        TermArg ','
-        StringData
-        PrintfArgList
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
-    | PARSEOP_FPRINTF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-FromBCDTerm
-    : PARSEOP_FROMBCD '('           {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
-        TermArg
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_FROMBCD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-FunctionTerm
-    : PARSEOP_FUNCTION '('          {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
-        NameString
-        OptionalParameterTypePackage
-        OptionalParameterTypesPackage
-        ')' '{'
-            TermList '}'            {$$ = TrLinkChildren ($<n>3,7,
-                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
-                                        TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
-                                        TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
-                                        TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
-    | PARSEOP_FUNCTION '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-IfTerm
-    : PARSEOP_IF '('                {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
-        TermArg
-        ')' '{'
-            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
-
-    | PARSEOP_IF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-IncludeTerm
-    : PARSEOP_INCLUDE '('
-        String  ')'                 {$$ = TrUpdateNode (PARSEOP_INCLUDE, $3);
-                                        FlOpenIncludeFile ($3);}
-    ;
-
-IncludeEndTerm
-    : PARSEOP_INCLUDE_END           {$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);
-                                        TrSetCurrentFilename ($$);}
-    ;
-
-IncTerm
-    : PARSEOP_INCREMENT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
-        SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_INCREMENT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-IndexFieldTerm
-    : PARSEOP_INDEXFIELD '('        {$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
-        NameString
-        NameStringItem
-        ',' AccessTypeKeyword
-        ',' LockRuleKeyword
-        ',' UpdateRuleKeyword
-        ')' '{'
-            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
-    | PARSEOP_INDEXFIELD '('
-        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
-    ;
-
-IndexTerm
-    : PARSEOP_INDEX '('             {$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_INDEX '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-LAndTerm
-    : PARSEOP_LAND '('              {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
-        TermArg
-        TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_LAND '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-LEqualTerm
-    : PARSEOP_LEQUAL '('            {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
-        TermArg
-        TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_LEQUAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-LGreaterEqualTerm
-    : PARSEOP_LGREATEREQUAL '('     {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
-        TermArg
-        TermArgItem
-        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
-                                        TrLinkChildren ($<n>3,2,$4,$5));}
-    | PARSEOP_LGREATEREQUAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-LGreaterTerm
-    : PARSEOP_LGREATER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
-        TermArg
-        TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_LGREATER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-LLessEqualTerm
-    : PARSEOP_LLESSEQUAL '('        {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
-        TermArg
-        TermArgItem
-        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
-                                        TrLinkChildren ($<n>3,2,$4,$5));}
-    | PARSEOP_LLESSEQUAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-LLessTerm
-    : PARSEOP_LLESS '('             {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
-        TermArg
-        TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_LLESS '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-LNotEqualTerm
-    : PARSEOP_LNOTEQUAL '('         {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
-        TermArg
-        TermArgItem
-        ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
-                                        TrLinkChildren ($<n>3,2,$4,$5));}
-    | PARSEOP_LNOTEQUAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-LNotTerm
-    : PARSEOP_LNOT '('              {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
-        TermArg
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_LNOT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-LoadTableTerm
-    : PARSEOP_LOADTABLE '('         {$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
-        TermArg
-        TermArgItem
-        TermArgItem
-        OptionalListString
-        OptionalListString
-        OptionalReference
-        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
-    | PARSEOP_LOADTABLE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-LoadTerm
-    : PARSEOP_LOAD '('              {$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);}
-        NameString
-        RequiredTarget
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_LOAD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-LocalTerm
-    : PARSEOP_LOCAL0                {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
-    | PARSEOP_LOCAL1                {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
-    | PARSEOP_LOCAL2                {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
-    | PARSEOP_LOCAL3                {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
-    | PARSEOP_LOCAL4                {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
-    | PARSEOP_LOCAL5                {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
-    | PARSEOP_LOCAL6                {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
-    | PARSEOP_LOCAL7                {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
-    ;
-
-LOrTerm
-    : PARSEOP_LOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
-        TermArg
-        TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_LOR '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-MatchTerm
-    : PARSEOP_MATCH '('             {$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);}
-        TermArg
-        ',' MatchOpKeyword
-        TermArgItem
-        ',' MatchOpKeyword
-        TermArgItem
-        TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
-    | PARSEOP_MATCH '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-MethodTerm
-    : PARSEOP_METHOD  '('           {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
-        NameString
-        OptionalByteConstExpr       {UtCheckIntegerRange ($5, 0, 7);}
-        OptionalSerializeRuleKeyword
-        OptionalByteConstExpr
-        OptionalParameterTypePackage
-        OptionalParameterTypesPackage
-        ')' '{'
-            TermList '}'            {$$ = TrLinkChildren ($<n>3,7,
-                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
-                                        $5,$7,$8,$9,$10,$13);}
-    | PARSEOP_METHOD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-MidTerm
-    : PARSEOP_MID '('               {$<n>$ = TrCreateLeafNode (PARSEOP_MID);}
-        TermArg
-        TermArgItem
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
-    | PARSEOP_MID '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ModTerm
-    : PARSEOP_MOD '('               {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_MOD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-MultiplyTerm
-    : PARSEOP_MULTIPLY '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_MULTIPLY '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-MutexTerm
-    : PARSEOP_MUTEX '('             {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);}
-        NameString
-        ',' ByteConstExpr
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,
-                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
-    | PARSEOP_MUTEX '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-NameTerm
-    : PARSEOP_NAME '('              {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);}
-        NameString
-        ',' DataObject
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,
-                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
-    | PARSEOP_NAME '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-NAndTerm
-    : PARSEOP_NAND '('              {$<n>$ = TrCreateLeafNode (PARSEOP_NAND);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_NAND '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-NoOpTerm
-    : PARSEOP_NOOP                  {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
-    ;
-
-NOrTerm
-    : PARSEOP_NOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_NOR);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_NOR '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-NotifyTerm
-    : PARSEOP_NOTIFY '('            {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
-        SuperName
-        TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_NOTIFY '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-NotTerm
-    : PARSEOP_NOT '('               {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
-        TermArg
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_NOT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ObjectTypeTerm
-    : PARSEOP_OBJECTTYPE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
-        ObjectTypeName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_OBJECTTYPE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-OffsetTerm
-    : PARSEOP_OFFSET '('
-        AmlPackageLengthTerm
-        ')'                         {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
-    | PARSEOP_OFFSET '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-OpRegionTerm
-    : PARSEOP_OPERATIONREGION '('   {$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
-        NameString
-        ',' OpRegionSpaceIdTerm
-        TermArgItem
-        TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,
-                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
-                                        $6,$7,$8);}
-    | PARSEOP_OPERATIONREGION '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-OpRegionSpaceIdTerm
-    : RegionSpaceKeyword            {}
-    | ByteConst                     {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
-    ;
-
-OrTerm
-    : PARSEOP_OR '('                {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_OR '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-PackageTerm
-    : PARSEOP_PACKAGE               {$<n>$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
-        OptionalDataCount
-        '{' PackageList '}'         {$$ = TrLinkChildren ($<n>2,2,$3,$5);}
-
-PowerResTerm
-    : PARSEOP_POWERRESOURCE '('     {$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
-        NameString
-        ',' ByteConstExpr
-        ',' WordConstExpr
-        ')' '{'
-            TermList '}'            {$$ = TrLinkChildren ($<n>3,4,
-                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
-                                        $6,$8,$11);}
-    | PARSEOP_POWERRESOURCE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-PrintfTerm
-    : PARSEOP_PRINTF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);}
-        StringData
-        PrintfArgList
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_PRINTF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-PrintfArgList
-    :                               {$$ = NULL;}
-    | TermArg                       {$$ = $1;}
-    | PrintfArgList ','
-       TermArg                      {$$ = TrLinkPeerNode ($1, $3);}
-    ;
-
-ProcessorTerm
-    : PARSEOP_PROCESSOR '('         {$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
-        NameString
-        ',' ByteConstExpr
-        OptionalDWordConstExpr
-        OptionalByteConstExpr
-        ')' '{'
-            TermList '}'            {$$ = TrLinkChildren ($<n>3,5,
-                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
-                                        $6,$7,$8,$11);}
-    | PARSEOP_PROCESSOR '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-RawDataBufferTerm
-    : PARSEOP_DATABUFFER  '('       {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);}
-        OptionalWordConst
-        ')' '{'
-            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
-    | PARSEOP_DATABUFFER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-/*
- * In RefOf, the node isn't really a target, but we can't keep track of it after
- * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
- */
-RefOfTerm
-    : PARSEOP_REFOF '('             {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);}
-        SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,
-                                        TrSetNodeFlags ($4, NODE_IS_TARGET));}
-    | PARSEOP_REFOF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ReleaseTerm
-    : PARSEOP_RELEASE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);}
-        SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_RELEASE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ResetTerm
-    : PARSEOP_RESET '('             {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);}
-        SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_RESET '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ReturnTerm
-    : PARSEOP_RETURN '('            {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);}
-        OptionalReturnArg
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_RETURN                {$$ = TrLinkChildren (
-                                        TrCreateLeafNode (PARSEOP_RETURN),1,
-                                        TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO),
-                                            NODE_IS_NULL_RETURN));}
-    | PARSEOP_RETURN '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ScopeTerm
-    : PARSEOP_SCOPE '('             {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);}
-        NameString
-        ')' '{'
-            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,
-                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
-    | PARSEOP_SCOPE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ShiftLeftTerm
-    : PARSEOP_SHIFTLEFT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_SHIFTLEFT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ShiftRightTerm
-    : PARSEOP_SHIFTRIGHT '('        {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_SHIFTRIGHT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-SignalTerm
-    : PARSEOP_SIGNAL '('            {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
-        SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_SIGNAL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-SizeOfTerm
-    : PARSEOP_SIZEOF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
-        SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_SIZEOF '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-SleepTerm
-    : PARSEOP_SLEEP '('             {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);}
-        TermArg
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_SLEEP '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-StallTerm
-    : PARSEOP_STALL '('             {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);}
-        TermArg
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_STALL '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-StoreTerm
-    : PARSEOP_STORE '('             {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);}
-        TermArg
-        ',' SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,
-                                        TrSetNodeFlags ($6, NODE_IS_TARGET));}
-    | PARSEOP_STORE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-SubtractTerm
-    : PARSEOP_SUBTRACT '('          {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_SUBTRACT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-SwitchTerm
-    : PARSEOP_SWITCH '('            {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);}
-        TermArg
-        ')' '{'
-            CaseDefaultTermList '}'
-                                    {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
-    | PARSEOP_SWITCH '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ThermalZoneTerm
-    : PARSEOP_THERMALZONE '('       {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
-        NameString
-        ')' '{'
-            TermList '}'            {$$ = TrLinkChildren ($<n>3,2,
-                                        TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
-    | PARSEOP_THERMALZONE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-TimerTerm
-    : PARSEOP_TIMER '('             {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);}
-        ')'                         {$$ = TrLinkChildren ($<n>3,0);}
-    | PARSEOP_TIMER                 {$$ = TrLinkChildren (
-                                        TrCreateLeafNode (PARSEOP_TIMER),0);}
-    | PARSEOP_TIMER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ToBCDTerm
-    : PARSEOP_TOBCD '('             {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);}
-        TermArg
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_TOBCD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ToBufferTerm
-    : PARSEOP_TOBUFFER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
-        TermArg
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_TOBUFFER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ToDecimalStringTerm
-    : PARSEOP_TODECIMALSTRING '('   {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
-        TermArg
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_TODECIMALSTRING '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ToHexStringTerm
-    : PARSEOP_TOHEXSTRING '('       {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
-        TermArg
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_TOHEXSTRING '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ToIntegerTerm
-    : PARSEOP_TOINTEGER '('         {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
-        TermArg
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_TOINTEGER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ToPLDTerm
-    : PARSEOP_TOPLD '('             {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);}
-        PldKeywordList
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_TOPLD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-PldKeywordList
-    :                               {$$ = NULL;}
-    | PldKeyword
-        PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkChildren ($1,1,$3);}
-    | PldKeyword
-        PARSEOP_EXP_EQUALS String   {$$ = TrLinkChildren ($1,1,$3);}
-    | PldKeywordList ','            /* Allows a trailing comma at list end */
-    | PldKeywordList ','
-        PldKeyword
-        PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
-    | PldKeywordList ','
-        PldKeyword
-        PARSEOP_EXP_EQUALS String   {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
-    ;
-
-
-ToStringTerm
-    : PARSEOP_TOSTRING '('          {$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
-        TermArg
-        OptionalCount
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_TOSTRING '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ToUUIDTerm
-    : PARSEOP_TOUUID '('
-        StringData ')'              {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
-    | PARSEOP_TOUUID '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-UnicodeTerm
-    : PARSEOP_UNICODE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);}
-        StringData
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,0,$4);}
-    | PARSEOP_UNICODE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-UnloadTerm
-    : PARSEOP_UNLOAD '('            {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
-        SuperName
-        ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_UNLOAD '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-WaitTerm
-    : PARSEOP_WAIT '('              {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);}
-        SuperName
-        TermArgItem
-        ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
-    | PARSEOP_WAIT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-XOrTerm
-    : PARSEOP_XOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
-        TermArg
-        TermArgItem
-        Target
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
-    | PARSEOP_XOR '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-WhileTerm
-    : PARSEOP_WHILE '('             {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
-        TermArg
-        ')' '{' TermList '}'
-                                    {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
-    | PARSEOP_WHILE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-
-
-/*******************************************************************************
- *
- * Production rules for the symbolic (c-style) operators
- *
- ******************************************************************************/
-
-/*
- * ASL Extensions: C-style math/logical operators and expressions.
- * The implementation transforms these operators into the standard
- * AML opcodes and syntax.
- *
- * Supported operators and precedence rules (high-to-low)
- *
- * NOTE: The operator precedence and associativity rules are
- * implemented by the tokens in asltokens.y
- *
- * (left-to-right):
- *  1)      ( ) expr++ expr--
- *
- * (right-to-left):
- *  2)      ! ~
- *
- * (left-to-right):
- *  3)      *   /   %
- *  4)      +   -
- *  5)      >>  <<
- *  6)      <   >   <=  >=
- *  7)      ==  !=
- *  8)      &
- *  9)      ^
- *  10)     |
- *  11)     &&
- *  12)     ||
- *
- * (right-to-left):
- *  13)     = += -= *= /= %= <<= >>= &= ^= |=
- */
-
-
-/*******************************************************************************
- *
- * Basic operations for math and logical expressions.
- *
- ******************************************************************************/
-
-Expression
-
-    /* Unary operators */
-
-    : PARSEOP_EXP_LOGICAL_NOT           {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
-        TermArg                         {$$ = TrLinkChildren ($<n>2,1,$3);}
-    | PARSEOP_EXP_NOT                   {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
-        TermArg                         {$$ = TrLinkChildren ($<n>2,2,$3,TrCreateNullTarget ());}
-
-    | SuperName PARSEOP_EXP_INCREMENT   {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
-                                        {$$ = TrLinkChildren ($<n>3,1,$1);}
-    | SuperName PARSEOP_EXP_DECREMENT   {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
-                                        {$$ = TrLinkChildren ($<n>3,1,$1);}
-
-    /* Binary operators: math and logical */
-
-    | TermArg PARSEOP_EXP_ADD           {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
-    | TermArg PARSEOP_EXP_DIVIDE        {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,4,$1,$4,TrCreateNullTarget (),
-                                            TrCreateNullTarget ());}
-    | TermArg PARSEOP_EXP_MODULO        {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
-    | TermArg PARSEOP_EXP_MULTIPLY      {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
-    | TermArg PARSEOP_EXP_SHIFT_LEFT    {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
-    | TermArg PARSEOP_EXP_SHIFT_RIGHT   {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
-    | TermArg PARSEOP_EXP_SUBTRACT      {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
-
-    | TermArg PARSEOP_EXP_AND           {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
-    | TermArg PARSEOP_EXP_OR            {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
-    | TermArg PARSEOP_EXP_XOR           {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
-
-    | TermArg PARSEOP_EXP_GREATER       {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
-    | TermArg PARSEOP_EXP_GREATER_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATEREQUAL);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
-    | TermArg PARSEOP_EXP_LESS          {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
-    | TermArg PARSEOP_EXP_LESS_EQUAL    {$<n>$ = TrCreateLeafNode (PARSEOP_LLESSEQUAL);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
-
-    | TermArg PARSEOP_EXP_EQUAL         {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
-    | TermArg PARSEOP_EXP_NOT_EQUAL     {$<n>$ = TrCreateLeafNode (PARSEOP_LNOTEQUAL);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
-
-    | TermArg PARSEOP_EXP_LOGICAL_AND   {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
-    | TermArg PARSEOP_EXP_LOGICAL_OR    {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
-
-    /* Parentheses */
-
-    | '(' TermArg ')'                   { $$ = $2;}
-
-    /* Index term -- "= BUF1[5]" on right-hand side of an equals (source) */
-
-    | SuperName PARSEOP_EXP_INDEX_LEFT
-        TermArg PARSEOP_EXP_INDEX_RIGHT {$$ = TrCreateLeafNode (PARSEOP_INDEX);
-                                        TrLinkChildren ($$,3,$1,$3,TrCreateNullTarget ());}
-    ;
-
-    /* Index term -- "BUF1[5] = " on left-hand side of an equals (target) */
-
-IndexExpTerm
-
-    : SuperName PARSEOP_EXP_INDEX_LEFT
-        TermArg PARSEOP_EXP_INDEX_RIGHT {$$ = TrCreateLeafNode (PARSEOP_INDEX);
-                                        TrLinkChildren ($$,3,$1,$3,TrCreateNullTarget ());}
-    ;
-
-
-/*******************************************************************************
- *
- * All assignment-type operations -- math and logical. Includes simple
- * assignment and compound assignments.
- *
- ******************************************************************************/
-
-EqualsTerm
-
-    /* Simple Store() operation */
-
-    : SuperName PARSEOP_EXP_EQUALS
-        TermArg                         {$$ = TrCreateAssignmentNode ($1, $3);}
-
-    /* Compound assignments -- Add (operand, operand, target) */
-
-    | TermArg PARSEOP_EXP_ADD_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
-                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
-
-    | TermArg PARSEOP_EXP_DIV_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,4,$1,$4,TrCreateNullTarget (),
-                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
-
-    | TermArg PARSEOP_EXP_MOD_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
-                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
-
-    | TermArg PARSEOP_EXP_MUL_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
-                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
-
-    | TermArg PARSEOP_EXP_SHL_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
-                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
-
-    | TermArg PARSEOP_EXP_SHR_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
-                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
-
-    | TermArg PARSEOP_EXP_SUB_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
-                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
-
-    | TermArg PARSEOP_EXP_AND_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
-                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
-
-    | TermArg PARSEOP_EXP_OR_EQ         {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
-                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
-
-    | TermArg PARSEOP_EXP_XOR_EQ        {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
-        TermArg                         {$$ = TrLinkChildren ($<n>3,3,$1,$4,
-                                            TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
-    ;
-
-
-
-/*******************************************************************************
- *
- * ASL Parameter Keyword Terms
- *
- ******************************************************************************/
-
-AccessAttribKeyword
-    : PARSEOP_ACCESSATTRIB_BLOCK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
-    | PARSEOP_ACCESSATTRIB_BLOCK_CALL       {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
-    | PARSEOP_ACCESSATTRIB_BYTE             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
-    | PARSEOP_ACCESSATTRIB_QUICK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
-    | PARSEOP_ACCESSATTRIB_SND_RCV          {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
-    | PARSEOP_ACCESSATTRIB_WORD             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
-    | PARSEOP_ACCESSATTRIB_WORD_CALL        {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
-    | PARSEOP_ACCESSATTRIB_MULTIBYTE '('    {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_MULTIBYTE);}
-        ByteConst
-        ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_ACCESSATTRIB_RAW_BYTES '('    {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_BYTES);}
-        ByteConst
-        ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
-    | PARSEOP_ACCESSATTRIB_RAW_PROCESS '('  {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_PROCESS);}
-        ByteConst
-        ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
-    ;
-
-AccessTypeKeyword
-    : PARSEOP_ACCESSTYPE_ANY                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
-    | PARSEOP_ACCESSTYPE_BYTE               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
-    | PARSEOP_ACCESSTYPE_WORD               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
-    | PARSEOP_ACCESSTYPE_DWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
-    | PARSEOP_ACCESSTYPE_QWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
-    | PARSEOP_ACCESSTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
-    ;
-
-AddressingModeKeyword
-    : PARSEOP_ADDRESSINGMODE_7BIT           {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_7BIT);}
-    | PARSEOP_ADDRESSINGMODE_10BIT          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_10BIT);}
-    ;
-
-AddressKeyword
-    : PARSEOP_ADDRESSTYPE_MEMORY            {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
-    | PARSEOP_ADDRESSTYPE_RESERVED          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
-    | PARSEOP_ADDRESSTYPE_NVS               {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
-    | PARSEOP_ADDRESSTYPE_ACPI              {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
-    ;
-
-AddressSpaceKeyword
-    : ByteConst                             {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);}
-    | RegionSpaceKeyword                    {}
-    ;
-
-BitsPerByteKeyword
-    : PARSEOP_BITSPERBYTE_FIVE              {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_FIVE);}
-    | PARSEOP_BITSPERBYTE_SIX               {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SIX);}
-    | PARSEOP_BITSPERBYTE_SEVEN             {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SEVEN);}
-    | PARSEOP_BITSPERBYTE_EIGHT             {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_EIGHT);}
-    | PARSEOP_BITSPERBYTE_NINE              {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_NINE);}
-    ;
-
-ClockPhaseKeyword
-    : PARSEOP_CLOCKPHASE_FIRST              {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_FIRST);}
-    | PARSEOP_CLOCKPHASE_SECOND             {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_SECOND);}
-    ;
-
-ClockPolarityKeyword
-    : PARSEOP_CLOCKPOLARITY_LOW             {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_LOW);}
-    | PARSEOP_CLOCKPOLARITY_HIGH            {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_HIGH);}
-    ;
-
-DecodeKeyword
-    : PARSEOP_DECODETYPE_POS                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
-    | PARSEOP_DECODETYPE_SUB                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
-    ;
-
-DevicePolarityKeyword
-    : PARSEOP_DEVICEPOLARITY_LOW            {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_LOW);}
-    | PARSEOP_DEVICEPOLARITY_HIGH           {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_HIGH);}
-    ;
-
-DMATypeKeyword
-    : PARSEOP_DMATYPE_A                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
-    | PARSEOP_DMATYPE_COMPATIBILITY         {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
-    | PARSEOP_DMATYPE_B                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
-    | PARSEOP_DMATYPE_F                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
-    ;
-
-EndianKeyword
-    : PARSEOP_ENDIAN_LITTLE                 {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_LITTLE);}
-    | PARSEOP_ENDIAN_BIG                    {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_BIG);}
-    ;
-
-FlowControlKeyword
-    : PARSEOP_FLOWCONTROL_HW                {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_HW);}
-    | PARSEOP_FLOWCONTROL_NONE              {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_NONE);}
-    | PARSEOP_FLOWCONTROL_SW                {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_SW);}
-    ;
-
-InterruptLevel
-    : PARSEOP_INTLEVEL_ACTIVEBOTH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEBOTH);}
-    | PARSEOP_INTLEVEL_ACTIVEHIGH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
-    | PARSEOP_INTLEVEL_ACTIVELOW            {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
-    ;
-
-InterruptTypeKeyword
-    : PARSEOP_INTTYPE_EDGE                  {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
-    | PARSEOP_INTTYPE_LEVEL                 {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
-    ;
-
-IODecodeKeyword
-    : PARSEOP_IODECODETYPE_16               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
-    | PARSEOP_IODECODETYPE_10               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
-    ;
-
-IoRestrictionKeyword
-    : PARSEOP_IORESTRICT_IN                 {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);}
-    | PARSEOP_IORESTRICT_OUT                {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);}
-    | PARSEOP_IORESTRICT_NONE               {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);}
-    | PARSEOP_IORESTRICT_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);}
-    ;
-
-LockRuleKeyword
-    : PARSEOP_LOCKRULE_LOCK                 {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
-    | PARSEOP_LOCKRULE_NOLOCK               {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
-    ;
-
-MatchOpKeyword
-    : PARSEOP_MATCHTYPE_MTR                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
-    | PARSEOP_MATCHTYPE_MEQ                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
-    | PARSEOP_MATCHTYPE_MLE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
-    | PARSEOP_MATCHTYPE_MLT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
-    | PARSEOP_MATCHTYPE_MGE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
-    | PARSEOP_MATCHTYPE_MGT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
-    ;
-
-MaxKeyword
-    : PARSEOP_MAXTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
-    | PARSEOP_MAXTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
-    ;
-
-MemTypeKeyword
-    : PARSEOP_MEMTYPE_CACHEABLE             {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
-    | PARSEOP_MEMTYPE_WRITECOMBINING        {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
-    | PARSEOP_MEMTYPE_PREFETCHABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
-    | PARSEOP_MEMTYPE_NONCACHEABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
-    ;
-
-MinKeyword
-    : PARSEOP_MINTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
-    | PARSEOP_MINTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
-    ;
-
-ObjectTypeKeyword
-    : PARSEOP_OBJECTTYPE_UNK                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
-    | PARSEOP_OBJECTTYPE_INT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
-    | PARSEOP_OBJECTTYPE_STR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
-    | PARSEOP_OBJECTTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
-    | PARSEOP_OBJECTTYPE_PKG                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
-    | PARSEOP_OBJECTTYPE_FLD                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
-    | PARSEOP_OBJECTTYPE_DEV                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
-    | PARSEOP_OBJECTTYPE_EVT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
-    | PARSEOP_OBJECTTYPE_MTH                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
-    | PARSEOP_OBJECTTYPE_MTX                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
-    | PARSEOP_OBJECTTYPE_OPR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
-    | PARSEOP_OBJECTTYPE_POW                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
-    | PARSEOP_OBJECTTYPE_PRO                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
-    | PARSEOP_OBJECTTYPE_THZ                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
-    | PARSEOP_OBJECTTYPE_BFF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
-    | PARSEOP_OBJECTTYPE_DDB                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
-    ;
-
-ParityTypeKeyword
-    : PARSEOP_PARITYTYPE_SPACE              {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_SPACE);}
-    | PARSEOP_PARITYTYPE_MARK               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_MARK);}
-    | PARSEOP_PARITYTYPE_ODD                {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_ODD);}
-    | PARSEOP_PARITYTYPE_EVEN               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_EVEN);}
-    | PARSEOP_PARITYTYPE_NONE               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_NONE);}
-    ;
-
-PinConfigByte
-    : PinConfigKeyword                      {$$ = $1;}
-    | ByteConstExpr                         {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
-    ;
-
-PinConfigKeyword
-    : PARSEOP_PIN_NOPULL                    {$$ = TrCreateLeafNode (PARSEOP_PIN_NOPULL);}
-    | PARSEOP_PIN_PULLDOWN                  {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDOWN);}
-    | PARSEOP_PIN_PULLUP                    {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLUP);}
-    | PARSEOP_PIN_PULLDEFAULT               {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDEFAULT);}
-    ;
-
-PldKeyword
-    : PARSEOP_PLD_REVISION                  {$$ = TrCreateLeafNode (PARSEOP_PLD_REVISION);}
-    | PARSEOP_PLD_IGNORECOLOR               {$$ = TrCreateLeafNode (PARSEOP_PLD_IGNORECOLOR);}
-    | PARSEOP_PLD_RED                       {$$ = TrCreateLeafNode (PARSEOP_PLD_RED);}
-    | PARSEOP_PLD_GREEN                     {$$ = TrCreateLeafNode (PARSEOP_PLD_GREEN);}
-    | PARSEOP_PLD_BLUE                      {$$ = TrCreateLeafNode (PARSEOP_PLD_BLUE);}
-    | PARSEOP_PLD_WIDTH                     {$$ = TrCreateLeafNode (PARSEOP_PLD_WIDTH);}
-    | PARSEOP_PLD_HEIGHT                    {$$ = TrCreateLeafNode (PARSEOP_PLD_HEIGHT);}
-    | PARSEOP_PLD_USERVISIBLE               {$$ = TrCreateLeafNode (PARSEOP_PLD_USERVISIBLE);}
-    | PARSEOP_PLD_DOCK                      {$$ = TrCreateLeafNode (PARSEOP_PLD_DOCK);}
-    | PARSEOP_PLD_LID                       {$$ = TrCreateLeafNode (PARSEOP_PLD_LID);}
-    | PARSEOP_PLD_PANEL                     {$$ = TrCreateLeafNode (PARSEOP_PLD_PANEL);}
-    | PARSEOP_PLD_VERTICALPOSITION          {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALPOSITION);}
-    | PARSEOP_PLD_HORIZONTALPOSITION        {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALPOSITION);}
-    | PARSEOP_PLD_SHAPE                     {$$ = TrCreateLeafNode (PARSEOP_PLD_SHAPE);}
-    | PARSEOP_PLD_GROUPORIENTATION          {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPORIENTATION);}
-    | PARSEOP_PLD_GROUPTOKEN                {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPTOKEN);}
-    | PARSEOP_PLD_GROUPPOSITION             {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPPOSITION);}
-    | PARSEOP_PLD_BAY                       {$$ = TrCreateLeafNode (PARSEOP_PLD_BAY);}
-    | PARSEOP_PLD_EJECTABLE                 {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTABLE);}
-    | PARSEOP_PLD_EJECTREQUIRED             {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTREQUIRED);}
-    | PARSEOP_PLD_CABINETNUMBER             {$$ = TrCreateLeafNode (PARSEOP_PLD_CABINETNUMBER);}
-    | PARSEOP_PLD_CARDCAGENUMBER            {$$ = TrCreateLeafNode (PARSEOP_PLD_CARDCAGENUMBER);}
-    | PARSEOP_PLD_REFERENCE                 {$$ = TrCreateLeafNode (PARSEOP_PLD_REFERENCE);}
-    | PARSEOP_PLD_ROTATION                  {$$ = TrCreateLeafNode (PARSEOP_PLD_ROTATION);}
-    | PARSEOP_PLD_ORDER                     {$$ = TrCreateLeafNode (PARSEOP_PLD_ORDER);}
-    | PARSEOP_PLD_RESERVED                  {$$ = TrCreateLeafNode (PARSEOP_PLD_RESERVED);}
-    | PARSEOP_PLD_VERTICALOFFSET            {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALOFFSET);}
-    | PARSEOP_PLD_HORIZONTALOFFSET          {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALOFFSET);}
-    ;
-
-RangeTypeKeyword
-    : PARSEOP_RANGETYPE_ISAONLY             {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
-    | PARSEOP_RANGETYPE_NONISAONLY          {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
-    | PARSEOP_RANGETYPE_ENTIRE              {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
-    ;
-
-RegionSpaceKeyword
-    : PARSEOP_REGIONSPACE_IO                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
-    | PARSEOP_REGIONSPACE_MEM               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
-    | PARSEOP_REGIONSPACE_PCI               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
-    | PARSEOP_REGIONSPACE_EC                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
-    | PARSEOP_REGIONSPACE_SMBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
-    | PARSEOP_REGIONSPACE_CMOS              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
-    | PARSEOP_REGIONSPACE_PCIBAR            {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
-    | PARSEOP_REGIONSPACE_IPMI              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);}
-    | PARSEOP_REGIONSPACE_GPIO              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GPIO);}
-    | PARSEOP_REGIONSPACE_GSBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GSBUS);}
-    | PARSEOP_REGIONSPACE_PCC               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCC);}
-    | PARSEOP_REGIONSPACE_FFIXEDHW          {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_FFIXEDHW);}
-    ;
-
-ResourceTypeKeyword
-    : PARSEOP_RESOURCETYPE_CONSUMER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
-    | PARSEOP_RESOURCETYPE_PRODUCER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
-    ;
-
-SerializeRuleKeyword
-    : PARSEOP_SERIALIZERULE_SERIAL          {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
-    | PARSEOP_SERIALIZERULE_NOTSERIAL       {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
-    ;
-
-ShareTypeKeyword
-    : PARSEOP_SHARETYPE_SHARED              {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
-    | PARSEOP_SHARETYPE_EXCLUSIVE           {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
-    | PARSEOP_SHARETYPE_SHAREDWAKE          {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHAREDWAKE);}
-    | PARSEOP_SHARETYPE_EXCLUSIVEWAKE       {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVEWAKE);}
-   ;
-
-SlaveModeKeyword
-    : PARSEOP_SLAVEMODE_CONTROLLERINIT      {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_CONTROLLERINIT);}
-    | PARSEOP_SLAVEMODE_DEVICEINIT          {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_DEVICEINIT);}
-    ;
-
-StopBitsKeyword
-    : PARSEOP_STOPBITS_TWO                  {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_TWO);}
-    | PARSEOP_STOPBITS_ONEPLUSHALF          {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONEPLUSHALF);}
-    | PARSEOP_STOPBITS_ONE                  {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONE);}
-    | PARSEOP_STOPBITS_ZERO                 {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ZERO);}
-    ;
-
-TranslationKeyword
-    : PARSEOP_TRANSLATIONTYPE_SPARSE        {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
-    | PARSEOP_TRANSLATIONTYPE_DENSE         {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
-    ;
-
-TypeKeyword
-    : PARSEOP_TYPE_TRANSLATION              {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
-    | PARSEOP_TYPE_STATIC                   {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
-    ;
-
-UpdateRuleKeyword
-    : PARSEOP_UPDATERULE_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
-    | PARSEOP_UPDATERULE_ONES               {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
-    | PARSEOP_UPDATERULE_ZEROS              {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
-    ;
-
-WireModeKeyword
-    : PARSEOP_WIREMODE_FOUR                 {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_FOUR);}
-    | PARSEOP_WIREMODE_THREE                {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_THREE);}
-    ;
-
-XferSizeKeyword
-    : PARSEOP_XFERSIZE_8                    {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_8,   0);}
-    | PARSEOP_XFERSIZE_16                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_16,  1);}
-    | PARSEOP_XFERSIZE_32                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32,  2);}
-    | PARSEOP_XFERSIZE_64                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_64,  3);}
-    | PARSEOP_XFERSIZE_128                  {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_128, 4);}
-    | PARSEOP_XFERSIZE_256                  {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_256, 5);}
-    ;
-
-XferTypeKeyword
-    : PARSEOP_XFERTYPE_8                    {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
-    | PARSEOP_XFERTYPE_8_16                 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
-    | PARSEOP_XFERTYPE_16                   {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
-    ;
-
-
-
-
-/*******************************************************************************
- *
- * ASL Resource Template Terms
- *
- ******************************************************************************/
-
-/*
- * Note: Create two default nodes to allow conversion to a Buffer AML opcode
- * Also, insert the EndTag at the end of the template.
- */
-ResourceTemplateTerm
-    : PARSEOP_RESOURCETEMPLATE OptionalParentheses
-        '{'
-        ResourceMacroList '}'       {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
-                                          TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
-                                          TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
-                                          $4,
-                                          TrCreateLeafNode (PARSEOP_ENDTAG));}
-    ;
-
-OptionalParentheses
-    :                               {$$ = NULL;}
-    | '(' ')'                       {$$ = NULL;}
-    ;
-
-ResourceMacroList
-    :                               {$$ = NULL;}
-    | ResourceMacroList
-        ResourceMacroTerm           {$$ = TrLinkPeerNode ($1,$2);}
-    ;
-
-ResourceMacroTerm
-    : DMATerm                       {}
-    | DWordIOTerm                   {}
-    | DWordMemoryTerm               {}
-    | DWordSpaceTerm                {}
-    | EndDependentFnTerm            {}
-    | ExtendedIOTerm                {}
-    | ExtendedMemoryTerm            {}
-    | ExtendedSpaceTerm             {}
-    | FixedDmaTerm                  {}
-    | FixedIOTerm                   {}
-    | GpioIntTerm                   {}
-    | GpioIoTerm                    {}
-    | I2cSerialBusTerm              {}
-    | I2cSerialBusTermV2            {}
-    | InterruptTerm                 {}
-    | IOTerm                        {}
-    | IRQNoFlagsTerm                {}
-    | IRQTerm                       {}
-    | Memory24Term                  {}
-    | Memory32FixedTerm             {}
-    | Memory32Term                  {}
-    | QWordIOTerm                   {}
-    | QWordMemoryTerm               {}
-    | QWordSpaceTerm                {}
-    | RegisterTerm                  {}
-    | SpiSerialBusTerm              {}
-    | SpiSerialBusTermV2            {}
-    | StartDependentFnNoPriTerm     {}
-    | StartDependentFnTerm          {}
-    | UartSerialBusTerm             {}
-    | UartSerialBusTermV2           {}
-    | VendorLongTerm                {}
-    | VendorShortTerm               {}
-    | WordBusNumberTerm             {}
-    | WordIOTerm                    {}
-    | WordSpaceTerm                 {}
-    ;
-
-DMATerm
-    : PARSEOP_DMA '('               {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
-        DMATypeKeyword
-        OptionalBusMasterKeyword
-        ',' XferTypeKeyword
-        OptionalNameString_Last
-        ')' '{'
-            ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
-    | PARSEOP_DMA '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-DWordIOTerm
-    : PARSEOP_DWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
-        OptionalResourceType_First
-        OptionalMinType
-        OptionalMaxType
-        OptionalDecodeType
-        OptionalRangeType
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        OptionalByteConstExpr
-        OptionalStringData
-        OptionalNameString
-        OptionalType
-        OptionalTranslationType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,15,
-                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
-    | PARSEOP_DWORDIO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-DWordMemoryTerm
-    : PARSEOP_DWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
-        OptionalResourceType_First
-        OptionalDecodeType
-        OptionalMinType
-        OptionalMaxType
-        OptionalMemType
-        ',' OptionalReadWriteKeyword
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        OptionalByteConstExpr
-        OptionalStringData
-        OptionalNameString
-        OptionalAddressRange
-        OptionalType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,16,
-                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
-    | PARSEOP_DWORDMEMORY '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-DWordSpaceTerm
-    : PARSEOP_DWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
-        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
-        OptionalResourceType
-        OptionalDecodeType
-        OptionalMinType
-        OptionalMaxType
-        ',' ByteConstExpr
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        OptionalByteConstExpr
-        OptionalStringData
-        OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,14,
-                                        $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
-    | PARSEOP_DWORDSPACE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-EndDependentFnTerm
-    : PARSEOP_ENDDEPENDENTFN '('
-        ')'                         {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
-    | PARSEOP_ENDDEPENDENTFN '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ExtendedIOTerm
-    : PARSEOP_EXTENDEDIO '('        {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
-        OptionalResourceType_First
-        OptionalMinType
-        OptionalMaxType
-        OptionalDecodeType
-        OptionalRangeType
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        OptionalQWordConstExpr
-        OptionalNameString
-        OptionalType
-        OptionalTranslationType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,14,
-                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
-    | PARSEOP_EXTENDEDIO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ExtendedMemoryTerm
-    : PARSEOP_EXTENDEDMEMORY '('    {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
-        OptionalResourceType_First
-        OptionalDecodeType
-        OptionalMinType
-        OptionalMaxType
-        OptionalMemType
-        ',' OptionalReadWriteKeyword
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        OptionalQWordConstExpr
-        OptionalNameString
-        OptionalAddressRange
-        OptionalType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,15,
-                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
-    | PARSEOP_EXTENDEDMEMORY '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-ExtendedSpaceTerm
-    : PARSEOP_EXTENDEDSPACE '('     {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
-        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
-        OptionalResourceType
-        OptionalDecodeType
-        OptionalMinType
-        OptionalMaxType
-        ',' ByteConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        OptionalQWordConstExpr
-        OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,13,
-                                        $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
-    | PARSEOP_EXTENDEDSPACE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-FixedDmaTerm
-    : PARSEOP_FIXEDDMA '('          {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
-        WordConstExpr               /* 04: DMA RequestLines */
-        ',' WordConstExpr           /* 06: DMA Channels */
-        OptionalXferSize            /* 07: DMA TransferSize */
-        OptionalNameString          /* 08: DescriptorName */
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
-    | PARSEOP_FIXEDDMA '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-FixedIOTerm
-    : PARSEOP_FIXEDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
-        WordConstExpr
-        ',' ByteConstExpr
-        OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
-    | PARSEOP_FIXEDIO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-GpioIntTerm
-    : PARSEOP_GPIO_INT '('          {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
-        InterruptTypeKeyword        /* 04: InterruptType */
-        ',' InterruptLevel          /* 06: InterruptLevel */
-        OptionalShareType           /* 07: SharedType */
-        ',' PinConfigByte           /* 09: PinConfig */
-        OptionalWordConstExpr       /* 10: DebounceTimeout */
-        ',' StringData              /* 12: ResourceSource */
-        OptionalByteConstExpr       /* 13: ResourceSourceIndex */
-        OptionalResourceType        /* 14: ResourceType */
-        OptionalNameString          /* 15: DescriptorName */
-        OptionalBuffer_Last         /* 16: VendorData */
-        ')' '{'
-            DWordConstExpr '}'      {$$ = TrLinkChildren ($<n>3,11,
-                                        $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
-    | PARSEOP_GPIO_INT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-GpioIoTerm
-    : PARSEOP_GPIO_IO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
-        OptionalShareType_First     /* 04: SharedType */
-        ',' PinConfigByte           /* 06: PinConfig */
-        OptionalWordConstExpr       /* 07: DebounceTimeout */
-        OptionalWordConstExpr       /* 08: DriveStrength */
-        OptionalIoRestriction       /* 09: IoRestriction */
-        ',' StringData              /* 11: ResourceSource */
-        OptionalByteConstExpr       /* 12: ResourceSourceIndex */
-        OptionalResourceType        /* 13: ResourceType */
-        OptionalNameString          /* 14: DescriptorName */
-        OptionalBuffer_Last         /* 15: VendorData */
-        ')' '{'
-            DWordList '}'           {$$ = TrLinkChildren ($<n>3,11,
-                                        $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
-    | PARSEOP_GPIO_IO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-I2cSerialBusTerm
-    : PARSEOP_I2C_SERIALBUS '('     {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
-        WordConstExpr               /* 04: SlaveAddress */
-        OptionalSlaveMode           /* 05: SlaveMode */
-        ',' DWordConstExpr          /* 07: ConnectionSpeed */
-        OptionalAddressingMode      /* 08: AddressingMode */
-        ',' StringData              /* 10: ResourceSource */
-        OptionalByteConstExpr       /* 11: ResourceSourceIndex */
-        OptionalResourceType        /* 12: ResourceType */
-        OptionalNameString          /* 13: DescriptorName */
-        OptionalBuffer_Last         /* 14: VendorData */
-        ')'                         {$$ = TrLinkChildren ($<n>3,10,
-                                        $4,$5,$7,$8,$10,$11,$12,$13,
-                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$14);}
-    | PARSEOP_I2C_SERIALBUS '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-I2cSerialBusTermV2
-    : PARSEOP_I2C_SERIALBUS_V2 '('  {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS_V2);}
-        WordConstExpr               /* 04: SlaveAddress */
-        OptionalSlaveMode           /* 05: SlaveMode */
-        ',' DWordConstExpr          /* 07: ConnectionSpeed */
-        OptionalAddressingMode      /* 08: AddressingMode */
-        ',' StringData              /* 10: ResourceSource */
-        OptionalByteConstExpr       /* 11: ResourceSourceIndex */
-        OptionalResourceType        /* 12: ResourceType */
-        OptionalNameString          /* 13: DescriptorName */
-        OptionalShareType           /* 14: Share */
-        OptionalBuffer_Last         /* 15: VendorData */
-        ')'                         {$$ = TrLinkChildren ($<n>3,10,
-                                        $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
-    | PARSEOP_I2C_SERIALBUS_V2 '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-InterruptTerm
-    : PARSEOP_INTERRUPT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
-        OptionalResourceType_First
-        ',' InterruptTypeKeyword
-        ',' InterruptLevel
-        OptionalShareType
-        OptionalByteConstExpr
-        OptionalStringData
-        OptionalNameString_Last
-        ')' '{'
-            DWordList '}'           {$$ = TrLinkChildren ($<n>3,8,
-                                        $4,$6,$8,$9,$10,$11,$12,$15);}
-    | PARSEOP_INTERRUPT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-IOTerm
-    : PARSEOP_IO '('                {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
-        IODecodeKeyword
-        ',' WordConstExpr
-        ',' WordConstExpr
-        ',' ByteConstExpr
-        ',' ByteConstExpr
-        OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
-    | PARSEOP_IO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-IRQNoFlagsTerm
-    : PARSEOP_IRQNOFLAGS '('        {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
-        OptionalNameString_First
-        ')' '{'
-            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
-    | PARSEOP_IRQNOFLAGS '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-IRQTerm
-    : PARSEOP_IRQ '('               {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
-        InterruptTypeKeyword
-        ',' InterruptLevel
-        OptionalShareType
-        OptionalNameString_Last
-        ')' '{'
-            ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
-    | PARSEOP_IRQ '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-Memory24Term
-    : PARSEOP_MEMORY24 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
-        OptionalReadWriteKeyword
-        ',' WordConstExpr
-        ',' WordConstExpr
-        ',' WordConstExpr
-        ',' WordConstExpr
-        OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
-    | PARSEOP_MEMORY24 '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-Memory32FixedTerm
-    : PARSEOP_MEMORY32FIXED '('     {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
-        OptionalReadWriteKeyword
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
-    | PARSEOP_MEMORY32FIXED '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-Memory32Term
-    : PARSEOP_MEMORY32 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
-        OptionalReadWriteKeyword
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        ',' DWordConstExpr
-        OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
-    | PARSEOP_MEMORY32 '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-QWordIOTerm
-    : PARSEOP_QWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
-        OptionalResourceType_First
-        OptionalMinType
-        OptionalMaxType
-        OptionalDecodeType
-        OptionalRangeType
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        OptionalByteConstExpr
-        OptionalStringData
-        OptionalNameString
-        OptionalType
-        OptionalTranslationType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,15,
-                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
-    | PARSEOP_QWORDIO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-QWordMemoryTerm
-    : PARSEOP_QWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
-        OptionalResourceType_First
-        OptionalDecodeType
-        OptionalMinType
-        OptionalMaxType
-        OptionalMemType
-        ',' OptionalReadWriteKeyword
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        OptionalByteConstExpr
-        OptionalStringData
-        OptionalNameString
-        OptionalAddressRange
-        OptionalType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,16,
-                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
-    | PARSEOP_QWORDMEMORY '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-QWordSpaceTerm
-    : PARSEOP_QWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
-        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
-        OptionalResourceType
-        OptionalDecodeType
-        OptionalMinType
-        OptionalMaxType
-        ',' ByteConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        ',' QWordConstExpr
-        OptionalByteConstExpr
-        OptionalStringData
-        OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,14,
-                                        $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
-    | PARSEOP_QWORDSPACE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-RegisterTerm
-    : PARSEOP_REGISTER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
-        AddressSpaceKeyword
-        ',' ByteConstExpr
-        ',' ByteConstExpr
-        ',' QWordConstExpr
-        OptionalAccessSize
-        OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
-    | PARSEOP_REGISTER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-SpiSerialBusTerm
-    : PARSEOP_SPI_SERIALBUS '('     {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
-        WordConstExpr               /* 04: DeviceSelection */
-        OptionalDevicePolarity      /* 05: DevicePolarity */
-        OptionalWireMode            /* 06: WireMode */
-        ',' ByteConstExpr           /* 08: DataBitLength */
-        OptionalSlaveMode           /* 09: SlaveMode */
-        ',' DWordConstExpr          /* 11: ConnectionSpeed */
-        ',' ClockPolarityKeyword    /* 13: ClockPolarity */
-        ',' ClockPhaseKeyword       /* 15: ClockPhase */
-        ',' StringData              /* 17: ResourceSource */
-        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
-        OptionalResourceType        /* 19: ResourceType */
-        OptionalNameString          /* 20: DescriptorName */
-        OptionalBuffer_Last         /* 21: VendorData */
-        ')'                         {$$ = TrLinkChildren ($<n>3,14,
-                                        $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
-                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
-    | PARSEOP_SPI_SERIALBUS '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-SpiSerialBusTermV2
-    : PARSEOP_SPI_SERIALBUS_V2 '('  {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS_V2);}
-        WordConstExpr               /* 04: DeviceSelection */
-        OptionalDevicePolarity      /* 05: DevicePolarity */
-        OptionalWireMode            /* 06: WireMode */
-        ',' ByteConstExpr           /* 08: DataBitLength */
-        OptionalSlaveMode           /* 09: SlaveMode */
-        ',' DWordConstExpr          /* 11: ConnectionSpeed */
-        ',' ClockPolarityKeyword    /* 13: ClockPolarity */
-        ',' ClockPhaseKeyword       /* 15: ClockPhase */
-        ',' StringData              /* 17: ResourceSource */
-        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
-        OptionalResourceType        /* 19: ResourceType */
-        OptionalNameString          /* 20: DescriptorName */
-        OptionalShareType           /* 21: Share */
-        OptionalBuffer_Last         /* 22: VendorData */
-        ')'                         {$$ = TrLinkChildren ($<n>3,14,
-                                        $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
-    | PARSEOP_SPI_SERIALBUS_V2 '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-StartDependentFnNoPriTerm
-    : PARSEOP_STARTDEPENDENTFN_NOPRI '('    {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
-        ')' '{'
-        ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,1,$6);}
-    | PARSEOP_STARTDEPENDENTFN_NOPRI '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-StartDependentFnTerm
-    : PARSEOP_STARTDEPENDENTFN '('  {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
-        ByteConstExpr
-        ',' ByteConstExpr
-        ')' '{'
-        ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
-    | PARSEOP_STARTDEPENDENTFN '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-UartSerialBusTerm
-    : PARSEOP_UART_SERIALBUS '('    {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
-        DWordConstExpr              /* 04: ConnectionSpeed */
-        OptionalBitsPerByte         /* 05: BitsPerByte */
-        OptionalStopBits            /* 06: StopBits */
-        ',' ByteConstExpr           /* 08: LinesInUse */
-        OptionalEndian              /* 09: Endianess */
-        OptionalParityType          /* 10: Parity */
-        OptionalFlowControl         /* 11: FlowControl */
-        ',' WordConstExpr           /* 13: Rx BufferSize */
-        ',' WordConstExpr           /* 15: Tx BufferSize */
-        ',' StringData              /* 17: ResourceSource */
-        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
-        OptionalResourceType        /* 19: ResourceType */
-        OptionalNameString          /* 20: DescriptorName */
-        OptionalBuffer_Last         /* 21: VendorData */
-        ')'                         {$$ = TrLinkChildren ($<n>3,15,
-                                        $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
-                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
-    | PARSEOP_UART_SERIALBUS '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-UartSerialBusTermV2
-    : PARSEOP_UART_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS_V2);}
-        DWordConstExpr              /* 04: ConnectionSpeed */
-        OptionalBitsPerByte         /* 05: BitsPerByte */
-        OptionalStopBits            /* 06: StopBits */
-        ',' ByteConstExpr           /* 08: LinesInUse */
-        OptionalEndian              /* 09: Endianess */
-        OptionalParityType          /* 10: Parity */
-        OptionalFlowControl         /* 11: FlowControl */
-        ',' WordConstExpr           /* 13: Rx BufferSize */
-        ',' WordConstExpr           /* 15: Tx BufferSize */
-        ',' StringData              /* 17: ResourceSource */
-        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
-        OptionalResourceType        /* 19: ResourceType */
-        OptionalNameString          /* 20: DescriptorName */
-        OptionalShareType           /* 21: Share */
-        OptionalBuffer_Last         /* 22: VendorData */
-        ')'                         {$$ = TrLinkChildren ($<n>3,15,
-                                        $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
-    | PARSEOP_UART_SERIALBUS_V2 '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-VendorLongTerm
-    : PARSEOP_VENDORLONG '('        {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
-        OptionalNameString_First
-        ')' '{'
-            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
-    | PARSEOP_VENDORLONG '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-VendorShortTerm
-    : PARSEOP_VENDORSHORT '('       {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
-        OptionalNameString_First
-        ')' '{'
-            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
-    | PARSEOP_VENDORSHORT '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-WordBusNumberTerm
-    : PARSEOP_WORDBUSNUMBER '('     {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
-        OptionalResourceType_First
-        OptionalMinType
-        OptionalMaxType
-        OptionalDecodeType
-        ',' WordConstExpr
-        ',' WordConstExpr
-        ',' WordConstExpr
-        ',' WordConstExpr
-        ',' WordConstExpr
-        OptionalByteConstExpr
-        OptionalStringData
-        OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,12,
-                                        $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
-    | PARSEOP_WORDBUSNUMBER '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-WordIOTerm
-    : PARSEOP_WORDIO '('            {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
-        OptionalResourceType_First
-        OptionalMinType
-        OptionalMaxType
-        OptionalDecodeType
-        OptionalRangeType
-        ',' WordConstExpr
-        ',' WordConstExpr
-        ',' WordConstExpr
-        ',' WordConstExpr
-        ',' WordConstExpr
-        OptionalByteConstExpr
-        OptionalStringData
-        OptionalNameString
-        OptionalType
-        OptionalTranslationType_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,15,
-                                        $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
-    | PARSEOP_WORDIO '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-WordSpaceTerm
-    : PARSEOP_WORDSPACE '('         {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
-        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
-        OptionalResourceType
-        OptionalDecodeType
-        OptionalMinType
-        OptionalMaxType
-        ',' ByteConstExpr
-        ',' WordConstExpr
-        ',' WordConstExpr
-        ',' WordConstExpr
-        ',' WordConstExpr
-        ',' WordConstExpr
-        OptionalByteConstExpr
-        OptionalStringData
-        OptionalNameString_Last
-        ')'                         {$$ = TrLinkChildren ($<n>3,14,
-                                        $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
-    | PARSEOP_WORDSPACE '('
-        error ')'                   {$$ = AslDoError(); yyclearin;}
-    ;
-
-
-
-
-/*******************************************************************************
- *
- * ASL Helper Terms
- *
- ******************************************************************************/
-
-OptionalBusMasterKeyword
-    : ','                                   {$$ = TrCreateLeafNode (
-                                                PARSEOP_BUSMASTERTYPE_MASTER);}
-    | ',' PARSEOP_BUSMASTERTYPE_MASTER      {$$ = TrCreateLeafNode (
-                                                PARSEOP_BUSMASTERTYPE_MASTER);}
-    | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER   {$$ = TrCreateLeafNode (
-                                                PARSEOP_BUSMASTERTYPE_NOTMASTER);}
-    ;
-
-OptionalAccessAttribTerm
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' ByteConstExpr             {$$ = $2;}
-    | ',' AccessAttribKeyword       {$$ = $2;}
-    ;
-
-OptionalAccessSize
-    :                               {$$ = TrCreateValuedLeafNode (
-                                        PARSEOP_BYTECONST, 0);}
-    | ','                           {$$ = TrCreateValuedLeafNode (
-                                        PARSEOP_BYTECONST, 0);}
-    | ',' ByteConstExpr             {$$ = $2;}
-    ;
-
-OptionalAddressingMode
-    : ','                           {$$ = NULL;}
-    | ',' AddressingModeKeyword     {$$ = $2;}
-    ;
-
-OptionalAddressRange
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' AddressKeyword            {$$ = $2;}
-    ;
-
-OptionalBitsPerByte
-    : ','                           {$$ = NULL;}
-    | ',' BitsPerByteKeyword        {$$ = $2;}
-    ;
-
-OptionalBuffer_Last
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' RawDataBufferTerm         {$$ = $2;}
-    ;
-
-OptionalByteConstExpr
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' ByteConstExpr             {$$ = $2;}
-    ;
-
-OptionalDecodeType
-    : ','                           {$$ = NULL;}
-    | ',' DecodeKeyword             {$$ = $2;}
-    ;
-
-OptionalDevicePolarity
-    : ','                           {$$ = NULL;}
-    | ',' DevicePolarityKeyword     {$$ = $2;}
-    ;
-
-OptionalDWordConstExpr
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' DWordConstExpr            {$$ = $2;}
-    ;
-
-OptionalEndian
-    : ','                           {$$ = NULL;}
-    | ',' EndianKeyword             {$$ = $2;}
-    ;
-
-OptionalFlowControl
-    : ','                           {$$ = NULL;}
-    | ',' FlowControlKeyword        {$$ = $2;}
-    ;
-
-OptionalIoRestriction
-    : ','                           {$$ = NULL;}
-    | ',' IoRestrictionKeyword      {$$ = $2;}
-    ;
-
-OptionalListString
-    :                               {$$ = TrCreateValuedLeafNode (
-                                        PARSEOP_STRING_LITERAL,
-                                        ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
-    | ','                           {$$ = TrCreateValuedLeafNode (
-                                        PARSEOP_STRING_LITERAL,
-                                        ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
-    | ',' TermArg                   {$$ = $2;}
-    ;
-
-OptionalMaxType
-    : ','                           {$$ = NULL;}
-    | ',' MaxKeyword                {$$ = $2;}
-    ;
-
-OptionalMemType
-    : ','                           {$$ = NULL;}
-    | ',' MemTypeKeyword            {$$ = $2;}
-    ;
-
-OptionalMinType
-    : ','                           {$$ = NULL;}
-    | ',' MinKeyword                {$$ = $2;}
-    ;
-
-OptionalNameString
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' NameString                {$$ = $2;}
-    ;
-
-OptionalNameString_Last
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' NameString                {$$ = $2;}
-    ;
-
-OptionalNameString_First
-    :                               {$$ = TrCreateLeafNode (
-                                        PARSEOP_ZERO);}
-    | NameString                    {$$ = $1;}
-    ;
-
-OptionalObjectTypeKeyword
-    :                               {$$ = TrCreateLeafNode (
-                                        PARSEOP_OBJECTTYPE_UNK);}
-    | ',' ObjectTypeKeyword         {$$ = $2;}
-    ;
-
-OptionalParityType
-    : ','                           {$$ = NULL;}
-    | ',' ParityTypeKeyword         {$$ = $2;}
-    ;
-
-OptionalQWordConstExpr
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' QWordConstExpr            {$$ = $2;}
-    ;
-
-OptionalRangeType
-    : ','                           {$$ = NULL;}
-    | ',' RangeTypeKeyword          {$$ = $2;}
-    ;
-
-OptionalReadWriteKeyword
-    :                                   {$$ = TrCreateLeafNode (
-                                            PARSEOP_READWRITETYPE_BOTH);}
-    | PARSEOP_READWRITETYPE_BOTH        {$$ = TrCreateLeafNode (
-                                            PARSEOP_READWRITETYPE_BOTH);}
-    | PARSEOP_READWRITETYPE_READONLY    {$$ = TrCreateLeafNode (
-                                            PARSEOP_READWRITETYPE_READONLY);}
-    ;
-
-OptionalResourceType_First
-    :                               {$$ = TrCreateLeafNode (
-                                        PARSEOP_RESOURCETYPE_CONSUMER);}
-    | ResourceTypeKeyword           {$$ = $1;}
-    ;
-
-OptionalResourceType
-    :                               {$$ = TrCreateLeafNode (
-                                        PARSEOP_RESOURCETYPE_CONSUMER);}
-    | ','                           {$$ = TrCreateLeafNode (
-                                        PARSEOP_RESOURCETYPE_CONSUMER);}
-    | ',' ResourceTypeKeyword       {$$ = $2;}
-    ;
-
-OptionalSlaveMode
-    : ','                           {$$ = NULL;}
-    | ',' SlaveModeKeyword          {$$ = $2;}
-    ;
-
-OptionalShareType
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' ShareTypeKeyword          {$$ = $2;}
-    ;
-
-OptionalShareType_First
-    :                               {$$ = NULL;}
-    | ShareTypeKeyword              {$$ = $1;}
-    ;
-
-OptionalStopBits
-    : ','                           {$$ = NULL;}
-    | ',' StopBitsKeyword           {$$ = $2;}
-    ;
-
-OptionalStringData
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' StringData                {$$ = $2;}
-    ;
-
-OptionalTranslationType_Last
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' TranslationKeyword        {$$ = $2;}
-    ;
-
-OptionalType
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' TypeKeyword               {$$ = $2;}
-    ;
-
-OptionalType_Last
-    :                               {$$ = NULL;}
-    | ','                           {$$ = NULL;}
-    | ',' TypeKeyword               {$$ = $2;}
-    ;
-
-OptionalWireMode
-    : ','                           {$$ = NULL;}
-    | ',' WireModeKeyword           {$$ = $2;}
-    ;
-
-OptionalWordConstExpr
-    : ','                           {$$ = NULL;}
-    | ',' WordConstExpr             {$$ = $2;}
-    ;
-
-OptionalXferSize
-    :                               {$$ = TrCreateValuedLeafNode (
-                                        PARSEOP_XFERSIZE_32, 2);}
-    | ','                           {$$ = TrCreateValuedLeafNode (
-                                        PARSEOP_XFERSIZE_32, 2);}
-    | ',' XferSizeKeyword           {$$ = $2;}
-    ;
-
-%%
-
-/*! [End] no source code translation !*/
-
-/* Local support functions in C */
-
-
-
-/******************************************************************************
- *
- * Local support functions
- *
- *****************************************************************************/
-
-/*! [Begin] no source code translation */
-int
-AslCompilerwrap(void)
-{
-  return (1);
-}
-/*! [End] no source code translation !*/
-
-
-void *
-AslLocalAllocate (
-    unsigned int        Size)
-{
-    void                *Mem;
-
-
-    DbgPrint (ASL_PARSE_OUTPUT,
-        "\nAslLocalAllocate: Expanding Stack to %u\n\n", Size);
-
-    Mem = ACPI_ALLOCATE_ZEROED (Size);
-    if (!Mem)
-    {
-        AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
-            Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
-            Gbl_InputByteCount, Gbl_CurrentColumn,
-            Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
-        exit (1);
-    }
-
-    return (Mem);
-}
-
-ACPI_PARSE_OBJECT *
-AslDoError (
-    void)
-{
-
-    return (TrCreateLeafNode (PARSEOP_ERRORNODE));
-}
-
-
-/*******************************************************************************
- *
- * FUNCTION:    UtGetOpName
- *
- * PARAMETERS:  ParseOpcode         - Parser keyword ID
- *
- * RETURN:      Pointer to the opcode name
- *
- * DESCRIPTION: Get the ascii name of the parse opcode
- *
- ******************************************************************************/
-
-char *
-UtGetOpName (
-    UINT32                  ParseOpcode)
-{
-#ifdef ASL_YYTNAME_START
-    /*
-     * First entries (ASL_YYTNAME_START) in yytname are special reserved names.
-     * Ignore first 8 characters of the name
-     */
-    return ((char *) yytname
-        [(ParseOpcode - ASL_FIRST_PARSE_OPCODE) + ASL_YYTNAME_START] + 8);
-#else
-    return ("[Unknown parser generator]");
-#endif
-}
-