2005-06-29 19:37:15 +04:00
|
|
|
|
|
|
|
%{
|
2005-06-29 19:41:36 +04:00
|
|
|
/******************************************************************************
|
|
|
|
*
|
|
|
|
* Module Name: aslcompiler.y - Bison input file (ASL grammar and actions)
|
2005-06-29 19:52:22 +04:00
|
|
|
* $Revision: 1.50 $
|
2005-06-29 19:41:36 +04:00
|
|
|
*
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
/******************************************************************************
|
|
|
|
*
|
|
|
|
* 1. Copyright Notice
|
|
|
|
*
|
2005-06-29 19:51:01 +04:00
|
|
|
* Some or all of this work - Copyright (c) 1999, 2000, 2001, Intel Corp.
|
|
|
|
* All rights reserved.
|
2005-06-29 19:41:36 +04:00
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*
|
|
|
|
*****************************************************************************/
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
#define YYDEBUG 1
|
2005-06-29 19:49:12 +04:00
|
|
|
#define YYERROR_VERBOSE 1
|
2005-06-29 19:37:15 +04:00
|
|
|
|
|
|
|
/*
|
|
|
|
* State stack - compiler will fault if it overflows. (Default was 200)
|
|
|
|
*/
|
|
|
|
#define YYINITDEPTH 600
|
|
|
|
|
2005-06-29 19:51:21 +04:00
|
|
|
#include "aslcompiler.h"
|
2005-06-29 19:37:15 +04:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include "acpi.h"
|
|
|
|
|
2005-06-29 19:51:56 +04:00
|
|
|
#define _COMPONENT ACPI_COMPILER
|
2005-06-29 19:51:01 +04:00
|
|
|
MODULE_NAME ("aslparse")
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
|
|
|
|
/*
|
2005-06-29 19:51:01 +04:00
|
|
|
* Next statement is important - this makes everything public so that
|
2005-06-29 19:37:15 +04:00
|
|
|
* we can access some of the parser tables from other modules
|
|
|
|
*/
|
|
|
|
#define static
|
2005-06-29 19:49:30 +04:00
|
|
|
#undef alloca
|
|
|
|
#define alloca AslLocalAllocate
|
2005-06-29 19:49:12 +04:00
|
|
|
#define YYERROR_VERBOSE 1
|
|
|
|
|
2005-06-29 19:49:30 +04:00
|
|
|
void *
|
|
|
|
AslLocalAllocate (unsigned int Size);
|
2005-06-29 19:49:12 +04:00
|
|
|
|
|
|
|
/*
|
|
|
|
* The windows version of bison defines this incorrectly as "32768" (Not negative).
|
|
|
|
* Using a custom (edited binary) version of bison that defines YYFLAG as YYFBAD
|
2005-06-29 19:51:01 +04:00
|
|
|
* instead (#define YYFBAD 32768), so we can define it correctly here.
|
2005-06-29 19:49:12 +04:00
|
|
|
*
|
|
|
|
* The problem is that if YYFLAG is positive, the extended syntax error messages
|
|
|
|
* are disabled.
|
|
|
|
*/
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
#define YYFLAG -32768
|
2005-06-29 19:49:12 +04:00
|
|
|
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
%}
|
|
|
|
|
2005-06-29 19:41:35 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
/*
|
|
|
|
* Declare the type of values in the grammar
|
|
|
|
*/
|
|
|
|
|
|
|
|
%union {
|
2005-06-29 19:51:01 +04:00
|
|
|
UINT64 i;
|
|
|
|
char *s;
|
|
|
|
ASL_PARSE_NODE *n;
|
2005-06-29 19:37:15 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Token types: These are returned by the lexer
|
|
|
|
*/
|
|
|
|
|
|
|
|
%token <i> ACCESSAS
|
|
|
|
%token <i> ACCESSATTRIB_BLOCK
|
|
|
|
%token <i> ACCESSATTRIB_BYTE
|
|
|
|
%token <i> ACCESSATTRIB_CALL
|
|
|
|
%token <i> ACCESSATTRIB_QUICK
|
|
|
|
%token <i> ACCESSATTRIB_SND_RCV
|
|
|
|
%token <i> ACCESSATTRIB_WORD
|
|
|
|
%token <i> ACCESSTYPE_ANY
|
|
|
|
%token <i> ACCESSTYPE_BUF
|
|
|
|
%token <i> ACCESSTYPE_BYTE
|
|
|
|
%token <i> ACCESSTYPE_DWORD
|
|
|
|
%token <i> ACCESSTYPE_QWORD
|
|
|
|
%token <i> ACCESSTYPE_WORD
|
|
|
|
%token <i> ACQUIRE
|
|
|
|
%token <i> ADD
|
2005-06-29 19:41:43 +04:00
|
|
|
%token <i> ADDRESSSPACE_FFIXEDHW
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> ADDRESSTYPE_ACPI
|
|
|
|
%token <i> ADDRESSTYPE_MEMORY
|
|
|
|
%token <i> ADDRESSTYPE_NVS
|
|
|
|
%token <i> ADDRESSTYPE_RESERVED
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> ALIAS
|
|
|
|
%token <i> AND
|
|
|
|
%token <i> ARG0
|
|
|
|
%token <i> ARG1
|
|
|
|
%token <i> ARG2
|
|
|
|
%token <i> ARG3
|
|
|
|
%token <i> ARG4
|
|
|
|
%token <i> ARG5
|
|
|
|
%token <i> ARG6
|
|
|
|
%token <i> BANKFIELD
|
|
|
|
%token <i> BREAK
|
|
|
|
%token <i> BREAKPOINT
|
|
|
|
%token <i> BUFFER
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> BUSMASTERTYPE_MASTER
|
|
|
|
%token <i> BUSMASTERTYPE_NOTMASTER
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> BYTECONST
|
|
|
|
%token <i> CASE
|
|
|
|
%token <i> CONCATENATE
|
|
|
|
%token <i> CONCATENATERESTEMPLATE
|
|
|
|
%token <i> CONDREFOF
|
|
|
|
%token <i> CONTINUE
|
2005-06-29 19:51:21 +04:00
|
|
|
%token <i> COPYOBJECT
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> CREATEBITFIELD
|
|
|
|
%token <i> CREATEBYTEFIELD
|
|
|
|
%token <i> CREATEDWORDFIELD
|
|
|
|
%token <i> CREATEFIELD
|
|
|
|
%token <i> CREATEQWORDFIELD
|
|
|
|
%token <i> CREATEWORDFIELD
|
|
|
|
%token <i> DATATABLEREGION
|
|
|
|
%token <i> DEBUG
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> DECODETYPE_POS
|
|
|
|
%token <i> DECODETYPE_SUB
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> DECREMENT
|
|
|
|
%token <i> DEFAULT
|
|
|
|
%token <i> DEFAULT_ARG
|
|
|
|
%token <i> DEFINITIONBLOCK
|
|
|
|
%token <i> DEREFOF
|
|
|
|
%token <i> DEVICE
|
|
|
|
%token <i> DIVIDE
|
|
|
|
%token <i> DMA
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> DMATYPE_A
|
|
|
|
%token <i> DMATYPE_COMPATIBILITY
|
|
|
|
%token <i> DMATYPE_B
|
|
|
|
%token <i> DMATYPE_F
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> DWORDCONST
|
|
|
|
%token <i> DWORDIO
|
|
|
|
%token <i> DWORDMEMORY
|
|
|
|
%token <i> EISAID
|
|
|
|
%token <i> ELSE
|
|
|
|
%token <i> ELSEIF
|
|
|
|
%token <i> ENDDEPENDENTFN
|
2005-06-29 19:51:01 +04:00
|
|
|
%token <i> ERRORNODE
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> EVENT
|
|
|
|
%token <i> EXTERNAL
|
|
|
|
%token <i> FATAL
|
|
|
|
%token <i> FIELD
|
|
|
|
%token <i> FINDSETLEFTBIT
|
|
|
|
%token <i> FINDSETRIGHTBIT
|
2005-06-29 19:41:43 +04:00
|
|
|
%token <i> FIXEDIO
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> FROMBCD
|
|
|
|
%token <i> IF
|
|
|
|
%token <i> INCLUDE
|
2005-06-29 19:49:12 +04:00
|
|
|
%token <i> INCLUDE_CSTYLE
|
2005-06-29 19:51:01 +04:00
|
|
|
%token <i> INCLUDE_END
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> INCREMENT
|
|
|
|
%token <i> INDEX
|
|
|
|
%token <i> INDEXFIELD
|
|
|
|
%token <i> INTEGER
|
|
|
|
%token <i> INTERRUPT
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> INTLEVEL_ACTIVEHIGH
|
|
|
|
%token <i> INTLEVEL_ACTIVELOW
|
|
|
|
%token <i> INTTYPE_EDGE
|
|
|
|
%token <i> INTTYPE_LEVEL
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> IO
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> IODECODETYPE_10
|
|
|
|
%token <i> IODECODETYPE_16
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> IRQ
|
|
|
|
%token <i> IRQNOFLAGS
|
|
|
|
%token <i> LAND
|
|
|
|
%token <i> LEQUAL
|
|
|
|
%token <i> LGREATER
|
|
|
|
%token <i> LGREATEREQUAL
|
|
|
|
%token <i> LLESS
|
|
|
|
%token <i> LLESSEQUAL
|
|
|
|
%token <i> LNOT
|
|
|
|
%token <i> LNOTEQUAL
|
|
|
|
%token <i> LOAD
|
|
|
|
%token <i> LOADTABLE
|
|
|
|
%token <i> LOCAL0
|
|
|
|
%token <i> LOCAL1
|
|
|
|
%token <i> LOCAL2
|
|
|
|
%token <i> LOCAL3
|
|
|
|
%token <i> LOCAL4
|
|
|
|
%token <i> LOCAL5
|
|
|
|
%token <i> LOCAL6
|
|
|
|
%token <i> LOCAL7
|
|
|
|
%token <i> LOCKRULE_LOCK
|
|
|
|
%token <i> LOCKRULE_NOLOCK
|
|
|
|
%token <i> LOR
|
|
|
|
%token <i> MATCH
|
|
|
|
%token <i> MATCHTYPE_MEQ
|
|
|
|
%token <i> MATCHTYPE_MGE
|
|
|
|
%token <i> MATCHTYPE_MGT
|
|
|
|
%token <i> MATCHTYPE_MLE
|
|
|
|
%token <i> MATCHTYPE_MLT
|
|
|
|
%token <i> MATCHTYPE_MTR
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> MAXTYPE_FIXED
|
|
|
|
%token <i> MAXTYPE_NOTFIXED
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> MEMORY24
|
|
|
|
%token <i> MEMORY32
|
|
|
|
%token <i> MEMORY32FIXED
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> MEMTYPE_CACHEABLE
|
|
|
|
%token <i> MEMTYPE_NONCACHEABLE
|
|
|
|
%token <i> MEMTYPE_PREFETCHABLE
|
|
|
|
%token <i> MEMTYPE_WRITECOMBINING
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> METHOD
|
2005-06-29 19:51:01 +04:00
|
|
|
%token <i> METHODCALL
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> MID
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> MINTYPE_FIXED
|
|
|
|
%token <i> MINTYPE_NOTFIXED
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> MOD
|
|
|
|
%token <i> MULTIPLY
|
|
|
|
%token <i> MUTEX
|
|
|
|
%token <i> NAME
|
|
|
|
%token <s> NAMESEG
|
|
|
|
%token <s> NAMESTRING
|
|
|
|
%token <i> NAND
|
|
|
|
%token <i> NOOP
|
|
|
|
%token <i> NOR
|
|
|
|
%token <i> NOT
|
|
|
|
%token <i> NOTIFY
|
|
|
|
%token <i> OBJECTTYPE
|
|
|
|
%token <i> OBJECTTYPE_BFF
|
|
|
|
%token <i> OBJECTTYPE_BUF
|
|
|
|
%token <i> OBJECTTYPE_DDB
|
|
|
|
%token <i> OBJECTTYPE_DEV
|
|
|
|
%token <i> OBJECTTYPE_EVT
|
|
|
|
%token <i> OBJECTTYPE_FLD
|
|
|
|
%token <i> OBJECTTYPE_INT
|
|
|
|
%token <i> OBJECTTYPE_MTH
|
|
|
|
%token <i> OBJECTTYPE_MTX
|
|
|
|
%token <i> OBJECTTYPE_OPR
|
|
|
|
%token <i> OBJECTTYPE_PKG
|
|
|
|
%token <i> OBJECTTYPE_POW
|
|
|
|
%token <i> OBJECTTYPE_STR
|
|
|
|
%token <i> OBJECTTYPE_THZ
|
|
|
|
%token <i> OBJECTTYPE_UNK
|
|
|
|
%token <i> OFFSET
|
|
|
|
%token <i> ONE
|
|
|
|
%token <i> ONES
|
|
|
|
%token <i> OPERATIONREGION
|
|
|
|
%token <i> OR
|
|
|
|
%token <i> PACKAGE
|
|
|
|
%token <i> PACKAGE_LENGTH
|
|
|
|
%token <i> POWERRESOURCE
|
|
|
|
%token <i> PROCESSOR
|
2005-06-29 19:41:43 +04:00
|
|
|
%token <i> QWORDCONST
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> QWORDIO
|
|
|
|
%token <i> QWORDMEMORY
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> RANGETYPE_ENTIRE
|
|
|
|
%token <i> RANGETYPE_ISAONLY
|
|
|
|
%token <i> RANGETYPE_NONISAONLY
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> RAW_DATA
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> READWRITETYPE_BOTH
|
|
|
|
%token <i> READWRITETYPE_READONLY
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> REFOF
|
|
|
|
%token <i> REGIONSPACE_CMOS
|
|
|
|
%token <i> REGIONSPACE_EC
|
|
|
|
%token <i> REGIONSPACE_IO
|
|
|
|
%token <i> REGIONSPACE_MEM
|
|
|
|
%token <i> REGIONSPACE_PCI
|
|
|
|
%token <i> REGIONSPACE_PCIBAR
|
|
|
|
%token <i> REGIONSPACE_SMBUS
|
|
|
|
%token <i> REGISTER
|
|
|
|
%token <i> RELEASE
|
2005-06-29 19:41:34 +04:00
|
|
|
%token <i> RESERVED_BYTES
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> RESET
|
|
|
|
%token <i> RESOURCETEMPLATE
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> RESOURCETYPE_CONSUMER
|
|
|
|
%token <i> RESOURCETYPE_PRODUCER
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> RETURN
|
2005-06-29 19:51:01 +04:00
|
|
|
%token <i> REVISION
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> SCOPE
|
|
|
|
%token <i> SERIALIZERULE_NOTSERIAL
|
|
|
|
%token <i> SERIALIZERULE_SERIAL
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> SHARETYPE_EXCLUSIVE
|
|
|
|
%token <i> SHARETYPE_SHARED
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> SHIFTLEFT
|
|
|
|
%token <i> SHIFTRIGHT
|
|
|
|
%token <i> SIGNAL
|
|
|
|
%token <i> SIZEOF
|
|
|
|
%token <i> SLEEP
|
|
|
|
%token <i> STALL
|
|
|
|
%token <i> STARTDEPENDENTFN
|
|
|
|
%token <i> STARTDEPENDENTFN_NOPRI
|
|
|
|
%token <i> STORE
|
|
|
|
%token <s> STRING_LITERAL
|
|
|
|
%token <i> SUBTRACT
|
|
|
|
%token <i> SWITCH
|
|
|
|
%token <i> THERMALZONE
|
|
|
|
%token <i> TOBCD
|
2005-06-29 19:49:12 +04:00
|
|
|
%token <i> TOBUFFER
|
|
|
|
%token <i> TODECIMALSTRING
|
|
|
|
%token <i> TOHEXSTRING
|
|
|
|
%token <i> TOINTEGER
|
2005-06-29 19:51:01 +04:00
|
|
|
%token <i> TOSTRING
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> TRANSLATIONTYPE_DENSE
|
|
|
|
%token <i> TRANSLATIONTYPE_SPARSE
|
|
|
|
%token <i> TYPE_STATIC
|
|
|
|
%token <i> TYPE_TRANSLATION
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> UNICODE
|
|
|
|
%token <i> UNLOAD
|
|
|
|
%token <i> UPDATERULE_ONES
|
|
|
|
%token <i> UPDATERULE_PRESERVE
|
|
|
|
%token <i> UPDATERULE_ZEROS
|
2005-06-29 19:52:14 +04:00
|
|
|
%token <i> VAR_PACKAGE
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> VENDORLONG
|
|
|
|
%token <i> VENDORSHORT
|
|
|
|
%token <i> WAIT
|
|
|
|
%token <i> WHILE
|
|
|
|
%token <i> WORDBUSNUMBER
|
|
|
|
%token <i> WORDCONST
|
|
|
|
%token <i> WORDIO
|
2005-06-29 19:41:38 +04:00
|
|
|
%token <i> XFERTYPE_8
|
|
|
|
%token <i> XFERTYPE_8_16
|
|
|
|
%token <i> XFERTYPE_16
|
2005-06-29 19:37:15 +04:00
|
|
|
%token <i> XOR
|
|
|
|
%token <i> ZERO
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Production names
|
|
|
|
*/
|
|
|
|
|
|
|
|
%type <n> ASLCode
|
|
|
|
%type <n> DefinitionBlockTerm
|
|
|
|
%type <n> TermList
|
|
|
|
%type <n> Term
|
|
|
|
%type <n> CompilerDirective
|
|
|
|
%type <n> ObjectList
|
|
|
|
%type <n> Object
|
|
|
|
%type <n> DataObject
|
|
|
|
%type <n> BufferData
|
|
|
|
%type <n> PackageData
|
|
|
|
%type <n> IntegerData
|
2005-06-29 19:51:01 +04:00
|
|
|
%type <n> StringData
|
2005-06-29 19:37:15 +04:00
|
|
|
%type <n> NamedObject
|
|
|
|
%type <n> NameSpaceModifier
|
|
|
|
%type <n> UserTerm
|
|
|
|
%type <n> ArgList
|
|
|
|
%type <n> ArgListTail
|
|
|
|
%type <n> TermArg
|
|
|
|
%type <n> Target
|
2005-06-29 19:51:44 +04:00
|
|
|
%type <n> RequiredTarget
|
2005-06-29 19:51:01 +04:00
|
|
|
%type <n> SimpleTarget
|
2005-06-29 19:37:15 +04:00
|
|
|
|
|
|
|
%type <n> Type1Opcode
|
|
|
|
%type <n> Type2Opcode
|
2005-06-29 19:51:01 +04:00
|
|
|
%type <n> Type2IntegerOpcode
|
|
|
|
%type <n> Type2StringOpcode
|
|
|
|
%type <n> Type2BufferOpcode
|
|
|
|
%type <n> Type2BufferOrStringOpcode
|
2005-06-29 19:37:15 +04:00
|
|
|
%type <n> Type3Opcode
|
2005-06-29 19:51:01 +04:00
|
|
|
|
|
|
|
/* Obsolete %type <n> Type4Opcode */
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
%type <n> Type5Opcode
|
|
|
|
%type <n> Type6Opcode
|
|
|
|
|
|
|
|
|
|
|
|
%type <n> IncludeTerm
|
2005-06-29 19:49:12 +04:00
|
|
|
%type <n> IncludeCStyleTerm
|
2005-06-29 19:37:15 +04:00
|
|
|
%type <n> ExternalTerm
|
|
|
|
|
|
|
|
%type <n> FieldUnitList
|
|
|
|
%type <n> FieldUnitListTail
|
|
|
|
%type <n> FieldUnit
|
|
|
|
%type <n> FieldUnitEntry
|
|
|
|
|
|
|
|
%type <n> OffsetTerm
|
|
|
|
%type <n> AccessAsTerm
|
|
|
|
%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> 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> BreakTerm
|
|
|
|
%type <n> BreakPointTerm
|
|
|
|
%type <n> ContinueTerm
|
|
|
|
%type <n> FatalTerm
|
|
|
|
%type <n> IfElseTerm
|
|
|
|
%type <n> IfTerm
|
|
|
|
%type <n> ElseTerm
|
|
|
|
%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> CaseTermList
|
|
|
|
%type <n> DefaultTermList
|
|
|
|
%type <n> CaseTerm
|
|
|
|
%type <n> DefaultTerm
|
|
|
|
%type <n> UnloadTerm
|
|
|
|
%type <n> WhileTerm
|
|
|
|
|
|
|
|
/* Type 2 opcodes */
|
|
|
|
|
|
|
|
%type <n> AcquireTerm
|
|
|
|
%type <n> AddTerm
|
|
|
|
%type <n> AndTerm
|
|
|
|
%type <n> ConcatTerm
|
|
|
|
%type <n> ConcatResTerm
|
|
|
|
%type <n> CondRefOfTerm
|
2005-06-29 19:51:21 +04:00
|
|
|
%type <n> CopyObjectTerm
|
2005-06-29 19:37:15 +04:00
|
|
|
%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> LGreaterTerm
|
|
|
|
%type <n> LGreaterEqualTerm
|
|
|
|
%type <n> LLessTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
%type <n> LLessEqualTerm
|
2005-06-29 19:37:15 +04:00
|
|
|
%type <n> LNotTerm
|
|
|
|
%type <n> LNotEqualTerm
|
|
|
|
%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> RefOfTerm
|
|
|
|
%type <n> ShiftLeftTerm
|
|
|
|
%type <n> ShiftRightTerm
|
|
|
|
%type <n> SizeOfTerm
|
|
|
|
%type <n> StoreTerm
|
|
|
|
%type <n> SubtractTerm
|
|
|
|
%type <n> ToBCDTerm
|
2005-06-29 19:49:12 +04:00
|
|
|
%type <n> ToBufferTerm
|
|
|
|
%type <n> ToDecimalStringTerm
|
|
|
|
%type <n> ToHexStringTerm
|
|
|
|
%type <n> ToIntegerTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
%type <n> ToStringTerm
|
2005-06-29 19:37:15 +04:00
|
|
|
%type <n> WaitTerm
|
|
|
|
%type <n> XOrTerm
|
|
|
|
|
|
|
|
%type <n> OptionalTermArg
|
|
|
|
%type <n> OptionalListTermArg
|
|
|
|
|
|
|
|
|
|
|
|
/* Keywords */
|
|
|
|
|
|
|
|
%type <n> ObjectTypeKeyword
|
|
|
|
%type <n> AccessTypeKeyword
|
|
|
|
%type <n> AccessAttribKeyword
|
|
|
|
%type <n> LockRuleKeyword
|
|
|
|
%type <n> UpdateRuleKeyword
|
|
|
|
%type <n> RegionSpaceKeyword
|
2005-06-29 19:41:43 +04:00
|
|
|
%type <n> AddressSpaceKeyword
|
2005-06-29 19:37:15 +04:00
|
|
|
%type <n> MatchOpKeyword
|
|
|
|
%type <n> SerializeRuleKeyword
|
2005-06-29 19:41:38 +04:00
|
|
|
%type <n> DMATypeKeyword
|
|
|
|
%type <n> BusMasterKeyword
|
|
|
|
%type <n> XferTypeKeyword
|
|
|
|
%type <n> ResourceTypeKeyword
|
|
|
|
%type <n> MinKeyword
|
|
|
|
%type <n> MaxKeyword
|
|
|
|
%type <n> DecodeKeyword
|
|
|
|
%type <n> RangeTypeKeyword
|
|
|
|
%type <n> MemTypeKeyword
|
|
|
|
%type <n> ReadWriteKeyword
|
|
|
|
%type <n> InterruptTypeKeyword
|
|
|
|
%type <n> InterruptLevel
|
|
|
|
%type <n> ShareTypeKeyword
|
|
|
|
%type <n> IODecodeKeyword
|
|
|
|
%type <n> TypeKeyword
|
|
|
|
%type <n> TranslationKeyword
|
|
|
|
%type <n> AddressKeyword
|
2005-06-29 19:37:15 +04:00
|
|
|
|
|
|
|
/* Types */
|
|
|
|
|
|
|
|
%type <n> SuperName
|
|
|
|
%type <n> ArgTerm
|
|
|
|
%type <n> LocalTerm
|
|
|
|
%type <n> DebugTerm
|
|
|
|
|
|
|
|
|
|
|
|
%type <n> Integer
|
|
|
|
|
|
|
|
%type <n> ByteConst
|
|
|
|
%type <n> WordConst
|
2005-06-29 19:51:01 +04:00
|
|
|
%type <n> DWordConst
|
|
|
|
%type <n> QWordConst
|
|
|
|
|
|
|
|
/* Useless
|
|
|
|
%type <n> WordConst
|
|
|
|
%type <n> QWordConst
|
|
|
|
*/
|
2005-06-29 19:39:58 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
%type <n> String
|
|
|
|
|
|
|
|
%type <n> ConstTerm
|
|
|
|
%type <n> ByteConstExpr
|
|
|
|
%type <n> WordConstExpr
|
|
|
|
%type <n> DWordConstExpr
|
2005-06-29 19:41:43 +04:00
|
|
|
%type <n> QWordConstExpr
|
2005-06-29 19:37:15 +04:00
|
|
|
%type <n> ConstExprTerm
|
|
|
|
|
|
|
|
%type <n> BufferTerm
|
|
|
|
%type <n> ByteList
|
|
|
|
%type <n> ByteListTail
|
2005-06-29 19:41:43 +04:00
|
|
|
%type <n> DWordList
|
|
|
|
%type <n> DWordListTail
|
2005-06-29 19:37:15 +04:00
|
|
|
|
|
|
|
%type <n> PackageTerm
|
|
|
|
%type <n> PackageLengthTerm
|
|
|
|
%type <n> PackageList
|
|
|
|
%type <n> PackageListTail
|
|
|
|
%type <n> PackageElement
|
2005-06-29 19:52:14 +04:00
|
|
|
|
|
|
|
%type <n> VarPackageLengthTerm
|
2005-06-29 19:52:02 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
|
|
|
|
%type <n> EISAIDTerm
|
|
|
|
%type <n> ResourceTemplateTerm
|
2005-06-29 19:41:43 +04:00
|
|
|
%type <n> UnicodeTerm
|
2005-06-29 19:37:15 +04:00
|
|
|
%type <n> ResourceMacroList
|
|
|
|
%type <n> ResourceMacroTerm
|
2005-06-29 19:41:38 +04:00
|
|
|
|
2005-06-29 19:41:43 +04:00
|
|
|
%type <n> DMATerm
|
|
|
|
%type <n> DWordIOTerm
|
|
|
|
%type <n> DWordMemoryTerm
|
|
|
|
%type <n> EndDependentFnTerm
|
|
|
|
%type <n> FixedIOTerm
|
|
|
|
%type <n> InterruptTerm
|
2005-06-29 19:41:38 +04:00
|
|
|
%type <n> IOTerm
|
2005-06-29 19:41:43 +04:00
|
|
|
%type <n> IRQNoFlagsTerm
|
|
|
|
%type <n> IRQTerm
|
|
|
|
%type <n> Memory24Term
|
|
|
|
%type <n> Memory32FixedTerm
|
|
|
|
%type <n> Memory32Term
|
|
|
|
%type <n> QWordIOTerm
|
|
|
|
%type <n> QWordMemoryTerm
|
|
|
|
%type <n> RegisterTerm
|
|
|
|
%type <n> StartDependentFnTerm
|
|
|
|
%type <n> StartDependentFnNoPriTerm
|
|
|
|
%type <n> VendorLongTerm
|
|
|
|
%type <n> VendorShortTerm
|
2005-06-29 19:37:15 +04:00
|
|
|
%type <n> WordBusNumberTerm
|
2005-06-29 19:41:43 +04:00
|
|
|
%type <n> WordIOTerm
|
2005-06-29 19:37:15 +04:00
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
%type <n> NameString
|
|
|
|
%type <n> NameSeg
|
2005-06-29 19:37:15 +04:00
|
|
|
|
|
|
|
|
|
|
|
/* Local types that help construct the AML, not in ACPI spec */
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
%type <n> IncludeEndTerm
|
2005-06-29 19:37:15 +04:00
|
|
|
%type <n> AmlPackageLengthTerm
|
2005-06-29 19:41:38 +04:00
|
|
|
%type <n> OptionalByteConstExpr
|
2005-06-29 19:41:43 +04:00
|
|
|
%type <n> OptionalDWordConstExpr
|
2005-06-29 19:41:38 +04:00
|
|
|
%type <n> OptionalSerializeRuleKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
%type <n> OptionalResourceType_First
|
2005-06-29 19:41:38 +04:00
|
|
|
%type <n> OptionalMinType
|
|
|
|
%type <n> OptionalMaxType
|
2005-06-29 19:41:43 +04:00
|
|
|
%type <n> OptionalMemType
|
2005-06-29 19:51:44 +04:00
|
|
|
%type <n> OptionalCount
|
2005-06-29 19:41:38 +04:00
|
|
|
%type <n> OptionalDecodeType
|
|
|
|
%type <n> OptionalRangeType
|
2005-06-29 19:41:43 +04:00
|
|
|
%type <n> OptionalShareType
|
2005-06-29 19:41:38 +04:00
|
|
|
%type <n> OptionalType
|
2005-06-29 19:51:01 +04:00
|
|
|
%type <n> OptionalType_Last
|
|
|
|
%type <n> OptionalTranslationType_Last
|
|
|
|
%type <n> OptionalStringData
|
|
|
|
%type <n> OptionalNameString
|
|
|
|
%type <n> OptionalNameString_First
|
|
|
|
%type <n> OptionalNameString_Last
|
2005-06-29 19:41:38 +04:00
|
|
|
%type <n> OptionalAddressRange
|
2005-06-29 19:51:44 +04:00
|
|
|
%type <n> OptionalObjectTypeKeyword
|
|
|
|
%type <n> OptionalReference
|
2005-06-29 19:37:15 +04:00
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
|
|
|
|
%type <n> TermArgItem
|
|
|
|
%type <n> NameStringItem
|
|
|
|
|
2005-06-29 19:41:33 +04:00
|
|
|
%%
|
2005-06-29 19:37:15 +04:00
|
|
|
|
2005-06-29 19:41:43 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
/*******************************************************************************
|
|
|
|
*
|
2005-06-29 19:41:43 +04:00
|
|
|
* Production rules start here
|
2005-06-29 19:37:15 +04:00
|
|
|
*
|
|
|
|
******************************************************************************/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* ASL Names
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Blocks, Data, and Opcodes
|
|
|
|
*/
|
|
|
|
|
|
|
|
ASLCode
|
|
|
|
: DefinitionBlockTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
| error {YYABORT; $$ = NULL;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
DefinitionBlockTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: DEFINITIONBLOCK '(' {$$ = TrCreateLeafNode (DEFINITIONBLOCK);}
|
2005-06-29 19:37:15 +04:00
|
|
|
String ','
|
|
|
|
String ','
|
|
|
|
ByteConst ','
|
|
|
|
String ','
|
|
|
|
String ','
|
2005-06-29 19:51:01 +04:00
|
|
|
DWordConst
|
|
|
|
')' {TrSetEndLineNumber ($<n>3);}
|
|
|
|
'{' TermList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
TermList
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| Term TermList {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
Term
|
2005-06-29 19:51:01 +04:00
|
|
|
: Object {}
|
|
|
|
| Type1Opcode {}
|
|
|
|
| Type2Opcode {}
|
|
|
|
| Type2IntegerOpcode {}
|
|
|
|
| Type2StringOpcode {}
|
|
|
|
| Type2BufferOpcode {}
|
|
|
|
| Type2BufferOrStringOpcode {}
|
|
|
|
| error {$$ = AslDoError(); yyclearin; yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
CompilerDirective
|
2005-06-29 19:51:01 +04:00
|
|
|
: IncludeTerm {}
|
|
|
|
| IncludeCStyleTerm {$$ = NULL;}
|
|
|
|
| ExternalTerm {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ObjectList
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| Object ObjectList {$$ = TrLinkPeerNode ($1,$2);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
Object
|
2005-06-29 19:51:01 +04:00
|
|
|
: CompilerDirective {}
|
|
|
|
| NamedObject {}
|
|
|
|
| NameSpaceModifier {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
DataObject
|
2005-06-29 19:51:01 +04:00
|
|
|
: BufferData {}
|
|
|
|
| PackageData {}
|
|
|
|
| IntegerData {}
|
|
|
|
/* | StringData {} */ /* Caused a reduce/reduce conflict BufferData->StringData */
|
2005-06-29 19:39:47 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
BufferData
|
2005-06-29 19:51:01 +04:00
|
|
|
: Type5Opcode {}
|
|
|
|
| Type2BufferOrStringOpcode {}
|
|
|
|
| Type2BufferOpcode {}
|
|
|
|
| BufferTerm {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
PackageData
|
2005-06-29 19:51:01 +04:00
|
|
|
: PackageTerm {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
IntegerData
|
2005-06-29 19:51:01 +04:00
|
|
|
: Type2IntegerOpcode {}
|
|
|
|
| Type3Opcode {}
|
|
|
|
| Integer {}
|
|
|
|
| ConstTerm {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
2005-06-29 19:51:01 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
StringData
|
2005-06-29 19:51:01 +04:00
|
|
|
: Type2StringOpcode {}
|
|
|
|
| String {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
NamedObject
|
2005-06-29 19:51:01 +04:00
|
|
|
: BankFieldTerm {}
|
|
|
|
| CreateBitFieldTerm {}
|
|
|
|
| CreateByteFieldTerm {}
|
|
|
|
| CreateDWordFieldTerm {}
|
|
|
|
| CreateFieldTerm {}
|
|
|
|
| CreateQWordFieldTerm {}
|
|
|
|
| CreateWordFieldTerm {}
|
|
|
|
| DataRegionTerm {}
|
|
|
|
| DeviceTerm {}
|
|
|
|
| EventTerm {}
|
|
|
|
| FieldTerm {}
|
|
|
|
| IndexFieldTerm {}
|
|
|
|
| MethodTerm {}
|
|
|
|
| MutexTerm {}
|
|
|
|
| OpRegionTerm {}
|
|
|
|
| PowerResTerm {}
|
|
|
|
| ProcessorTerm {}
|
|
|
|
| ThermalZoneTerm {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
NameSpaceModifier
|
2005-06-29 19:51:01 +04:00
|
|
|
: AliasTerm {}
|
|
|
|
| NameTerm {}
|
|
|
|
| ScopeTerm {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
UserTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: NameString '(' {TrUpdateNode (METHODCALL, $1);}
|
|
|
|
ArgList ')' {$$ = TrLinkChildNode ($1,$4);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ArgList
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| TermArg ArgListTail {$$ = TrLinkPeerNode ($1,$2);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ArgListTail
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' TermArg ArgListTail {$$ = TrLinkPeerNode ($2,$3);}
|
|
|
|
| ',' {$$ = NULL;} /* Allows a trailing comma at list end */
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
: Type2Opcode {}
|
|
|
|
| Type2IntegerOpcode {}
|
|
|
|
| Type2StringOpcode {}
|
|
|
|
| Type2BufferOpcode {}
|
|
|
|
| Type2BufferOrStringOpcode {}
|
|
|
|
| DataObject {}
|
|
|
|
| NameString {}
|
|
|
|
| ArgTerm {}
|
|
|
|
| LocalTerm {}
|
2005-06-29 19:47:08 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
Target
|
|
|
|
: {$$ = TrCreateLeafNode (ZERO);} /* Placeholder is a ZeroOp object */
|
|
|
|
| ',' {$$ = TrCreateLeafNode (ZERO);} /* Placeholder is a ZeroOp object */
|
|
|
|
| ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
|
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:44 +04:00
|
|
|
RequiredTarget
|
|
|
|
: ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
SimpleTarget
|
|
|
|
: NameString {}
|
|
|
|
| LocalTerm {}
|
|
|
|
| ArgTerm {}
|
2005-06-29 19:40:07 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
|
|
|
|
/* Opcode types */
|
|
|
|
|
|
|
|
Type1Opcode
|
2005-06-29 19:51:01 +04:00
|
|
|
: BreakTerm {}
|
|
|
|
| BreakPointTerm {}
|
|
|
|
| ContinueTerm {}
|
|
|
|
| FatalTerm {}
|
|
|
|
| IfElseTerm {}
|
|
|
|
| LoadTerm {}
|
|
|
|
| NoOpTerm {}
|
|
|
|
| NotifyTerm {}
|
|
|
|
| ReleaseTerm {}
|
|
|
|
| ResetTerm {}
|
|
|
|
| ReturnTerm {}
|
|
|
|
| SignalTerm {}
|
|
|
|
| SleepTerm {}
|
|
|
|
| StallTerm {}
|
|
|
|
| SwitchTerm {}
|
|
|
|
| UnloadTerm {}
|
|
|
|
| WhileTerm {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
Type2Opcode
|
2005-06-29 19:51:01 +04:00
|
|
|
: AcquireTerm {}
|
|
|
|
| CondRefOfTerm {}
|
2005-06-29 19:51:21 +04:00
|
|
|
| CopyObjectTerm {}
|
2005-06-29 19:51:01 +04:00
|
|
|
| DerefOfTerm {}
|
|
|
|
| ObjectTypeTerm {}
|
|
|
|
| RefOfTerm {}
|
|
|
|
| SizeOfTerm {}
|
|
|
|
| StoreTerm {}
|
|
|
|
| WaitTerm {}
|
|
|
|
| UserTerm {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
/*
|
|
|
|
* A type 2 opcode evaluates to an Integer and cannot have a destination operand
|
|
|
|
*/
|
|
|
|
|
|
|
|
Type2IntegerOpcode /* "Type3" opcodes */
|
|
|
|
: AddTerm {}
|
|
|
|
| AndTerm {}
|
|
|
|
| DecTerm {}
|
|
|
|
| DivideTerm {}
|
|
|
|
| FindSetLeftBitTerm {}
|
|
|
|
| FindSetRightBitTerm {}
|
|
|
|
| FromBCDTerm {}
|
|
|
|
| IncTerm {}
|
|
|
|
| IndexTerm {}
|
|
|
|
| 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 {}
|
|
|
|
| MidTerm {}
|
|
|
|
;
|
2005-06-29 19:39:58 +04:00
|
|
|
|
|
|
|
/*
|
|
|
|
* A type 3 opcode evaluates to an Integer and cannot have a destination operand
|
|
|
|
*/
|
|
|
|
|
|
|
|
Type3Opcode
|
2005-06-29 19:51:01 +04:00
|
|
|
: EISAIDTerm {}
|
2005-06-29 19:39:58 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
/* Obsolete
|
2005-06-29 19:37:15 +04:00
|
|
|
Type4Opcode
|
2005-06-29 19:51:01 +04:00
|
|
|
: ConcatTerm {}
|
|
|
|
| ToDecimalStringTerm {}
|
|
|
|
| ToHexStringTerm {}
|
|
|
|
| MidTerm {}
|
|
|
|
| ToStringTerm {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
2005-06-29 19:51:01 +04:00
|
|
|
*/
|
|
|
|
|
2005-06-29 19:39:58 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
Type5Opcode
|
2005-06-29 19:51:01 +04:00
|
|
|
: ResourceTemplateTerm {}
|
|
|
|
| UnicodeTerm {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
Type6Opcode
|
2005-06-29 19:51:01 +04:00
|
|
|
: RefOfTerm {}
|
|
|
|
| DerefOfTerm {}
|
|
|
|
| IndexTerm {}
|
|
|
|
| UserTerm {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
IncludeTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: INCLUDE '(' {$$ = TrCreateLeafNode (INCLUDE);}
|
|
|
|
String ')' {$$ = TrLinkChildren ($<n>3,1,$4);FlOpenIncludeFile ($4);}
|
|
|
|
TermList
|
|
|
|
IncludeEndTerm {$$ = TrLinkPeerNodes (3,$<n>3,$7,$8);}
|
|
|
|
;
|
|
|
|
|
|
|
|
IncludeEndTerm
|
|
|
|
: INCLUDE_END {$$ = TrCreateLeafNode (INCLUDE_END);}
|
2005-06-29 19:49:12 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
IncludeCStyleTerm
|
2005-06-29 19:49:30 +04:00
|
|
|
: INCLUDE_CSTYLE
|
2005-06-29 19:51:01 +04:00
|
|
|
String {FlOpenIncludeFile ($2);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ExternalTerm
|
|
|
|
: EXTERNAL '('
|
2005-06-29 19:51:01 +04:00
|
|
|
NameString
|
2005-06-29 19:51:44 +04:00
|
|
|
OptionalObjectTypeKeyword
|
|
|
|
')' {$$ = TrCreateNode (EXTERNAL,2,$3,$4);}
|
2005-06-29 19:51:01 +04:00
|
|
|
| EXTERNAL '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:41:43 +04:00
|
|
|
|
|
|
|
/******* Named Objects *******************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
BankFieldTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: BANKFIELD '(' {$$ = TrCreateLeafNode (BANKFIELD);}
|
|
|
|
NameString
|
|
|
|
NameStringItem
|
|
|
|
TermArgItem
|
|
|
|
',' AccessTypeKeyword
|
|
|
|
',' LockRuleKeyword
|
|
|
|
',' UpdateRuleKeyword
|
|
|
|
')' '{'
|
|
|
|
FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);}
|
|
|
|
| BANKFIELD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
FieldUnitList
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| FieldUnit
|
|
|
|
FieldUnitListTail {$$ = TrLinkPeerNode ($1,$2);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
FieldUnitListTail
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;} /* Allows a trailing comma at list end */
|
|
|
|
| ',' FieldUnit
|
|
|
|
FieldUnitListTail {$$ = TrLinkPeerNode ($2,$3);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
FieldUnit
|
2005-06-29 19:51:01 +04:00
|
|
|
: FieldUnitEntry {}
|
|
|
|
| OffsetTerm {}
|
|
|
|
| AccessAsTerm {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
FieldUnitEntry
|
2005-06-29 19:51:01 +04:00
|
|
|
: ',' AmlPackageLengthTerm {$$ = TrCreateNode (RESERVED_BYTES,1,$2);}
|
|
|
|
| NameSeg ','
|
|
|
|
AmlPackageLengthTerm {$$ = TrLinkChildNode ($1,$3);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
OffsetTerm
|
|
|
|
: OFFSET '('
|
|
|
|
AmlPackageLengthTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrCreateNode (OFFSET,1,$3);}
|
|
|
|
| OFFSET '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
AccessAsTerm
|
|
|
|
: ACCESSAS '('
|
|
|
|
AccessTypeKeyword
|
|
|
|
OptionalAccessAttribTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrCreateNode (ACCESSAS,2,$3,$4);}
|
|
|
|
| ACCESSAS '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:33 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
CreateBitFieldTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: CREATEBITFIELD '(' {$$ = TrCreateLeafNode (CREATEBITFIELD);}
|
|
|
|
TermArg
|
|
|
|
TermArgItem
|
|
|
|
NameStringItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| CREATEBITFIELD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
CreateByteFieldTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: CREATEBYTEFIELD '(' {$$ = TrCreateLeafNode (CREATEBYTEFIELD);}
|
|
|
|
TermArg
|
|
|
|
TermArgItem
|
|
|
|
NameStringItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| CREATEBYTEFIELD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
CreateDWordFieldTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: CREATEDWORDFIELD '(' {$$ = TrCreateLeafNode (CREATEDWORDFIELD);}
|
|
|
|
TermArg
|
|
|
|
TermArgItem
|
|
|
|
NameStringItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| CREATEDWORDFIELD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
CreateFieldTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: CREATEFIELD '(' {$$ = TrCreateLeafNode (CREATEFIELD);}
|
|
|
|
TermArg
|
|
|
|
TermArgItem
|
|
|
|
TermArgItem
|
|
|
|
NameStringItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
|
|
|
|
| CREATEFIELD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
CreateQWordFieldTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: CREATEQWORDFIELD '(' {$$ = TrCreateLeafNode (CREATEQWORDFIELD);}
|
|
|
|
TermArg
|
|
|
|
TermArgItem
|
|
|
|
NameStringItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| CREATEQWORDFIELD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
CreateWordFieldTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: CREATEWORDFIELD '(' {$$ = TrCreateLeafNode (CREATEWORDFIELD);}
|
|
|
|
TermArg
|
|
|
|
TermArgItem
|
|
|
|
NameStringItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| CREATEWORDFIELD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
DataRegionTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: DATATABLEREGION '(' {$$ = TrCreateLeafNode (DATATABLEREGION);}
|
|
|
|
NameString
|
|
|
|
TermArgItem
|
|
|
|
TermArgItem
|
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
|
|
|
|
| DATATABLEREGION '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
DeviceTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: DEVICE '(' {$$ = TrCreateLeafNode (DEVICE);}
|
2005-06-29 19:37:15 +04:00
|
|
|
NameString
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
|
|
|
ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
|
|
|
| DEVICE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
EventTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: EVENT '(' {$$ = TrCreateLeafNode (EVENT);}
|
2005-06-29 19:37:15 +04:00
|
|
|
NameString
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| EVENT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
FieldTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: FIELD '(' {$$ = TrCreateLeafNode (FIELD);}
|
|
|
|
NameString
|
|
|
|
',' AccessTypeKeyword
|
|
|
|
',' LockRuleKeyword
|
|
|
|
',' UpdateRuleKeyword
|
|
|
|
')' '{'
|
|
|
|
FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
|
|
|
|
| FIELD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
IndexFieldTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: INDEXFIELD '(' {$$ = TrCreateLeafNode (INDEXFIELD);}
|
|
|
|
NameString
|
|
|
|
NameStringItem
|
|
|
|
',' AccessTypeKeyword
|
|
|
|
',' LockRuleKeyword
|
|
|
|
',' UpdateRuleKeyword
|
|
|
|
')' '{'
|
|
|
|
FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
|
|
|
|
| INDEXFIELD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:33 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
MethodTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: METHOD '(' {$$ = TrCreateLeafNode (METHOD);}
|
2005-06-29 19:37:15 +04:00
|
|
|
NameString
|
|
|
|
OptionalByteConstExpr
|
|
|
|
OptionalSerializeRuleKeyword
|
|
|
|
OptionalByteConstExpr
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
|
|
|
TermList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$5,$6,$7,$10);}
|
|
|
|
| METHOD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
MutexTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: MUTEX '(' {$$ = TrCreateLeafNode (MUTEX);}
|
|
|
|
NameString
|
|
|
|
',' ByteConstExpr
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
|
|
|
|
| MUTEX '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
OpRegionTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: OPERATIONREGION '(' {$$ = TrCreateLeafNode (OPERATIONREGION);}
|
|
|
|
NameString
|
|
|
|
',' OpRegionSpaceIdTerm
|
|
|
|
TermArgItem
|
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
|
|
|
|
| OPERATIONREGION '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
OpRegionSpaceIdTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: RegionSpaceKeyword {}
|
|
|
|
| ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
PowerResTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: POWERRESOURCE '(' {$$ = TrCreateLeafNode (POWERRESOURCE);}
|
|
|
|
NameString
|
|
|
|
',' ByteConstExpr
|
|
|
|
',' WordConstExpr
|
|
|
|
')' '{'
|
|
|
|
ObjectList '}' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$11);}
|
|
|
|
| POWERRESOURCE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ProcessorTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: PROCESSOR '(' {$$ = TrCreateLeafNode (PROCESSOR);}
|
|
|
|
NameString
|
|
|
|
',' ByteConstExpr
|
2005-06-29 19:41:43 +04:00
|
|
|
OptionalDWordConstExpr
|
|
|
|
OptionalByteConstExpr
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
|
|
|
ObjectList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
|
|
|
|
| PROCESSOR '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ThermalZoneTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: THERMALZONE '(' {$$ = TrCreateLeafNode (THERMALZONE);}
|
2005-06-29 19:37:15 +04:00
|
|
|
NameString
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
|
|
|
ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
|
|
|
| THERMALZONE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
/******* Namespace modifiers *************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
AliasTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: ALIAS '(' {$$ = TrCreateLeafNode (ALIAS);}
|
|
|
|
NameString
|
|
|
|
NameStringItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| ALIAS '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
NameTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: NAME '(' {$$ = TrCreateLeafNode (NAME);}
|
|
|
|
NameString
|
|
|
|
',' DataObject
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
|
|
|
|
| NAME '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ScopeTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: SCOPE '(' {$$ = TrCreateLeafNode (SCOPE);}
|
2005-06-29 19:37:15 +04:00
|
|
|
NameString
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
|
|
|
ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
|
|
|
| SCOPE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
/******* Type 1 opcodes *******************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
BreakTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: BREAK {$$ = TrCreateNode (BREAK, 0);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
BreakPointTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: BREAKPOINT {$$ = TrCreateNode (BREAKPOINT, 0);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ContinueTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: CONTINUE {$$ = TrCreateNode (CONTINUE, 0);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
FatalTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: FATAL '(' {$$ = TrCreateLeafNode (FATAL);}
|
|
|
|
ByteConstExpr
|
|
|
|
',' DWordConstExpr
|
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
|
|
|
|
| FATAL '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
IfElseTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: IfTerm ElseTerm {$$ = TrLinkPeerNode ($1,$2);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
IfTerm
|
|
|
|
: IF '(' {$$ = TrCreateLeafNode (IF);}
|
2005-06-29 19:37:15 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
|
|
|
TermList '}'
|
|
|
|
{$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
|
|
|
| IF '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ElseTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| ELSE '{' {$$ = TrCreateLeafNode (ELSE);}
|
|
|
|
TermList '}'
|
|
|
|
{$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
|
2005-06-29 19:51:44 +04:00
|
|
|
| ELSEIF '(' {$$ = TrCreateLeafNode (ELSEIF);}
|
|
|
|
TermArg
|
|
|
|
')' '{'
|
2005-06-29 19:51:01 +04:00
|
|
|
TermList '}'
|
|
|
|
ElseTerm
|
2005-06-29 19:51:44 +04:00
|
|
|
{$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
|
|
|
| ELSEIF '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
LoadTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: LOAD '(' {$$ = TrCreateLeafNode (LOAD);}
|
|
|
|
NameString
|
2005-06-29 19:51:44 +04:00
|
|
|
RequiredTarget
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
2005-06-29 19:51:01 +04:00
|
|
|
| LOAD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
NoOpTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: NOOP {$$ = TrCreateNode (NOOP, 0);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
NotifyTerm
|
|
|
|
: NOTIFY '(' {$$ = TrCreateLeafNode (NOTIFY);}
|
|
|
|
SuperName
|
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| NOTIFY '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ReleaseTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: RELEASE '(' {$$ = TrCreateLeafNode (RELEASE);}
|
2005-06-29 19:37:15 +04:00
|
|
|
SuperName
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| RELEASE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:47:08 +04:00
|
|
|
;
|
2005-06-29 19:37:15 +04:00
|
|
|
|
|
|
|
ResetTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: RESET '(' {$$ = TrCreateLeafNode (RESET);}
|
2005-06-29 19:37:15 +04:00
|
|
|
SuperName
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| RESET '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ReturnTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: RETURN '(' {$$ = TrCreateLeafNode (RETURN);}
|
2005-06-29 19:49:12 +04:00
|
|
|
OptionalTermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| RETURN '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
SignalTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: SIGNAL '(' {$$ = TrCreateLeafNode (SIGNAL);}
|
2005-06-29 19:37:15 +04:00
|
|
|
SuperName
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| SIGNAL '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
SleepTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: SLEEP '(' {$$ = TrCreateLeafNode (SLEEP);}
|
2005-06-29 19:37:15 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| SLEEP '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
2005-06-29 19:51:01 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
StallTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: STALL '(' {$$ = TrCreateLeafNode (STALL);}
|
2005-06-29 19:37:15 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| STALL '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
SwitchTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: SWITCH '(' {$$ = TrCreateLeafNode (SWITCH);}
|
2005-06-29 19:37:15 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
|
|
|
CaseTermList '}'
|
|
|
|
{$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
|
|
|
| SWITCH '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
CaseTermList
|
2005-06-29 19:51:48 +04:00
|
|
|
: {$$ = NULL;}
|
2005-06-29 19:51:01 +04:00
|
|
|
| CaseTerm {}
|
|
|
|
| DefaultTerm
|
2005-06-29 19:51:48 +04:00
|
|
|
DefaultTermList {$$ = TrLinkPeerNode ($1,$2);}
|
2005-06-29 19:51:01 +04:00
|
|
|
| CaseTerm
|
2005-06-29 19:51:48 +04:00
|
|
|
CaseTermList {$$ = TrLinkPeerNode ($1,$2);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
DefaultTermList
|
2005-06-29 19:51:48 +04:00
|
|
|
: {$$ = NULL;}
|
2005-06-29 19:51:01 +04:00
|
|
|
| CaseTerm {}
|
|
|
|
| CaseTerm
|
2005-06-29 19:51:48 +04:00
|
|
|
DefaultTermList {$$ = TrLinkPeerNode ($1,$2);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
CaseTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: CASE '(' {$$ = TrCreateLeafNode (CASE);}
|
2005-06-29 19:52:10 +04:00
|
|
|
DataObject
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
2005-06-29 19:51:48 +04:00
|
|
|
TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
2005-06-29 19:51:01 +04:00
|
|
|
| CASE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
DefaultTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: DEFAULT '{' {$$ = TrCreateLeafNode (DEFAULT);}
|
2005-06-29 19:51:48 +04:00
|
|
|
TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| DEFAULT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
UnloadTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: UNLOAD '(' {$$ = TrCreateLeafNode (UNLOAD);}
|
2005-06-29 19:37:15 +04:00
|
|
|
SuperName
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| UNLOAD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
WhileTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: WHILE '(' {$$ = TrCreateLeafNode (WHILE);}
|
2005-06-29 19:37:15 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{' TermList '}'
|
|
|
|
{$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
|
|
|
| WHILE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
/******* Type 2 opcodes *******************************************************/
|
|
|
|
|
|
|
|
AcquireTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: ACQUIRE '(' {$$ = TrCreateLeafNode (ACQUIRE);}
|
|
|
|
SuperName
|
|
|
|
',' WordConstExpr
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
|
|
|
|
| ACQUIRE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
|
|
|
;
|
2005-06-29 19:46:47 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
AddTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: ADD '(' {$$ = TrCreateLeafNode (ADD);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| ADD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
AndTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: AND '(' {$$ = TrCreateLeafNode (AND);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:41:33 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| AND '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:48:46 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
ConcatTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: CONCATENATE '(' {$$ = TrCreateLeafNode (CONCATENATE);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| CONCATENATE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ConcatResTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: CONCATENATERESTEMPLATE '(' {$$ = TrCreateLeafNode (CONCATENATERESTEMPLATE);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| CONCATENATERESTEMPLATE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
CondRefOfTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: CONDREFOF '(' {$$ = TrCreateLeafNode (CONDREFOF);}
|
2005-06-29 19:37:15 +04:00
|
|
|
SuperName
|
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| CONDREFOF '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:33 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:21 +04:00
|
|
|
CopyObjectTerm
|
|
|
|
: COPYOBJECT '(' {$$ = TrCreateLeafNode (COPYOBJECT);}
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArg
|
|
|
|
',' SimpleTarget
|
2005-06-29 19:52:22 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
|
2005-06-29 19:51:21 +04:00
|
|
|
| COPYOBJECT '('
|
2005-06-29 19:51:01 +04:00
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:39:47 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
DecTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: DECREMENT '(' {$$ = TrCreateLeafNode (DECREMENT);}
|
2005-06-29 19:37:15 +04:00
|
|
|
SuperName
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| DECREMENT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:48:46 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
DerefOfTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: DEREFOF '(' {$$ = TrCreateLeafNode (DEREFOF);}
|
2005-06-29 19:37:15 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| DEREFOF '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
DivideTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: DIVIDE '(' {$$ = TrCreateLeafNode (DIVIDE);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
|
|
|
|
| DIVIDE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
FindSetLeftBitTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: FINDSETLEFTBIT '(' {$$ = TrCreateLeafNode (FINDSETLEFTBIT);}
|
2005-06-29 19:37:15 +04:00
|
|
|
TermArg
|
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| FINDSETLEFTBIT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
FindSetRightBitTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: FINDSETRIGHTBIT '(' {$$ = TrCreateLeafNode (FINDSETRIGHTBIT);}
|
2005-06-29 19:37:15 +04:00
|
|
|
TermArg
|
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| FINDSETRIGHTBIT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
FromBCDTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: FROMBCD '(' {$$ = TrCreateLeafNode (FROMBCD);}
|
2005-06-29 19:48:46 +04:00
|
|
|
TermArg
|
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| FROMBCD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:48:46 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
IncTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: INCREMENT '(' {$$ = TrCreateLeafNode (INCREMENT);}
|
2005-06-29 19:37:15 +04:00
|
|
|
SuperName
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| INCREMENT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
IndexTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: INDEX '(' {$$ = TrCreateLeafNode (INDEX);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:41:33 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| INDEX '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:48:46 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
LAndTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: LAND '(' {$$ = TrCreateLeafNode (LAND);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| LAND '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
LEqualTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: LEQUAL '(' {$$ = TrCreateLeafNode (LEQUAL);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| LEQUAL '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
LGreaterTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: LGREATER '(' {$$ = TrCreateLeafNode (LGREATER);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| LGREATER '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
LGreaterEqualTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: LGREATEREQUAL '(' {$$ = TrCreateLeafNode (LGREATEREQUAL);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| LGREATEREQUAL '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
LLessTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: LLESS '(' {$$ = TrCreateLeafNode (LLESS);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| LLESS '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
LLessEqualTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: LLESSEQUAL '(' {$$ = TrCreateLeafNode (LLESSEQUAL);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| LLESSEQUAL '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
LNotTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: LNOT '(' {$$ = TrCreateLeafNode (LNOT);}
|
2005-06-29 19:37:15 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| LNOT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
LNotEqualTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: LNOTEQUAL '(' {$$ = TrCreateLeafNode (LNOTEQUAL);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| LNOTEQUAL '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
LoadTableTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: LOADTABLE '(' {$$ = TrCreateLeafNode (LOADTABLE);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
OptionalListTermArg
|
|
|
|
OptionalListTermArg
|
2005-06-29 19:51:44 +04:00
|
|
|
OptionalReference
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
|
|
|
|
| LOADTABLE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:33 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
LOrTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: LOR '(' {$$ = TrCreateLeafNode (LOR);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| LOR '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
MatchTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: MATCH '(' {$$ = TrCreateLeafNode (MATCH);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
',' MatchOpKeyword
|
|
|
|
TermArgItem
|
|
|
|
',' MatchOpKeyword
|
|
|
|
TermArgItem
|
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
|
|
|
|
| MATCH '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
MidTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: MID '(' {$$ = TrCreateLeafNode (MID);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
|
|
|
|
| MID '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ModTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: MOD '(' {$$ = TrCreateLeafNode (MOD);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| MOD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
MultiplyTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: MULTIPLY '(' {$$ = TrCreateLeafNode (MULTIPLY);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| MULTIPLY '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
NAndTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: NAND '(' {$$ = TrCreateLeafNode (NAND);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| NAND '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
NOrTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: NOR '(' {$$ = TrCreateLeafNode (NOR);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| NOR '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
NotTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: NOT '(' {$$ = TrCreateLeafNode (NOT);}
|
2005-06-29 19:37:15 +04:00
|
|
|
TermArg
|
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| NOT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ObjectTypeTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: OBJECTTYPE '(' {$$ = TrCreateLeafNode (OBJECTTYPE);}
|
2005-06-29 19:37:15 +04:00
|
|
|
SuperName
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| OBJECTTYPE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
OrTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: OR '(' {$$ = TrCreateLeafNode (OR);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| OR '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:49:30 +04:00
|
|
|
/*
|
|
|
|
* 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.)
|
|
|
|
*/
|
2005-06-29 19:37:15 +04:00
|
|
|
RefOfTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: REFOF '(' {$$ = TrCreateLeafNode (REFOF);}
|
2005-06-29 19:37:15 +04:00
|
|
|
SuperName
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
|
|
|
|
| REFOF '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ShiftLeftTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: SHIFTLEFT '(' {$$ = TrCreateLeafNode (SHIFTLEFT);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| SHIFTLEFT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ShiftRightTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: SHIFTRIGHT '(' {$$ = TrCreateLeafNode (SHIFTRIGHT);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| SHIFTRIGHT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
SizeOfTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: SIZEOF '(' {$$ = TrCreateLeafNode (SIZEOF);}
|
2005-06-29 19:37:15 +04:00
|
|
|
SuperName
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,1,$4);}
|
|
|
|
| SIZEOF '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
StoreTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: STORE '(' {$$ = TrCreateLeafNode (STORE);}
|
2005-06-29 19:44:28 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
',' SuperName
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
|
|
|
|
| STORE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:44:28 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:48:46 +04:00
|
|
|
SubtractTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: SUBTRACT '(' {$$ = TrCreateLeafNode (SUBTRACT);}
|
2005-06-29 19:42:40 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:44:46 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| SUBTRACT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:44:46 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:48:46 +04:00
|
|
|
ToBCDTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: TOBCD '(' {$$ = TrCreateLeafNode (TOBCD);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:47:08 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| TOBCD '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:47:08 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:49:12 +04:00
|
|
|
ToBufferTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: TOBUFFER '(' {$$ = TrCreateLeafNode (TOBUFFER);}
|
2005-06-29 19:49:12 +04:00
|
|
|
TermArg
|
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| TOBUFFER '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:49:12 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ToDecimalStringTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: TODECIMALSTRING '(' {$$ = TrCreateLeafNode (TODECIMALSTRING);}
|
2005-06-29 19:49:12 +04:00
|
|
|
TermArg
|
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| TODECIMALSTRING '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:49:12 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ToHexStringTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: TOHEXSTRING '(' {$$ = TrCreateLeafNode (TOHEXSTRING);}
|
2005-06-29 19:49:12 +04:00
|
|
|
TermArg
|
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| TOHEXSTRING '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:49:12 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ToIntegerTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: TOINTEGER '(' {$$ = TrCreateLeafNode (TOINTEGER);}
|
2005-06-29 19:49:12 +04:00
|
|
|
TermArg
|
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| TOINTEGER '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:49:12 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
ToStringTerm
|
|
|
|
: TOSTRING '(' {$$ = TrCreateLeafNode (TOSTRING);}
|
2005-06-29 19:48:46 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:44 +04:00
|
|
|
OptionalCount
|
2005-06-29 19:51:01 +04:00
|
|
|
Target
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| TOSTRING '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
|
|
|
;
|
|
|
|
|
|
|
|
WaitTerm
|
|
|
|
: WAIT '(' {$$ = TrCreateLeafNode (WAIT);}
|
|
|
|
SuperName
|
|
|
|
TermArgItem
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
|
|
|
|
| WAIT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
XOrTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: XOR '(' {$$ = TrCreateLeafNode (XOR);}
|
2005-06-29 19:46:47 +04:00
|
|
|
TermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
TermArgItem
|
2005-06-29 19:37:15 +04:00
|
|
|
Target
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
|
|
|
|
| XOR '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
/******* Keywords *************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
ObjectTypeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: OBJECTTYPE_UNK {$$ = TrCreateLeafNode (OBJECTTYPE_UNK);}
|
|
|
|
| OBJECTTYPE_INT {$$ = TrCreateLeafNode (OBJECTTYPE_INT);}
|
|
|
|
| OBJECTTYPE_STR {$$ = TrCreateLeafNode (OBJECTTYPE_STR);}
|
|
|
|
| OBJECTTYPE_BUF {$$ = TrCreateLeafNode (OBJECTTYPE_BUF);}
|
|
|
|
| OBJECTTYPE_PKG {$$ = TrCreateLeafNode (OBJECTTYPE_PKG);}
|
|
|
|
| OBJECTTYPE_FLD {$$ = TrCreateLeafNode (OBJECTTYPE_FLD);}
|
|
|
|
| OBJECTTYPE_DEV {$$ = TrCreateLeafNode (OBJECTTYPE_DEV);}
|
|
|
|
| OBJECTTYPE_EVT {$$ = TrCreateLeafNode (OBJECTTYPE_EVT);}
|
|
|
|
| OBJECTTYPE_MTH {$$ = TrCreateLeafNode (OBJECTTYPE_MTH);}
|
|
|
|
| OBJECTTYPE_MTX {$$ = TrCreateLeafNode (OBJECTTYPE_MTX);}
|
|
|
|
| OBJECTTYPE_OPR {$$ = TrCreateLeafNode (OBJECTTYPE_OPR);}
|
|
|
|
| OBJECTTYPE_POW {$$ = TrCreateLeafNode (OBJECTTYPE_POW);}
|
|
|
|
| OBJECTTYPE_THZ {$$ = TrCreateLeafNode (OBJECTTYPE_THZ);}
|
|
|
|
| OBJECTTYPE_BFF {$$ = TrCreateLeafNode (OBJECTTYPE_BFF);}
|
|
|
|
| OBJECTTYPE_DDB {$$ = TrCreateLeafNode (OBJECTTYPE_DDB);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
AccessTypeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: ACCESSTYPE_ANY {$$ = TrCreateLeafNode (ACCESSTYPE_ANY);}
|
|
|
|
| ACCESSTYPE_BYTE {$$ = TrCreateLeafNode (ACCESSTYPE_BYTE);}
|
|
|
|
| ACCESSTYPE_WORD {$$ = TrCreateLeafNode (ACCESSTYPE_WORD);}
|
|
|
|
| ACCESSTYPE_DWORD {$$ = TrCreateLeafNode (ACCESSTYPE_DWORD);}
|
|
|
|
| ACCESSTYPE_QWORD {$$ = TrCreateLeafNode (ACCESSTYPE_QWORD);}
|
|
|
|
| ACCESSTYPE_BUF {$$ = TrCreateLeafNode (ACCESSTYPE_BUF);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
AccessAttribKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: ACCESSATTRIB_QUICK {$$ = TrCreateLeafNode (ACCESSATTRIB_QUICK );}
|
|
|
|
| ACCESSATTRIB_SND_RCV {$$ = TrCreateLeafNode (ACCESSATTRIB_SND_RCV);}
|
|
|
|
| ACCESSATTRIB_BYTE {$$ = TrCreateLeafNode (ACCESSATTRIB_BYTE);}
|
|
|
|
| ACCESSATTRIB_WORD {$$ = TrCreateLeafNode (ACCESSATTRIB_WORD);}
|
|
|
|
| ACCESSATTRIB_BLOCK {$$ = TrCreateLeafNode (ACCESSATTRIB_BLOCK);}
|
|
|
|
| ACCESSATTRIB_CALL {$$ = TrCreateLeafNode (ACCESSATTRIB_CALL);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
LockRuleKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: LOCKRULE_LOCK {$$ = TrCreateLeafNode (LOCKRULE_LOCK);}
|
|
|
|
| LOCKRULE_NOLOCK {$$ = TrCreateLeafNode (LOCKRULE_NOLOCK);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
UpdateRuleKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: UPDATERULE_PRESERVE {$$ = TrCreateLeafNode (UPDATERULE_PRESERVE);}
|
|
|
|
| UPDATERULE_ONES {$$ = TrCreateLeafNode (UPDATERULE_ONES);}
|
|
|
|
| UPDATERULE_ZEROS {$$ = TrCreateLeafNode (UPDATERULE_ZEROS);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
RegionSpaceKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: REGIONSPACE_IO {$$ = TrCreateLeafNode (REGIONSPACE_IO);}
|
|
|
|
| REGIONSPACE_MEM {$$ = TrCreateLeafNode (REGIONSPACE_MEM);}
|
|
|
|
| REGIONSPACE_PCI {$$ = TrCreateLeafNode (REGIONSPACE_PCI);}
|
|
|
|
| REGIONSPACE_EC {$$ = TrCreateLeafNode (REGIONSPACE_EC);}
|
|
|
|
| REGIONSPACE_SMBUS {$$ = TrCreateLeafNode (REGIONSPACE_SMBUS);}
|
|
|
|
| REGIONSPACE_CMOS {$$ = TrCreateLeafNode (REGIONSPACE_CMOS);}
|
|
|
|
| REGIONSPACE_PCIBAR {$$ = TrCreateLeafNode (REGIONSPACE_PCIBAR);}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
AddressSpaceKeyword
|
2005-06-29 19:51:44 +04:00
|
|
|
: ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
|
|
|
|
| RegionSpaceKeyword {}
|
2005-06-29 19:51:01 +04:00
|
|
|
| ADDRESSSPACE_FFIXEDHW {$$ = TrCreateLeafNode (ADDRESSSPACE_FFIXEDHW);}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
SerializeRuleKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: SERIALIZERULE_SERIAL {$$ = TrCreateLeafNode (SERIALIZERULE_SERIAL);}
|
|
|
|
| SERIALIZERULE_NOTSERIAL {$$ = TrCreateLeafNode (SERIALIZERULE_NOTSERIAL);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
MatchOpKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: MATCHTYPE_MTR {$$ = TrCreateLeafNode (MATCHTYPE_MTR);}
|
|
|
|
| MATCHTYPE_MEQ {$$ = TrCreateLeafNode (MATCHTYPE_MEQ);}
|
|
|
|
| MATCHTYPE_MLE {$$ = TrCreateLeafNode (MATCHTYPE_MLE);}
|
|
|
|
| MATCHTYPE_MLT {$$ = TrCreateLeafNode (MATCHTYPE_MLT);}
|
|
|
|
| MATCHTYPE_MGE {$$ = TrCreateLeafNode (MATCHTYPE_MGE);}
|
|
|
|
| MATCHTYPE_MGT {$$ = TrCreateLeafNode (MATCHTYPE_MGT);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:41:38 +04:00
|
|
|
DMATypeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: DMATYPE_A {$$ = TrCreateLeafNode (DMATYPE_A);}
|
|
|
|
| DMATYPE_COMPATIBILITY {$$ = TrCreateLeafNode (DMATYPE_COMPATIBILITY);}
|
|
|
|
| DMATYPE_B {$$ = TrCreateLeafNode (DMATYPE_B);}
|
|
|
|
| DMATYPE_F {$$ = TrCreateLeafNode (DMATYPE_F);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
BusMasterKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode (BUSMASTERTYPE_MASTER);}
|
|
|
|
| BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode (BUSMASTERTYPE_NOTMASTER);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:41:38 +04:00
|
|
|
XferTypeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: XFERTYPE_8 {$$ = TrCreateLeafNode (XFERTYPE_8);}
|
|
|
|
| XFERTYPE_8_16 {$$ = TrCreateLeafNode (XFERTYPE_8_16);}
|
|
|
|
| XFERTYPE_16 {$$ = TrCreateLeafNode (XFERTYPE_16);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ResourceTypeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: RESOURCETYPE_CONSUMER {$$ = TrCreateLeafNode (RESOURCETYPE_CONSUMER);}
|
|
|
|
| RESOURCETYPE_PRODUCER {$$ = TrCreateLeafNode (RESOURCETYPE_PRODUCER);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
MinKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: MINTYPE_FIXED {$$ = TrCreateLeafNode (MINTYPE_FIXED);}
|
|
|
|
| MINTYPE_NOTFIXED {$$ = TrCreateLeafNode (MINTYPE_NOTFIXED);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
MaxKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: MAXTYPE_FIXED {$$ = TrCreateLeafNode (MAXTYPE_FIXED);}
|
|
|
|
| MAXTYPE_NOTFIXED {$$ = TrCreateLeafNode (MAXTYPE_NOTFIXED);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
DecodeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: DECODETYPE_POS {$$ = TrCreateLeafNode (DECODETYPE_POS);}
|
|
|
|
| DECODETYPE_SUB {$$ = TrCreateLeafNode (DECODETYPE_SUB);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
RangeTypeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: RANGETYPE_ISAONLY {$$ = TrCreateLeafNode (RANGETYPE_ISAONLY);}
|
|
|
|
| RANGETYPE_NONISAONLY {$$ = TrCreateLeafNode (RANGETYPE_NONISAONLY);}
|
|
|
|
| RANGETYPE_ENTIRE {$$ = TrCreateLeafNode (RANGETYPE_ENTIRE);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
MemTypeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: MEMTYPE_CACHEABLE {$$ = TrCreateLeafNode (MEMTYPE_CACHEABLE);}
|
|
|
|
| MEMTYPE_WRITECOMBINING {$$ = TrCreateLeafNode (MEMTYPE_WRITECOMBINING);}
|
|
|
|
| MEMTYPE_PREFETCHABLE {$$ = TrCreateLeafNode (MEMTYPE_PREFETCHABLE);}
|
|
|
|
| MEMTYPE_NONCACHEABLE {$$ = TrCreateLeafNode (MEMTYPE_NONCACHEABLE);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ReadWriteKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: READWRITETYPE_BOTH {$$ = TrCreateLeafNode (READWRITETYPE_BOTH);}
|
|
|
|
| READWRITETYPE_READONLY {$$ = TrCreateLeafNode (READWRITETYPE_READONLY);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
InterruptTypeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: INTTYPE_EDGE {$$ = TrCreateLeafNode (INTTYPE_EDGE);}
|
|
|
|
| INTTYPE_LEVEL {$$ = TrCreateLeafNode (INTTYPE_LEVEL);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
InterruptLevel
|
2005-06-29 19:51:01 +04:00
|
|
|
: INTLEVEL_ACTIVEHIGH {$$ = TrCreateLeafNode (INTLEVEL_ACTIVEHIGH);}
|
|
|
|
| INTLEVEL_ACTIVELOW {$$ = TrCreateLeafNode (INTLEVEL_ACTIVELOW);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ShareTypeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: SHARETYPE_SHARED {$$ = TrCreateLeafNode (SHARETYPE_SHARED);}
|
|
|
|
| SHARETYPE_EXCLUSIVE {$$ = TrCreateLeafNode (SHARETYPE_EXCLUSIVE);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
IODecodeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: IODECODETYPE_16 {$$ = TrCreateLeafNode (IODECODETYPE_16);}
|
|
|
|
| IODECODETYPE_10 {$$ = TrCreateLeafNode (IODECODETYPE_10);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
TypeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: TYPE_TRANSLATION {$$ = TrCreateLeafNode (TYPE_TRANSLATION);}
|
|
|
|
| TYPE_STATIC {$$ = TrCreateLeafNode (TYPE_STATIC);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
TranslationKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: TRANSLATIONTYPE_SPARSE {$$ = TrCreateLeafNode (TRANSLATIONTYPE_SPARSE);}
|
|
|
|
| TRANSLATIONTYPE_DENSE {$$ = TrCreateLeafNode (TRANSLATIONTYPE_DENSE);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
AddressKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
: ADDRESSTYPE_MEMORY {$$ = TrCreateLeafNode (ADDRESSTYPE_MEMORY);}
|
|
|
|
| ADDRESSTYPE_RESERVED {$$ = TrCreateLeafNode (ADDRESSTYPE_RESERVED);}
|
|
|
|
| ADDRESSTYPE_NVS {$$ = TrCreateLeafNode (ADDRESSTYPE_NVS);}
|
|
|
|
| ADDRESSTYPE_ACPI {$$ = TrCreateLeafNode (ADDRESSTYPE_ACPI);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
|
|
|
|
/******* Miscellaneous Types **************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
SuperName
|
2005-06-29 19:51:01 +04:00
|
|
|
: NameString {}
|
|
|
|
| ArgTerm {}
|
|
|
|
| LocalTerm {}
|
|
|
|
| DebugTerm {}
|
|
|
|
| Type6Opcode {}
|
|
|
|
/* | UserTerm {} */ /* Caused reduce/reduce with Type6Opcode->UserTerm */
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ArgTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: ARG0 {$$ = TrCreateLeafNode (ARG0);}
|
|
|
|
| ARG1 {$$ = TrCreateLeafNode (ARG1);}
|
|
|
|
| ARG2 {$$ = TrCreateLeafNode (ARG2);}
|
|
|
|
| ARG3 {$$ = TrCreateLeafNode (ARG3);}
|
|
|
|
| ARG4 {$$ = TrCreateLeafNode (ARG4);}
|
|
|
|
| ARG5 {$$ = TrCreateLeafNode (ARG5);}
|
|
|
|
| ARG6 {$$ = TrCreateLeafNode (ARG6);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
LocalTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: LOCAL0 {$$ = TrCreateLeafNode (LOCAL0);}
|
|
|
|
| LOCAL1 {$$ = TrCreateLeafNode (LOCAL1);}
|
|
|
|
| LOCAL2 {$$ = TrCreateLeafNode (LOCAL2);}
|
|
|
|
| LOCAL3 {$$ = TrCreateLeafNode (LOCAL3);}
|
|
|
|
| LOCAL4 {$$ = TrCreateLeafNode (LOCAL4);}
|
|
|
|
| LOCAL5 {$$ = TrCreateLeafNode (LOCAL5);}
|
|
|
|
| LOCAL6 {$$ = TrCreateLeafNode (LOCAL6);}
|
|
|
|
| LOCAL7 {$$ = TrCreateLeafNode (LOCAL7);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
DebugTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: DEBUG {$$ = TrCreateLeafNode (DEBUG);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:39:58 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
ByteConst
|
2005-06-29 19:51:01 +04:00
|
|
|
: Integer {$$ = TrUpdateNode (BYTECONST, $1);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
WordConst
|
2005-06-29 19:51:01 +04:00
|
|
|
: Integer {$$ = TrUpdateNode (WORDCONST, $1);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
DWordConst
|
|
|
|
: Integer {$$ = TrUpdateNode (DWORDCONST, $1);}
|
2005-06-29 19:39:58 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
QWordConst
|
|
|
|
: Integer {$$ = TrUpdateNode (QWORDCONST, $1);}
|
2005-06-29 19:44:46 +04:00
|
|
|
;
|
2005-06-29 19:42:40 +04:00
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
Integer
|
|
|
|
: INTEGER {$$ = TrCreateValuedLeafNode (INTEGER, AslCompilerlval.i);}
|
2005-06-29 19:47:08 +04:00
|
|
|
;
|
2005-06-29 19:46:47 +04:00
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
String
|
2005-06-29 19:52:18 +04:00
|
|
|
: STRING_LITERAL {$$ = TrCreateValuedLeafNode (STRING_LITERAL, (NATIVE_INT) AslCompilerlval.s);}
|
2005-06-29 19:51:01 +04:00
|
|
|
;
|
2005-06-29 19:48:46 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
ConstTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: ConstExprTerm {}
|
|
|
|
| REVISION {$$ = TrCreateLeafNode (REVISION);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ByteConstExpr
|
2005-06-29 19:51:01 +04:00
|
|
|
: Type3Opcode {$$ = TrUpdateNode (BYTECONST, $1);}
|
|
|
|
| Type2IntegerOpcode {$$ = TrUpdateNode (BYTECONST, $1);}
|
|
|
|
| ConstExprTerm {$$ = TrUpdateNode (BYTECONST, $1);}
|
|
|
|
| ByteConst {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:41:33 +04:00
|
|
|
WordConstExpr
|
2005-06-29 19:51:01 +04:00
|
|
|
: Type3Opcode {$$ = TrUpdateNode (WORDCONST, $1);}
|
|
|
|
| Type2IntegerOpcode {$$ = TrUpdateNode (WORDCONST, $1);}
|
|
|
|
| ConstExprTerm {$$ = TrUpdateNode (WORDCONST, $1);}
|
|
|
|
| WordConst {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:41:33 +04:00
|
|
|
DWordConstExpr
|
2005-06-29 19:51:01 +04:00
|
|
|
: Type3Opcode {$$ = TrUpdateNode (DWORDCONST, $1);}
|
|
|
|
| Type2IntegerOpcode {$$ = TrUpdateNode (DWORDCONST, $1);}
|
|
|
|
| ConstExprTerm {$$ = TrUpdateNode (DWORDCONST, $1);}
|
|
|
|
| DWordConst {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:41:43 +04:00
|
|
|
QWordConstExpr
|
2005-06-29 19:51:01 +04:00
|
|
|
: Type3Opcode {$$ = TrUpdateNode (QWORDCONST, $1);}
|
|
|
|
| Type2IntegerOpcode {$$ = TrUpdateNode (QWORDCONST, $1);}
|
|
|
|
| ConstExprTerm {$$ = TrUpdateNode (QWORDCONST, $1);}
|
|
|
|
| QWordConst {}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
ConstExprTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: ZERO {$$ = TrCreateLeafNode (ZERO);}
|
|
|
|
| ONE {$$ = TrCreateLeafNode (ONE);}
|
|
|
|
| ONES {$$ = TrCreateLeafNode (ONES);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:52:06 +04:00
|
|
|
/* OptionalCount must appear before ByteList or an incorrect reduction will result */
|
|
|
|
|
|
|
|
OptionalCount
|
|
|
|
: {$$ = TrCreateLeafNode (ONES);} /* Placeholder is a OnesOp object */
|
|
|
|
| ',' {$$ = TrCreateLeafNode (ONES);} /* Placeholder is a OnesOp object */
|
|
|
|
| ',' TermArg {$$ = $2;}
|
|
|
|
;
|
|
|
|
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
BufferTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: BUFFER '(' {$$ = TrCreateLeafNode (BUFFER);}
|
2005-06-29 19:37:15 +04:00
|
|
|
OptionalTermArg
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
|
|
|
BufferData '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
|
|
|
| BUFFER '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
BufferData
|
2005-06-29 19:51:01 +04:00
|
|
|
: ByteList {}
|
|
|
|
| StringData {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ByteList
|
2005-06-29 19:52:06 +04:00
|
|
|
: {$$ = NULL;}
|
2005-06-29 19:51:01 +04:00
|
|
|
| ByteConstExpr
|
|
|
|
ByteListTail {$$ = TrLinkPeerNode ($1,$2);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ByteListTail
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;} /* Allows a trailing comma at list end */
|
|
|
|
| ',' ByteConstExpr
|
|
|
|
ByteListTail {$$ = TrLinkPeerNode ($2,$3);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:41:43 +04:00
|
|
|
DWordList
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| DWordConstExpr
|
|
|
|
DWordListTail {$$ = TrLinkPeerNode ($1,$2);}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
DWordListTail
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;} /* Allows a trailing comma at list end */
|
|
|
|
| ',' DWordConstExpr
|
|
|
|
DWordListTail {$$ = TrLinkPeerNode ($2,$3);}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
PackageTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: PACKAGE '(' {$$ = TrCreateLeafNode (PACKAGE);}
|
2005-06-29 19:37:15 +04:00
|
|
|
PackageLengthTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
|
|
|
PackageList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
2005-06-29 19:52:14 +04:00
|
|
|
| PACKAGE '(' {$$ = TrCreateLeafNode (VAR_PACKAGE);}
|
|
|
|
VarPackageLengthTerm
|
|
|
|
')' '{'
|
|
|
|
PackageList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
2005-06-29 19:51:01 +04:00
|
|
|
| PACKAGE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
PackageLengthTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| ByteConstExpr {}
|
2005-06-29 19:52:14 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
VarPackageLengthTerm
|
|
|
|
: TermArg {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
PackageList
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| PackageElement
|
|
|
|
PackageListTail {$$ = TrLinkPeerNode ($1,$2);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
PackageListTail
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;} /* Allows a trailing comma at list end */
|
|
|
|
| ',' PackageElement
|
|
|
|
PackageListTail {$$ = TrLinkPeerNode ($2,$3);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
PackageElement
|
2005-06-29 19:51:01 +04:00
|
|
|
: DataObject {}
|
|
|
|
| NameString {}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
EISAIDTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: EISAID '('
|
|
|
|
StringData ')' {$$ = TrUpdateNode (EISAID, $3);}
|
|
|
|
| EISAID '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
/******* Resources and Memory ***********************************************/
|
|
|
|
|
|
|
|
|
|
|
|
ResourceTemplateTerm
|
|
|
|
: RESOURCETEMPLATE '(' ')'
|
2005-06-29 19:51:01 +04:00
|
|
|
'{'
|
|
|
|
ResourceMacroList '}' {$$ = TrCreateNode (RESOURCETEMPLATE,3,
|
|
|
|
TrCreateLeafNode (DEFAULT_ARG),
|
|
|
|
TrCreateLeafNode (DEFAULT_ARG),$5);}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
UnicodeTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: UNICODE '(' {$$ = TrCreateLeafNode (UNICODE);}
|
2005-06-29 19:41:43 +04:00
|
|
|
StringData
|
2005-06-29 19:51:01 +04:00
|
|
|
')' {$$ = TrLinkChildren ($<n>3,2,0,$4);}
|
|
|
|
| UNICODE '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
ResourceMacroList
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| ResourceMacroTerm
|
|
|
|
ResourceMacroList {$$ = TrLinkPeerNode ($1,$2);}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:41:33 +04:00
|
|
|
ResourceMacroTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: DMATerm {}
|
|
|
|
| DWordIOTerm {}
|
|
|
|
| DWordMemoryTerm {}
|
|
|
|
| EndDependentFnTerm {}
|
|
|
|
| FixedIOTerm {}
|
|
|
|
| InterruptTerm {}
|
|
|
|
| IOTerm {}
|
|
|
|
| IRQNoFlagsTerm {}
|
|
|
|
| IRQTerm {}
|
|
|
|
| Memory24Term {}
|
|
|
|
| Memory32FixedTerm {}
|
|
|
|
| Memory32Term {}
|
|
|
|
| QWordIOTerm {}
|
|
|
|
| QWordMemoryTerm {}
|
|
|
|
| RegisterTerm {}
|
|
|
|
| StartDependentFnTerm {}
|
|
|
|
| StartDependentFnNoPriTerm {}
|
|
|
|
| VendorLongTerm {}
|
|
|
|
| VendorShortTerm {}
|
|
|
|
| WordBusNumberTerm {}
|
|
|
|
| WordIOTerm {}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
DMATerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: DMA '(' {$$ = TrCreateLeafNode (DMA);}
|
|
|
|
DMATypeKeyword
|
|
|
|
',' BusMasterKeyword
|
|
|
|
',' XferTypeKeyword
|
|
|
|
OptionalNameString_Last
|
2005-06-29 19:41:43 +04:00
|
|
|
')' '{'
|
2005-06-29 19:51:01 +04:00
|
|
|
ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$9,$12);}
|
|
|
|
| DMA '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
2005-06-29 19:40:01 +04:00
|
|
|
|
2005-06-29 19:41:43 +04:00
|
|
|
DWordIOTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: DWORDIO '(' {$$ = TrCreateLeafNode (DWORDIO);}
|
|
|
|
OptionalResourceType_First
|
2005-06-29 19:41:43 +04:00
|
|
|
OptionalMinType
|
|
|
|
OptionalMaxType
|
|
|
|
OptionalDecodeType
|
2005-06-29 19:46:47 +04:00
|
|
|
OptionalRangeType
|
2005-06-29 19:51:01 +04:00
|
|
|
',' DWordConstExpr
|
|
|
|
',' DWordConstExpr
|
|
|
|
',' DWordConstExpr
|
|
|
|
',' DWordConstExpr
|
|
|
|
',' DWordConstExpr
|
2005-06-29 19:41:43 +04:00
|
|
|
OptionalByteConstExpr
|
|
|
|
OptionalStringData
|
|
|
|
OptionalNameString
|
|
|
|
OptionalType
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalTranslationType_Last
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
|
|
|
|
| DWORDIO '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
DWordMemoryTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: DWORDMEMORY '(' {$$ = TrCreateLeafNode (DWORDMEMORY);}
|
|
|
|
OptionalResourceType_First
|
2005-06-29 19:41:43 +04:00
|
|
|
OptionalDecodeType
|
|
|
|
OptionalMinType
|
|
|
|
OptionalMaxType
|
2005-06-29 19:46:47 +04:00
|
|
|
OptionalMemType
|
2005-06-29 19:51:01 +04:00
|
|
|
',' ReadWriteKeyword
|
|
|
|
',' DWordConstExpr
|
|
|
|
',' DWordConstExpr
|
|
|
|
',' DWordConstExpr
|
|
|
|
',' DWordConstExpr
|
|
|
|
',' DWordConstExpr
|
2005-06-29 19:41:43 +04:00
|
|
|
OptionalByteConstExpr
|
|
|
|
OptionalStringData
|
|
|
|
OptionalNameString
|
|
|
|
OptionalAddressRange
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalType_Last
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
|
|
|
|
| DWORDMEMORY '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
EndDependentFnTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: ENDDEPENDENTFN '('
|
|
|
|
')' {$$ = TrCreateLeafNode (ENDDEPENDENTFN);}
|
|
|
|
| ENDDEPENDENTFN '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
FixedIOTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: FIXEDIO '(' {$$ = TrCreateLeafNode (FIXEDIO);}
|
|
|
|
WordConstExpr
|
|
|
|
',' ByteConstExpr
|
|
|
|
OptionalNameString_Last
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
|
|
|
|
| FIXEDIO '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
InterruptTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: INTERRUPT '(' {$$ = TrCreateLeafNode (INTERRUPT);}
|
|
|
|
OptionalResourceType_First
|
2005-06-29 19:51:44 +04:00
|
|
|
',' InterruptTypeKeyword
|
2005-06-29 19:51:01 +04:00
|
|
|
',' InterruptLevel
|
|
|
|
OptionalShareType
|
2005-06-29 19:41:43 +04:00
|
|
|
OptionalByteConstExpr
|
|
|
|
OptionalStringData
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalNameString_Last
|
2005-06-29 19:41:43 +04:00
|
|
|
')' '{'
|
2005-06-29 19:51:44 +04:00
|
|
|
DWordList '}' {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
|
2005-06-29 19:51:01 +04:00
|
|
|
| INTERRUPT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
2005-06-29 19:41:38 +04:00
|
|
|
|
|
|
|
IOTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: IO '(' {$$ = TrCreateLeafNode (IO);}
|
|
|
|
IODecodeKeyword
|
|
|
|
',' WordConstExpr
|
|
|
|
',' WordConstExpr
|
|
|
|
',' ByteConstExpr
|
|
|
|
',' ByteConstExpr
|
|
|
|
OptionalNameString_Last
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
|
|
|
|
| IO '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
2005-06-29 19:40:01 +04:00
|
|
|
|
2005-06-29 19:41:43 +04:00
|
|
|
IRQNoFlagsTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: IRQNOFLAGS '(' {$$ = TrCreateLeafNode (IRQNOFLAGS);}
|
2005-06-29 19:49:12 +04:00
|
|
|
OptionalNameString_First
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
|
|
|
ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
|
|
|
| IRQNOFLAGS '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
IRQTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: IRQ '(' {$$ = TrCreateLeafNode (IRQ);}
|
|
|
|
InterruptTypeKeyword
|
|
|
|
',' InterruptLevel
|
|
|
|
OptionalShareType
|
|
|
|
OptionalNameString_Last
|
|
|
|
')' '{'
|
|
|
|
ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
|
|
|
|
| IRQ '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
Memory24Term
|
2005-06-29 19:51:01 +04:00
|
|
|
: MEMORY24 '(' {$$ = TrCreateLeafNode (MEMORY24);}
|
|
|
|
ReadWriteKeyword
|
|
|
|
',' WordConstExpr
|
|
|
|
',' WordConstExpr
|
|
|
|
',' WordConstExpr
|
|
|
|
',' WordConstExpr
|
|
|
|
OptionalNameString_Last
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
|
|
|
|
| MEMORY24 '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
Memory32FixedTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: MEMORY32FIXED '(' {$$ = TrCreateLeafNode (MEMORY32FIXED);}
|
|
|
|
ReadWriteKeyword
|
|
|
|
',' DWordConstExpr
|
|
|
|
',' DWordConstExpr
|
|
|
|
OptionalNameString_Last
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
|
|
|
|
| MEMORY32FIXED '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
Memory32Term
|
2005-06-29 19:51:01 +04:00
|
|
|
: MEMORY32 '(' {$$ = TrCreateLeafNode (MEMORY32);}
|
|
|
|
ReadWriteKeyword
|
|
|
|
',' DWordConstExpr
|
|
|
|
',' DWordConstExpr
|
|
|
|
',' DWordConstExpr
|
|
|
|
',' DWordConstExpr
|
|
|
|
OptionalNameString_Last
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
|
|
|
|
| MEMORY32 '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
QWordIOTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: QWORDIO '(' {$$ = TrCreateLeafNode (QWORDIO);}
|
|
|
|
OptionalResourceType_First
|
2005-06-29 19:41:43 +04:00
|
|
|
OptionalMinType
|
|
|
|
OptionalMaxType
|
|
|
|
OptionalDecodeType
|
2005-06-29 19:46:47 +04:00
|
|
|
OptionalRangeType
|
2005-06-29 19:51:01 +04:00
|
|
|
',' QWordConstExpr
|
|
|
|
',' QWordConstExpr
|
|
|
|
',' QWordConstExpr
|
|
|
|
',' QWordConstExpr
|
|
|
|
',' QWordConstExpr
|
2005-06-29 19:41:43 +04:00
|
|
|
OptionalByteConstExpr
|
|
|
|
OptionalStringData
|
|
|
|
OptionalNameString
|
|
|
|
OptionalType
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalTranslationType_Last
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
|
|
|
|
| QWORDIO '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
QWordMemoryTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: QWORDMEMORY '(' {$$ = TrCreateLeafNode (QWORDMEMORY);}
|
|
|
|
OptionalResourceType_First
|
2005-06-29 19:41:43 +04:00
|
|
|
OptionalDecodeType
|
|
|
|
OptionalMinType
|
|
|
|
OptionalMaxType
|
2005-06-29 19:46:47 +04:00
|
|
|
OptionalMemType
|
2005-06-29 19:51:01 +04:00
|
|
|
',' ReadWriteKeyword
|
|
|
|
',' QWordConstExpr
|
|
|
|
',' QWordConstExpr
|
|
|
|
',' QWordConstExpr
|
|
|
|
',' QWordConstExpr
|
|
|
|
',' QWordConstExpr
|
2005-06-29 19:41:43 +04:00
|
|
|
OptionalByteConstExpr
|
|
|
|
OptionalStringData
|
|
|
|
OptionalNameString
|
|
|
|
OptionalAddressRange
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalType_Last
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
|
|
|
|
| QWORDMEMORY '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
RegisterTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: REGISTER '(' {$$ = TrCreateLeafNode (REGISTER);}
|
|
|
|
AddressSpaceKeyword
|
|
|
|
',' ByteConstExpr
|
|
|
|
',' ByteConstExpr
|
|
|
|
',' QWordConstExpr
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$10);}
|
|
|
|
| REGISTER '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
StartDependentFnTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: STARTDEPENDENTFN '(' {$$ = TrCreateLeafNode (STARTDEPENDENTFN);}
|
2005-06-29 19:49:12 +04:00
|
|
|
ByteConstExpr
|
2005-06-29 19:51:01 +04:00
|
|
|
',' ByteConstExpr
|
|
|
|
')' '{'
|
|
|
|
ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
|
|
|
|
| STARTDEPENDENTFN '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
2005-06-29 19:51:01 +04:00
|
|
|
|
2005-06-29 19:41:43 +04:00
|
|
|
StartDependentFnNoPriTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: STARTDEPENDENTFN_NOPRI '(' {$$ = TrCreateLeafNode (STARTDEPENDENTFN_NOPRI);}
|
|
|
|
')' '{'
|
|
|
|
ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);}
|
|
|
|
| STARTDEPENDENTFN_NOPRI '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
2005-06-29 19:51:01 +04:00
|
|
|
|
2005-06-29 19:41:43 +04:00
|
|
|
VendorLongTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: VENDORLONG '(' {$$ = TrCreateLeafNode (VENDORLONG);}
|
2005-06-29 19:49:12 +04:00
|
|
|
OptionalNameString_First
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
|
|
|
ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
|
|
|
| VENDORLONG '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
2005-06-29 19:51:01 +04:00
|
|
|
|
2005-06-29 19:41:43 +04:00
|
|
|
VendorShortTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: VENDORSHORT '(' {$$ = TrCreateLeafNode (VENDORSHORT);}
|
2005-06-29 19:49:12 +04:00
|
|
|
OptionalNameString_First
|
2005-06-29 19:51:01 +04:00
|
|
|
')' '{'
|
|
|
|
ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
|
|
|
|
| VENDORSHORT '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
2005-06-29 19:51:01 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
WordBusNumberTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: WORDBUSNUMBER '(' {$$ = TrCreateLeafNode (WORDBUSNUMBER);}
|
|
|
|
OptionalResourceType_First
|
2005-06-29 19:41:38 +04:00
|
|
|
OptionalMinType
|
|
|
|
OptionalMaxType
|
2005-06-29 19:46:47 +04:00
|
|
|
OptionalDecodeType
|
2005-06-29 19:51:01 +04:00
|
|
|
',' WordConstExpr
|
|
|
|
',' WordConstExpr
|
|
|
|
',' WordConstExpr
|
|
|
|
',' WordConstExpr
|
|
|
|
',' WordConstExpr
|
2005-06-29 19:41:38 +04:00
|
|
|
OptionalByteConstExpr
|
|
|
|
OptionalStringData
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalNameString_Last
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
|
|
|
|
| WORDBUSNUMBER '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:37:15 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:41:43 +04:00
|
|
|
WordIOTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: WORDIO '(' {$$ = TrCreateLeafNode (WORDIO);}
|
|
|
|
OptionalResourceType_First
|
2005-06-29 19:41:43 +04:00
|
|
|
OptionalMinType
|
|
|
|
OptionalMaxType
|
|
|
|
OptionalDecodeType
|
2005-06-29 19:46:47 +04:00
|
|
|
OptionalRangeType
|
2005-06-29 19:51:01 +04:00
|
|
|
',' WordConstExpr
|
|
|
|
',' WordConstExpr
|
|
|
|
',' WordConstExpr
|
|
|
|
',' WordConstExpr
|
|
|
|
',' WordConstExpr
|
2005-06-29 19:41:43 +04:00
|
|
|
OptionalByteConstExpr
|
|
|
|
OptionalStringData
|
|
|
|
OptionalNameString
|
|
|
|
OptionalType
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalTranslationType_Last
|
|
|
|
')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
|
|
|
|
| WORDIO '('
|
|
|
|
error ')' {$$ = AslDoError(); yyerrok;}
|
2005-06-29 19:39:47 +04:00
|
|
|
;
|
2005-06-29 19:37:15 +04:00
|
|
|
|
2005-06-29 19:39:58 +04:00
|
|
|
|
2005-06-29 19:41:37 +04:00
|
|
|
/******* Object References ***********************************************/
|
|
|
|
|
|
|
|
|
2005-06-29 19:41:33 +04:00
|
|
|
NameString
|
2005-06-29 19:51:01 +04:00
|
|
|
: NameSeg {}
|
2005-06-29 19:52:18 +04:00
|
|
|
| NAMESTRING {$$ = TrCreateValuedLeafNode (NAMESTRING, (NATIVE_INT) AslCompilerlval.s);}
|
2005-06-29 19:46:47 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
NameSeg
|
2005-06-29 19:52:18 +04:00
|
|
|
: NAMESEG {$$ = TrCreateValuedLeafNode (NAMESEG, (NATIVE_INT) AslCompilerlval.s);}
|
2005-06-29 19:46:47 +04:00
|
|
|
;
|
|
|
|
|
|
|
|
|
2005-06-29 19:48:46 +04:00
|
|
|
/******* Helper rules ****************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
AmlPackageLengthTerm
|
2005-06-29 19:51:01 +04:00
|
|
|
: Integer {$$ = TrUpdateNode (PACKAGE_LENGTH,(ASL_PARSE_NODE *) $1);}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalAccessAttribTerm
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;}
|
|
|
|
| ',' ByteConstExpr {$$ = $2;}
|
|
|
|
| ',' AccessAttribKeyword {$$ = $2;}
|
2005-06-29 19:47:08 +04:00
|
|
|
;
|
2005-06-29 19:46:47 +04:00
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalAddressRange
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;}
|
|
|
|
| ',' AddressKeyword {$$ = $2;}
|
2005-06-29 19:47:08 +04:00
|
|
|
;
|
2005-06-29 19:46:47 +04:00
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalByteConstExpr
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;}
|
|
|
|
| ',' ByteConstExpr {$$ = $2;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalDecodeType
|
|
|
|
: ',' {$$ = NULL;}
|
|
|
|
| ',' DecodeKeyword {$$ = $2;}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalDWordConstExpr
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;}
|
|
|
|
| ',' DWordConstExpr {$$ = $2;}
|
2005-06-29 19:44:46 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalListTermArg
|
2005-06-29 19:51:44 +04:00
|
|
|
: {$$ = TrCreateLeafNode (ZERO);} /* Placeholder is a ZeroOp object */
|
|
|
|
| ',' {$$ = TrCreateLeafNode (ZERO);} /* Placeholder is a ZeroOp object */
|
2005-06-29 19:51:01 +04:00
|
|
|
| ',' TermArg {$$ = $2;}
|
|
|
|
;
|
2005-06-29 19:48:46 +04:00
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalMaxType
|
|
|
|
: ',' {$$ = NULL;}
|
|
|
|
| ',' MaxKeyword {$$ = $2;}
|
|
|
|
;
|
2005-06-29 19:48:46 +04:00
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalMemType
|
|
|
|
: ',' {$$ = NULL;}
|
|
|
|
| ',' MemTypeKeyword {$$ = $2;}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalMinType
|
|
|
|
: ',' {$$ = NULL;}
|
|
|
|
| ',' MinKeyword {$$ = $2;}
|
2005-06-29 19:44:24 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalNameString
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;}
|
|
|
|
| ',' NameString {$$ = $2;}
|
2005-06-29 19:47:08 +04:00
|
|
|
;
|
2005-06-29 19:44:24 +04:00
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalNameString_Last
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;}
|
|
|
|
| ',' NameString {$$ = $2;}
|
2005-06-29 19:39:59 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:49:12 +04:00
|
|
|
OptionalNameString_First
|
2005-06-29 19:51:01 +04:00
|
|
|
: {$$ = NULL;}
|
|
|
|
| NameString {$$ = $1;}
|
2005-06-29 19:49:12 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:44 +04:00
|
|
|
OptionalObjectTypeKeyword
|
|
|
|
: {$$ = TrCreateLeafNode (OBJECTTYPE_UNK);}
|
|
|
|
| ',' ObjectTypeKeyword {$$ = $2;}
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalRangeType
|
|
|
|
: ',' {$$ = NULL;}
|
|
|
|
| ',' RangeTypeKeyword {$$ = $2;}
|
|
|
|
;
|
2005-06-29 19:49:12 +04:00
|
|
|
|
2005-06-29 19:51:44 +04:00
|
|
|
OptionalReference
|
|
|
|
: {$$ = TrCreateLeafNode (ZERO);} /* Placeholder is a ZeroOp object */
|
|
|
|
| ',' {$$ = TrCreateLeafNode (ZERO);} /* Placeholder is a ZeroOp object */
|
|
|
|
| ',' DataObject {$$ = $2;}
|
|
|
|
| ',' NameString {$$ = $2;}
|
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalResourceType_First
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ResourceTypeKeyword {$$ = $1;}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalSerializeRuleKeyword
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;}
|
|
|
|
| ',' SerializeRuleKeyword {$$ = $2;}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalShareType
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;}
|
|
|
|
| ',' ShareTypeKeyword {$$ = $2;}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalStringData
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;}
|
|
|
|
| ',' StringData {$$ = $2;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalTermArg
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| TermArg {$$ = $1;}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalType
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;}
|
|
|
|
| ',' TypeKeyword {$$ = $2;}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalType_Last
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;}
|
|
|
|
| ',' TypeKeyword {$$ = $2;}
|
2005-06-29 19:41:43 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
OptionalTranslationType_Last
|
|
|
|
: {$$ = NULL;}
|
|
|
|
| ',' {$$ = NULL;}
|
|
|
|
| ',' TranslationKeyword {$$ = $2;}
|
2005-06-29 19:48:46 +04:00
|
|
|
;
|
2005-06-29 19:47:08 +04:00
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
|
|
|
|
TermArgItem
|
|
|
|
: ',' TermArg {$$ = $2;}
|
|
|
|
| ',' error {$$ = AslDoError (); yyerrok;}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
NameStringItem
|
|
|
|
: ',' NameString {$$ = $2;}
|
|
|
|
| ',' error {$$ = AslDoError (); yyerrok;}
|
2005-06-29 19:41:38 +04:00
|
|
|
;
|
2005-06-29 19:39:59 +04:00
|
|
|
|
2005-06-29 19:41:35 +04:00
|
|
|
|
2005-06-29 19:37:15 +04:00
|
|
|
%%
|
|
|
|
|
|
|
|
/* programs */
|
|
|
|
|
|
|
|
int
|
2005-06-29 19:51:21 +04:00
|
|
|
AslCompilerwrap(void)
|
2005-06-29 19:37:15 +04:00
|
|
|
{
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2005-06-29 19:49:30 +04:00
|
|
|
void *
|
|
|
|
AslLocalAllocate (unsigned int Size)
|
|
|
|
{
|
|
|
|
void *Mem;
|
|
|
|
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
DbgPrint (ASL_PARSE_OUTPUT, "\nAslLocalAllocate: Expanding Stack to %d\n\n", Size);
|
2005-06-29 19:49:30 +04:00
|
|
|
|
2005-06-29 19:51:56 +04:00
|
|
|
Mem = ACPI_MEM_CALLOCATE (Size);
|
2005-06-29 19:49:30 +04:00
|
|
|
if (!Mem)
|
|
|
|
{
|
2005-06-29 19:51:31 +04:00
|
|
|
AslCommonError (ASL_ERROR, ASL_MSG_MEMORY_ALLOCATION,
|
|
|
|
Gbl_CurrentLineNumber, Gbl_LogicalLineNumber,
|
2005-06-29 19:51:21 +04:00
|
|
|
Gbl_InputByteCount, Gbl_CurrentColumn,
|
|
|
|
Gbl_Files[ASL_FILE_INPUT].Filename, NULL);
|
2005-06-29 19:49:30 +04:00
|
|
|
exit (1);
|
|
|
|
}
|
|
|
|
|
|
|
|
return (Mem);
|
|
|
|
}
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
ASL_PARSE_NODE *
|
|
|
|
AslDoError (void)
|
|
|
|
{
|
2005-06-29 19:37:15 +04:00
|
|
|
|
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
return (TrCreateLeafNode (ERRORNODE));
|
2005-06-29 19:41:33 +04:00
|
|
|
|
2005-06-29 19:51:01 +04:00
|
|
|
}
|