Message ID | 20161003093926.28976-4-colin.king@canonical.com |
---|---|
State | Accepted |
Headers | show |
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>
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 --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 -} -