2 /******************************************************************************
4 * Module Name: aslprimaries.y - Rules for primary ASL operators
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 - 2019, 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 *****************************************************************************/
158 /*******************************************************************************
162 ******************************************************************************/
168 OptionalAccessAttribTerm
169 PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_ACCESSAS,2,$3,$4);}
172 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
177 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp(PARSEOP_ACQUIRE);}
180 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$6);}
183 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
188 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_ADD);}
192 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
195 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
200 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_ALIAS);}
203 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,
204 TrSetOpFlags ($5, OP_IS_NAME_DECLARATION));}
207 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
212 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_AND);}
216 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
219 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
223 : PARSEOP_ARG0 {$$ = TrCreateLeafOp (PARSEOP_ARG0);}
224 | PARSEOP_ARG1 {$$ = TrCreateLeafOp (PARSEOP_ARG1);}
225 | PARSEOP_ARG2 {$$ = TrCreateLeafOp (PARSEOP_ARG2);}
226 | PARSEOP_ARG3 {$$ = TrCreateLeafOp (PARSEOP_ARG3);}
227 | PARSEOP_ARG4 {$$ = TrCreateLeafOp (PARSEOP_ARG4);}
228 | PARSEOP_ARG5 {$$ = TrCreateLeafOp (PARSEOP_ARG5);}
229 | PARSEOP_ARG6 {$$ = TrCreateLeafOp (PARSEOP_ARG6);}
234 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_BANKFIELD);}
238 OptionalAccessTypeKeyword
239 OptionalLockRuleKeyword
240 OptionalUpdateRuleKeyword
241 PARSEOP_CLOSE_PAREN '{'
242 FieldUnitList '}' {$$ = TrLinkOpChildren ($<n>3,7,
243 $4,$5,$6,$7,$8,$9,$12);}
246 error PARSEOP_CLOSE_PAREN
247 '{' error '}' {$$ = AslDoError(); yyclearin;}
251 : PARSEOP_BREAK {$$ = TrCreateOp (PARSEOP_BREAK, 0);}
255 : PARSEOP_BREAKPOINT {$$ = TrCreateOp (PARSEOP_BREAKPOINT, 0);}
259 : PARSEOP_BUFFER {$<n>$ = TrCreateLeafOp (PARSEOP_BUFFER); COMMENT_CAPTURE_OFF; }
261 '{' BufferTermData '}' {$$ = TrLinkOpChildren ($<n>2,2,$3,$5); COMMENT_CAPTURE_ON;}
271 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CASE);}
273 PARSEOP_CLOSE_PAREN '{'
274 TermList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
277 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
281 : PARSEOP_CONCATENATE
282 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CONCATENATE);}
286 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
287 | PARSEOP_CONCATENATE
289 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
293 : PARSEOP_CONCATENATERESTEMPLATE
294 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (
295 PARSEOP_CONCATENATERESTEMPLATE);}
299 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
300 | PARSEOP_CONCATENATERESTEMPLATE
302 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
307 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CONDREFOF);}
310 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
313 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
320 PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_CONNECTION,1,$3);}
322 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CONNECTION);}
324 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3, 1,
326 TrCreateLeafOp (PARSEOP_RESOURCETEMPLATE), 3,
327 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
328 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
332 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
336 : PARSEOP_CONTINUE {$$ = TrCreateOp (PARSEOP_CONTINUE, 0);}
341 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_COPYOBJECT);}
344 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,
345 TrSetOpFlags ($6, OP_IS_TARGET));}
348 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
352 : PARSEOP_CREATEBITFIELD
353 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEBITFIELD);}
357 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
358 TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
359 | PARSEOP_CREATEBITFIELD
361 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
365 : PARSEOP_CREATEBYTEFIELD
366 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEBYTEFIELD);}
370 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
371 TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
372 | PARSEOP_CREATEBYTEFIELD
374 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
378 : PARSEOP_CREATEDWORDFIELD
379 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEDWORDFIELD);}
383 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
384 TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
385 | PARSEOP_CREATEDWORDFIELD
387 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
391 : PARSEOP_CREATEFIELD
392 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEFIELD);}
397 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$5,$6,
398 TrSetOpFlags ($7, OP_IS_NAME_DECLARATION));}
399 | PARSEOP_CREATEFIELD
401 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
405 : PARSEOP_CREATEQWORDFIELD
406 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEQWORDFIELD);}
410 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
411 TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
412 | PARSEOP_CREATEQWORDFIELD
414 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
418 : PARSEOP_CREATEWORDFIELD
419 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEWORDFIELD);}
423 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
424 TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
425 | PARSEOP_CREATEWORDFIELD
427 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
431 : PARSEOP_DATATABLEREGION
432 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DATATABLEREGION);}
437 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,
438 TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$5,$6,$7);}
439 | PARSEOP_DATATABLEREGION
441 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
445 : PARSEOP_DEBUG {$$ = TrCreateLeafOp (PARSEOP_DEBUG);}
450 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DECREMENT);}
452 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
455 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
459 : PARSEOP_DEFAULT '{' {$<n>$ = TrCreateLeafOp (PARSEOP_DEFAULT);}
460 TermList '}' {$$ = TrLinkOpChildren ($<n>3,1,$4);}
461 | PARSEOP_DEFAULT '{'
462 error '}' {$$ = AslDoError(); yyclearin;}
467 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DEREFOF);}
469 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
472 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
477 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DEVICE);}
479 PARSEOP_CLOSE_PAREN '{'
480 TermList '}' {$$ = TrLinkOpChildren ($<n>3,2,
481 TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$7);}
484 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
489 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DIVIDE);}
494 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$5,$6,$7);}
497 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
504 PARSEOP_CLOSE_PAREN {$$ = TrSetOpIntegerValue (PARSEOP_EISAID, $3);}
507 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
511 : IfTerm ElseTerm {$$ = TrLinkPeerOp ($1,$2);}
517 TermList {$<n>$ = TrCreateLeafOp (PARSEOP_ELSE);}
518 '}' {$$ = TrLinkOpChildren ($<n>4,1,$3);}
521 error '}' {$$ = AslDoError(); yyclearin;}
524 error {$$ = AslDoError(); yyclearin;}
527 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_ELSE);}
528 TermArg {$<n>$ = TrCreateLeafOp (PARSEOP_IF);}
529 PARSEOP_CLOSE_PAREN '{'
530 TermList '}' {TrLinkOpChildren ($<n>5,2,$4,$8);}
531 ElseTerm {TrLinkPeerOp ($<n>5,$11);}
532 {$$ = TrLinkOpChildren ($<n>3,1,$<n>5);}
536 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
539 error {$$ = AslDoError(); yyclearin;}
544 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EVENT);}
546 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,
547 TrSetOpFlags ($4, OP_IS_NAME_DECLARATION));}
550 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
557 OptionalObjectTypeKeyword
558 OptionalParameterTypePackage
559 OptionalParameterTypesPackage
560 PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
563 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
568 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FATAL);}
572 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);}
575 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
580 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIELD);}
582 OptionalAccessTypeKeyword
583 OptionalLockRuleKeyword
584 OptionalUpdateRuleKeyword
585 PARSEOP_CLOSE_PAREN '{'
586 FieldUnitList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$6,$7,$10);}
589 error PARSEOP_CLOSE_PAREN
590 '{' error '}' {$$ = AslDoError(); yyclearin;}
594 : PARSEOP_FINDSETLEFTBIT
595 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FINDSETLEFTBIT);}
598 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
599 | PARSEOP_FINDSETLEFTBIT
601 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
605 : PARSEOP_FINDSETRIGHTBIT
606 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FINDSETRIGHTBIT);}
609 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
610 | PARSEOP_FINDSETRIGHTBIT
612 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
615 /* Convert a For() loop to a While() loop */
618 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WHILE);}
619 OptionalTermArg ',' {}
620 OptionalPredicate ','
621 OptionalTermArg {$<n>$ = TrLinkPeerOp ($4,$<n>3);
622 TrSetOpParent ($9,$<n>3);} /* New parent is WHILE */
624 '{' TermList '}' {$<n>$ = TrLinkOpChildren ($<n>3,2,$7,$13);}
625 {$<n>$ = TrLinkPeerOp ($13,$9);
630 : {$$ = TrCreateValuedLeafOp (PARSEOP_INTEGER, 1);}
636 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FPRINTF);}
640 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);}
643 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
648 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FROMBCD);}
651 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
654 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
659 PARSEOP_OPEN_PAREN {COMMENT_CAPTURE_OFF; $<n>$ = TrCreateLeafOp (PARSEOP_METHOD); }
661 OptionalParameterTypePackage
662 OptionalParameterTypesPackage
663 PARSEOP_CLOSE_PAREN '{' {COMMENT_CAPTURE_ON; }
664 TermList '}' {$$ = TrLinkOpChildren ($<n>3,7,
665 TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
666 TrCreateValuedLeafOp (PARSEOP_BYTECONST, 0),
667 TrCreateLeafOp (PARSEOP_SERIALIZERULE_NOTSERIAL),
668 TrCreateValuedLeafOp (PARSEOP_BYTECONST, 0),$5,$6,$10);}
671 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
676 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IF);}
678 PARSEOP_CLOSE_PAREN '{'
679 TermList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
683 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
690 PARSEOP_CLOSE_PAREN {$$ = TrSetOpIntegerValue (PARSEOP_INCLUDE, $3);
691 FlOpenIncludeFile ($3);}
695 : PARSEOP_INCLUDE_END {$<n>$ = TrCreateLeafOp (PARSEOP_INCLUDE_END);
696 TrSetOpCurrentFilename ($$);}
701 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_INCREMENT);}
703 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
706 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
711 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_INDEXFIELD);}
714 OptionalAccessTypeKeyword
715 OptionalLockRuleKeyword
716 OptionalUpdateRuleKeyword
717 PARSEOP_CLOSE_PAREN '{'
718 FieldUnitList '}' {$$ = TrLinkOpChildren ($<n>3,6,$4,$5,$6,$7,$8,$11);}
721 error PARSEOP_CLOSE_PAREN
722 '{' error '}' {$$ = AslDoError(); yyclearin;}
727 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_INDEX);}
731 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
734 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
739 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LAND);}
742 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
745 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
750 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LEQUAL);}
753 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
756 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
760 : PARSEOP_LGREATEREQUAL
761 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LLESS);}
764 PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_LNOT, 1,
765 TrLinkOpChildren ($<n>3,2,$4,$5));}
766 | PARSEOP_LGREATEREQUAL
768 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
773 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LGREATER);}
776 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
779 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
784 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LGREATER);}
787 PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_LNOT, 1,
788 TrLinkOpChildren ($<n>3,2,$4,$5));}
791 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
796 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LLESS);}
799 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
802 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
807 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LEQUAL);}
810 PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_LNOT, 1,
811 TrLinkOpChildren ($<n>3,2,$4,$5));}
814 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
819 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LNOT);}
821 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
824 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
829 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LOADTABLE);}
836 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
839 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
844 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LOAD);}
847 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
850 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
854 : PARSEOP_LOCAL0 {$$ = TrCreateLeafOp (PARSEOP_LOCAL0);}
855 | PARSEOP_LOCAL1 {$$ = TrCreateLeafOp (PARSEOP_LOCAL1);}
856 | PARSEOP_LOCAL2 {$$ = TrCreateLeafOp (PARSEOP_LOCAL2);}
857 | PARSEOP_LOCAL3 {$$ = TrCreateLeafOp (PARSEOP_LOCAL3);}
858 | PARSEOP_LOCAL4 {$$ = TrCreateLeafOp (PARSEOP_LOCAL4);}
859 | PARSEOP_LOCAL5 {$$ = TrCreateLeafOp (PARSEOP_LOCAL5);}
860 | PARSEOP_LOCAL6 {$$ = TrCreateLeafOp (PARSEOP_LOCAL6);}
861 | PARSEOP_LOCAL7 {$$ = TrCreateLeafOp (PARSEOP_LOCAL7);}
866 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LOR);}
869 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
872 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
877 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MATCH);}
884 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
887 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
892 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_METHOD); COMMENT_CAPTURE_OFF;}
894 OptionalByteConstExpr {UtCheckIntegerRange ($5, 0, 7);}
895 OptionalSerializeRuleKeyword
896 OptionalByteConstExpr
897 OptionalParameterTypePackage
898 OptionalParameterTypesPackage
899 PARSEOP_CLOSE_PAREN '{' {COMMENT_CAPTURE_ON;}
900 TermList '}' {$$ = TrLinkOpChildren ($<n>3,7,
901 TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
902 $5,$7,$8,$9,$10,$14);}
905 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
910 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MID);}
915 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$5,$6,$7);}
918 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
923 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MOD);}
927 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
930 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
935 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MULTIPLY);}
939 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
942 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
947 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MUTEX);}
950 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,
951 TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$5);}
954 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
959 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_NAME);}
962 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,
963 TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$6);}
966 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
971 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_NAND);}
975 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
978 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
982 : PARSEOP_NOOP {$$ = TrCreateOp (PARSEOP_NOOP, 0);}
987 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_NOR);}
991 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
994 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
999 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_NOTIFY);}
1002 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
1005 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1010 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_NOT);}
1013 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
1016 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1020 : PARSEOP_OBJECTTYPE
1021 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_OBJECTTYPE);}
1023 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
1024 | PARSEOP_OBJECTTYPE
1026 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1032 AmlPackageLengthTerm
1033 PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_OFFSET,1,$3);}
1036 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1040 : PARSEOP_OPERATIONREGION
1041 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_OPERATIONREGION);}
1043 ',' OpRegionSpaceIdTerm
1046 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,
1047 TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
1049 | PARSEOP_OPERATIONREGION
1051 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1055 : RegionSpaceKeyword {}
1056 | ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
1061 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_OR);}
1065 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
1068 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1072 : PARSEOP_PACKAGE {$<n>$ = TrCreateLeafOp (PARSEOP_VAR_PACKAGE);}
1074 '{' PackageList '}' {$$ = TrLinkOpChildren ($<n>2,2,$3,$5);}
1077 : PARSEOP_POWERRESOURCE
1078 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_POWERRESOURCE);}
1082 PARSEOP_CLOSE_PAREN '{'
1083 TermList '}' {$$ = TrLinkOpChildren ($<n>3,4,
1084 TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
1086 | PARSEOP_POWERRESOURCE
1088 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1093 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PRINTF);}
1096 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
1099 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1104 | TermArg {$$ = $1;}
1106 TermArg {$$ = TrLinkPeerOp ($1, $3);}
1111 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PROCESSOR);}
1114 OptionalDWordConstExpr
1115 OptionalByteConstExpr
1116 PARSEOP_CLOSE_PAREN '{'
1117 TermList '}' {$$ = TrLinkOpChildren ($<n>3,5,
1118 TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
1122 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1126 : PARSEOP_DATABUFFER
1127 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DATABUFFER);}
1129 PARSEOP_CLOSE_PAREN '{'
1130 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
1131 | PARSEOP_DATABUFFER
1133 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1137 * In RefOf, the node isn't really a target, but we can't keep track of it after
1138 * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
1142 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_REFOF);}
1144 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,
1145 TrSetOpFlags ($4, OP_IS_TARGET));}
1148 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1153 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_RELEASE);}
1155 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
1158 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1163 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_RESET);}
1165 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
1168 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1173 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_RETURN);}
1175 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
1176 | PARSEOP_RETURN {$$ = TrLinkOpChildren (
1177 TrCreateLeafOp (PARSEOP_RETURN),1,
1178 TrSetOpFlags (TrCreateLeafOp (PARSEOP_ZERO),
1179 OP_IS_NULL_RETURN));}
1182 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1187 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SCOPE);}
1189 PARSEOP_CLOSE_PAREN '{'
1190 TermList '}' {$$ = TrLinkOpChildren ($<n>3,2,
1191 TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$7);}
1194 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1199 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SHIFTLEFT);}
1203 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
1206 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1210 : PARSEOP_SHIFTRIGHT
1211 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SHIFTRIGHT);}
1215 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
1216 | PARSEOP_SHIFTRIGHT
1218 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1223 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SIGNAL);}
1225 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
1228 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1233 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SIZEOF);}
1235 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
1238 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1243 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SLEEP);}
1245 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
1248 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1253 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STALL);}
1255 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
1258 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1263 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STORE);}
1266 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,
1267 TrSetOpFlags ($6, OP_IS_TARGET));}
1270 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1275 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SUBTRACT);}
1279 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
1282 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1287 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SWITCH);}
1289 PARSEOP_CLOSE_PAREN '{'
1290 CaseDefaultTermList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
1293 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1297 : PARSEOP_THERMALZONE
1298 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_THERMALZONE);}
1300 PARSEOP_CLOSE_PAREN '{'
1301 TermList '}' {$$ = TrLinkOpChildren ($<n>3,2,
1302 TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$7);}
1303 | PARSEOP_THERMALZONE
1305 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1310 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TIMER);}
1311 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,0);}
1312 | PARSEOP_TIMER {$$ = TrLinkOpChildren (
1313 TrCreateLeafOp (PARSEOP_TIMER),0);}
1316 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1321 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TOBCD);}
1324 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
1327 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1332 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TOBUFFER);}
1335 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
1338 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1342 : PARSEOP_TODECIMALSTRING
1343 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TODECIMALSTRING);}
1346 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
1347 | PARSEOP_TODECIMALSTRING
1349 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1353 : PARSEOP_TOHEXSTRING
1354 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TOHEXSTRING);}
1357 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
1358 | PARSEOP_TOHEXSTRING
1360 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1365 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TOINTEGER);}
1368 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
1371 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1376 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TOPLD);}
1378 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
1381 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1387 PARSEOP_EXP_EQUALS Integer {$$ = TrLinkOpChildren ($1,1,$3);}
1389 PARSEOP_EXP_EQUALS String {$$ = TrLinkOpChildren ($1,1,$3);}
1390 | PldKeywordList ',' /* Allows a trailing comma at list end */
1391 | PldKeywordList ','
1393 PARSEOP_EXP_EQUALS Integer {$$ = TrLinkPeerOp ($1,TrLinkOpChildren ($3,1,$5));}
1394 | PldKeywordList ','
1396 PARSEOP_EXP_EQUALS String {$$ = TrLinkPeerOp ($1,TrLinkOpChildren ($3,1,$5));}
1402 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TOSTRING);}
1406 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
1409 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1416 PARSEOP_CLOSE_PAREN {$$ = TrSetOpIntegerValue (PARSEOP_TOUUID, $3);}
1419 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1424 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UNICODE);}
1426 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,0,$4);}
1429 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1434 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UNLOAD);}
1436 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);}
1439 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1444 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WAIT);}
1447 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
1450 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1455 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_XOR);}
1459 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
1462 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1467 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WHILE);}
1470 '{' TermList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
1473 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}