2 /******************************************************************************
4 * Module Name: aslrules.y - Main Bison/Yacc production rules
5 * - Keep this file synched with the
6 * CvParseOpBlockType function in cvcompiler.c
8 *****************************************************************************/
10 /******************************************************************************
14 * Some or all of this work - Copyright (c) 1999 - 2021, Intel Corp.
15 * All rights reserved.
19 * 2.1. This is your license from Intel Corp. under its intellectual property
20 * rights. You may have additional license terms from the party that provided
21 * you this software, covering your right to use that party's intellectual
24 * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
25 * copy of the source code appearing in this file ("Covered Code") an
26 * irrevocable, perpetual, worldwide license under Intel's copyrights in the
27 * base code distributed originally by Intel ("Original Intel Code") to copy,
28 * make derivatives, distribute, use and display any portion of the Covered
29 * Code in any form, with the right to sublicense such rights; and
31 * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
32 * license (with the right to sublicense), under only those claims of Intel
33 * patents that are infringed by the Original Intel Code, to make, use, sell,
34 * offer to sell, and import the Covered Code and derivative works thereof
35 * solely to the minimum extent necessary to exercise the above copyright
36 * license, and in no event shall the patent license extend to any additions
37 * to or modifications of the Original Intel Code. No other license or right
38 * is granted directly or by implication, estoppel or otherwise;
40 * The above copyright and patent license is granted only if the following
45 * 3.1. Redistribution of Source with Rights to Further Distribute Source.
46 * Redistribution of source code of any substantial portion of the Covered
47 * Code or modification with rights to further distribute source must include
48 * the above Copyright Notice, the above License, this list of Conditions,
49 * and the following Disclaimer and Export Compliance provision. In addition,
50 * Licensee must cause all Covered Code to which Licensee contributes to
51 * contain a file documenting the changes Licensee made to create that Covered
52 * Code and the date of any change. Licensee must include in that file the
53 * documentation of any changes made by any predecessor Licensee. Licensee
54 * must include a prominent statement that the modification is derived,
55 * directly or indirectly, from Original Intel Code.
57 * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
58 * Redistribution of source code of any substantial portion of the Covered
59 * Code or modification without rights to further distribute source must
60 * include the following Disclaimer and Export Compliance provision in the
61 * documentation and/or other materials provided with distribution. In
62 * addition, Licensee may not authorize further sublicense of source of any
63 * portion of the Covered Code, and must include terms to the effect that the
64 * license from Licensee to its licensee is limited to the intellectual
65 * property embodied in the software Licensee provides to its licensee, and
66 * not to intellectual property embodied in modifications its licensee may
69 * 3.3. Redistribution of Executable. Redistribution in executable form of any
70 * substantial portion of the Covered Code or modification must reproduce the
71 * above Copyright Notice, and the following Disclaimer and Export Compliance
72 * provision in the documentation and/or other materials provided with the
75 * 3.4. Intel retains all right, title, and interest in and to the Original
78 * 3.5. Neither the name Intel nor any other trademark owned or controlled by
79 * Intel shall be used in advertising or otherwise to promote the sale, use or
80 * other dealings in products derived from or relating to the Covered Code
81 * without prior written authorization from Intel.
83 * 4. Disclaimer and Export Compliance
85 * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
86 * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
87 * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
88 * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
89 * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
90 * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
93 * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
94 * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
95 * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
96 * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
97 * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
98 * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
99 * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
102 * 4.3. Licensee shall not export, either directly or indirectly, any of this
103 * software or system incorporating such software without first obtaining any
104 * required license or other approval from the U. S. Department of Commerce or
105 * any other agency or department of the United States Government. In the
106 * event Licensee exports any such software from the United States or
107 * re-exports any such software from a foreign destination, Licensee shall
108 * ensure that the distribution and export/re-export of the software is in
109 * compliance with all laws, regulations, orders, or other restrictions of the
110 * U.S. Export Administration Regulations. Licensee agrees that neither it nor
111 * any of its subsidiaries will export/re-export any technical data, process,
112 * software, or service, directly or indirectly, to any country for which the
113 * United States government or any agency thereof requires an export license,
114 * other governmental approval, or letter of assurance, without first obtaining
115 * such license, approval or letter.
117 *****************************************************************************
119 * Alternatively, you may choose to be licensed under the terms of the
122 * Redistribution and use in source and binary forms, with or without
123 * modification, are permitted provided that the following conditions
125 * 1. Redistributions of source code must retain the above copyright
126 * notice, this list of conditions, and the following disclaimer,
127 * without modification.
128 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
129 * substantially similar to the "NO WARRANTY" disclaimer below
130 * ("Disclaimer") and any redistribution must be conditioned upon
131 * including a substantially similar Disclaimer requirement for further
132 * binary redistribution.
133 * 3. Neither the names of the above-listed copyright holders nor the names
134 * of any contributors may be used to endorse or promote products derived
135 * from this software without specific prior written permission.
137 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
138 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
139 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
140 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
141 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
142 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
143 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
144 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
145 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
146 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
147 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
149 * Alternatively, you may choose to be licensed under the terms of the
150 * GNU General Public License ("GPL") version 2 as published by the Free
151 * Software Foundation.
153 *****************************************************************************/
157 /*******************************************************************************
159 * ASL Root and Secondary Terms
161 ******************************************************************************/
164 * Root term. Allow multiple #line directives before the definition block
165 * to handle output from preprocessors
168 : DefinitionBlockList {$<n>$ = TrLinkOpChildren (
169 TrCreateLeafOp (PARSEOP_ASL_CODE),1, $1);}
170 | error {YYABORT; $$ = NULL;}
175 * Note concerning support for "module-level code".
177 * ACPI 1.0 allowed Type1 and Type2 executable opcodes outside of control
178 * methods (the so-called module-level code.) This support was explicitly
179 * removed in ACPI 2.0, but this type of code continues to be created by
180 * BIOS vendors. In order to support the disassembly and recompilation of
181 * such code (and the porting of ASL code to iASL), iASL supports this
182 * code in violation of the current ACPI specification.
184 * The grammar change to support module-level code is to revert the
185 * {ObjectList} portion of the DefinitionBlockTerm in ACPI 2.0 to the
186 * original use of {TermList} instead (see below.) This allows the use
187 * of Type1 and Type2 opcodes at module level.
189 * 04/2016: The module-level code is now allowed in the following terms:
190 * DeviceTerm, PowerResTerm, ProcessorTerm, ScopeTerm, ThermalZoneTerm.
191 * The ObjectList term is obsolete and has been removed.
194 : PARSEOP_DEFINITION_BLOCK
195 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DEFINITION_BLOCK); COMMENT_CAPTURE_OFF;}
202 PARSEOP_CLOSE_PAREN {TrSetOpIntegerWidth ($6,$8);
203 TrSetOpEndLineNumber ($<n>3); COMMENT_CAPTURE_ON;}
204 '{' TermList '}' {$$ = TrLinkOpChildren ($<n>3,7,
205 $4,$6,$8,$10,$12,$14,$18);}
209 : DefinitionBlockTerm
210 | DefinitionBlockTerm
211 DefinitionBlockList {$$ = TrLinkPeerOps (2, $1,$2);}
215 /******* Basic ASCII identifiers **************************************************/
217 /* Allow IO, DMA, IRQ Resource macro and FOR macro names to also be used as identifiers */
221 | PARSEOP_NAMESTRING {$$ = TrCreateValuedLeafOp (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) $1);}
222 | PARSEOP_IO {$$ = TrCreateValuedLeafOp (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
223 | PARSEOP_DMA {$$ = TrCreateValuedLeafOp (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
224 | PARSEOP_IRQ {$$ = TrCreateValuedLeafOp (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
225 | PARSEOP_FOR {$$ = TrCreateValuedLeafOp (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "FOR");}
229 : PARSEOP_NAMESEG {$$ = TrCreateValuedLeafOp (PARSEOP_NAMESEG, (ACPI_NATIVE_INT)
230 TrNormalizeNameSeg ($1));}
235 : PARSEOP_NAMESEG {$$ = TrCreateValuedLeafOp (PARSEOP_NAMESEG,
236 (ACPI_NATIVE_INT) AslCompilerlval.s);}
240 /******* Fundamental argument/statement types ***********************************/
246 | Type2IntegerOpcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);}
247 | Type2StringOpcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);}
248 | Type2BufferOpcode {}
249 | Type2BufferOrStringOpcode {}
250 | error {$$ = AslDoError(); yyclearin;}
260 : {$$ = TrCreateNullTargetOp ();} /* Placeholder is a ZeroOp object */
261 | ',' {$$ = TrCreateNullTargetOp ();} /* Placeholder is a ZeroOp object */
262 | ',' SuperName {$$ = TrSetOpFlags ($2, OP_IS_TARGET);}
266 : ',' SuperName {$$ = TrSetOpFlags ($2, OP_IS_TARGET);}
270 : SimpleName {$$ = TrSetOpFlags ($1, OP_IS_TERM_ARG);}
271 | Type2Opcode {$$ = TrSetOpFlags ($1, OP_IS_TERM_ARG);}
272 | DataObject {$$ = TrSetOpFlags ($1, OP_IS_TERM_ARG);}
275 PARSEOP_CLOSE_PAREN {$$ = TrSetOpFlags ($2, OP_IS_TERM_ARG);}
279 NOTE: Removed from TermArg due to reduce/reduce conflicts:
280 | Type2IntegerOpcode {$$ = TrSetOpFlags ($1, OP_IS_TERM_ARG);}
281 | Type2StringOpcode {$$ = TrSetOpFlags ($1, OP_IS_TERM_ARG);}
282 | Type2BufferOpcode {$$ = TrSetOpFlags ($1, OP_IS_TERM_ARG);}
283 | Type2BufferOrStringOpcode {$$ = TrSetOpFlags ($1, OP_IS_TERM_ARG);}
289 PARSEOP_OPEN_PAREN {TrSetOpIntegerValue (PARSEOP_METHODCALL, $1); COMMENT_CAPTURE_OFF;}
291 PARSEOP_CLOSE_PAREN {$$ = TrLinkChildOp ($1,$4); COMMENT_CAPTURE_ON;}
294 /* OptionalCount must appear before ByteList or an incorrect reduction will result */
297 : {$$ = TrCreateLeafOp (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
298 | ',' {$$ = TrCreateLeafOp (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
299 | ',' TermArg {$$ = $2;}
303 * Data count for buffers and packages (byte count for buffers,
304 * element count for packages).
312 PARSEOP_CLOSE_PAREN {$$ = $2;}
314 PARSEOP_CLOSE_PAREN {$$ = NULL;}
316 /* C-style (ASL+) -- adds equals term */
318 | PARSEOP_EXP_EQUALS {$$ = NULL;}
323 PARSEOP_EXP_EQUALS {$$ = $2;}
328 PARSEOP_EXP_EQUALS {$$ = NULL;}
332 /******* List Terms **************************************************/
334 /* ACPI 3.0 -- allow semicolons between terms */
338 | TermList Term {$$ = TrLinkPeerOp (
339 TrSetOpFlags ($1, OP_RESULT_NOT_USED),$2);}
340 | TermList Term ';' {$$ = TrLinkPeerOp (
341 TrSetOpFlags ($1, OP_RESULT_NOT_USED),$2);}
342 | TermList ';' Term {$$ = TrLinkPeerOp (
343 TrSetOpFlags ($1, OP_RESULT_NOT_USED),$3);}
344 | TermList ';' Term ';' {$$ = TrLinkPeerOp (
345 TrSetOpFlags ($1, OP_RESULT_NOT_USED),$3);}
351 | ArgList ',' /* Allows a trailing comma at list end */
353 TermArg {$$ = TrLinkPeerOp ($1,$3);}
359 | ByteList ',' /* Allows a trailing comma at list end */
361 ByteConstExpr {$$ = TrLinkPeerOp ($1,$3);}
367 | DWordList ',' /* Allows a trailing comma at list end */
369 DWordConstExpr {$$ = TrLinkPeerOp ($1,$3);}
375 | FieldUnitList ',' /* Allows a trailing comma at list end */
377 FieldUnit {$$ = TrLinkPeerOp ($1,$3);}
388 : ',' AmlPackageLengthTerm {$$ = TrCreateOp (PARSEOP_RESERVED_BYTES,1,$2);}
390 AmlPackageLengthTerm {$$ = TrLinkChildOp ($1,$3);}
394 : CompilerDirective {}
396 | NameSpaceModifier {}
397 /* | StructureTerm {} */
403 | PackageList ',' /* Allows a trailing comma at list end */
405 PackageElement {$$ = TrLinkPeerOp ($1,$3);}
413 /* Rules for specifying the type of one method argument or return value */
417 | ObjectTypeKeyword {$$ = $1;}
418 | ParameterTypePackage ','
419 ObjectTypeKeyword {$$ = TrLinkPeerOps (2,$1,$3);}
422 ParameterTypePackageList
424 | ObjectTypeKeyword {$$ = TrLinkOpChildren (
425 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),1,$1);}
426 | '{' ParameterTypePackage '}' {$$ = TrLinkOpChildren (
427 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),1,$2);}
431 OptionalParameterTypePackage
433 | ',' ParameterTypePackageList {$$ = $2;}
436 /* Rules for specifying the types for method arguments */
438 ParameterTypesPackage
439 : ParameterTypePackageList {$$ = $1;}
440 | ParameterTypesPackage ','
441 ParameterTypePackageList {$$ = TrLinkPeerOps (2,$1,$3);}
444 ParameterTypesPackageList
446 | ObjectTypeKeyword {$$ = TrLinkOpChildren (
447 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),1,$1);}
448 | '{' ParameterTypesPackage '}' {$$ = TrLinkOpChildren (
449 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),1,$2);}
452 OptionalParameterTypesPackage
454 | ',' ParameterTypesPackageList {$$ = $2;}
458 * Case-Default list; allow only one Default term and unlimited Case terms
464 | CaseDefaultTermList
465 CaseTerm {$$ = TrLinkPeerOp ($1,$2);}
466 | CaseDefaultTermList
467 DefaultTerm {$$ = TrLinkPeerOp ($1,$2);}
469 /* Original - attempts to force zero or one default term within the switch */
476 CaseTermList {$$ = TrLinkPeerOp ($1,TrLinkPeerOp ($2, $3));}
478 CaseTerm {$$ = TrLinkPeerOp ($1,$2);}
485 CaseTerm {$$ = TrLinkPeerOp ($1,$2);}
490 /*******************************************************************************
492 * ASL Data and Constant Terms
494 ******************************************************************************/
504 : Type5Opcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);}
505 | Type2BufferOrStringOpcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);}
506 | Type2BufferOpcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);}
515 : Type2IntegerOpcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);}
516 | Type3Opcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);}
522 : Type2StringOpcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);}
531 : Integer {$$ = TrSetOpIntegerValue (PARSEOP_BYTECONST, $1);}
535 : Integer {$$ = TrSetOpIntegerValue (PARSEOP_WORDCONST, $1);}
539 : Integer {$$ = TrSetOpIntegerValue (PARSEOP_DWORDCONST, $1);}
543 : Integer {$$ = TrSetOpIntegerValue (PARSEOP_QWORDCONST, $1);}
547 * The OP_COMPILE_TIME_CONST flag in the following constant expressions
548 * enables compile-time constant folding to reduce the Type3Opcodes/Type2IntegerOpcodes
549 * to simple integers. It is an error if these types of expressions cannot be
550 * reduced, since the AML grammar for ****ConstExpr requires a simple constant.
551 * Note: The required byte length of the constant is passed through to the
552 * constant folding code in the node AmlLength field.
555 : Type3Opcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);
556 TrSetOpAmlLength ($1, 1);}
557 | Type2IntegerOpcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);
558 TrSetOpAmlLength ($1, 1);}
559 | ConstExprTerm {$$ = TrSetOpIntegerValue (PARSEOP_BYTECONST, $1);}
564 : Type3Opcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);
565 TrSetOpAmlLength ($1, 2);}
566 | Type2IntegerOpcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);
567 TrSetOpAmlLength ($1, 2);}
568 | ConstExprTerm {$$ = TrSetOpIntegerValue (PARSEOP_WORDCONST, $1);}
573 : Type3Opcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);
574 TrSetOpAmlLength ($1, 4);}
575 | Type2IntegerOpcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);
576 TrSetOpAmlLength ($1, 4);}
577 | ConstExprTerm {$$ = TrSetOpIntegerValue (PARSEOP_DWORDCONST, $1);}
582 : Type3Opcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);
583 TrSetOpAmlLength ($1, 8);}
584 | Type2IntegerOpcode {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);
585 TrSetOpAmlLength ($1, 8);}
586 | ConstExprTerm {$$ = TrSetOpIntegerValue (PARSEOP_QWORDCONST, $1);}
592 | PARSEOP_REVISION {$$ = TrCreateLeafOp (PARSEOP_REVISION);}
596 : PARSEOP_ZERO {$$ = TrCreateValuedLeafOp (PARSEOP_ZERO, 0);}
597 | PARSEOP_ONE {$$ = TrCreateValuedLeafOp (PARSEOP_ONE, 1);}
598 | PARSEOP_ONES {$$ = TrCreateValuedLeafOp (PARSEOP_ONES, ACPI_UINT64_MAX);}
599 | PARSEOP___DATE__ {$$ = TrCreateConstantLeafOp (PARSEOP___DATE__);}
600 | PARSEOP___FILE__ {$$ = TrCreateConstantLeafOp (PARSEOP___FILE__);}
601 | PARSEOP___LINE__ {$$ = TrCreateConstantLeafOp (PARSEOP___LINE__);}
602 | PARSEOP___PATH__ {$$ = TrCreateConstantLeafOp (PARSEOP___PATH__);}
603 | PARSEOP___METHOD__ {$$ = TrCreateConstantLeafOp (PARSEOP___METHOD__);}
607 : PARSEOP_INTEGER {$$ = TrCreateValuedLeafOp (PARSEOP_INTEGER,
612 : PARSEOP_STRING_LITERAL {$$ = TrCreateValuedLeafOp (PARSEOP_STRING_LITERAL,
613 (ACPI_NATIVE_INT) AslCompilerlval.s);}
617 /*******************************************************************************
621 ******************************************************************************/
631 | CreateBitFieldTerm {}
632 | CreateByteFieldTerm {}
633 | CreateDWordFieldTerm {}
635 | CreateQWordFieldTerm {}
636 | CreateWordFieldTerm {}
654 /* | NameTermAslPlus {} */
664 /* For ObjectType(), SuperName except for MethodInvocationTerm */
675 /* For DeRefOf(), SuperName except for DerefOf and Debug */
685 | MethodInvocationTerm {}
688 /* For RefOf(), SuperName except for RefOf and MethodInvocationTerm */
698 /* For CondRefOf(), SuperName except for RefOf and MethodInvocationTerm */
709 * Opcode types, as defined in the ACPI specification
744 | MethodInvocationTerm {}
750 Type2IntegerOpcode /* "Type3" opcodes */
751 : Expression {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);}
756 | FindSetLeftBitTerm {}
757 | FindSetRightBitTerm {}
761 /* | StructureIndexTerm {} */
762 /* | StructurePointerTerm {} */
766 | LGreaterEqualTerm {}
788 Type2StringOpcode /* "Type4" Opcodes */
789 : ToDecimalStringTerm {}
794 Type2BufferOpcode /* "Type5" Opcodes */
799 Type2BufferOrStringOpcode
800 : ConcatTerm {$$ = TrSetOpFlags ($1, OP_COMPILE_TIME_CONST);}
807 * A type 3 opcode evaluates to an Integer and cannot have a destination operand
816 | ToDecimalStringTerm {}
823 /* Type 5 opcodes are a subset of Type2 opcodes, and return a constant */
826 : ResourceTemplateTerm {}
837 /* | StructureIndexTerm {} */
838 /* | StructurePointerTerm {} */
839 | MethodInvocationTerm {}
843 /*******************************************************************************
847 ******************************************************************************/
850 : Integer {$$ = TrSetOpIntegerValue (PARSEOP_PACKAGE_LENGTH,
851 (ACPI_PARSE_OBJECT *) $1);}
855 : ',' NameString {$$ = $2;}
856 | ',' error {$$ = AslDoError (); yyclearin;}
860 : ',' TermArg {$$ = $2;}
861 | ',' error {$$ = AslDoError (); yyclearin;}
865 : {$$ = TrCreateLeafOp (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
866 | ',' {$$ = TrCreateLeafOp (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
867 | ',' TermArg {$$ = $2;}
871 : {$$ = TrSetOpFlags (TrCreateLeafOp (PARSEOP_ZERO),
872 OP_IS_NULL_RETURN);} /* Placeholder is a ZeroOp object */
876 OptionalSerializeRuleKeyword
879 | ',' SerializeRuleKeyword {$$ = $2;}
883 : {$$ = TrCreateLeafOp (PARSEOP_DEFAULT_ARG);}
889 | WordConst {$$ = $1;}