1288425SjkimNoEcho('
2288425Sjkim/******************************************************************************
3288425Sjkim *
4288425Sjkim * Module Name: aslresources.y - Bison/Yacc production rules for resources
5288425Sjkim *
6288425Sjkim *****************************************************************************/
7288425Sjkim
8288425Sjkim/*
9298714Sjkim * Copyright (C) 2000 - 2016, Intel Corp.
10288425Sjkim * All rights reserved.
11288425Sjkim *
12288425Sjkim * Redistribution and use in source and binary forms, with or without
13288425Sjkim * modification, are permitted provided that the following conditions
14288425Sjkim * are met:
15288425Sjkim * 1. Redistributions of source code must retain the above copyright
16288425Sjkim *    notice, this list of conditions, and the following disclaimer,
17288425Sjkim *    without modification.
18288425Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19288425Sjkim *    substantially similar to the "NO WARRANTY" disclaimer below
20288425Sjkim *    ("Disclaimer") and any redistribution must be conditioned upon
21288425Sjkim *    including a substantially similar Disclaimer requirement for further
22288425Sjkim *    binary redistribution.
23288425Sjkim * 3. Neither the names of the above-listed copyright holders nor the names
24288425Sjkim *    of any contributors may be used to endorse or promote products derived
25288425Sjkim *    from this software without specific prior written permission.
26288425Sjkim *
27288425Sjkim * Alternatively, this software may be distributed under the terms of the
28288425Sjkim * GNU General Public License ("GPL") version 2 as published by the Free
29288425Sjkim * Software Foundation.
30288425Sjkim *
31288425Sjkim * NO WARRANTY
32288425Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33288425Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34288425Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35288425Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36288425Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37288425Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38288425Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39288425Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40288425Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41288425Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42288425Sjkim * POSSIBILITY OF SUCH DAMAGES.
43288425Sjkim */
44288425Sjkim
45288425Sjkim')
46288425Sjkim
47288425Sjkim/*******************************************************************************
48288425Sjkim *
49288425Sjkim * ASL Parameter Keyword Terms
50288425Sjkim *
51288425Sjkim ******************************************************************************/
52288425Sjkim
53288425SjkimAccessAttribKeyword
54288425Sjkim    : PARSEOP_ACCESSATTRIB_BLOCK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
55288425Sjkim    | PARSEOP_ACCESSATTRIB_BLOCK_CALL       {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
56288425Sjkim    | PARSEOP_ACCESSATTRIB_BYTE             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
57288425Sjkim    | PARSEOP_ACCESSATTRIB_QUICK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
58288425Sjkim    | PARSEOP_ACCESSATTRIB_SND_RCV          {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
59288425Sjkim    | PARSEOP_ACCESSATTRIB_WORD             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
60288425Sjkim    | PARSEOP_ACCESSATTRIB_WORD_CALL        {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
61288425Sjkim    | PARSEOP_ACCESSATTRIB_MULTIBYTE '('    {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_MULTIBYTE);}
62288425Sjkim        ByteConst
63288425Sjkim        ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
64288425Sjkim    | PARSEOP_ACCESSATTRIB_RAW_BYTES '('    {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_BYTES);}
65288425Sjkim        ByteConst
66288425Sjkim        ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
67288425Sjkim    | PARSEOP_ACCESSATTRIB_RAW_PROCESS '('  {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_PROCESS);}
68288425Sjkim        ByteConst
69288425Sjkim        ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
70288425Sjkim    ;
71288425Sjkim
72288425SjkimAccessTypeKeyword
73288425Sjkim    : PARSEOP_ACCESSTYPE_ANY                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
74288425Sjkim    | PARSEOP_ACCESSTYPE_BYTE               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
75288425Sjkim    | PARSEOP_ACCESSTYPE_WORD               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
76288425Sjkim    | PARSEOP_ACCESSTYPE_DWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
77288425Sjkim    | PARSEOP_ACCESSTYPE_QWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
78288425Sjkim    | PARSEOP_ACCESSTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
79288425Sjkim    ;
80288425Sjkim
81288425SjkimAddressingModeKeyword
82288425Sjkim    : PARSEOP_ADDRESSINGMODE_7BIT           {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_7BIT);}
83288425Sjkim    | PARSEOP_ADDRESSINGMODE_10BIT          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_10BIT);}
84288425Sjkim    ;
85288425Sjkim
86288425SjkimAddressKeyword
87288425Sjkim    : PARSEOP_ADDRESSTYPE_MEMORY            {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
88288425Sjkim    | PARSEOP_ADDRESSTYPE_RESERVED          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
89288425Sjkim    | PARSEOP_ADDRESSTYPE_NVS               {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
90288425Sjkim    | PARSEOP_ADDRESSTYPE_ACPI              {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
91288425Sjkim    ;
92288425Sjkim
93288425SjkimAddressSpaceKeyword
94288425Sjkim    : ByteConst                             {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);}
95288425Sjkim    | RegionSpaceKeyword                    {}
96288425Sjkim    ;
97288425Sjkim
98288425SjkimBitsPerByteKeyword
99288425Sjkim    : PARSEOP_BITSPERBYTE_FIVE              {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_FIVE);}
100288425Sjkim    | PARSEOP_BITSPERBYTE_SIX               {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SIX);}
101288425Sjkim    | PARSEOP_BITSPERBYTE_SEVEN             {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SEVEN);}
102288425Sjkim    | PARSEOP_BITSPERBYTE_EIGHT             {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_EIGHT);}
103288425Sjkim    | PARSEOP_BITSPERBYTE_NINE              {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_NINE);}
104288425Sjkim    ;
105288425Sjkim
106288425SjkimClockPhaseKeyword
107288425Sjkim    : PARSEOP_CLOCKPHASE_FIRST              {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_FIRST);}
108288425Sjkim    | PARSEOP_CLOCKPHASE_SECOND             {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_SECOND);}
109288425Sjkim    ;
110288425Sjkim
111288425SjkimClockPolarityKeyword
112288425Sjkim    : PARSEOP_CLOCKPOLARITY_LOW             {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_LOW);}
113288425Sjkim    | PARSEOP_CLOCKPOLARITY_HIGH            {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_HIGH);}
114288425Sjkim    ;
115288425Sjkim
116288425SjkimDecodeKeyword
117288425Sjkim    : PARSEOP_DECODETYPE_POS                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
118288425Sjkim    | PARSEOP_DECODETYPE_SUB                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
119288425Sjkim    ;
120288425Sjkim
121288425SjkimDevicePolarityKeyword
122288425Sjkim    : PARSEOP_DEVICEPOLARITY_LOW            {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_LOW);}
123288425Sjkim    | PARSEOP_DEVICEPOLARITY_HIGH           {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_HIGH);}
124288425Sjkim    ;
125288425Sjkim
126288425SjkimDMATypeKeyword
127288425Sjkim    : PARSEOP_DMATYPE_A                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
128288425Sjkim    | PARSEOP_DMATYPE_COMPATIBILITY         {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
129288425Sjkim    | PARSEOP_DMATYPE_B                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
130288425Sjkim    | PARSEOP_DMATYPE_F                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
131288425Sjkim    ;
132288425Sjkim
133288425SjkimEndianKeyword
134288425Sjkim    : PARSEOP_ENDIAN_LITTLE                 {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_LITTLE);}
135288425Sjkim    | PARSEOP_ENDIAN_BIG                    {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_BIG);}
136288425Sjkim    ;
137288425Sjkim
138288425SjkimFlowControlKeyword
139288425Sjkim    : PARSEOP_FLOWCONTROL_HW                {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_HW);}
140288425Sjkim    | PARSEOP_FLOWCONTROL_NONE              {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_NONE);}
141288425Sjkim    | PARSEOP_FLOWCONTROL_SW                {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_SW);}
142288425Sjkim    ;
143288425Sjkim
144288425SjkimInterruptLevel
145288425Sjkim    : PARSEOP_INTLEVEL_ACTIVEBOTH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEBOTH);}
146288425Sjkim    | PARSEOP_INTLEVEL_ACTIVEHIGH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
147288425Sjkim    | PARSEOP_INTLEVEL_ACTIVELOW            {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
148288425Sjkim    ;
149288425Sjkim
150288425SjkimInterruptTypeKeyword
151288425Sjkim    : PARSEOP_INTTYPE_EDGE                  {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
152288425Sjkim    | PARSEOP_INTTYPE_LEVEL                 {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
153288425Sjkim    ;
154288425Sjkim
155288425SjkimIODecodeKeyword
156288425Sjkim    : PARSEOP_IODECODETYPE_16               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
157288425Sjkim    | PARSEOP_IODECODETYPE_10               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
158288425Sjkim    ;
159288425Sjkim
160288425SjkimIoRestrictionKeyword
161288425Sjkim    : PARSEOP_IORESTRICT_IN                 {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);}
162288425Sjkim    | PARSEOP_IORESTRICT_OUT                {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);}
163288425Sjkim    | PARSEOP_IORESTRICT_NONE               {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);}
164288425Sjkim    | PARSEOP_IORESTRICT_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);}
165288425Sjkim    ;
166288425Sjkim
167288425SjkimLockRuleKeyword
168288425Sjkim    : PARSEOP_LOCKRULE_LOCK                 {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
169288425Sjkim    | PARSEOP_LOCKRULE_NOLOCK               {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
170288425Sjkim    ;
171288425Sjkim
172288425SjkimMatchOpKeyword
173288425Sjkim    : PARSEOP_MATCHTYPE_MTR                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
174288425Sjkim    | PARSEOP_MATCHTYPE_MEQ                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
175288425Sjkim    | PARSEOP_MATCHTYPE_MLE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
176288425Sjkim    | PARSEOP_MATCHTYPE_MLT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
177288425Sjkim    | PARSEOP_MATCHTYPE_MGE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
178288425Sjkim    | PARSEOP_MATCHTYPE_MGT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
179288425Sjkim    ;
180288425Sjkim
181288425SjkimMaxKeyword
182288425Sjkim    : PARSEOP_MAXTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
183288425Sjkim    | PARSEOP_MAXTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
184288425Sjkim    ;
185288425Sjkim
186288425SjkimMemTypeKeyword
187288425Sjkim    : PARSEOP_MEMTYPE_CACHEABLE             {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
188288425Sjkim    | PARSEOP_MEMTYPE_WRITECOMBINING        {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
189288425Sjkim    | PARSEOP_MEMTYPE_PREFETCHABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
190288425Sjkim    | PARSEOP_MEMTYPE_NONCACHEABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
191288425Sjkim    ;
192288425Sjkim
193288425SjkimMinKeyword
194288425Sjkim    : PARSEOP_MINTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
195288425Sjkim    | PARSEOP_MINTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
196288425Sjkim    ;
197288425Sjkim
198288425SjkimObjectTypeKeyword
199288425Sjkim    : PARSEOP_OBJECTTYPE_UNK                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
200288425Sjkim    | PARSEOP_OBJECTTYPE_INT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
201288425Sjkim    | PARSEOP_OBJECTTYPE_STR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
202288425Sjkim    | PARSEOP_OBJECTTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
203288425Sjkim    | PARSEOP_OBJECTTYPE_PKG                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
204288425Sjkim    | PARSEOP_OBJECTTYPE_FLD                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
205288425Sjkim    | PARSEOP_OBJECTTYPE_DEV                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
206288425Sjkim    | PARSEOP_OBJECTTYPE_EVT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
207288425Sjkim    | PARSEOP_OBJECTTYPE_MTH                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
208288425Sjkim    | PARSEOP_OBJECTTYPE_MTX                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
209288425Sjkim    | PARSEOP_OBJECTTYPE_OPR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
210288425Sjkim    | PARSEOP_OBJECTTYPE_POW                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
211288425Sjkim    | PARSEOP_OBJECTTYPE_PRO                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
212288425Sjkim    | PARSEOP_OBJECTTYPE_THZ                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
213288425Sjkim    | PARSEOP_OBJECTTYPE_BFF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
214288425Sjkim    | PARSEOP_OBJECTTYPE_DDB                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
215288425Sjkim    ;
216288425Sjkim
217288425SjkimParityTypeKeyword
218288425Sjkim    : PARSEOP_PARITYTYPE_SPACE              {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_SPACE);}
219288425Sjkim    | PARSEOP_PARITYTYPE_MARK               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_MARK);}
220288425Sjkim    | PARSEOP_PARITYTYPE_ODD                {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_ODD);}
221288425Sjkim    | PARSEOP_PARITYTYPE_EVEN               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_EVEN);}
222288425Sjkim    | PARSEOP_PARITYTYPE_NONE               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_NONE);}
223288425Sjkim    ;
224288425Sjkim
225288425SjkimPinConfigByte
226288425Sjkim    : PinConfigKeyword                      {$$ = $1;}
227288425Sjkim    | ByteConstExpr                         {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
228288425Sjkim    ;
229288425Sjkim
230288425SjkimPinConfigKeyword
231288425Sjkim    : PARSEOP_PIN_NOPULL                    {$$ = TrCreateLeafNode (PARSEOP_PIN_NOPULL);}
232288425Sjkim    | PARSEOP_PIN_PULLDOWN                  {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDOWN);}
233288425Sjkim    | PARSEOP_PIN_PULLUP                    {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLUP);}
234288425Sjkim    | PARSEOP_PIN_PULLDEFAULT               {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDEFAULT);}
235288425Sjkim    ;
236288425Sjkim
237288425SjkimPldKeyword
238288425Sjkim    : PARSEOP_PLD_REVISION                  {$$ = TrCreateLeafNode (PARSEOP_PLD_REVISION);}
239288425Sjkim    | PARSEOP_PLD_IGNORECOLOR               {$$ = TrCreateLeafNode (PARSEOP_PLD_IGNORECOLOR);}
240288425Sjkim    | PARSEOP_PLD_RED                       {$$ = TrCreateLeafNode (PARSEOP_PLD_RED);}
241288425Sjkim    | PARSEOP_PLD_GREEN                     {$$ = TrCreateLeafNode (PARSEOP_PLD_GREEN);}
242288425Sjkim    | PARSEOP_PLD_BLUE                      {$$ = TrCreateLeafNode (PARSEOP_PLD_BLUE);}
243288425Sjkim    | PARSEOP_PLD_WIDTH                     {$$ = TrCreateLeafNode (PARSEOP_PLD_WIDTH);}
244288425Sjkim    | PARSEOP_PLD_HEIGHT                    {$$ = TrCreateLeafNode (PARSEOP_PLD_HEIGHT);}
245288425Sjkim    | PARSEOP_PLD_USERVISIBLE               {$$ = TrCreateLeafNode (PARSEOP_PLD_USERVISIBLE);}
246288425Sjkim    | PARSEOP_PLD_DOCK                      {$$ = TrCreateLeafNode (PARSEOP_PLD_DOCK);}
247288425Sjkim    | PARSEOP_PLD_LID                       {$$ = TrCreateLeafNode (PARSEOP_PLD_LID);}
248288425Sjkim    | PARSEOP_PLD_PANEL                     {$$ = TrCreateLeafNode (PARSEOP_PLD_PANEL);}
249288425Sjkim    | PARSEOP_PLD_VERTICALPOSITION          {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALPOSITION);}
250288425Sjkim    | PARSEOP_PLD_HORIZONTALPOSITION        {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALPOSITION);}
251288425Sjkim    | PARSEOP_PLD_SHAPE                     {$$ = TrCreateLeafNode (PARSEOP_PLD_SHAPE);}
252288425Sjkim    | PARSEOP_PLD_GROUPORIENTATION          {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPORIENTATION);}
253288425Sjkim    | PARSEOP_PLD_GROUPTOKEN                {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPTOKEN);}
254288425Sjkim    | PARSEOP_PLD_GROUPPOSITION             {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPPOSITION);}
255288425Sjkim    | PARSEOP_PLD_BAY                       {$$ = TrCreateLeafNode (PARSEOP_PLD_BAY);}
256288425Sjkim    | PARSEOP_PLD_EJECTABLE                 {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTABLE);}
257288425Sjkim    | PARSEOP_PLD_EJECTREQUIRED             {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTREQUIRED);}
258288425Sjkim    | PARSEOP_PLD_CABINETNUMBER             {$$ = TrCreateLeafNode (PARSEOP_PLD_CABINETNUMBER);}
259288425Sjkim    | PARSEOP_PLD_CARDCAGENUMBER            {$$ = TrCreateLeafNode (PARSEOP_PLD_CARDCAGENUMBER);}
260288425Sjkim    | PARSEOP_PLD_REFERENCE                 {$$ = TrCreateLeafNode (PARSEOP_PLD_REFERENCE);}
261288425Sjkim    | PARSEOP_PLD_ROTATION                  {$$ = TrCreateLeafNode (PARSEOP_PLD_ROTATION);}
262288425Sjkim    | PARSEOP_PLD_ORDER                     {$$ = TrCreateLeafNode (PARSEOP_PLD_ORDER);}
263288425Sjkim    | PARSEOP_PLD_RESERVED                  {$$ = TrCreateLeafNode (PARSEOP_PLD_RESERVED);}
264288425Sjkim    | PARSEOP_PLD_VERTICALOFFSET            {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALOFFSET);}
265288425Sjkim    | PARSEOP_PLD_HORIZONTALOFFSET          {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALOFFSET);}
266288425Sjkim    ;
267288425Sjkim
268288425SjkimRangeTypeKeyword
269288425Sjkim    : PARSEOP_RANGETYPE_ISAONLY             {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
270288425Sjkim    | PARSEOP_RANGETYPE_NONISAONLY          {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
271288425Sjkim    | PARSEOP_RANGETYPE_ENTIRE              {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
272288425Sjkim    ;
273288425Sjkim
274288425SjkimRegionSpaceKeyword
275288425Sjkim    : PARSEOP_REGIONSPACE_IO                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
276288425Sjkim    | PARSEOP_REGIONSPACE_MEM               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
277288425Sjkim    | PARSEOP_REGIONSPACE_PCI               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
278288425Sjkim    | PARSEOP_REGIONSPACE_EC                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
279288425Sjkim    | PARSEOP_REGIONSPACE_SMBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
280288425Sjkim    | PARSEOP_REGIONSPACE_CMOS              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
281288425Sjkim    | PARSEOP_REGIONSPACE_PCIBAR            {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
282288425Sjkim    | PARSEOP_REGIONSPACE_IPMI              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);}
283288425Sjkim    | PARSEOP_REGIONSPACE_GPIO              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GPIO);}
284288425Sjkim    | PARSEOP_REGIONSPACE_GSBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GSBUS);}
285288425Sjkim    | PARSEOP_REGIONSPACE_PCC               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCC);}
286288425Sjkim    | PARSEOP_REGIONSPACE_FFIXEDHW          {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_FFIXEDHW);}
287288425Sjkim    ;
288288425Sjkim
289288425SjkimResourceTypeKeyword
290288425Sjkim    : PARSEOP_RESOURCETYPE_CONSUMER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
291288425Sjkim    | PARSEOP_RESOURCETYPE_PRODUCER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
292288425Sjkim    ;
293288425Sjkim
294288425SjkimSerializeRuleKeyword
295288425Sjkim    : PARSEOP_SERIALIZERULE_SERIAL          {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
296288425Sjkim    | PARSEOP_SERIALIZERULE_NOTSERIAL       {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
297288425Sjkim    ;
298288425Sjkim
299288425SjkimShareTypeKeyword
300288425Sjkim    : PARSEOP_SHARETYPE_SHARED              {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
301288425Sjkim    | PARSEOP_SHARETYPE_EXCLUSIVE           {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
302288425Sjkim    | PARSEOP_SHARETYPE_SHAREDWAKE          {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHAREDWAKE);}
303288425Sjkim    | PARSEOP_SHARETYPE_EXCLUSIVEWAKE       {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVEWAKE);}
304288425Sjkim   ;
305288425Sjkim
306288425SjkimSlaveModeKeyword
307288425Sjkim    : PARSEOP_SLAVEMODE_CONTROLLERINIT      {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_CONTROLLERINIT);}
308288425Sjkim    | PARSEOP_SLAVEMODE_DEVICEINIT          {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_DEVICEINIT);}
309288425Sjkim    ;
310288425Sjkim
311288425SjkimStopBitsKeyword
312288425Sjkim    : PARSEOP_STOPBITS_TWO                  {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_TWO);}
313288425Sjkim    | PARSEOP_STOPBITS_ONEPLUSHALF          {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONEPLUSHALF);}
314288425Sjkim    | PARSEOP_STOPBITS_ONE                  {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONE);}
315288425Sjkim    | PARSEOP_STOPBITS_ZERO                 {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ZERO);}
316288425Sjkim    ;
317288425Sjkim
318288425SjkimTranslationKeyword
319288425Sjkim    : PARSEOP_TRANSLATIONTYPE_SPARSE        {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
320288425Sjkim    | PARSEOP_TRANSLATIONTYPE_DENSE         {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
321288425Sjkim    ;
322288425Sjkim
323288425SjkimTypeKeyword
324288425Sjkim    : PARSEOP_TYPE_TRANSLATION              {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
325288425Sjkim    | PARSEOP_TYPE_STATIC                   {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
326288425Sjkim    ;
327288425Sjkim
328288425SjkimUpdateRuleKeyword
329288425Sjkim    : PARSEOP_UPDATERULE_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
330288425Sjkim    | PARSEOP_UPDATERULE_ONES               {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
331288425Sjkim    | PARSEOP_UPDATERULE_ZEROS              {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
332288425Sjkim    ;
333288425Sjkim
334288425SjkimWireModeKeyword
335288425Sjkim    : PARSEOP_WIREMODE_FOUR                 {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_FOUR);}
336288425Sjkim    | PARSEOP_WIREMODE_THREE                {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_THREE);}
337288425Sjkim    ;
338288425Sjkim
339288425SjkimXferSizeKeyword
340288425Sjkim    : PARSEOP_XFERSIZE_8                    {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_8,   0);}
341288425Sjkim    | PARSEOP_XFERSIZE_16                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_16,  1);}
342288425Sjkim    | PARSEOP_XFERSIZE_32                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32,  2);}
343288425Sjkim    | PARSEOP_XFERSIZE_64                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_64,  3);}
344288425Sjkim    | PARSEOP_XFERSIZE_128                  {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_128, 4);}
345288425Sjkim    | PARSEOP_XFERSIZE_256                  {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_256, 5);}
346288425Sjkim    ;
347288425Sjkim
348288425SjkimXferTypeKeyword
349288425Sjkim    : PARSEOP_XFERTYPE_8                    {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
350288425Sjkim    | PARSEOP_XFERTYPE_8_16                 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
351288425Sjkim    | PARSEOP_XFERTYPE_16                   {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
352288425Sjkim    ;
353288425Sjkim
354288425Sjkim
355288425Sjkim/*******************************************************************************
356288425Sjkim *
357288425Sjkim * ASL Resource Template Terms
358288425Sjkim *
359288425Sjkim ******************************************************************************/
360288425Sjkim
361288425Sjkim/*
362288425Sjkim * Note: Create two default nodes to allow conversion to a Buffer AML opcode
363288425Sjkim * Also, insert the EndTag at the end of the template.
364288425Sjkim */
365288425SjkimResourceTemplateTerm
366288425Sjkim    : PARSEOP_RESOURCETEMPLATE '(' ')'
367288425Sjkim        '{'
368288425Sjkim        ResourceMacroList '}'       {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
369288425Sjkim                                          TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
370288425Sjkim                                          TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
371288425Sjkim                                          $5,
372288425Sjkim                                          TrCreateLeafNode (PARSEOP_ENDTAG));}
373288425Sjkim    ;
374288425Sjkim
375288425SjkimResourceMacroList
376288425Sjkim    :                               {$$ = NULL;}
377288425Sjkim    | ResourceMacroList
378288425Sjkim        ResourceMacroTerm           {$$ = TrLinkPeerNode ($1,$2);}
379288425Sjkim    ;
380288425Sjkim
381288425SjkimResourceMacroTerm
382288425Sjkim    : DMATerm                       {}
383288425Sjkim    | DWordIOTerm                   {}
384288425Sjkim    | DWordMemoryTerm               {}
385288425Sjkim    | DWordSpaceTerm                {}
386288425Sjkim    | EndDependentFnTerm            {}
387288425Sjkim    | ExtendedIOTerm                {}
388288425Sjkim    | ExtendedMemoryTerm            {}
389288425Sjkim    | ExtendedSpaceTerm             {}
390288425Sjkim    | FixedDmaTerm                  {}
391288425Sjkim    | FixedIOTerm                   {}
392288425Sjkim    | GpioIntTerm                   {}
393288425Sjkim    | GpioIoTerm                    {}
394288425Sjkim    | I2cSerialBusTerm              {}
395298714Sjkim    | I2cSerialBusTermV2            {}
396288425Sjkim    | InterruptTerm                 {}
397288425Sjkim    | IOTerm                        {}
398288425Sjkim    | IRQNoFlagsTerm                {}
399288425Sjkim    | IRQTerm                       {}
400288425Sjkim    | Memory24Term                  {}
401288425Sjkim    | Memory32FixedTerm             {}
402288425Sjkim    | Memory32Term                  {}
403288425Sjkim    | QWordIOTerm                   {}
404288425Sjkim    | QWordMemoryTerm               {}
405288425Sjkim    | QWordSpaceTerm                {}
406288425Sjkim    | RegisterTerm                  {}
407288425Sjkim    | SpiSerialBusTerm              {}
408298714Sjkim    | SpiSerialBusTermV2            {}
409288425Sjkim    | StartDependentFnNoPriTerm     {}
410288425Sjkim    | StartDependentFnTerm          {}
411288425Sjkim    | UartSerialBusTerm             {}
412298714Sjkim    | UartSerialBusTermV2           {}
413288425Sjkim    | VendorLongTerm                {}
414288425Sjkim    | VendorShortTerm               {}
415288425Sjkim    | WordBusNumberTerm             {}
416288425Sjkim    | WordIOTerm                    {}
417288425Sjkim    | WordSpaceTerm                 {}
418288425Sjkim    ;
419288425Sjkim
420288425SjkimDMATerm
421288425Sjkim    : PARSEOP_DMA '('               {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
422288425Sjkim        DMATypeKeyword
423288425Sjkim        OptionalBusMasterKeyword
424288425Sjkim        ',' XferTypeKeyword
425288425Sjkim        OptionalNameString_Last
426288425Sjkim        ')' '{'
427288425Sjkim            ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
428288425Sjkim    | PARSEOP_DMA '('
429288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
430288425Sjkim    ;
431288425Sjkim
432288425SjkimDWordIOTerm
433288425Sjkim    : PARSEOP_DWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
434288425Sjkim        OptionalResourceType_First
435288425Sjkim        OptionalMinType
436288425Sjkim        OptionalMaxType
437288425Sjkim        OptionalDecodeType
438288425Sjkim        OptionalRangeType
439288425Sjkim        ',' DWordConstExpr
440288425Sjkim        ',' DWordConstExpr
441288425Sjkim        ',' DWordConstExpr
442288425Sjkim        ',' DWordConstExpr
443288425Sjkim        ',' DWordConstExpr
444288425Sjkim        OptionalByteConstExpr
445288425Sjkim        OptionalStringData
446288425Sjkim        OptionalNameString
447288425Sjkim        OptionalType
448288425Sjkim        OptionalTranslationType_Last
449288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
450288425Sjkim    | PARSEOP_DWORDIO '('
451288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
452288425Sjkim    ;
453288425Sjkim
454288425SjkimDWordMemoryTerm
455288425Sjkim    : PARSEOP_DWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
456288425Sjkim        OptionalResourceType_First
457288425Sjkim        OptionalDecodeType
458288425Sjkim        OptionalMinType
459288425Sjkim        OptionalMaxType
460288425Sjkim        OptionalMemType
461288425Sjkim        ',' OptionalReadWriteKeyword
462288425Sjkim        ',' DWordConstExpr
463288425Sjkim        ',' DWordConstExpr
464288425Sjkim        ',' DWordConstExpr
465288425Sjkim        ',' DWordConstExpr
466288425Sjkim        ',' DWordConstExpr
467288425Sjkim        OptionalByteConstExpr
468288425Sjkim        OptionalStringData
469288425Sjkim        OptionalNameString
470288425Sjkim        OptionalAddressRange
471288425Sjkim        OptionalType_Last
472288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
473288425Sjkim    | PARSEOP_DWORDMEMORY '('
474288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
475288425Sjkim    ;
476288425Sjkim
477288425SjkimDWordSpaceTerm
478288425Sjkim    : PARSEOP_DWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
479288425Sjkim        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
480288425Sjkim        OptionalResourceType
481288425Sjkim        OptionalDecodeType
482288425Sjkim        OptionalMinType
483288425Sjkim        OptionalMaxType
484288425Sjkim        ',' ByteConstExpr
485288425Sjkim        ',' DWordConstExpr
486288425Sjkim        ',' DWordConstExpr
487288425Sjkim        ',' DWordConstExpr
488288425Sjkim        ',' DWordConstExpr
489288425Sjkim        ',' DWordConstExpr
490288425Sjkim        OptionalByteConstExpr
491288425Sjkim        OptionalStringData
492288425Sjkim        OptionalNameString_Last
493288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
494288425Sjkim    | PARSEOP_DWORDSPACE '('
495288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
496288425Sjkim    ;
497288425Sjkim
498288425SjkimEndDependentFnTerm
499288425Sjkim    : PARSEOP_ENDDEPENDENTFN '('
500288425Sjkim        ')'                         {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
501288425Sjkim    | PARSEOP_ENDDEPENDENTFN '('
502288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
503288425Sjkim    ;
504288425Sjkim
505288425SjkimExtendedIOTerm
506288425Sjkim    : PARSEOP_EXTENDEDIO '('        {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
507288425Sjkim        OptionalResourceType_First
508288425Sjkim        OptionalMinType
509288425Sjkim        OptionalMaxType
510288425Sjkim        OptionalDecodeType
511288425Sjkim        OptionalRangeType
512288425Sjkim        ',' QWordConstExpr
513288425Sjkim        ',' QWordConstExpr
514288425Sjkim        ',' QWordConstExpr
515288425Sjkim        ',' QWordConstExpr
516288425Sjkim        ',' QWordConstExpr
517288425Sjkim        OptionalQWordConstExpr
518288425Sjkim        OptionalNameString
519288425Sjkim        OptionalType
520288425Sjkim        OptionalTranslationType_Last
521288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
522288425Sjkim    | PARSEOP_EXTENDEDIO '('
523288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
524288425Sjkim    ;
525288425Sjkim
526288425SjkimExtendedMemoryTerm
527288425Sjkim    : PARSEOP_EXTENDEDMEMORY '('    {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
528288425Sjkim        OptionalResourceType_First
529288425Sjkim        OptionalDecodeType
530288425Sjkim        OptionalMinType
531288425Sjkim        OptionalMaxType
532288425Sjkim        OptionalMemType
533288425Sjkim        ',' OptionalReadWriteKeyword
534288425Sjkim        ',' QWordConstExpr
535288425Sjkim        ',' QWordConstExpr
536288425Sjkim        ',' QWordConstExpr
537288425Sjkim        ',' QWordConstExpr
538288425Sjkim        ',' QWordConstExpr
539288425Sjkim        OptionalQWordConstExpr
540288425Sjkim        OptionalNameString
541288425Sjkim        OptionalAddressRange
542288425Sjkim        OptionalType_Last
543288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
544288425Sjkim    | PARSEOP_EXTENDEDMEMORY '('
545288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
546288425Sjkim    ;
547288425Sjkim
548288425SjkimExtendedSpaceTerm
549288425Sjkim    : PARSEOP_EXTENDEDSPACE '('     {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
550288425Sjkim        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
551288425Sjkim        OptionalResourceType
552288425Sjkim        OptionalDecodeType
553288425Sjkim        OptionalMinType
554288425Sjkim        OptionalMaxType
555288425Sjkim        ',' ByteConstExpr
556288425Sjkim        ',' QWordConstExpr
557288425Sjkim        ',' QWordConstExpr
558288425Sjkim        ',' QWordConstExpr
559288425Sjkim        ',' QWordConstExpr
560288425Sjkim        ',' QWordConstExpr
561288425Sjkim        OptionalQWordConstExpr
562288425Sjkim        OptionalNameString_Last
563288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
564288425Sjkim    | PARSEOP_EXTENDEDSPACE '('
565288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
566288425Sjkim    ;
567288425Sjkim
568288425SjkimFixedDmaTerm
569288425Sjkim    : PARSEOP_FIXEDDMA '('          {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
570288425Sjkim        WordConstExpr               /* 04: DMA RequestLines */
571288425Sjkim        ',' WordConstExpr           /* 06: DMA Channels */
572288425Sjkim        OptionalXferSize            /* 07: DMA TransferSize */
573288425Sjkim        OptionalNameString          /* 08: DescriptorName */
574288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
575288425Sjkim    | PARSEOP_FIXEDDMA '('
576288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
577288425Sjkim    ;
578288425Sjkim
579288425SjkimFixedIOTerm
580288425Sjkim    : PARSEOP_FIXEDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
581288425Sjkim        WordConstExpr
582288425Sjkim        ',' ByteConstExpr
583288425Sjkim        OptionalNameString_Last
584288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
585288425Sjkim    | PARSEOP_FIXEDIO '('
586288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
587288425Sjkim    ;
588288425Sjkim
589288425SjkimGpioIntTerm
590288425Sjkim    : PARSEOP_GPIO_INT '('          {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
591288425Sjkim        InterruptTypeKeyword        /* 04: InterruptType */
592288425Sjkim        ',' InterruptLevel          /* 06: InterruptLevel */
593288425Sjkim        OptionalShareType           /* 07: SharedType */
594288425Sjkim        ',' PinConfigByte           /* 09: PinConfig */
595288425Sjkim        OptionalWordConstExpr       /* 10: DebounceTimeout */
596288425Sjkim        ',' StringData              /* 12: ResourceSource */
597288425Sjkim        OptionalByteConstExpr       /* 13: ResourceSourceIndex */
598288425Sjkim        OptionalResourceType        /* 14: ResourceType */
599288425Sjkim        OptionalNameString          /* 15: DescriptorName */
600288425Sjkim        OptionalBuffer_Last         /* 16: VendorData */
601288425Sjkim        ')' '{'
602288425Sjkim            DWordConstExpr '}'      {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
603288425Sjkim    | PARSEOP_GPIO_INT '('
604288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
605288425Sjkim    ;
606288425Sjkim
607288425SjkimGpioIoTerm
608288425Sjkim    : PARSEOP_GPIO_IO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
609288425Sjkim        OptionalShareType_First     /* 04: SharedType */
610288425Sjkim        ',' PinConfigByte           /* 06: PinConfig */
611288425Sjkim        OptionalWordConstExpr       /* 07: DebounceTimeout */
612288425Sjkim        OptionalWordConstExpr       /* 08: DriveStrength */
613288425Sjkim        OptionalIoRestriction       /* 09: IoRestriction */
614288425Sjkim        ',' StringData              /* 11: ResourceSource */
615288425Sjkim        OptionalByteConstExpr       /* 12: ResourceSourceIndex */
616288425Sjkim        OptionalResourceType        /* 13: ResourceType */
617288425Sjkim        OptionalNameString          /* 14: DescriptorName */
618288425Sjkim        OptionalBuffer_Last         /* 15: VendorData */
619288425Sjkim        ')' '{'
620288425Sjkim            DWordList '}'           {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
621288425Sjkim    | PARSEOP_GPIO_IO '('
622288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
623288425Sjkim    ;
624288425Sjkim
625288425SjkimI2cSerialBusTerm
626288425Sjkim    : PARSEOP_I2C_SERIALBUS '('     {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
627288425Sjkim        WordConstExpr               /* 04: SlaveAddress */
628288425Sjkim        OptionalSlaveMode           /* 05: SlaveMode */
629288425Sjkim        ',' DWordConstExpr          /* 07: ConnectionSpeed */
630288425Sjkim        OptionalAddressingMode      /* 08: AddressingMode */
631288425Sjkim        ',' StringData              /* 10: ResourceSource */
632288425Sjkim        OptionalByteConstExpr       /* 11: ResourceSourceIndex */
633288425Sjkim        OptionalResourceType        /* 12: ResourceType */
634288425Sjkim        OptionalNameString          /* 13: DescriptorName */
635288425Sjkim        OptionalBuffer_Last         /* 14: VendorData */
636298714Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,10,$4,$5,$7,$8,$10,$11,$12,$13,
637298714Sjkim                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$14);}
638288425Sjkim    | PARSEOP_I2C_SERIALBUS '('
639288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
640288425Sjkim    ;
641288425Sjkim
642298714SjkimI2cSerialBusTermV2
643298714Sjkim    : PARSEOP_I2C_SERIALBUS_V2 '('  {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS_V2);}
644298714Sjkim        WordConstExpr               /* 04: SlaveAddress */
645298714Sjkim        OptionalSlaveMode           /* 05: SlaveMode */
646298714Sjkim        ',' DWordConstExpr          /* 07: ConnectionSpeed */
647298714Sjkim        OptionalAddressingMode      /* 08: AddressingMode */
648298714Sjkim        ',' StringData              /* 10: ResourceSource */
649298714Sjkim        OptionalByteConstExpr       /* 11: ResourceSourceIndex */
650298714Sjkim        OptionalResourceType        /* 12: ResourceType */
651298714Sjkim        OptionalNameString          /* 13: DescriptorName */
652298714Sjkim        OptionalShareType           /* 14: Share */
653298714Sjkim        OptionalBuffer_Last         /* 15: VendorData */
654298714Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,10,$4,$5,$7,$8,$10,$11,$12,$13,
655298714Sjkim                                        $14,$15);}
656298714Sjkim    | PARSEOP_I2C_SERIALBUS_V2 '('
657298714Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
658298714Sjkim    ;
659298714Sjkim
660288425SjkimInterruptTerm
661288425Sjkim    : PARSEOP_INTERRUPT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
662288425Sjkim        OptionalResourceType_First
663288425Sjkim        ',' InterruptTypeKeyword
664288425Sjkim        ',' InterruptLevel
665288425Sjkim        OptionalShareType
666288425Sjkim        OptionalByteConstExpr
667288425Sjkim        OptionalStringData
668288425Sjkim        OptionalNameString_Last
669288425Sjkim        ')' '{'
670288425Sjkim            DWordList '}'           {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
671288425Sjkim    | PARSEOP_INTERRUPT '('
672288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
673288425Sjkim    ;
674288425Sjkim
675288425SjkimIOTerm
676288425Sjkim    : PARSEOP_IO '('                {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
677288425Sjkim        IODecodeKeyword
678288425Sjkim        ',' WordConstExpr
679288425Sjkim        ',' WordConstExpr
680288425Sjkim        ',' ByteConstExpr
681288425Sjkim        ',' ByteConstExpr
682288425Sjkim        OptionalNameString_Last
683288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
684288425Sjkim    | PARSEOP_IO '('
685288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
686288425Sjkim    ;
687288425Sjkim
688288425SjkimIRQNoFlagsTerm
689288425Sjkim    : PARSEOP_IRQNOFLAGS '('        {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
690288425Sjkim        OptionalNameString_First
691288425Sjkim        ')' '{'
692288425Sjkim            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
693288425Sjkim    | PARSEOP_IRQNOFLAGS '('
694288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
695288425Sjkim    ;
696288425Sjkim
697288425SjkimIRQTerm
698288425Sjkim    : PARSEOP_IRQ '('               {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
699288425Sjkim        InterruptTypeKeyword
700288425Sjkim        ',' InterruptLevel
701288425Sjkim        OptionalShareType
702288425Sjkim        OptionalNameString_Last
703288425Sjkim        ')' '{'
704288425Sjkim            ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
705288425Sjkim    | PARSEOP_IRQ '('
706288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
707288425Sjkim    ;
708288425Sjkim
709288425SjkimMemory24Term
710288425Sjkim    : PARSEOP_MEMORY24 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
711288425Sjkim        OptionalReadWriteKeyword
712288425Sjkim        ',' WordConstExpr
713288425Sjkim        ',' WordConstExpr
714288425Sjkim        ',' WordConstExpr
715288425Sjkim        ',' WordConstExpr
716288425Sjkim        OptionalNameString_Last
717288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
718288425Sjkim    | PARSEOP_MEMORY24 '('
719288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
720288425Sjkim    ;
721288425Sjkim
722288425SjkimMemory32FixedTerm
723288425Sjkim    : PARSEOP_MEMORY32FIXED '('     {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
724288425Sjkim        OptionalReadWriteKeyword
725288425Sjkim        ',' DWordConstExpr
726288425Sjkim        ',' DWordConstExpr
727288425Sjkim        OptionalNameString_Last
728288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
729288425Sjkim    | PARSEOP_MEMORY32FIXED '('
730288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
731288425Sjkim    ;
732288425Sjkim
733288425SjkimMemory32Term
734288425Sjkim    : PARSEOP_MEMORY32 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
735288425Sjkim        OptionalReadWriteKeyword
736288425Sjkim        ',' DWordConstExpr
737288425Sjkim        ',' DWordConstExpr
738288425Sjkim        ',' DWordConstExpr
739288425Sjkim        ',' DWordConstExpr
740288425Sjkim        OptionalNameString_Last
741288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
742288425Sjkim    | PARSEOP_MEMORY32 '('
743288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
744288425Sjkim    ;
745288425Sjkim
746288425SjkimQWordIOTerm
747288425Sjkim    : PARSEOP_QWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
748288425Sjkim        OptionalResourceType_First
749288425Sjkim        OptionalMinType
750288425Sjkim        OptionalMaxType
751288425Sjkim        OptionalDecodeType
752288425Sjkim        OptionalRangeType
753288425Sjkim        ',' QWordConstExpr
754288425Sjkim        ',' QWordConstExpr
755288425Sjkim        ',' QWordConstExpr
756288425Sjkim        ',' QWordConstExpr
757288425Sjkim        ',' QWordConstExpr
758288425Sjkim        OptionalByteConstExpr
759288425Sjkim        OptionalStringData
760288425Sjkim        OptionalNameString
761288425Sjkim        OptionalType
762288425Sjkim        OptionalTranslationType_Last
763288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
764288425Sjkim    | PARSEOP_QWORDIO '('
765288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
766288425Sjkim    ;
767288425Sjkim
768288425SjkimQWordMemoryTerm
769288425Sjkim    : PARSEOP_QWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
770288425Sjkim        OptionalResourceType_First
771288425Sjkim        OptionalDecodeType
772288425Sjkim        OptionalMinType
773288425Sjkim        OptionalMaxType
774288425Sjkim        OptionalMemType
775288425Sjkim        ',' OptionalReadWriteKeyword
776288425Sjkim        ',' QWordConstExpr
777288425Sjkim        ',' QWordConstExpr
778288425Sjkim        ',' QWordConstExpr
779288425Sjkim        ',' QWordConstExpr
780288425Sjkim        ',' QWordConstExpr
781288425Sjkim        OptionalByteConstExpr
782288425Sjkim        OptionalStringData
783288425Sjkim        OptionalNameString
784288425Sjkim        OptionalAddressRange
785288425Sjkim        OptionalType_Last
786288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
787288425Sjkim    | PARSEOP_QWORDMEMORY '('
788288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
789288425Sjkim    ;
790288425Sjkim
791288425SjkimQWordSpaceTerm
792288425Sjkim    : PARSEOP_QWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
793288425Sjkim        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
794288425Sjkim        OptionalResourceType
795288425Sjkim        OptionalDecodeType
796288425Sjkim        OptionalMinType
797288425Sjkim        OptionalMaxType
798288425Sjkim        ',' ByteConstExpr
799288425Sjkim        ',' QWordConstExpr
800288425Sjkim        ',' QWordConstExpr
801288425Sjkim        ',' QWordConstExpr
802288425Sjkim        ',' QWordConstExpr
803288425Sjkim        ',' QWordConstExpr
804288425Sjkim        OptionalByteConstExpr
805288425Sjkim        OptionalStringData
806288425Sjkim        OptionalNameString_Last
807288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
808288425Sjkim    | PARSEOP_QWORDSPACE '('
809288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
810288425Sjkim    ;
811288425Sjkim
812288425SjkimRegisterTerm
813288425Sjkim    : PARSEOP_REGISTER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
814288425Sjkim        AddressSpaceKeyword
815288425Sjkim        ',' ByteConstExpr
816288425Sjkim        ',' ByteConstExpr
817288425Sjkim        ',' QWordConstExpr
818288425Sjkim        OptionalAccessSize
819288425Sjkim        OptionalNameString_Last
820288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
821288425Sjkim    | PARSEOP_REGISTER '('
822288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
823288425Sjkim    ;
824288425Sjkim
825288425SjkimSpiSerialBusTerm
826288425Sjkim    : PARSEOP_SPI_SERIALBUS '('     {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
827288425Sjkim        WordConstExpr               /* 04: DeviceSelection */
828288425Sjkim        OptionalDevicePolarity      /* 05: DevicePolarity */
829288425Sjkim        OptionalWireMode            /* 06: WireMode */
830288425Sjkim        ',' ByteConstExpr           /* 08: DataBitLength */
831288425Sjkim        OptionalSlaveMode           /* 09: SlaveMode */
832288425Sjkim        ',' DWordConstExpr          /* 11: ConnectionSpeed */
833288425Sjkim        ',' ClockPolarityKeyword    /* 13: ClockPolarity */
834288425Sjkim        ',' ClockPhaseKeyword       /* 15: ClockPhase */
835288425Sjkim        ',' StringData              /* 17: ResourceSource */
836288425Sjkim        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
837288425Sjkim        OptionalResourceType        /* 19: ResourceType */
838288425Sjkim        OptionalNameString          /* 20: DescriptorName */
839288425Sjkim        OptionalBuffer_Last         /* 21: VendorData */
840298714Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
841298714Sjkim                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
842288425Sjkim    | PARSEOP_SPI_SERIALBUS '('
843288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
844288425Sjkim    ;
845288425Sjkim
846298714SjkimSpiSerialBusTermV2
847298714Sjkim    : PARSEOP_SPI_SERIALBUS_V2 '('  {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS_V2);}
848298714Sjkim        WordConstExpr               /* 04: DeviceSelection */
849298714Sjkim        OptionalDevicePolarity      /* 05: DevicePolarity */
850298714Sjkim        OptionalWireMode            /* 06: WireMode */
851298714Sjkim        ',' ByteConstExpr           /* 08: DataBitLength */
852298714Sjkim        OptionalSlaveMode           /* 09: SlaveMode */
853298714Sjkim        ',' DWordConstExpr          /* 11: ConnectionSpeed */
854298714Sjkim        ',' ClockPolarityKeyword    /* 13: ClockPolarity */
855298714Sjkim        ',' ClockPhaseKeyword       /* 15: ClockPhase */
856298714Sjkim        ',' StringData              /* 17: ResourceSource */
857298714Sjkim        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
858298714Sjkim        OptionalResourceType        /* 19: ResourceType */
859298714Sjkim        OptionalNameString          /* 20: DescriptorName */
860298714Sjkim        OptionalShareType           /* 21: Share */
861298714Sjkim        OptionalBuffer_Last         /* 22: VendorData */
862298714Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
863298714Sjkim                                        $21,$22);}
864298714Sjkim    | PARSEOP_SPI_SERIALBUS_V2 '('
865298714Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
866298714Sjkim    ;
867298714Sjkim
868288425SjkimStartDependentFnNoPriTerm
869288425Sjkim    : PARSEOP_STARTDEPENDENTFN_NOPRI '('    {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
870288425Sjkim        ')' '{'
871288425Sjkim        ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,1,$6);}
872288425Sjkim    | PARSEOP_STARTDEPENDENTFN_NOPRI '('
873288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
874288425Sjkim    ;
875288425Sjkim
876288425SjkimStartDependentFnTerm
877288425Sjkim    : PARSEOP_STARTDEPENDENTFN '('  {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
878288425Sjkim        ByteConstExpr
879288425Sjkim        ',' ByteConstExpr
880288425Sjkim        ')' '{'
881288425Sjkim        ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
882288425Sjkim    | PARSEOP_STARTDEPENDENTFN '('
883288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
884288425Sjkim    ;
885288425Sjkim
886288425SjkimUartSerialBusTerm
887288425Sjkim    : PARSEOP_UART_SERIALBUS '('    {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
888288425Sjkim        DWordConstExpr              /* 04: ConnectionSpeed */
889288425Sjkim        OptionalBitsPerByte         /* 05: BitsPerByte */
890288425Sjkim        OptionalStopBits            /* 06: StopBits */
891288425Sjkim        ',' ByteConstExpr           /* 08: LinesInUse */
892288425Sjkim        OptionalEndian              /* 09: Endianess */
893288425Sjkim        OptionalParityType          /* 10: Parity */
894288425Sjkim        OptionalFlowControl         /* 11: FlowControl */
895288425Sjkim        ',' WordConstExpr           /* 13: Rx BufferSize */
896288425Sjkim        ',' WordConstExpr           /* 15: Tx BufferSize */
897288425Sjkim        ',' StringData              /* 17: ResourceSource */
898288425Sjkim        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
899288425Sjkim        OptionalResourceType        /* 19: ResourceType */
900288425Sjkim        OptionalNameString          /* 20: DescriptorName */
901288425Sjkim        OptionalBuffer_Last         /* 21: VendorData */
902298714Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
903298714Sjkim                                        TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
904288425Sjkim    | PARSEOP_UART_SERIALBUS '('
905288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
906288425Sjkim    ;
907288425Sjkim
908298714SjkimUartSerialBusTermV2
909298714Sjkim    : PARSEOP_UART_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS_V2);}
910298714Sjkim        DWordConstExpr              /* 04: ConnectionSpeed */
911298714Sjkim        OptionalBitsPerByte         /* 05: BitsPerByte */
912298714Sjkim        OptionalStopBits            /* 06: StopBits */
913298714Sjkim        ',' ByteConstExpr           /* 08: LinesInUse */
914298714Sjkim        OptionalEndian              /* 09: Endianess */
915298714Sjkim        OptionalParityType          /* 10: Parity */
916298714Sjkim        OptionalFlowControl         /* 11: FlowControl */
917298714Sjkim        ',' WordConstExpr           /* 13: Rx BufferSize */
918298714Sjkim        ',' WordConstExpr           /* 15: Tx BufferSize */
919298714Sjkim        ',' StringData              /* 17: ResourceSource */
920298714Sjkim        OptionalByteConstExpr       /* 18: ResourceSourceIndex */
921298714Sjkim        OptionalResourceType        /* 19: ResourceType */
922298714Sjkim        OptionalNameString          /* 20: DescriptorName */
923298714Sjkim        OptionalShareType           /* 21: Share */
924298714Sjkim        OptionalBuffer_Last         /* 22: VendorData */
925298714Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
926298714Sjkim                                        $21,$22);}
927298714Sjkim    | PARSEOP_UART_SERIALBUS_V2 '('
928298714Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
929298714Sjkim    ;
930298714Sjkim
931288425SjkimVendorLongTerm
932288425Sjkim    : PARSEOP_VENDORLONG '('        {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
933288425Sjkim        OptionalNameString_First
934288425Sjkim        ')' '{'
935288425Sjkim            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
936288425Sjkim    | PARSEOP_VENDORLONG '('
937288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
938288425Sjkim    ;
939288425Sjkim
940288425SjkimVendorShortTerm
941288425Sjkim    : PARSEOP_VENDORSHORT '('       {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
942288425Sjkim        OptionalNameString_First
943288425Sjkim        ')' '{'
944288425Sjkim            ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
945288425Sjkim    | PARSEOP_VENDORSHORT '('
946288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
947288425Sjkim    ;
948288425Sjkim
949288425SjkimWordBusNumberTerm
950288425Sjkim    : PARSEOP_WORDBUSNUMBER '('     {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
951288425Sjkim        OptionalResourceType_First
952288425Sjkim        OptionalMinType
953288425Sjkim        OptionalMaxType
954288425Sjkim        OptionalDecodeType
955288425Sjkim        ',' WordConstExpr
956288425Sjkim        ',' WordConstExpr
957288425Sjkim        ',' WordConstExpr
958288425Sjkim        ',' WordConstExpr
959288425Sjkim        ',' WordConstExpr
960288425Sjkim        OptionalByteConstExpr
961288425Sjkim        OptionalStringData
962288425Sjkim        OptionalNameString_Last
963288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
964288425Sjkim    | PARSEOP_WORDBUSNUMBER '('
965288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
966288425Sjkim    ;
967288425Sjkim
968288425SjkimWordIOTerm
969288425Sjkim    : PARSEOP_WORDIO '('            {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
970288425Sjkim        OptionalResourceType_First
971288425Sjkim        OptionalMinType
972288425Sjkim        OptionalMaxType
973288425Sjkim        OptionalDecodeType
974288425Sjkim        OptionalRangeType
975288425Sjkim        ',' WordConstExpr
976288425Sjkim        ',' WordConstExpr
977288425Sjkim        ',' WordConstExpr
978288425Sjkim        ',' WordConstExpr
979288425Sjkim        ',' WordConstExpr
980288425Sjkim        OptionalByteConstExpr
981288425Sjkim        OptionalStringData
982288425Sjkim        OptionalNameString
983288425Sjkim        OptionalType
984288425Sjkim        OptionalTranslationType_Last
985288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
986288425Sjkim    | PARSEOP_WORDIO '('
987288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
988288425Sjkim    ;
989288425Sjkim
990288425SjkimWordSpaceTerm
991288425Sjkim    : PARSEOP_WORDSPACE '('         {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
992288425Sjkim        ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
993288425Sjkim        OptionalResourceType
994288425Sjkim        OptionalDecodeType
995288425Sjkim        OptionalMinType
996288425Sjkim        OptionalMaxType
997288425Sjkim        ',' ByteConstExpr
998288425Sjkim        ',' WordConstExpr
999288425Sjkim        ',' WordConstExpr
1000288425Sjkim        ',' WordConstExpr
1001288425Sjkim        ',' WordConstExpr
1002288425Sjkim        ',' WordConstExpr
1003288425Sjkim        OptionalByteConstExpr
1004288425Sjkim        OptionalStringData
1005288425Sjkim        OptionalNameString_Last
1006288425Sjkim        ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
1007288425Sjkim    | PARSEOP_WORDSPACE '('
1008288425Sjkim        error ')'                   {$$ = AslDoError(); yyclearin;}
1009288425Sjkim    ;
1010288425Sjkim
1011288425Sjkim
1012288425Sjkim/******* Object References ***********************************************/
1013288425Sjkim
1014288425Sjkim/* Allow IO, DMA, IRQ Resource macro names to also be used as identifiers */
1015288425Sjkim
1016288425SjkimNameString
1017288425Sjkim    : NameSeg                       {}
1018288425Sjkim    | PARSEOP_NAMESTRING            {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
1019288425Sjkim    | PARSEOP_IO                    {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
1020288425Sjkim    | PARSEOP_DMA                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
1021288425Sjkim    | PARSEOP_IRQ                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
1022288425Sjkim    ;
1023288425Sjkim
1024288425SjkimNameSeg
1025288425Sjkim    : PARSEOP_NAMESEG               {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
1026288425Sjkim    ;
1027288425Sjkim
1028288425Sjkim
1029288425Sjkim/*******************************************************************************
1030288425Sjkim *
1031288425Sjkim * ASL Helper Terms
1032288425Sjkim *
1033288425Sjkim ******************************************************************************/
1034288425Sjkim
1035288425SjkimOptionalBusMasterKeyword
1036288425Sjkim    : ','                                       {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
1037288425Sjkim    | ',' PARSEOP_BUSMASTERTYPE_MASTER          {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
1038288425Sjkim    | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER       {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
1039288425Sjkim    ;
1040288425Sjkim
1041288425SjkimOptionalAccessAttribTerm
1042288425Sjkim    :                               {$$ = NULL;}
1043288425Sjkim    | ','                           {$$ = NULL;}
1044288425Sjkim    | ',' ByteConstExpr             {$$ = $2;}
1045288425Sjkim    | ',' AccessAttribKeyword       {$$ = $2;}
1046288425Sjkim    ;
1047288425Sjkim
1048288425SjkimOptionalAccessSize
1049288425Sjkim    :                               {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
1050288425Sjkim    | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
1051288425Sjkim    | ',' ByteConstExpr             {$$ = $2;}
1052288425Sjkim    ;
1053288425Sjkim
1054288425SjkimOptionalAddressingMode
1055288425Sjkim    : ','                           {$$ = NULL;}
1056288425Sjkim    | ',' AddressingModeKeyword     {$$ = $2;}
1057288425Sjkim    ;
1058288425Sjkim
1059288425SjkimOptionalAddressRange
1060288425Sjkim    :                               {$$ = NULL;}
1061288425Sjkim    | ','                           {$$ = NULL;}
1062288425Sjkim    | ',' AddressKeyword            {$$ = $2;}
1063288425Sjkim    ;
1064288425Sjkim
1065288425SjkimOptionalBitsPerByte
1066288425Sjkim    : ','                           {$$ = NULL;}
1067288425Sjkim    | ',' BitsPerByteKeyword        {$$ = $2;}
1068288425Sjkim    ;
1069288425Sjkim
1070288425SjkimOptionalBuffer_Last
1071288425Sjkim    :                               {$$ = NULL;}
1072288425Sjkim    | ','                           {$$ = NULL;}
1073288425Sjkim    | ',' RawDataBufferTerm         {$$ = $2;}
1074288425Sjkim    ;
1075288425Sjkim
1076288425SjkimOptionalByteConstExpr
1077288425Sjkim    :                               {$$ = NULL;}
1078288425Sjkim    | ','                           {$$ = NULL;}
1079288425Sjkim    | ',' ByteConstExpr             {$$ = $2;}
1080288425Sjkim    ;
1081288425Sjkim
1082288425SjkimOptionalDecodeType
1083288425Sjkim    : ','                           {$$ = NULL;}
1084288425Sjkim    | ',' DecodeKeyword             {$$ = $2;}
1085288425Sjkim    ;
1086288425Sjkim
1087288425SjkimOptionalDevicePolarity
1088288425Sjkim    : ','                           {$$ = NULL;}
1089288425Sjkim    | ',' DevicePolarityKeyword     {$$ = $2;}
1090288425Sjkim    ;
1091288425Sjkim
1092288425SjkimOptionalDWordConstExpr
1093288425Sjkim    :                               {$$ = NULL;}
1094288425Sjkim    | ','                           {$$ = NULL;}
1095288425Sjkim    | ',' DWordConstExpr            {$$ = $2;}
1096288425Sjkim    ;
1097288425Sjkim
1098288425SjkimOptionalEndian
1099288425Sjkim    : ','                           {$$ = NULL;}
1100288425Sjkim    | ',' EndianKeyword             {$$ = $2;}
1101288425Sjkim    ;
1102288425Sjkim
1103288425SjkimOptionalFlowControl
1104288425Sjkim    : ','                           {$$ = NULL;}
1105288425Sjkim    | ',' FlowControlKeyword        {$$ = $2;}
1106288425Sjkim    ;
1107288425Sjkim
1108288425SjkimOptionalIoRestriction
1109288425Sjkim    : ','                           {$$ = NULL;}
1110288425Sjkim    | ',' IoRestrictionKeyword      {$$ = $2;}
1111288425Sjkim    ;
1112288425Sjkim
1113288425SjkimOptionalListString
1114288425Sjkim    :                               {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
1115288425Sjkim    | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
1116288425Sjkim    | ',' TermArg                   {$$ = $2;}
1117288425Sjkim    ;
1118288425Sjkim
1119288425SjkimOptionalMaxType
1120288425Sjkim    : ','                           {$$ = NULL;}
1121288425Sjkim    | ',' MaxKeyword                {$$ = $2;}
1122288425Sjkim    ;
1123288425Sjkim
1124288425SjkimOptionalMemType
1125288425Sjkim    : ','                           {$$ = NULL;}
1126288425Sjkim    | ',' MemTypeKeyword            {$$ = $2;}
1127288425Sjkim    ;
1128288425Sjkim
1129288425SjkimOptionalMinType
1130288425Sjkim    : ','                           {$$ = NULL;}
1131288425Sjkim    | ',' MinKeyword                {$$ = $2;}
1132288425Sjkim    ;
1133288425Sjkim
1134288425SjkimOptionalNameString
1135288425Sjkim    :                               {$$ = NULL;}
1136288425Sjkim    | ','                           {$$ = NULL;}
1137288425Sjkim    | ',' NameString                {$$ = $2;}
1138288425Sjkim    ;
1139288425Sjkim
1140288425SjkimOptionalNameString_Last
1141288425Sjkim    :                               {$$ = NULL;}
1142288425Sjkim    | ','                           {$$ = NULL;}
1143288425Sjkim    | ',' NameString                {$$ = $2;}
1144288425Sjkim    ;
1145288425Sjkim
1146288425SjkimOptionalNameString_First
1147288425Sjkim    :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
1148288425Sjkim    | NameString                    {$$ = $1;}
1149288425Sjkim    ;
1150288425Sjkim
1151288425SjkimOptionalObjectTypeKeyword
1152288425Sjkim    :                               {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
1153288425Sjkim    | ',' ObjectTypeKeyword         {$$ = $2;}
1154288425Sjkim    ;
1155288425Sjkim
1156288425SjkimOptionalParityType
1157288425Sjkim    : ','                           {$$ = NULL;}
1158288425Sjkim    | ',' ParityTypeKeyword         {$$ = $2;}
1159288425Sjkim    ;
1160288425Sjkim
1161288425SjkimOptionalQWordConstExpr
1162288425Sjkim    :                               {$$ = NULL;}
1163288425Sjkim    | ','                           {$$ = NULL;}
1164288425Sjkim    | ',' QWordConstExpr            {$$ = $2;}
1165288425Sjkim    ;
1166288425Sjkim
1167288425SjkimOptionalRangeType
1168288425Sjkim    : ','                           {$$ = NULL;}
1169288425Sjkim    | ',' RangeTypeKeyword          {$$ = $2;}
1170288425Sjkim    ;
1171288425Sjkim
1172288425SjkimOptionalReadWriteKeyword
1173288425Sjkim    :                                   {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
1174288425Sjkim    | PARSEOP_READWRITETYPE_BOTH        {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
1175288425Sjkim    | PARSEOP_READWRITETYPE_READONLY    {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
1176288425Sjkim    ;
1177288425Sjkim
1178288425SjkimOptionalResourceType_First
1179288425Sjkim    :                               {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
1180288425Sjkim    | ResourceTypeKeyword           {$$ = $1;}
1181288425Sjkim    ;
1182288425Sjkim
1183288425SjkimOptionalResourceType
1184288425Sjkim    :                               {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
1185288425Sjkim    | ','                           {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
1186288425Sjkim    | ',' ResourceTypeKeyword       {$$ = $2;}
1187288425Sjkim    ;
1188288425Sjkim
1189288425SjkimOptionalSlaveMode
1190288425Sjkim    : ','                           {$$ = NULL;}
1191288425Sjkim    | ',' SlaveModeKeyword          {$$ = $2;}
1192288425Sjkim    ;
1193288425Sjkim
1194288425SjkimOptionalShareType
1195288425Sjkim    :                               {$$ = NULL;}
1196288425Sjkim    | ','                           {$$ = NULL;}
1197288425Sjkim    | ',' ShareTypeKeyword          {$$ = $2;}
1198288425Sjkim    ;
1199288425Sjkim
1200288425SjkimOptionalShareType_First
1201288425Sjkim    :                               {$$ = NULL;}
1202288425Sjkim    | ShareTypeKeyword              {$$ = $1;}
1203288425Sjkim    ;
1204288425Sjkim
1205288425SjkimOptionalStopBits
1206288425Sjkim    : ','                           {$$ = NULL;}
1207288425Sjkim    | ',' StopBitsKeyword           {$$ = $2;}
1208288425Sjkim    ;
1209288425Sjkim
1210288425SjkimOptionalStringData
1211288425Sjkim    :                               {$$ = NULL;}
1212288425Sjkim    | ','                           {$$ = NULL;}
1213288425Sjkim    | ',' StringData                {$$ = $2;}
1214288425Sjkim    ;
1215288425Sjkim
1216288425SjkimOptionalTranslationType_Last
1217288425Sjkim    :                               {$$ = NULL;}
1218288425Sjkim    | ','                           {$$ = NULL;}
1219288425Sjkim    | ',' TranslationKeyword        {$$ = $2;}
1220288425Sjkim    ;
1221288425Sjkim
1222288425SjkimOptionalType
1223288425Sjkim    :                               {$$ = NULL;}
1224288425Sjkim    | ','                           {$$ = NULL;}
1225288425Sjkim    | ',' TypeKeyword               {$$ = $2;}
1226288425Sjkim    ;
1227288425Sjkim
1228288425SjkimOptionalType_Last
1229288425Sjkim    :                               {$$ = NULL;}
1230288425Sjkim    | ','                           {$$ = NULL;}
1231288425Sjkim    | ',' TypeKeyword               {$$ = $2;}
1232288425Sjkim    ;
1233288425Sjkim
1234288425SjkimOptionalWireMode
1235288425Sjkim    : ','                           {$$ = NULL;}
1236288425Sjkim    | ',' WireModeKeyword           {$$ = $2;}
1237288425Sjkim    ;
1238288425Sjkim
1239288425SjkimOptionalWordConstExpr
1240288425Sjkim    : ','                           {$$ = NULL;}
1241288425Sjkim    | ',' WordConstExpr             {$$ = $2;}
1242288425Sjkim    ;
1243288425Sjkim
1244288425SjkimOptionalXferSize
1245288425Sjkim    :                               {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
1246288425Sjkim    | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
1247288425Sjkim    | ',' XferSizeKeyword           {$$ = $2;}
1248288425Sjkim    ;
1249