2 /******************************************************************************
4 * Module Name: aslrules.y - Bison/Yacc production rules
6 *****************************************************************************/
8 /******************************************************************************
12 * Some or all of this work - Copyright (c) 1999 - 2015, Intel Corp.
13 * All rights reserved.
17 * 2.1. This is your license from Intel Corp. under its intellectual property
18 * rights. You may have additional license terms from the party that provided
19 * you this software, covering your right to use that party's intellectual
22 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
23 * copy of the source code appearing in this file ("Covered Code") an
24 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
25 * base code distributed originally by Intel ("Original Intel Code") to copy,
26 * make derivatives, distribute, use and display any portion of the Covered
27 * Code in any form, with the right to sublicense such rights; and
29 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
30 * license (with the right to sublicense), under only those claims of Intel
31 * patents that are infringed by the Original Intel Code, to make, use, sell,
32 * offer to sell, and import the Covered Code and derivative works thereof
33 * solely to the minimum extent necessary to exercise the above copyright
34 * license, and in no event shall the patent license extend to any additions
35 * to or modifications of the Original Intel Code. No other license or right
36 * is granted directly or by implication, estoppel or otherwise;
38 * The above copyright and patent license is granted only if the following
43 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
44 * Redistribution of source code of any substantial portion of the Covered
45 * Code or modification with rights to further distribute source must include
46 * the above Copyright Notice, the above License, this list of Conditions,
47 * and the following Disclaimer and Export Compliance provision. In addition,
48 * Licensee must cause all Covered Code to which Licensee contributes to
49 * contain a file documenting the changes Licensee made to create that Covered
50 * Code and the date of any change. Licensee must include in that file the
51 * documentation of any changes made by any predecessor Licensee. Licensee
52 * must include a prominent statement that the modification is derived,
53 * directly or indirectly, from Original Intel Code.
55 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
56 * Redistribution of source code of any substantial portion of the Covered
57 * Code or modification without rights to further distribute source must
58 * include the following Disclaimer and Export Compliance provision in the
59 * documentation and/or other materials provided with distribution. In
60 * addition, Licensee may not authorize further sublicense of source of any
61 * portion of the Covered Code, and must include terms to the effect that the
62 * license from Licensee to its licensee is limited to the intellectual
63 * property embodied in the software Licensee provides to its licensee, and
64 * not to intellectual property embodied in modifications its licensee may
67 * 3.3. Redistribution of Executable. Redistribution in executable form of any
68 * substantial portion of the Covered Code or modification must reproduce the
69 * above Copyright Notice, and the following Disclaimer and Export Compliance
70 * provision in the documentation and/or other materials provided with the
73 * 3.4. Intel retains all right, title, and interest in and to the Original
76 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
77 * Intel shall be used in advertising or otherwise to promote the sale, use or
78 * other dealings in products derived from or relating to the Covered Code
79 * without prior written authorization from Intel.
81 * 4. Disclaimer and Export Compliance
83 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
84 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
85 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
86 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
87 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
88 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
91 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
92 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
93 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
94 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
95 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
96 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
97 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
100 * 4.3. Licensee shall not export, either directly or indirectly, any of this
101 * software or system incorporating such software without first obtaining any
102 * required license or other approval from the U. S. Department of Commerce or
103 * any other agency or department of the United States Government. In the
104 * event Licensee exports any such software from the United States or
105 * re-exports any such software from a foreign destination, Licensee shall
106 * ensure that the distribution and export/re-export of the software is in
107 * compliance with all laws, regulations, orders, or other restrictions of the
108 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
109 * any of its subsidiaries will export/re-export any technical data, process,
110 * software, or service, directly or indirectly, to any country for which the
111 * United States government or any agency thereof requires an export license,
112 * other governmental approval, or letter of assurance, without first obtaining
113 * such license, approval or letter.
115 *****************************************************************************/
119 /*******************************************************************************
121 * Production rules start here
123 ******************************************************************************/
128 * Root rule. Allow multiple #line directives before the definition block
129 * to handle output from preprocessors
132 : DefinitionBlockTerm
133 | error {YYABORT; $$ = NULL;}
137 * Blocks, Data, and Opcodes
141 * Note concerning support for "module-level code".
143 * ACPI 1.0 allowed Type1 and Type2 executable opcodes outside of control
144 * methods (the so-called module-level code.) This support was explicitly
145 * removed in ACPI 2.0, but this type of code continues to be created by
146 * BIOS vendors. In order to support the disassembly and recompilation of
147 * such code (and the porting of ASL code to iASL), iASL supports this
148 * code in violation of the current ACPI specification.
150 * The grammar change to support module-level code is to revert the
151 * {ObjectList} portion of the DefinitionBlockTerm in ACPI 2.0 to the
152 * original use of {TermList} instead (see below.) This allows the use
153 * of Type1 and Type2 opcodes at module level.
156 : PARSEOP_DEFINITIONBLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);}
163 ')' {TrSetEndLineNumber ($<n>3);}
164 '{' TermList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);}
168 * ASL Extensions: C-style math/logical operators and expressions.
169 * The implementation transforms these operators into the standard
170 * AML opcodes and syntax.
172 * Supported operators and precedence rules (high-to-low)
174 * NOTE: The operator precedence and associativity rules are
175 * implemented by the tokens in asltokens.y
178 * 1) ( ) expr++ expr--
196 * 13) = += -= *= /= %= <<= >>= &= ^= |=
200 /* Unary operators */
202 : PARSEOP_EXP_LOGICAL_NOT {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
203 TermArg {$$ = TrLinkChildren ($<n>2,1,$3);}
204 | PARSEOP_EXP_NOT {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
205 TermArg {$$ = TrLinkChildren ($<n>2,2,$3,TrCreateNullTarget ());}
207 | SuperName PARSEOP_EXP_INCREMENT {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
208 {$$ = TrLinkChildren ($<n>3,1,$1);}
209 | SuperName PARSEOP_EXP_DECREMENT {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
210 {$$ = TrLinkChildren ($<n>3,1,$1);}
212 /* Binary operators: math and logical */
214 | TermArg PARSEOP_EXP_ADD {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
215 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
216 | TermArg PARSEOP_EXP_DIVIDE {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
217 TermArg {$$ = TrLinkChildren ($<n>3,4,$1,$4,TrCreateNullTarget (),
218 TrCreateNullTarget ());}
219 | TermArg PARSEOP_EXP_MODULO {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
220 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
221 | TermArg PARSEOP_EXP_MULTIPLY {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
222 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
223 | TermArg PARSEOP_EXP_SHIFT_LEFT {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
224 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
225 | TermArg PARSEOP_EXP_SHIFT_RIGHT {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
226 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
227 | TermArg PARSEOP_EXP_SUBTRACT {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
228 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
230 | TermArg PARSEOP_EXP_AND {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
231 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
232 | TermArg PARSEOP_EXP_OR {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
233 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
234 | TermArg PARSEOP_EXP_XOR {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
235 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());}
237 | TermArg PARSEOP_EXP_GREATER {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
238 TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
239 | TermArg PARSEOP_EXP_GREATER_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATEREQUAL);}
240 TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
241 | TermArg PARSEOP_EXP_LESS {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
242 TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
243 | TermArg PARSEOP_EXP_LESS_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LLESSEQUAL);}
244 TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
246 | TermArg PARSEOP_EXP_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
247 TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
248 | TermArg PARSEOP_EXP_NOT_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LNOTEQUAL);}
249 TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
251 | TermArg PARSEOP_EXP_LOGICAL_AND {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
252 TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
253 | TermArg PARSEOP_EXP_LOGICAL_OR {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
254 TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);}
258 | '(' TermArg ')' { $$ = $2;}
263 /* All assignment-type operations */
265 : SuperName PARSEOP_EXP_EQUALS
266 TermArg {$$ = TrCreateAssignmentNode ($1, $3);}
268 | TermArg PARSEOP_EXP_ADD_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
269 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
270 TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
272 | TermArg PARSEOP_EXP_DIV_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
273 TermArg {$$ = TrLinkChildren ($<n>3,4,$1,$4,TrCreateNullTarget (),
274 TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
276 | TermArg PARSEOP_EXP_MOD_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
277 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
278 TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
280 | TermArg PARSEOP_EXP_MUL_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
281 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
282 TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
284 | TermArg PARSEOP_EXP_SHL_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
285 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
286 TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
288 | TermArg PARSEOP_EXP_SHR_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
289 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
290 TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
292 | TermArg PARSEOP_EXP_SUB_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
293 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
294 TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
296 | TermArg PARSEOP_EXP_AND_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
297 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
298 TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
300 | TermArg PARSEOP_EXP_OR_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
301 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
302 TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
304 | TermArg PARSEOP_EXP_XOR_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
305 TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,
306 TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));}
310 /* ACPI 3.0 -- allow semicolons between terms */
314 | TermList Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
315 | TermList Term ';' {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
316 | TermList ';' Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
317 | TermList ';' Term ';' {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
324 | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
325 | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
326 | Type2BufferOpcode {}
327 | Type2BufferOrStringOpcode {}
328 | error {$$ = AslDoError(); yyclearin;}
338 | ObjectList Object {$$ = TrLinkPeerNode ($1,$2);}
339 | error {$$ = AslDoError(); yyclearin;}
343 : CompilerDirective {}
345 | NameSpaceModifier {}
356 : Type5Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
357 | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
358 | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
367 : Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
368 | Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
374 : Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
380 | CreateBitFieldTerm {}
381 | CreateByteFieldTerm {}
382 | CreateDWordFieldTerm {}
384 | CreateQWordFieldTerm {}
385 | CreateWordFieldTerm {}
407 : NameString '(' {TrUpdateNode (PARSEOP_METHODCALL, $1);}
408 ArgList ')' {$$ = TrLinkChildNode ($1,$4);}
414 | ArgList ',' /* Allows a trailing comma at list end */
416 TermArg {$$ = TrLinkPeerNode ($1,$3);}
420 Removed from TermArg due to reduce/reduce conflicts
421 | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
422 | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
423 | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
424 | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
429 : Type2Opcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
430 | DataObject {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
431 | NameString {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
432 | ArgTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
433 | LocalTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
437 : {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
438 | ',' {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
439 | ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
443 : ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
452 /* Rules for specifying the type of one method argument or return value */
456 | ObjectTypeKeyword {$$ = $1;}
457 | ParameterTypePackage ','
458 ObjectTypeKeyword {$$ = TrLinkPeerNodes (2,$1,$3);}
461 ParameterTypePackageList
463 | ObjectTypeKeyword {$$ = $1;}
464 | '{' ParameterTypePackage '}' {$$ = $2;}
467 OptionalParameterTypePackage
468 : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
469 | ',' ParameterTypePackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
472 /* Rules for specifying the types for method arguments */
474 ParameterTypesPackage
475 : ParameterTypePackageList {$$ = $1;}
476 | ParameterTypesPackage ','
477 ParameterTypePackageList {$$ = TrLinkPeerNodes (2,$1,$3);}
480 ParameterTypesPackageList
482 | ObjectTypeKeyword {$$ = $1;}
483 | '{' ParameterTypesPackage '}' {$$ = $2;}
486 OptionalParameterTypesPackage
487 : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
488 | ',' ParameterTypesPackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
526 | MethodInvocationTerm {}
533 Type2IntegerOpcode /* "Type3" opcodes */
534 : Expression {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
539 | FindSetLeftBitTerm {}
540 | FindSetRightBitTerm {}
547 | LGreaterEqualTerm {}
569 Type2StringOpcode /* "Type4" Opcodes */
570 : ToDecimalStringTerm {}
575 Type2BufferOpcode /* "Type5" Opcodes */
580 Type2BufferOrStringOpcode
581 : ConcatTerm {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
588 * A type 3 opcode evaluates to an Integer and cannot have a destination operand
598 | ToDecimalStringTerm {}
607 : ResourceTemplateTerm {}
617 | MethodInvocationTerm {}
621 : PARSEOP_INCLUDE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE);}
622 String ')' {TrLinkChildren ($<n>3,1,$4);FlOpenIncludeFile ($4);}
624 IncludeEndTerm {$$ = TrLinkPeerNodes (3,$<n>3,$7,$8);}
628 : PARSEOP_INCLUDE_END {$$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);}
632 : PARSEOP_EXTERNAL '('
634 OptionalObjectTypeKeyword
635 OptionalParameterTypePackage
636 OptionalParameterTypesPackage
637 ')' {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
638 | PARSEOP_EXTERNAL '('
639 error ')' {$$ = AslDoError(); yyclearin;}
643 /******* Named Objects *******************************************************/
647 : PARSEOP_BANKFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
651 ',' AccessTypeKeyword
653 ',' UpdateRuleKeyword
655 FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);}
656 | PARSEOP_BANKFIELD '('
657 error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
663 | FieldUnitList ',' /* Allows a trailing comma at list end */
665 FieldUnit {$$ = TrLinkPeerNode ($1,$3);}
676 : ',' AmlPackageLengthTerm {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
678 AmlPackageLengthTerm {$$ = TrLinkChildNode ($1,$3);}
684 ')' {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
686 error ')' {$$ = AslDoError(); yyclearin;}
690 : PARSEOP_ACCESSAS '('
692 OptionalAccessAttribTerm
693 ')' {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
694 | PARSEOP_ACCESSAS '('
695 error ')' {$$ = AslDoError(); yyclearin;}
699 : PARSEOP_CONNECTION '('
701 ')' {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);}
702 | PARSEOP_CONNECTION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONNECTION);}
704 ')' {$$ = TrLinkChildren ($<n>3, 1,
705 TrLinkChildren (TrCreateLeafNode (PARSEOP_RESOURCETEMPLATE), 3,
706 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
707 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
709 | PARSEOP_CONNECTION '('
710 error ')' {$$ = AslDoError(); yyclearin;}
714 : PARSEOP_CREATEBITFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
718 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
719 | PARSEOP_CREATEBITFIELD '('
720 error ')' {$$ = AslDoError(); yyclearin;}
724 : PARSEOP_CREATEBYTEFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
728 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
729 | PARSEOP_CREATEBYTEFIELD '('
730 error ')' {$$ = AslDoError(); yyclearin;}
734 : PARSEOP_CREATEDWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
738 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
739 | PARSEOP_CREATEDWORDFIELD '('
740 error ')' {$$ = AslDoError(); yyclearin;}
744 : PARSEOP_CREATEFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
749 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
750 | PARSEOP_CREATEFIELD '('
751 error ')' {$$ = AslDoError(); yyclearin;}
755 : PARSEOP_CREATEQWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
759 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
760 | PARSEOP_CREATEQWORDFIELD '('
761 error ')' {$$ = AslDoError(); yyclearin;}
765 : PARSEOP_CREATEWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
769 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
770 | PARSEOP_CREATEWORDFIELD '('
771 error ')' {$$ = AslDoError(); yyclearin;}
775 : PARSEOP_DATATABLEREGION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
780 ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
781 | PARSEOP_DATATABLEREGION '('
782 error ')' {$$ = AslDoError(); yyclearin;}
786 : PARSEOP_DEVICE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);}
789 ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
791 error ')' {$$ = AslDoError(); yyclearin;}
795 : PARSEOP_EVENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);}
797 ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
799 error ')' {$$ = AslDoError(); yyclearin;}
803 : PARSEOP_FIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIELD);}
805 ',' AccessTypeKeyword
807 ',' UpdateRuleKeyword
809 FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
811 error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
815 : PARSEOP_FUNCTION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
817 OptionalParameterTypePackage
818 OptionalParameterTypesPackage
820 TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
821 TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
822 TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
823 TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
824 | PARSEOP_FUNCTION '('
825 error ')' {$$ = AslDoError(); yyclearin;}
829 : PARSEOP_INDEXFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
832 ',' AccessTypeKeyword
834 ',' UpdateRuleKeyword
836 FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
837 | PARSEOP_INDEXFIELD '('
838 error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
842 : PARSEOP_METHOD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
844 OptionalByteConstExpr {UtCheckIntegerRange ($5, 0, 7);}
845 OptionalSerializeRuleKeyword
846 OptionalByteConstExpr
847 OptionalParameterTypePackage
848 OptionalParameterTypesPackage
850 TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);}
852 error ')' {$$ = AslDoError(); yyclearin;}
856 : PARSEOP_MUTEX '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);}
859 ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
861 error ')' {$$ = AslDoError(); yyclearin;}
865 : PARSEOP_OPERATIONREGION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
867 ',' OpRegionSpaceIdTerm
870 ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);}
871 | PARSEOP_OPERATIONREGION '('
872 error ')' {$$ = AslDoError(); yyclearin;}
876 : RegionSpaceKeyword {}
877 | ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
881 : PARSEOP_POWERRESOURCE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
886 ObjectList '}' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);}
887 | PARSEOP_POWERRESOURCE '('
888 error ')' {$$ = AslDoError(); yyclearin;}
892 : PARSEOP_PROCESSOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
895 OptionalDWordConstExpr
896 OptionalByteConstExpr
898 ObjectList '}' {$$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);}
899 | PARSEOP_PROCESSOR '('
900 error ')' {$$ = AslDoError(); yyclearin;}
904 : PARSEOP_THERMALZONE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
907 ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
908 | PARSEOP_THERMALZONE '('
909 error ')' {$$ = AslDoError(); yyclearin;}
913 /******* Namespace modifiers *************************************************/
917 : PARSEOP_ALIAS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);}
920 ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
922 error ')' {$$ = AslDoError(); yyclearin;}
926 : PARSEOP_NAME '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);}
929 ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
931 error ')' {$$ = AslDoError(); yyclearin;}
935 : PARSEOP_SCOPE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);}
938 ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
940 error ')' {$$ = AslDoError(); yyclearin;}
944 /******* Type 1 opcodes *******************************************************/
948 : PARSEOP_BREAK {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
952 : PARSEOP_BREAKPOINT {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
956 : PARSEOP_CONTINUE {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
960 : PARSEOP_FATAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);}
964 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
966 error ')' {$$ = AslDoError(); yyclearin;}
970 : IfTerm ElseTerm {$$ = TrLinkPeerNode ($1,$2);}
974 : PARSEOP_IF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
977 TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
980 error ')' {$$ = AslDoError(); yyclearin;}
985 | PARSEOP_ELSE '{' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
986 TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
989 error '}' {$$ = AslDoError(); yyclearin;}
992 error {$$ = AslDoError(); yyclearin;}
994 | PARSEOP_ELSEIF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
995 TermArg {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
997 TermList '}' {TrLinkChildren ($<n>5,2,$4,$8);}
998 ElseTerm {TrLinkPeerNode ($<n>5,$11);}
999 {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
1001 | PARSEOP_ELSEIF '('
1002 error ')' {$$ = AslDoError(); yyclearin;}
1005 error {$$ = AslDoError(); yyclearin;}
1009 : PARSEOP_LOAD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);}
1012 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1014 error ')' {$$ = AslDoError(); yyclearin;}
1018 : PARSEOP_NOOP {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
1022 : PARSEOP_NOTIFY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
1025 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1026 | PARSEOP_NOTIFY '('
1027 error ')' {$$ = AslDoError(); yyclearin;}
1031 : PARSEOP_RELEASE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);}
1033 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1034 | PARSEOP_RELEASE '('
1035 error ')' {$$ = AslDoError(); yyclearin;}
1039 : PARSEOP_RESET '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);}
1041 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1043 error ')' {$$ = AslDoError(); yyclearin;}
1047 : PARSEOP_RETURN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);}
1049 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1050 | PARSEOP_RETURN {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN));}
1051 | PARSEOP_RETURN '('
1052 error ')' {$$ = AslDoError(); yyclearin;}
1056 : PARSEOP_SIGNAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
1058 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1059 | PARSEOP_SIGNAL '('
1060 error ')' {$$ = AslDoError(); yyclearin;}
1064 : PARSEOP_SLEEP '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);}
1066 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1068 error ')' {$$ = AslDoError(); yyclearin;}
1072 : PARSEOP_STALL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);}
1074 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1076 error ')' {$$ = AslDoError(); yyclearin;}
1080 : PARSEOP_SWITCH '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);}
1083 CaseDefaultTermList '}'
1084 {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1085 | PARSEOP_SWITCH '('
1086 error ')' {$$ = AslDoError(); yyclearin;}
1090 * Case-Default list; allow only one Default term and unlimited Case terms
1097 | CaseDefaultTermList
1098 CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
1099 | CaseDefaultTermList
1100 DefaultTerm {$$ = TrLinkPeerNode ($1,$2);}
1102 /* Original - attempts to force zero or one default term within the switch */
1109 CaseTermList {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
1111 CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
1118 CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
1123 : PARSEOP_CASE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);}
1126 TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1128 error ')' {$$ = AslDoError(); yyclearin;}
1132 : PARSEOP_DEFAULT '{' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
1133 TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
1134 | PARSEOP_DEFAULT '{'
1135 error '}' {$$ = AslDoError(); yyclearin;}
1139 : PARSEOP_UNLOAD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
1141 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1142 | PARSEOP_UNLOAD '('
1143 error ')' {$$ = AslDoError(); yyclearin;}
1147 : PARSEOP_WHILE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
1149 ')' '{' TermList '}'
1150 {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1152 error ')' {$$ = AslDoError(); yyclearin;}
1156 /******* Type 2 opcodes *******************************************************/
1159 : PARSEOP_ACQUIRE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
1162 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
1163 | PARSEOP_ACQUIRE '('
1164 error ')' {$$ = AslDoError(); yyclearin;}
1168 : PARSEOP_ADD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
1172 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1174 error ')' {$$ = AslDoError(); yyclearin;}
1178 : PARSEOP_AND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
1182 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1184 error ')' {$$ = AslDoError(); yyclearin;}
1188 : PARSEOP_CONCATENATE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
1192 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1193 | PARSEOP_CONCATENATE '('
1194 error ')' {$$ = AslDoError(); yyclearin;}
1198 : PARSEOP_CONCATENATERESTEMPLATE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);}
1202 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1203 | PARSEOP_CONCATENATERESTEMPLATE '('
1204 error ')' {$$ = AslDoError(); yyclearin;}
1208 : PARSEOP_CONDREFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
1211 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1212 | PARSEOP_CONDREFOF '('
1213 error ')' {$$ = AslDoError(); yyclearin;}
1217 : PARSEOP_COPYOBJECT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
1220 ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
1221 | PARSEOP_COPYOBJECT '('
1222 error ')' {$$ = AslDoError(); yyclearin;}
1226 : PARSEOP_DECREMENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
1228 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1229 | PARSEOP_DECREMENT '('
1230 error ')' {$$ = AslDoError(); yyclearin;}
1234 : PARSEOP_DEREFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
1236 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1237 | PARSEOP_DEREFOF '('
1238 error ')' {$$ = AslDoError(); yyclearin;}
1242 : PARSEOP_DIVIDE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
1247 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
1248 | PARSEOP_DIVIDE '('
1249 error ')' {$$ = AslDoError(); yyclearin;}
1253 : PARSEOP_FINDSETLEFTBIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
1256 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1257 | PARSEOP_FINDSETLEFTBIT '('
1258 error ')' {$$ = AslDoError(); yyclearin;}
1262 : PARSEOP_FINDSETRIGHTBIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
1265 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1266 | PARSEOP_FINDSETRIGHTBIT '('
1267 error ')' {$$ = AslDoError(); yyclearin;}
1271 : PARSEOP_FROMBCD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
1274 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1275 | PARSEOP_FROMBCD '('
1276 error ')' {$$ = AslDoError(); yyclearin;}
1280 : PARSEOP_INCREMENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
1282 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1283 | PARSEOP_INCREMENT '('
1284 error ')' {$$ = AslDoError(); yyclearin;}
1288 : PARSEOP_INDEX '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);}
1292 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1294 error ')' {$$ = AslDoError(); yyclearin;}
1298 : PARSEOP_LAND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
1301 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1303 error ')' {$$ = AslDoError(); yyclearin;}
1307 : PARSEOP_LEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1310 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1311 | PARSEOP_LEQUAL '('
1312 error ')' {$$ = AslDoError(); yyclearin;}
1316 : PARSEOP_LGREATER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1319 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1320 | PARSEOP_LGREATER '('
1321 error ')' {$$ = AslDoError(); yyclearin;}
1325 : PARSEOP_LGREATEREQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
1328 ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1329 | PARSEOP_LGREATEREQUAL '('
1330 error ')' {$$ = AslDoError(); yyclearin;}
1334 : PARSEOP_LLESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
1337 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1339 error ')' {$$ = AslDoError(); yyclearin;}
1343 : PARSEOP_LLESSEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1346 ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1347 | PARSEOP_LLESSEQUAL '('
1348 error ')' {$$ = AslDoError(); yyclearin;}
1352 : PARSEOP_LNOT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
1354 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1356 error ')' {$$ = AslDoError(); yyclearin;}
1360 : PARSEOP_LNOTEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1363 ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1364 | PARSEOP_LNOTEQUAL '('
1365 error ')' {$$ = AslDoError(); yyclearin;}
1369 : PARSEOP_LOADTABLE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
1376 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
1377 | PARSEOP_LOADTABLE '('
1378 error ')' {$$ = AslDoError(); yyclearin;}
1382 : PARSEOP_LOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
1385 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1387 error ')' {$$ = AslDoError(); yyclearin;}
1391 : PARSEOP_MATCH '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);}
1398 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
1400 error ')' {$$ = AslDoError(); yyclearin;}
1404 : PARSEOP_MID '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MID);}
1409 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
1411 error ')' {$$ = AslDoError(); yyclearin;}
1415 : PARSEOP_MOD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
1419 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1421 error ')' {$$ = AslDoError(); yyclearin;}
1425 : PARSEOP_MULTIPLY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
1429 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1430 | PARSEOP_MULTIPLY '('
1431 error ')' {$$ = AslDoError(); yyclearin;}
1435 : PARSEOP_NAND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NAND);}
1439 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1441 error ')' {$$ = AslDoError(); yyclearin;}
1445 : PARSEOP_NOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOR);}
1449 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1451 error ')' {$$ = AslDoError(); yyclearin;}
1455 : PARSEOP_NOT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
1458 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1460 error ')' {$$ = AslDoError(); yyclearin;}
1464 : PARSEOP_OBJECTTYPE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
1466 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1467 | PARSEOP_OBJECTTYPE '('
1468 error ')' {$$ = AslDoError(); yyclearin;}
1472 : PARSEOP_OR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
1476 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1478 error ')' {$$ = AslDoError(); yyclearin;}
1482 * In RefOf, the node isn't really a target, but we can't keep track of it after
1483 * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
1486 : PARSEOP_REFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);}
1488 ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
1490 error ')' {$$ = AslDoError(); yyclearin;}
1494 : PARSEOP_SHIFTLEFT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
1498 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1499 | PARSEOP_SHIFTLEFT '('
1500 error ')' {$$ = AslDoError(); yyclearin;}
1504 : PARSEOP_SHIFTRIGHT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
1508 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1509 | PARSEOP_SHIFTRIGHT '('
1510 error ')' {$$ = AslDoError(); yyclearin;}
1514 : PARSEOP_SIZEOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
1516 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1517 | PARSEOP_SIZEOF '('
1518 error ')' {$$ = AslDoError(); yyclearin;}
1522 : PARSEOP_STORE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);}
1525 ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
1527 error ')' {$$ = AslDoError(); yyclearin;}
1531 : PARSEOP_SUBTRACT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
1535 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1536 | PARSEOP_SUBTRACT '('
1537 error ')' {$$ = AslDoError(); yyclearin;}
1541 : PARSEOP_TIMER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);}
1542 ')' {$$ = TrLinkChildren ($<n>3,0);}
1543 | PARSEOP_TIMER {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);}
1545 error ')' {$$ = AslDoError(); yyclearin;}
1549 : PARSEOP_TOBCD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);}
1552 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1554 error ')' {$$ = AslDoError(); yyclearin;}
1558 : PARSEOP_TOBUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
1561 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1562 | PARSEOP_TOBUFFER '('
1563 error ')' {$$ = AslDoError(); yyclearin;}
1567 : PARSEOP_TODECIMALSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
1570 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1571 | PARSEOP_TODECIMALSTRING '('
1572 error ')' {$$ = AslDoError(); yyclearin;}
1576 : PARSEOP_TOHEXSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
1579 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1580 | PARSEOP_TOHEXSTRING '('
1581 error ')' {$$ = AslDoError(); yyclearin;}
1585 : PARSEOP_TOINTEGER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
1588 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1589 | PARSEOP_TOINTEGER '('
1590 error ')' {$$ = AslDoError(); yyclearin;}
1594 : PARSEOP_PLD_REVISION {$$ = TrCreateLeafNode (PARSEOP_PLD_REVISION);}
1595 | PARSEOP_PLD_IGNORECOLOR {$$ = TrCreateLeafNode (PARSEOP_PLD_IGNORECOLOR);}
1596 | PARSEOP_PLD_RED {$$ = TrCreateLeafNode (PARSEOP_PLD_RED);}
1597 | PARSEOP_PLD_GREEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GREEN);}
1598 | PARSEOP_PLD_BLUE {$$ = TrCreateLeafNode (PARSEOP_PLD_BLUE);}
1599 | PARSEOP_PLD_WIDTH {$$ = TrCreateLeafNode (PARSEOP_PLD_WIDTH);}
1600 | PARSEOP_PLD_HEIGHT {$$ = TrCreateLeafNode (PARSEOP_PLD_HEIGHT);}
1601 | PARSEOP_PLD_USERVISIBLE {$$ = TrCreateLeafNode (PARSEOP_PLD_USERVISIBLE);}
1602 | PARSEOP_PLD_DOCK {$$ = TrCreateLeafNode (PARSEOP_PLD_DOCK);}
1603 | PARSEOP_PLD_LID {$$ = TrCreateLeafNode (PARSEOP_PLD_LID);}
1604 | PARSEOP_PLD_PANEL {$$ = TrCreateLeafNode (PARSEOP_PLD_PANEL);}
1605 | PARSEOP_PLD_VERTICALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALPOSITION);}
1606 | PARSEOP_PLD_HORIZONTALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALPOSITION);}
1607 | PARSEOP_PLD_SHAPE {$$ = TrCreateLeafNode (PARSEOP_PLD_SHAPE);}
1608 | PARSEOP_PLD_GROUPORIENTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPORIENTATION);}
1609 | PARSEOP_PLD_GROUPTOKEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPTOKEN);}
1610 | PARSEOP_PLD_GROUPPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPPOSITION);}
1611 | PARSEOP_PLD_BAY {$$ = TrCreateLeafNode (PARSEOP_PLD_BAY);}
1612 | PARSEOP_PLD_EJECTABLE {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTABLE);}
1613 | PARSEOP_PLD_EJECTREQUIRED {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTREQUIRED);}
1614 | PARSEOP_PLD_CABINETNUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CABINETNUMBER);}
1615 | PARSEOP_PLD_CARDCAGENUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CARDCAGENUMBER);}
1616 | PARSEOP_PLD_REFERENCE {$$ = TrCreateLeafNode (PARSEOP_PLD_REFERENCE);}
1617 | PARSEOP_PLD_ROTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_ROTATION);}
1618 | PARSEOP_PLD_ORDER {$$ = TrCreateLeafNode (PARSEOP_PLD_ORDER);}
1619 | PARSEOP_PLD_RESERVED {$$ = TrCreateLeafNode (PARSEOP_PLD_RESERVED);}
1620 | PARSEOP_PLD_VERTICALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALOFFSET);}
1621 | PARSEOP_PLD_HORIZONTALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALOFFSET);}
1627 PARSEOP_EXP_EQUALS Integer {$$ = TrLinkChildren ($1,1,$3);}
1629 PARSEOP_EXP_EQUALS String {$$ = TrLinkChildren ($1,1,$3);}
1630 | PldKeywordList ',' /* Allows a trailing comma at list end */
1631 | PldKeywordList ','
1633 PARSEOP_EXP_EQUALS Integer {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
1634 | PldKeywordList ','
1636 PARSEOP_EXP_EQUALS String {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
1640 : PARSEOP_TOPLD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);}
1642 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1644 error ')' {$$ = AslDoError(); yyclearin;}
1649 | TermArg {$$ = $1;}
1651 TermArg {$$ = TrLinkPeerNode ($1, $3);}
1655 : PARSEOP_PRINTF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);}
1658 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1659 | PARSEOP_PRINTF '('
1660 error ')' {$$ = AslDoError(); yyclearin;}
1664 : PARSEOP_FPRINTF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FPRINTF);}
1668 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
1669 | PARSEOP_FPRINTF '('
1670 error ')' {$$ = AslDoError(); yyclearin;}
1674 : PARSEOP_TOSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
1678 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1679 | PARSEOP_TOSTRING '('
1680 error ')' {$$ = AslDoError(); yyclearin;}
1684 : PARSEOP_TOUUID '('
1685 StringData ')' {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
1686 | PARSEOP_TOUUID '('
1687 error ')' {$$ = AslDoError(); yyclearin;}
1691 : PARSEOP_WAIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);}
1694 ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1696 error ')' {$$ = AslDoError(); yyclearin;}
1700 : PARSEOP_XOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
1704 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1706 error ')' {$$ = AslDoError(); yyclearin;}
1710 /******* Keywords *************************************************************/
1714 : PARSEOP_ACCESSATTRIB_BLOCK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
1715 | PARSEOP_ACCESSATTRIB_BLOCK_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
1716 | PARSEOP_ACCESSATTRIB_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
1717 | PARSEOP_ACCESSATTRIB_QUICK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
1718 | PARSEOP_ACCESSATTRIB_SND_RCV {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
1719 | PARSEOP_ACCESSATTRIB_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
1720 | PARSEOP_ACCESSATTRIB_WORD_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
1721 | PARSEOP_ACCESSATTRIB_MULTIBYTE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_MULTIBYTE);}
1723 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1724 | PARSEOP_ACCESSATTRIB_RAW_BYTES '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_BYTES);}
1726 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1727 | PARSEOP_ACCESSATTRIB_RAW_PROCESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_PROCESS);}
1729 ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1733 : PARSEOP_ACCESSTYPE_ANY {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
1734 | PARSEOP_ACCESSTYPE_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
1735 | PARSEOP_ACCESSTYPE_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
1736 | PARSEOP_ACCESSTYPE_DWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
1737 | PARSEOP_ACCESSTYPE_QWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
1738 | PARSEOP_ACCESSTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
1741 AddressingModeKeyword
1742 : PARSEOP_ADDRESSINGMODE_7BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_7BIT);}
1743 | PARSEOP_ADDRESSINGMODE_10BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_10BIT);}
1747 : PARSEOP_ADDRESSTYPE_MEMORY {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
1748 | PARSEOP_ADDRESSTYPE_RESERVED {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
1749 | PARSEOP_ADDRESSTYPE_NVS {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
1750 | PARSEOP_ADDRESSTYPE_ACPI {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
1754 : ByteConst {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);}
1755 | RegionSpaceKeyword {}
1759 : PARSEOP_BITSPERBYTE_FIVE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_FIVE);}
1760 | PARSEOP_BITSPERBYTE_SIX {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SIX);}
1761 | PARSEOP_BITSPERBYTE_SEVEN {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SEVEN);}
1762 | PARSEOP_BITSPERBYTE_EIGHT {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_EIGHT);}
1763 | PARSEOP_BITSPERBYTE_NINE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_NINE);}
1767 : PARSEOP_CLOCKPHASE_FIRST {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_FIRST);}
1768 | PARSEOP_CLOCKPHASE_SECOND {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_SECOND);}
1771 ClockPolarityKeyword
1772 : PARSEOP_CLOCKPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_LOW);}
1773 | PARSEOP_CLOCKPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_HIGH);}
1777 : PARSEOP_DECODETYPE_POS {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
1778 | PARSEOP_DECODETYPE_SUB {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
1781 DevicePolarityKeyword
1782 : PARSEOP_DEVICEPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_LOW);}
1783 | PARSEOP_DEVICEPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_HIGH);}
1787 : PARSEOP_DMATYPE_A {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
1788 | PARSEOP_DMATYPE_COMPATIBILITY {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
1789 | PARSEOP_DMATYPE_B {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
1790 | PARSEOP_DMATYPE_F {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
1794 : PARSEOP_ENDIAN_LITTLE {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_LITTLE);}
1795 | PARSEOP_ENDIAN_BIG {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_BIG);}
1799 : PARSEOP_FLOWCONTROL_HW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_HW);}
1800 | PARSEOP_FLOWCONTROL_NONE {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_NONE);}
1801 | PARSEOP_FLOWCONTROL_SW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_SW);}
1805 : PARSEOP_INTLEVEL_ACTIVEBOTH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEBOTH);}
1806 | PARSEOP_INTLEVEL_ACTIVEHIGH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
1807 | PARSEOP_INTLEVEL_ACTIVELOW {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
1810 InterruptTypeKeyword
1811 : PARSEOP_INTTYPE_EDGE {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
1812 | PARSEOP_INTTYPE_LEVEL {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
1816 : PARSEOP_IODECODETYPE_16 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
1817 | PARSEOP_IODECODETYPE_10 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
1820 IoRestrictionKeyword
1821 : PARSEOP_IORESTRICT_IN {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);}
1822 | PARSEOP_IORESTRICT_OUT {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);}
1823 | PARSEOP_IORESTRICT_NONE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);}
1824 | PARSEOP_IORESTRICT_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);}
1828 : PARSEOP_LOCKRULE_LOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
1829 | PARSEOP_LOCKRULE_NOLOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
1833 : PARSEOP_MATCHTYPE_MTR {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
1834 | PARSEOP_MATCHTYPE_MEQ {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
1835 | PARSEOP_MATCHTYPE_MLE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
1836 | PARSEOP_MATCHTYPE_MLT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
1837 | PARSEOP_MATCHTYPE_MGE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
1838 | PARSEOP_MATCHTYPE_MGT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
1842 : PARSEOP_MAXTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
1843 | PARSEOP_MAXTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
1847 : PARSEOP_MEMTYPE_CACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
1848 | PARSEOP_MEMTYPE_WRITECOMBINING {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
1849 | PARSEOP_MEMTYPE_PREFETCHABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
1850 | PARSEOP_MEMTYPE_NONCACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
1854 : PARSEOP_MINTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
1855 | PARSEOP_MINTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
1859 : PARSEOP_OBJECTTYPE_UNK {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
1860 | PARSEOP_OBJECTTYPE_INT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
1861 | PARSEOP_OBJECTTYPE_STR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
1862 | PARSEOP_OBJECTTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
1863 | PARSEOP_OBJECTTYPE_PKG {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
1864 | PARSEOP_OBJECTTYPE_FLD {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
1865 | PARSEOP_OBJECTTYPE_DEV {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
1866 | PARSEOP_OBJECTTYPE_EVT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
1867 | PARSEOP_OBJECTTYPE_MTH {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
1868 | PARSEOP_OBJECTTYPE_MTX {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
1869 | PARSEOP_OBJECTTYPE_OPR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
1870 | PARSEOP_OBJECTTYPE_POW {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
1871 | PARSEOP_OBJECTTYPE_PRO {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
1872 | PARSEOP_OBJECTTYPE_THZ {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
1873 | PARSEOP_OBJECTTYPE_BFF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
1874 | PARSEOP_OBJECTTYPE_DDB {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
1878 : PARSEOP_PARITYTYPE_SPACE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_SPACE);}
1879 | PARSEOP_PARITYTYPE_MARK {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_MARK);}
1880 | PARSEOP_PARITYTYPE_ODD {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_ODD);}
1881 | PARSEOP_PARITYTYPE_EVEN {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_EVEN);}
1882 | PARSEOP_PARITYTYPE_NONE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_NONE);}
1886 : PinConfigKeyword {$$ = $1;}
1887 | ByteConstExpr {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
1891 : PARSEOP_PIN_NOPULL {$$ = TrCreateLeafNode (PARSEOP_PIN_NOPULL);}
1892 | PARSEOP_PIN_PULLDOWN {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDOWN);}
1893 | PARSEOP_PIN_PULLUP {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLUP);}
1894 | PARSEOP_PIN_PULLDEFAULT {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDEFAULT);}
1898 : PARSEOP_RANGETYPE_ISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
1899 | PARSEOP_RANGETYPE_NONISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
1900 | PARSEOP_RANGETYPE_ENTIRE {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
1904 : PARSEOP_REGIONSPACE_IO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
1905 | PARSEOP_REGIONSPACE_MEM {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
1906 | PARSEOP_REGIONSPACE_PCI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
1907 | PARSEOP_REGIONSPACE_EC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
1908 | PARSEOP_REGIONSPACE_SMBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
1909 | PARSEOP_REGIONSPACE_CMOS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
1910 | PARSEOP_REGIONSPACE_PCIBAR {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
1911 | PARSEOP_REGIONSPACE_IPMI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);}
1912 | PARSEOP_REGIONSPACE_GPIO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GPIO);}
1913 | PARSEOP_REGIONSPACE_GSBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GSBUS);}
1914 | PARSEOP_REGIONSPACE_PCC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCC);}
1915 | PARSEOP_REGIONSPACE_FFIXEDHW {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_FFIXEDHW);}
1919 : PARSEOP_RESOURCETYPE_CONSUMER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
1920 | PARSEOP_RESOURCETYPE_PRODUCER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
1923 SerializeRuleKeyword
1924 : PARSEOP_SERIALIZERULE_SERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
1925 | PARSEOP_SERIALIZERULE_NOTSERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
1929 : PARSEOP_SHARETYPE_SHARED {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
1930 | PARSEOP_SHARETYPE_EXCLUSIVE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
1931 | PARSEOP_SHARETYPE_SHAREDWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHAREDWAKE);}
1932 | PARSEOP_SHARETYPE_EXCLUSIVEWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVEWAKE);}
1936 : PARSEOP_SLAVEMODE_CONTROLLERINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_CONTROLLERINIT);}
1937 | PARSEOP_SLAVEMODE_DEVICEINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_DEVICEINIT);}
1941 : PARSEOP_STOPBITS_TWO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_TWO);}
1942 | PARSEOP_STOPBITS_ONEPLUSHALF {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONEPLUSHALF);}
1943 | PARSEOP_STOPBITS_ONE {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONE);}
1944 | PARSEOP_STOPBITS_ZERO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ZERO);}
1948 : PARSEOP_TRANSLATIONTYPE_SPARSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
1949 | PARSEOP_TRANSLATIONTYPE_DENSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
1953 : PARSEOP_TYPE_TRANSLATION {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
1954 | PARSEOP_TYPE_STATIC {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
1958 : PARSEOP_UPDATERULE_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
1959 | PARSEOP_UPDATERULE_ONES {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
1960 | PARSEOP_UPDATERULE_ZEROS {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
1964 : PARSEOP_WIREMODE_FOUR {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_FOUR);}
1965 | PARSEOP_WIREMODE_THREE {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_THREE);}
1969 : PARSEOP_XFERSIZE_8 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_8, 0);}
1970 | PARSEOP_XFERSIZE_16 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_16, 1);}
1971 | PARSEOP_XFERSIZE_32 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
1972 | PARSEOP_XFERSIZE_64 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_64, 3);}
1973 | PARSEOP_XFERSIZE_128 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_128, 4);}
1974 | PARSEOP_XFERSIZE_256 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_256, 5);}
1978 : PARSEOP_XFERTYPE_8 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
1979 | PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
1980 | PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
1984 /******* Miscellaneous Types **************************************************/
1994 /* For ObjectType: SuperName except for MethodInvocationTerm */
2005 /* | MethodInvocationTerm {} */ /* Caused reduce/reduce with Type6Opcode->MethodInvocationTerm */
2009 : PARSEOP_ARG0 {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
2010 | PARSEOP_ARG1 {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
2011 | PARSEOP_ARG2 {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
2012 | PARSEOP_ARG3 {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
2013 | PARSEOP_ARG4 {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
2014 | PARSEOP_ARG5 {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
2015 | PARSEOP_ARG6 {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
2019 : PARSEOP_LOCAL0 {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
2020 | PARSEOP_LOCAL1 {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
2021 | PARSEOP_LOCAL2 {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
2022 | PARSEOP_LOCAL3 {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
2023 | PARSEOP_LOCAL4 {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
2024 | PARSEOP_LOCAL5 {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
2025 | PARSEOP_LOCAL6 {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
2026 | PARSEOP_LOCAL7 {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
2030 : PARSEOP_DEBUG {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
2035 : Integer {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2039 : Integer {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2043 : Integer {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2047 : Integer {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2051 : PARSEOP_INTEGER {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);}
2055 : PARSEOP_STRING_LITERAL {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2060 | PARSEOP_REVISION {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
2064 : PARSEOP_ZERO {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
2065 | PARSEOP_ONE {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
2066 | PARSEOP_ONES {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_UINT64_MAX);}
2067 | PARSEOP___DATE__ {$$ = TrCreateConstantLeafNode (PARSEOP___DATE__);}
2068 | PARSEOP___FILE__ {$$ = TrCreateConstantLeafNode (PARSEOP___FILE__);}
2069 | PARSEOP___LINE__ {$$ = TrCreateConstantLeafNode (PARSEOP___LINE__);}
2070 | PARSEOP___PATH__ {$$ = TrCreateConstantLeafNode (PARSEOP___PATH__);}
2074 * The NODE_COMPILE_TIME_CONST flag in the following constant expressions
2075 * enables compile-time constant folding to reduce the Type3Opcodes/Type2IntegerOpcodes
2076 * to simple integers. It is an error if these types of expressions cannot be
2077 * reduced, since the AML grammar for ****ConstExpr requires a simple constant.
2078 * Note: The required byte length of the constant is passed through to the
2079 * constant folding code in the node AmlLength field.
2082 : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);}
2083 | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);}
2084 | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
2089 : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);}
2090 | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);}
2091 | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
2096 : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);}
2097 | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);}
2098 | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
2103 : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);}
2104 | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);}
2105 | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
2109 /* OptionalCount must appear before ByteList or an incorrect reduction will result */
2112 : {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
2113 | ',' {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
2114 | ',' TermArg {$$ = $2;}
2118 : PARSEOP_BUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);}
2121 BufferTermData '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2122 | PARSEOP_BUFFER '('
2123 error ')' {$$ = AslDoError(); yyclearin;}
2134 | ByteList ',' /* Allows a trailing comma at list end */
2136 ByteConstExpr {$$ = TrLinkPeerNode ($1,$3);}
2140 : PARSEOP_DATABUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);}
2143 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2144 | PARSEOP_DATABUFFER '('
2145 error ')' {$$ = AslDoError(); yyclearin;}
2151 | DWordList ',' /* Allows a trailing comma at list end */
2153 DWordConstExpr {$$ = TrLinkPeerNode ($1,$3);}
2157 : PARSEOP_PACKAGE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
2158 VarPackageLengthTerm
2160 PackageList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2161 | PARSEOP_PACKAGE '('
2162 error ')' {$$ = AslDoError(); yyclearin;}
2168 | PackageList ',' /* Allows a trailing comma at list end */
2170 PackageElement {$$ = TrLinkPeerNode ($1,$3);}
2178 VarPackageLengthTerm
2179 : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
2180 | TermArg {$$ = $1;}
2184 /******* Macros ***********************************************/
2188 : PARSEOP_EISAID '('
2189 StringData ')' {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
2190 | PARSEOP_EISAID '('
2191 error ')' {$$ = AslDoError(); yyclearin;}
2195 : PARSEOP_UNICODE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);}
2197 ')' {$$ = TrLinkChildren ($<n>3,2,0,$4);}
2198 | PARSEOP_UNICODE '('
2199 error ')' {$$ = AslDoError(); yyclearin;}
2203 /******* Resources and Memory ***********************************************/
2207 * Note: Create two default nodes to allow conversion to a Buffer AML opcode
2208 * Also, insert the EndTag at the end of the template.
2210 ResourceTemplateTerm
2211 : PARSEOP_RESOURCETEMPLATE '(' ')'
2213 ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
2214 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
2215 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
2217 TrCreateLeafNode (PARSEOP_ENDTAG));}
2223 ResourceMacroTerm {$$ = TrLinkPeerNode ($1,$2);}
2229 | DWordMemoryTerm {}
2231 | EndDependentFnTerm {}
2233 | ExtendedMemoryTerm {}
2234 | ExtendedSpaceTerm {}
2239 | I2cSerialBusTerm {}
2245 | Memory32FixedTerm {}
2248 | QWordMemoryTerm {}
2251 | SpiSerialBusTerm {}
2252 | StartDependentFnNoPriTerm {}
2253 | StartDependentFnTerm {}
2254 | UartSerialBusTerm {}
2256 | VendorShortTerm {}
2257 | WordBusNumberTerm {}
2263 : PARSEOP_DMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
2265 OptionalBusMasterKeyword
2267 OptionalNameString_Last
2269 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
2271 error ')' {$$ = AslDoError(); yyclearin;}
2275 : PARSEOP_DWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
2276 OptionalResourceType_First
2286 OptionalByteConstExpr
2290 OptionalTranslationType_Last
2291 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2292 | PARSEOP_DWORDIO '('
2293 error ')' {$$ = AslDoError(); yyclearin;}
2297 : PARSEOP_DWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
2298 OptionalResourceType_First
2303 ',' OptionalReadWriteKeyword
2309 OptionalByteConstExpr
2312 OptionalAddressRange
2314 ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
2315 | PARSEOP_DWORDMEMORY '('
2316 error ')' {$$ = AslDoError(); yyclearin;}
2320 : PARSEOP_DWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
2321 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2322 OptionalResourceType
2332 OptionalByteConstExpr
2334 OptionalNameString_Last
2335 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2336 | PARSEOP_DWORDSPACE '('
2337 error ')' {$$ = AslDoError(); yyclearin;}
2342 : PARSEOP_ENDDEPENDENTFN '('
2343 ')' {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
2344 | PARSEOP_ENDDEPENDENTFN '('
2345 error ')' {$$ = AslDoError(); yyclearin;}
2349 : PARSEOP_EXTENDEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
2350 OptionalResourceType_First
2360 OptionalQWordConstExpr
2363 OptionalTranslationType_Last
2364 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
2365 | PARSEOP_EXTENDEDIO '('
2366 error ')' {$$ = AslDoError(); yyclearin;}
2370 : PARSEOP_EXTENDEDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
2371 OptionalResourceType_First
2376 ',' OptionalReadWriteKeyword
2382 OptionalQWordConstExpr
2384 OptionalAddressRange
2386 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
2387 | PARSEOP_EXTENDEDMEMORY '('
2388 error ')' {$$ = AslDoError(); yyclearin;}
2392 : PARSEOP_EXTENDEDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
2393 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2394 OptionalResourceType
2404 OptionalQWordConstExpr
2405 OptionalNameString_Last
2406 ')' {$$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
2407 | PARSEOP_EXTENDEDSPACE '('
2408 error ')' {$$ = AslDoError(); yyclearin;}
2412 : PARSEOP_FIXEDDMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
2413 WordConstExpr /* 04: DMA RequestLines */
2414 ',' WordConstExpr /* 06: DMA Channels */
2415 OptionalXferSize /* 07: DMA TransferSize */
2416 OptionalNameString /* 08: DescriptorName */
2417 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
2418 | PARSEOP_FIXEDDMA '('
2419 error ')' {$$ = AslDoError(); yyclearin;}
2423 : PARSEOP_FIXEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
2426 OptionalNameString_Last
2427 ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
2428 | PARSEOP_FIXEDIO '('
2429 error ')' {$$ = AslDoError(); yyclearin;}
2433 : PARSEOP_GPIO_INT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
2434 InterruptTypeKeyword /* 04: InterruptType */
2435 ',' InterruptLevel /* 06: InterruptLevel */
2436 OptionalShareType /* 07: SharedType */
2437 ',' PinConfigByte /* 09: PinConfig */
2438 OptionalWordConstExpr /* 10: DebounceTimeout */
2439 ',' StringData /* 12: ResourceSource */
2440 OptionalByteConstExpr /* 13: ResourceSourceIndex */
2441 OptionalResourceType /* 14: ResourceType */
2442 OptionalNameString /* 15: DescriptorName */
2443 OptionalBuffer_Last /* 16: VendorData */
2445 DWordConstExpr '}' {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
2446 | PARSEOP_GPIO_INT '('
2447 error ')' {$$ = AslDoError(); yyclearin;}
2451 : PARSEOP_GPIO_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
2452 OptionalShareType_First /* 04: SharedType */
2453 ',' PinConfigByte /* 06: PinConfig */
2454 OptionalWordConstExpr /* 07: DebounceTimeout */
2455 OptionalWordConstExpr /* 08: DriveStrength */
2456 OptionalIoRestriction /* 09: IoRestriction */
2457 ',' StringData /* 11: ResourceSource */
2458 OptionalByteConstExpr /* 12: ResourceSourceIndex */
2459 OptionalResourceType /* 13: ResourceType */
2460 OptionalNameString /* 14: DescriptorName */
2461 OptionalBuffer_Last /* 15: VendorData */
2463 DWordList '}' {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
2464 | PARSEOP_GPIO_IO '('
2465 error ')' {$$ = AslDoError(); yyclearin;}
2469 : PARSEOP_I2C_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
2470 WordConstExpr /* 04: SlaveAddress */
2471 OptionalSlaveMode /* 05: SlaveMode */
2472 ',' DWordConstExpr /* 07: ConnectionSpeed */
2473 OptionalAddressingMode /* 08: AddressingMode */
2474 ',' StringData /* 10: ResourceSource */
2475 OptionalByteConstExpr /* 11: ResourceSourceIndex */
2476 OptionalResourceType /* 12: ResourceType */
2477 OptionalNameString /* 13: DescriptorName */
2478 OptionalBuffer_Last /* 14: VendorData */
2479 ')' {$$ = TrLinkChildren ($<n>3,9,$4,$5,$7,$8,$10,$11,$12,$13,$14);}
2480 | PARSEOP_I2C_SERIALBUS '('
2481 error ')' {$$ = AslDoError(); yyclearin;}
2485 : PARSEOP_INTERRUPT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
2486 OptionalResourceType_First
2487 ',' InterruptTypeKeyword
2490 OptionalByteConstExpr
2492 OptionalNameString_Last
2494 DWordList '}' {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
2495 | PARSEOP_INTERRUPT '('
2496 error ')' {$$ = AslDoError(); yyclearin;}
2500 : PARSEOP_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
2506 OptionalNameString_Last
2507 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
2509 error ')' {$$ = AslDoError(); yyclearin;}
2513 : PARSEOP_IRQNOFLAGS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
2514 OptionalNameString_First
2516 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2517 | PARSEOP_IRQNOFLAGS '('
2518 error ')' {$$ = AslDoError(); yyclearin;}
2522 : PARSEOP_IRQ '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
2523 InterruptTypeKeyword
2526 OptionalNameString_Last
2528 ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
2530 error ')' {$$ = AslDoError(); yyclearin;}
2534 : PARSEOP_MEMORY24 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
2535 OptionalReadWriteKeyword
2540 OptionalNameString_Last
2541 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
2542 | PARSEOP_MEMORY24 '('
2543 error ')' {$$ = AslDoError(); yyclearin;}
2547 : PARSEOP_MEMORY32FIXED '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
2548 OptionalReadWriteKeyword
2551 OptionalNameString_Last
2552 ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
2553 | PARSEOP_MEMORY32FIXED '('
2554 error ')' {$$ = AslDoError(); yyclearin;}
2558 : PARSEOP_MEMORY32 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
2559 OptionalReadWriteKeyword
2564 OptionalNameString_Last
2565 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
2566 | PARSEOP_MEMORY32 '('
2567 error ')' {$$ = AslDoError(); yyclearin;}
2571 : PARSEOP_QWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
2572 OptionalResourceType_First
2582 OptionalByteConstExpr
2586 OptionalTranslationType_Last
2587 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2588 | PARSEOP_QWORDIO '('
2589 error ')' {$$ = AslDoError(); yyclearin;}
2593 : PARSEOP_QWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
2594 OptionalResourceType_First
2599 ',' OptionalReadWriteKeyword
2605 OptionalByteConstExpr
2608 OptionalAddressRange
2610 ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
2611 | PARSEOP_QWORDMEMORY '('
2612 error ')' {$$ = AslDoError(); yyclearin;}
2616 : PARSEOP_QWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
2617 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2618 OptionalResourceType
2628 OptionalByteConstExpr
2630 OptionalNameString_Last
2631 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2632 | PARSEOP_QWORDSPACE '('
2633 error ')' {$$ = AslDoError(); yyclearin;}
2637 : PARSEOP_REGISTER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
2643 OptionalNameString_Last
2644 ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
2645 | PARSEOP_REGISTER '('
2646 error ')' {$$ = AslDoError(); yyclearin;}
2650 : PARSEOP_SPI_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
2651 WordConstExpr /* 04: DeviceSelection */
2652 OptionalDevicePolarity /* 05: DevicePolarity */
2653 OptionalWireMode /* 06: WireMode */
2654 ',' ByteConstExpr /* 08: DataBitLength */
2655 OptionalSlaveMode /* 09: SlaveMode */
2656 ',' DWordConstExpr /* 11: ConnectionSpeed */
2657 ',' ClockPolarityKeyword /* 13: ClockPolarity */
2658 ',' ClockPhaseKeyword /* 15: ClockPhase */
2659 ',' StringData /* 17: ResourceSource */
2660 OptionalByteConstExpr /* 18: ResourceSourceIndex */
2661 OptionalResourceType /* 19: ResourceType */
2662 OptionalNameString /* 20: DescriptorName */
2663 OptionalBuffer_Last /* 21: VendorData */
2664 ')' {$$ = TrLinkChildren ($<n>3,13,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21);}
2665 | PARSEOP_SPI_SERIALBUS '('
2666 error ')' {$$ = AslDoError(); yyclearin;}
2669 StartDependentFnNoPriTerm
2670 : PARSEOP_STARTDEPENDENTFN_NOPRI '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
2672 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);}
2673 | PARSEOP_STARTDEPENDENTFN_NOPRI '('
2674 error ')' {$$ = AslDoError(); yyclearin;}
2677 StartDependentFnTerm
2678 : PARSEOP_STARTDEPENDENTFN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
2682 ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
2683 | PARSEOP_STARTDEPENDENTFN '('
2684 error ')' {$$ = AslDoError(); yyclearin;}
2688 : PARSEOP_UART_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
2689 DWordConstExpr /* 04: ConnectionSpeed */
2690 OptionalBitsPerByte /* 05: BitsPerByte */
2691 OptionalStopBits /* 06: StopBits */
2692 ',' ByteConstExpr /* 08: LinesInUse */
2693 OptionalEndian /* 09: Endianess */
2694 OptionalParityType /* 10: Parity */
2695 OptionalFlowControl /* 11: FlowControl */
2696 ',' WordConstExpr /* 13: Rx BufferSize */
2697 ',' WordConstExpr /* 15: Tx BufferSize */
2698 ',' StringData /* 17: ResourceSource */
2699 OptionalByteConstExpr /* 18: ResourceSourceIndex */
2700 OptionalResourceType /* 19: ResourceType */
2701 OptionalNameString /* 20: DescriptorName */
2702 OptionalBuffer_Last /* 21: VendorData */
2703 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21);}
2704 | PARSEOP_UART_SERIALBUS '('
2705 error ')' {$$ = AslDoError(); yyclearin;}
2709 : PARSEOP_VENDORLONG '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
2710 OptionalNameString_First
2712 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2713 | PARSEOP_VENDORLONG '('
2714 error ')' {$$ = AslDoError(); yyclearin;}
2718 : PARSEOP_VENDORSHORT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
2719 OptionalNameString_First
2721 ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
2722 | PARSEOP_VENDORSHORT '('
2723 error ')' {$$ = AslDoError(); yyclearin;}
2727 : PARSEOP_WORDBUSNUMBER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
2728 OptionalResourceType_First
2737 OptionalByteConstExpr
2739 OptionalNameString_Last
2740 ')' {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
2741 | PARSEOP_WORDBUSNUMBER '('
2742 error ')' {$$ = AslDoError(); yyclearin;}
2746 : PARSEOP_WORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
2747 OptionalResourceType_First
2757 OptionalByteConstExpr
2761 OptionalTranslationType_Last
2762 ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
2763 | PARSEOP_WORDIO '('
2764 error ')' {$$ = AslDoError(); yyclearin;}
2768 : PARSEOP_WORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
2769 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
2770 OptionalResourceType
2780 OptionalByteConstExpr
2782 OptionalNameString_Last
2783 ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
2784 | PARSEOP_WORDSPACE '('
2785 error ')' {$$ = AslDoError(); yyclearin;}
2789 /******* Object References ***********************************************/
2791 /* Allow IO, DMA, IRQ Resource macro names to also be used as identifiers */
2795 | PARSEOP_NAMESTRING {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2796 | PARSEOP_IO {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
2797 | PARSEOP_DMA {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
2798 | PARSEOP_IRQ {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
2802 : PARSEOP_NAMESEG {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
2806 /******* Helper rules ****************************************************/
2809 AmlPackageLengthTerm
2810 : Integer {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);}
2814 : ',' NameString {$$ = $2;}
2815 | ',' error {$$ = AslDoError (); yyclearin;}
2819 : ',' TermArg {$$ = $2;}
2820 | ',' error {$$ = AslDoError (); yyclearin;}
2823 OptionalBusMasterKeyword
2824 : ',' {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
2825 | ',' PARSEOP_BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
2826 | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
2829 OptionalAccessAttribTerm
2832 | ',' ByteConstExpr {$$ = $2;}
2833 | ',' AccessAttribKeyword {$$ = $2;}
2837 : {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
2838 | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
2839 | ',' ByteConstExpr {$$ = $2;}
2842 OptionalAddressingMode
2844 | ',' AddressingModeKeyword {$$ = $2;}
2847 OptionalAddressRange
2850 | ',' AddressKeyword {$$ = $2;}
2855 | ',' BitsPerByteKeyword {$$ = $2;}
2861 | ',' DataBufferTerm {$$ = $2;}
2864 OptionalByteConstExpr
2867 | ',' ByteConstExpr {$$ = $2;}
2872 | ',' DecodeKeyword {$$ = $2;}
2875 OptionalDevicePolarity
2877 | ',' DevicePolarityKeyword {$$ = $2;}
2880 OptionalDWordConstExpr
2883 | ',' DWordConstExpr {$$ = $2;}
2888 | ',' EndianKeyword {$$ = $2;}
2893 | ',' FlowControlKeyword {$$ = $2;}
2896 OptionalIoRestriction
2898 | ',' IoRestrictionKeyword {$$ = $2;}
2902 : {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
2903 | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */
2904 | ',' TermArg {$$ = $2;}
2909 | ',' MaxKeyword {$$ = $2;}
2914 | ',' MemTypeKeyword {$$ = $2;}
2919 | ',' MinKeyword {$$ = $2;}
2925 | ',' NameString {$$ = $2;}
2928 OptionalNameString_Last
2931 | ',' NameString {$$ = $2;}
2934 OptionalNameString_First
2935 : {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
2936 | NameString {$$ = $1;}
2939 OptionalObjectTypeKeyword
2940 : {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
2941 | ',' ObjectTypeKeyword {$$ = $2;}
2946 | ',' ParityTypeKeyword {$$ = $2;}
2949 OptionalQWordConstExpr
2952 | ',' QWordConstExpr {$$ = $2;}
2957 | ',' RangeTypeKeyword {$$ = $2;}
2960 OptionalReadWriteKeyword
2961 : {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
2962 | PARSEOP_READWRITETYPE_BOTH {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
2963 | PARSEOP_READWRITETYPE_READONLY {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
2967 : {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
2968 | ',' {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
2969 | ',' TermArg {$$ = $2;}
2972 OptionalResourceType_First
2973 : {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
2974 | ResourceTypeKeyword {$$ = $1;}
2977 OptionalResourceType
2978 : {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
2979 | ',' {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
2980 | ',' ResourceTypeKeyword {$$ = $2;}
2984 : {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN);} /* Placeholder is a ZeroOp object */
2985 | TermArg {$$ = $1;}
2988 OptionalSerializeRuleKeyword
2991 | ',' SerializeRuleKeyword {$$ = $2;}
2996 | ',' SlaveModeKeyword {$$ = $2;}
3002 | ',' ShareTypeKeyword {$$ = $2;}
3005 OptionalShareType_First
3007 | ShareTypeKeyword {$$ = $1;}
3012 | ',' StopBitsKeyword {$$ = $2;}
3018 | ',' StringData {$$ = $2;}
3023 | TermArg {$$ = $1;}
3029 | ',' TypeKeyword {$$ = $2;}
3035 | ',' TypeKeyword {$$ = $2;}
3038 OptionalTranslationType_Last
3041 | ',' TranslationKeyword {$$ = $2;}
3046 | ',' WireModeKeyword {$$ = $2;}
3051 | WordConst {$$ = $1;}
3054 OptionalWordConstExpr
3056 | ',' WordConstExpr {$$ = $2;}
3060 : {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
3061 | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
3062 | ',' XferSizeKeyword {$$ = $2;}