xref: /netbsd-src/sys/external/bsd/acpica/dist/compiler/aslprimaries.y (revision 046a29855e04359424fd074e8313af6b6be8cfb6)
1d0e1da26Schristos NoEcho('
2d0e1da26Schristos /******************************************************************************
3d0e1da26Schristos  *
4d0e1da26Schristos  * Module Name: aslprimaries.y - Rules for primary ASL operators
5835858a6Schristos  *                             - Keep this file synched with the
6835858a6Schristos  *                               CvParseOpBlockType function in cvcompiler.c
7d0e1da26Schristos  *
8d0e1da26Schristos  *****************************************************************************/
9d0e1da26Schristos 
10d0e1da26Schristos /*
11*046a2985Schristos  * Copyright (C) 2000 - 2023, Intel Corp.
12d0e1da26Schristos  * All rights reserved.
13d0e1da26Schristos  *
14d0e1da26Schristos  * Redistribution and use in source and binary forms, with or without
15d0e1da26Schristos  * modification, are permitted provided that the following conditions
16d0e1da26Schristos  * are met:
17d0e1da26Schristos  * 1. Redistributions of source code must retain the above copyright
18d0e1da26Schristos  *    notice, this list of conditions, and the following disclaimer,
19d0e1da26Schristos  *    without modification.
20d0e1da26Schristos  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
21d0e1da26Schristos  *    substantially similar to the "NO WARRANTY" disclaimer below
22d0e1da26Schristos  *    ("Disclaimer") and any redistribution must be conditioned upon
23d0e1da26Schristos  *    including a substantially similar Disclaimer requirement for further
24d0e1da26Schristos  *    binary redistribution.
25d0e1da26Schristos  * 3. Neither the names of the above-listed copyright holders nor the names
26d0e1da26Schristos  *    of any contributors may be used to endorse or promote products derived
27d0e1da26Schristos  *    from this software without specific prior written permission.
28d0e1da26Schristos  *
29d0e1da26Schristos  * Alternatively, this software may be distributed under the terms of the
30d0e1da26Schristos  * GNU General Public License ("GPL") version 2 as published by the Free
31d0e1da26Schristos  * Software Foundation.
32d0e1da26Schristos  *
33d0e1da26Schristos  * NO WARRANTY
34d0e1da26Schristos  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
35d0e1da26Schristos  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
3646a330b4Schristos  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
37d0e1da26Schristos  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
38d0e1da26Schristos  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
39d0e1da26Schristos  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
40d0e1da26Schristos  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
41d0e1da26Schristos  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
42d0e1da26Schristos  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
43d0e1da26Schristos  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
44d0e1da26Schristos  * POSSIBILITY OF SUCH DAMAGES.
45d0e1da26Schristos  */
46d0e1da26Schristos 
47d0e1da26Schristos ')
48d0e1da26Schristos 
49d0e1da26Schristos 
50d0e1da26Schristos /*******************************************************************************
51d0e1da26Schristos  *
52d0e1da26Schristos  * ASL Primary Terms
53d0e1da26Schristos  *
54d0e1da26Schristos  ******************************************************************************/
55d0e1da26Schristos 
56d0e1da26Schristos AccessAsTerm
570b89cdedSchristos     : PARSEOP_ACCESSAS
580b89cdedSchristos         PARSEOP_OPEN_PAREN
59d0e1da26Schristos         AccessTypeKeyword
60d0e1da26Schristos         OptionalAccessAttribTerm
6189b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_ACCESSAS,2,$3,$4);}
620b89cdedSchristos     | PARSEOP_ACCESSAS
630b89cdedSchristos         PARSEOP_OPEN_PAREN
640b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
65d0e1da26Schristos     ;
66d0e1da26Schristos 
67d0e1da26Schristos AcquireTerm
680b89cdedSchristos     : PARSEOP_ACQUIRE
6989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp(PARSEOP_ACQUIRE);}
70d0e1da26Schristos         SuperName
71d0e1da26Schristos         ',' WordConstExpr
7289b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$6);}
730b89cdedSchristos     | PARSEOP_ACQUIRE
740b89cdedSchristos         PARSEOP_OPEN_PAREN
750b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
76d0e1da26Schristos     ;
77d0e1da26Schristos 
78d0e1da26Schristos AddTerm
790b89cdedSchristos     : PARSEOP_ADD
8089b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_ADD);}
81d0e1da26Schristos         TermArg
82d0e1da26Schristos         TermArgItem
83d0e1da26Schristos         Target
8489b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
850b89cdedSchristos     | PARSEOP_ADD
860b89cdedSchristos         PARSEOP_OPEN_PAREN
870b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
88d0e1da26Schristos     ;
89d0e1da26Schristos 
90d0e1da26Schristos AliasTerm
910b89cdedSchristos     : PARSEOP_ALIAS
9289b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_ALIAS);}
93d0e1da26Schristos         NameString
94d0e1da26Schristos         NameStringItem
9589b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,
9689b8eb6cSchristos                                         TrSetOpFlags ($5, OP_IS_NAME_DECLARATION));}
970b89cdedSchristos     | PARSEOP_ALIAS
980b89cdedSchristos         PARSEOP_OPEN_PAREN
990b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
100d0e1da26Schristos     ;
101d0e1da26Schristos 
102d0e1da26Schristos AndTerm
1030b89cdedSchristos     : PARSEOP_AND
10489b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_AND);}
105d0e1da26Schristos         TermArg
106d0e1da26Schristos         TermArgItem
107d0e1da26Schristos         Target
10889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
1090b89cdedSchristos     | PARSEOP_AND
1100b89cdedSchristos         PARSEOP_OPEN_PAREN
1110b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
112d0e1da26Schristos     ;
113d0e1da26Schristos 
114d0e1da26Schristos ArgTerm
11589b8eb6cSchristos     : PARSEOP_ARG0                  {$$ = TrCreateLeafOp (PARSEOP_ARG0);}
11689b8eb6cSchristos     | PARSEOP_ARG1                  {$$ = TrCreateLeafOp (PARSEOP_ARG1);}
11789b8eb6cSchristos     | PARSEOP_ARG2                  {$$ = TrCreateLeafOp (PARSEOP_ARG2);}
11889b8eb6cSchristos     | PARSEOP_ARG3                  {$$ = TrCreateLeafOp (PARSEOP_ARG3);}
11989b8eb6cSchristos     | PARSEOP_ARG4                  {$$ = TrCreateLeafOp (PARSEOP_ARG4);}
12089b8eb6cSchristos     | PARSEOP_ARG5                  {$$ = TrCreateLeafOp (PARSEOP_ARG5);}
12189b8eb6cSchristos     | PARSEOP_ARG6                  {$$ = TrCreateLeafOp (PARSEOP_ARG6);}
122d0e1da26Schristos     ;
123d0e1da26Schristos 
124d0e1da26Schristos BankFieldTerm
1250b89cdedSchristos     : PARSEOP_BANKFIELD
12689b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_BANKFIELD);}
127d0e1da26Schristos         NameString
128d0e1da26Schristos         NameStringItem
129d0e1da26Schristos         TermArgItem
13047315524Schristos         OptionalAccessTypeKeyword
13147315524Schristos         OptionalLockRuleKeyword
13247315524Schristos         OptionalUpdateRuleKeyword
1330b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
13489b8eb6cSchristos             FieldUnitList '}'       {$$ = TrLinkOpChildren ($<n>3,7,
13547315524Schristos                                         $4,$5,$6,$7,$8,$9,$12);}
1360b89cdedSchristos     | PARSEOP_BANKFIELD
1370b89cdedSchristos         PARSEOP_OPEN_PAREN
1380b89cdedSchristos         error PARSEOP_CLOSE_PAREN
1390b89cdedSchristos         '{' error '}'               {$$ = AslDoError(); yyclearin;}
140d0e1da26Schristos     ;
141d0e1da26Schristos 
142d0e1da26Schristos BreakTerm
14389b8eb6cSchristos     : PARSEOP_BREAK                 {$$ = TrCreateOp (PARSEOP_BREAK, 0);}
144d0e1da26Schristos     ;
145d0e1da26Schristos 
146d0e1da26Schristos BreakPointTerm
14789b8eb6cSchristos     : PARSEOP_BREAKPOINT            {$$ = TrCreateOp (PARSEOP_BREAKPOINT, 0);}
148d0e1da26Schristos     ;
149d0e1da26Schristos 
150d0e1da26Schristos BufferTerm
15189b8eb6cSchristos     : PARSEOP_BUFFER                {$<n>$ = TrCreateLeafOp (PARSEOP_BUFFER); COMMENT_CAPTURE_OFF; }
152d0e1da26Schristos         OptionalDataCount
15389b8eb6cSchristos         '{' BufferTermData '}'      {$$ = TrLinkOpChildren ($<n>2,2,$3,$5); COMMENT_CAPTURE_ON;}
154d0e1da26Schristos     ;
155d0e1da26Schristos 
156d0e1da26Schristos BufferTermData
157d0e1da26Schristos     : ByteList                      {}
158d0e1da26Schristos     | StringData                    {}
159d0e1da26Schristos     ;
160d0e1da26Schristos 
161d0e1da26Schristos CaseTerm
1620b89cdedSchristos     : PARSEOP_CASE
16389b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CASE);}
164d0e1da26Schristos         DataObject
1650b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
16689b8eb6cSchristos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
1670b89cdedSchristos     | PARSEOP_CASE
1680b89cdedSchristos         PARSEOP_OPEN_PAREN
1690b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
170d0e1da26Schristos     ;
171d0e1da26Schristos 
172d0e1da26Schristos ConcatTerm
1730b89cdedSchristos     : PARSEOP_CONCATENATE
17489b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CONCATENATE);}
175d0e1da26Schristos         TermArg
176d0e1da26Schristos         TermArgItem
177d0e1da26Schristos         Target
17889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
1790b89cdedSchristos     | PARSEOP_CONCATENATE
1800b89cdedSchristos         PARSEOP_OPEN_PAREN
1810b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
182d0e1da26Schristos     ;
183d0e1da26Schristos 
184d0e1da26Schristos ConcatResTerm
1850b89cdedSchristos     : PARSEOP_CONCATENATERESTEMPLATE
18689b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (
187d0e1da26Schristos                                         PARSEOP_CONCATENATERESTEMPLATE);}
188d0e1da26Schristos         TermArg
189d0e1da26Schristos         TermArgItem
190d0e1da26Schristos         Target
19189b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
1920b89cdedSchristos     | PARSEOP_CONCATENATERESTEMPLATE
1930b89cdedSchristos         PARSEOP_OPEN_PAREN
1940b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1950b89cdedSchristos     ;
1960b89cdedSchristos 
1970b89cdedSchristos CondRefOfTerm
1980b89cdedSchristos     : PARSEOP_CONDREFOF
19989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CONDREFOF);}
2000b89cdedSchristos         CondRefOfSource
2010b89cdedSchristos         Target
20289b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
2030b89cdedSchristos     | PARSEOP_CONDREFOF
2040b89cdedSchristos         PARSEOP_OPEN_PAREN
2050b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
206d0e1da26Schristos     ;
207d0e1da26Schristos 
208d0e1da26Schristos ConnectionTerm
2090b89cdedSchristos     : PARSEOP_CONNECTION
2100b89cdedSchristos         PARSEOP_OPEN_PAREN
211d0e1da26Schristos         NameString
21289b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_CONNECTION,1,$3);}
2130b89cdedSchristos     | PARSEOP_CONNECTION
21489b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CONNECTION);}
215d0e1da26Schristos         ResourceMacroTerm
21689b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3, 1,
21789b8eb6cSchristos                                         TrLinkOpChildren (
21889b8eb6cSchristos                                             TrCreateLeafOp (PARSEOP_RESOURCETEMPLATE), 3,
21989b8eb6cSchristos                                             TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
22089b8eb6cSchristos                                             TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
221d0e1da26Schristos                                             $4));}
2220b89cdedSchristos     | PARSEOP_CONNECTION
2230b89cdedSchristos         PARSEOP_OPEN_PAREN
2240b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
225d0e1da26Schristos     ;
226d0e1da26Schristos 
227d0e1da26Schristos ContinueTerm
22889b8eb6cSchristos     : PARSEOP_CONTINUE              {$$ = TrCreateOp (PARSEOP_CONTINUE, 0);}
229d0e1da26Schristos     ;
230d0e1da26Schristos 
231d0e1da26Schristos CopyObjectTerm
2320b89cdedSchristos     : PARSEOP_COPYOBJECT
23389b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_COPYOBJECT);}
234d0e1da26Schristos         TermArg
2350b89cdedSchristos         ',' SimpleName
23689b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,
23789b8eb6cSchristos                                         TrSetOpFlags ($6, OP_IS_TARGET));}
2380b89cdedSchristos     | PARSEOP_COPYOBJECT
2390b89cdedSchristos         PARSEOP_OPEN_PAREN
2400b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
241d0e1da26Schristos     ;
242d0e1da26Schristos 
243d0e1da26Schristos CreateBitFieldTerm
2440b89cdedSchristos     : PARSEOP_CREATEBITFIELD
24589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEBITFIELD);}
246d0e1da26Schristos         TermArg
247d0e1da26Schristos         TermArgItem
248d0e1da26Schristos         NameStringItem
24989b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
25089b8eb6cSchristos                                         TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
2510b89cdedSchristos     | PARSEOP_CREATEBITFIELD
2520b89cdedSchristos         PARSEOP_OPEN_PAREN
2530b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
254d0e1da26Schristos     ;
255d0e1da26Schristos 
256d0e1da26Schristos CreateByteFieldTerm
2570b89cdedSchristos     : PARSEOP_CREATEBYTEFIELD
25889b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEBYTEFIELD);}
259d0e1da26Schristos         TermArg
260d0e1da26Schristos         TermArgItem
261d0e1da26Schristos         NameStringItem
26289b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
26389b8eb6cSchristos                                         TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
2640b89cdedSchristos     | PARSEOP_CREATEBYTEFIELD
2650b89cdedSchristos         PARSEOP_OPEN_PAREN
2660b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
267d0e1da26Schristos     ;
268d0e1da26Schristos 
269d0e1da26Schristos CreateDWordFieldTerm
2700b89cdedSchristos     : PARSEOP_CREATEDWORDFIELD
27189b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEDWORDFIELD);}
272d0e1da26Schristos         TermArg
273d0e1da26Schristos         TermArgItem
274d0e1da26Schristos         NameStringItem
27589b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
27689b8eb6cSchristos                                         TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
2770b89cdedSchristos     | PARSEOP_CREATEDWORDFIELD
2780b89cdedSchristos         PARSEOP_OPEN_PAREN
2790b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
280d0e1da26Schristos     ;
281d0e1da26Schristos 
282d0e1da26Schristos CreateFieldTerm
2830b89cdedSchristos     : PARSEOP_CREATEFIELD
28489b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEFIELD);}
285d0e1da26Schristos         TermArg
286d0e1da26Schristos         TermArgItem
287d0e1da26Schristos         TermArgItem
288d0e1da26Schristos         NameStringItem
28989b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,4,$4,$5,$6,
29089b8eb6cSchristos                                         TrSetOpFlags ($7, OP_IS_NAME_DECLARATION));}
2910b89cdedSchristos     | PARSEOP_CREATEFIELD
2920b89cdedSchristos         PARSEOP_OPEN_PAREN
2930b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
294d0e1da26Schristos     ;
295d0e1da26Schristos 
296d0e1da26Schristos CreateQWordFieldTerm
2970b89cdedSchristos     : PARSEOP_CREATEQWORDFIELD
29889b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEQWORDFIELD);}
299d0e1da26Schristos         TermArg
300d0e1da26Schristos         TermArgItem
301d0e1da26Schristos         NameStringItem
30289b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
30389b8eb6cSchristos                                         TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
3040b89cdedSchristos     | PARSEOP_CREATEQWORDFIELD
3050b89cdedSchristos         PARSEOP_OPEN_PAREN
3060b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
307d0e1da26Schristos     ;
308d0e1da26Schristos 
309d0e1da26Schristos CreateWordFieldTerm
3100b89cdedSchristos     : PARSEOP_CREATEWORDFIELD
31189b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEWORDFIELD);}
312d0e1da26Schristos         TermArg
313d0e1da26Schristos         TermArgItem
314d0e1da26Schristos         NameStringItem
31589b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
31689b8eb6cSchristos                                         TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
3170b89cdedSchristos     | PARSEOP_CREATEWORDFIELD
3180b89cdedSchristos         PARSEOP_OPEN_PAREN
3190b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
320d0e1da26Schristos     ;
321d0e1da26Schristos 
322d0e1da26Schristos DataRegionTerm
3230b89cdedSchristos     : PARSEOP_DATATABLEREGION
32489b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DATATABLEREGION);}
325d0e1da26Schristos         NameString
326d0e1da26Schristos         TermArgItem
327d0e1da26Schristos         TermArgItem
328d0e1da26Schristos         TermArgItem
32989b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,4,
33089b8eb6cSchristos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$5,$6,$7);}
3310b89cdedSchristos     | PARSEOP_DATATABLEREGION
3320b89cdedSchristos         PARSEOP_OPEN_PAREN
3330b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
334d0e1da26Schristos     ;
335d0e1da26Schristos 
336d0e1da26Schristos DebugTerm
33789b8eb6cSchristos     : PARSEOP_DEBUG                 {$$ = TrCreateLeafOp (PARSEOP_DEBUG);}
338d0e1da26Schristos     ;
339d0e1da26Schristos 
340d0e1da26Schristos DecTerm
3410b89cdedSchristos     : PARSEOP_DECREMENT
34289b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DECREMENT);}
343d0e1da26Schristos         SuperName
34489b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
3450b89cdedSchristos     | PARSEOP_DECREMENT
3460b89cdedSchristos         PARSEOP_OPEN_PAREN
3470b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
348d0e1da26Schristos     ;
349d0e1da26Schristos 
350d0e1da26Schristos DefaultTerm
35189b8eb6cSchristos     : PARSEOP_DEFAULT '{'           {$<n>$ = TrCreateLeafOp (PARSEOP_DEFAULT);}
35289b8eb6cSchristos         TermList '}'                {$$ = TrLinkOpChildren ($<n>3,1,$4);}
353d0e1da26Schristos     | PARSEOP_DEFAULT '{'
354d0e1da26Schristos         error '}'                   {$$ = AslDoError(); yyclearin;}
355d0e1da26Schristos     ;
356d0e1da26Schristos 
357d0e1da26Schristos DerefOfTerm
3580b89cdedSchristos     : PARSEOP_DEREFOF
35989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DEREFOF);}
3600b89cdedSchristos         DerefOfSource
36189b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
3620b89cdedSchristos     | PARSEOP_DEREFOF
3630b89cdedSchristos         PARSEOP_OPEN_PAREN
3640b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
365d0e1da26Schristos     ;
366d0e1da26Schristos 
367d0e1da26Schristos DeviceTerm
3680b89cdedSchristos     : PARSEOP_DEVICE
36989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DEVICE);}
370d0e1da26Schristos         NameString
3710b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
37289b8eb6cSchristos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,2,
37389b8eb6cSchristos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$7);}
3740b89cdedSchristos     | PARSEOP_DEVICE
3750b89cdedSchristos         PARSEOP_OPEN_PAREN
3760b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
377d0e1da26Schristos     ;
378d0e1da26Schristos 
379d0e1da26Schristos DivideTerm
3800b89cdedSchristos     : PARSEOP_DIVIDE
38189b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DIVIDE);}
382d0e1da26Schristos         TermArg
383d0e1da26Schristos         TermArgItem
384d0e1da26Schristos         Target
385d0e1da26Schristos         Target
38689b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,4,$4,$5,$6,$7);}
3870b89cdedSchristos     | PARSEOP_DIVIDE
3880b89cdedSchristos         PARSEOP_OPEN_PAREN
3890b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
390d0e1da26Schristos     ;
391d0e1da26Schristos 
392d0e1da26Schristos EISAIDTerm
3930b89cdedSchristos     : PARSEOP_EISAID
3940b89cdedSchristos         PARSEOP_OPEN_PAREN
395360a9019Schristos         StringLiteral
39689b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrSetOpIntegerValue (PARSEOP_EISAID, $3);}
3970b89cdedSchristos     | PARSEOP_EISAID
3980b89cdedSchristos         PARSEOP_OPEN_PAREN
3990b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
400d0e1da26Schristos     ;
401d0e1da26Schristos 
402d0e1da26Schristos ElseIfTerm
40389b8eb6cSchristos     : IfTerm ElseTerm               {$$ = TrLinkPeerOp ($1,$2);}
404d0e1da26Schristos     ;
405d0e1da26Schristos 
406d0e1da26Schristos ElseTerm
407d0e1da26Schristos     :                               {$$ = NULL;}
408835858a6Schristos     | PARSEOP_ELSE '{'
40989b8eb6cSchristos         TermList           {$<n>$ = TrCreateLeafOp (PARSEOP_ELSE);}
41089b8eb6cSchristos         '}'                {$$ = TrLinkOpChildren ($<n>4,1,$3);}
411d0e1da26Schristos 
412d0e1da26Schristos     | PARSEOP_ELSE '{'
413d0e1da26Schristos         error '}'                   {$$ = AslDoError(); yyclearin;}
414d0e1da26Schristos 
415d0e1da26Schristos     | PARSEOP_ELSE
416d0e1da26Schristos         error                       {$$ = AslDoError(); yyclearin;}
417d0e1da26Schristos 
4180b89cdedSchristos     | PARSEOP_ELSEIF
41989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_ELSE);}
42089b8eb6cSchristos         TermArg                     {$<n>$ = TrCreateLeafOp (PARSEOP_IF);}
4210b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
42289b8eb6cSchristos             TermList '}'            {TrLinkOpChildren ($<n>5,2,$4,$8);}
42389b8eb6cSchristos         ElseTerm                    {TrLinkPeerOp ($<n>5,$11);}
42489b8eb6cSchristos                                     {$$ = TrLinkOpChildren ($<n>3,1,$<n>5);}
425d0e1da26Schristos 
4260b89cdedSchristos     | PARSEOP_ELSEIF
4270b89cdedSchristos         PARSEOP_OPEN_PAREN
4280b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
429d0e1da26Schristos 
430d0e1da26Schristos     | PARSEOP_ELSEIF
431d0e1da26Schristos         error                       {$$ = AslDoError(); yyclearin;}
432d0e1da26Schristos     ;
433d0e1da26Schristos 
434d0e1da26Schristos EventTerm
4350b89cdedSchristos     : PARSEOP_EVENT
43689b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_EVENT);}
437d0e1da26Schristos         NameString
43889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,
43989b8eb6cSchristos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION));}
4400b89cdedSchristos     | PARSEOP_EVENT
4410b89cdedSchristos         PARSEOP_OPEN_PAREN
4420b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
443d0e1da26Schristos     ;
444d0e1da26Schristos 
445d0e1da26Schristos ExternalTerm
4460b89cdedSchristos     : PARSEOP_EXTERNAL
4470b89cdedSchristos         PARSEOP_OPEN_PAREN
448d0e1da26Schristos         NameString
449d0e1da26Schristos         OptionalObjectTypeKeyword
450d0e1da26Schristos         OptionalParameterTypePackage
451d0e1da26Schristos         OptionalParameterTypesPackage
45289b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
4530b89cdedSchristos     | PARSEOP_EXTERNAL
4540b89cdedSchristos         PARSEOP_OPEN_PAREN
4550b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
456d0e1da26Schristos     ;
457d0e1da26Schristos 
458d0e1da26Schristos FatalTerm
4590b89cdedSchristos     : PARSEOP_FATAL
46089b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FATAL);}
461d0e1da26Schristos         ByteConstExpr
462d0e1da26Schristos         ',' DWordConstExpr
463d0e1da26Schristos         TermArgItem
46489b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);}
4650b89cdedSchristos     | PARSEOP_FATAL
4660b89cdedSchristos         PARSEOP_OPEN_PAREN
4670b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
468d0e1da26Schristos     ;
469d0e1da26Schristos 
470d0e1da26Schristos FieldTerm
4710b89cdedSchristos     : PARSEOP_FIELD
47289b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FIELD);}
473d0e1da26Schristos         NameString
47447315524Schristos         OptionalAccessTypeKeyword
47547315524Schristos         OptionalLockRuleKeyword
47647315524Schristos         OptionalUpdateRuleKeyword
4770b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
47847315524Schristos             FieldUnitList '}'       {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$6,$7,$10);}
4790b89cdedSchristos     | PARSEOP_FIELD
4800b89cdedSchristos         PARSEOP_OPEN_PAREN
4810b89cdedSchristos         error PARSEOP_CLOSE_PAREN
4820b89cdedSchristos         '{' error '}'               {$$ = AslDoError(); yyclearin;}
483d0e1da26Schristos     ;
484d0e1da26Schristos 
485d0e1da26Schristos FindSetLeftBitTerm
4860b89cdedSchristos     : PARSEOP_FINDSETLEFTBIT
48789b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FINDSETLEFTBIT);}
488d0e1da26Schristos         TermArg
489d0e1da26Schristos         Target
49089b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
4910b89cdedSchristos     | PARSEOP_FINDSETLEFTBIT
4920b89cdedSchristos         PARSEOP_OPEN_PAREN
4930b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
494d0e1da26Schristos     ;
495d0e1da26Schristos 
496d0e1da26Schristos FindSetRightBitTerm
4970b89cdedSchristos     : PARSEOP_FINDSETRIGHTBIT
49889b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FINDSETRIGHTBIT);}
499d0e1da26Schristos         TermArg
500d0e1da26Schristos         Target
50189b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
5020b89cdedSchristos     | PARSEOP_FINDSETRIGHTBIT
5030b89cdedSchristos         PARSEOP_OPEN_PAREN
5040b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
505d0e1da26Schristos     ;
506d0e1da26Schristos 
507d0e1da26Schristos     /* Convert a For() loop to a While() loop */
508d0e1da26Schristos ForTerm
5090b89cdedSchristos     : PARSEOP_FOR
51089b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_WHILE);}
511d0e1da26Schristos         OptionalTermArg ','         {}
512d0e1da26Schristos         OptionalPredicate ','
51389b8eb6cSchristos         OptionalTermArg             {$<n>$ = TrLinkPeerOp ($4,$<n>3);
51489b8eb6cSchristos                                             TrSetOpParent ($9,$<n>3);}                /* New parent is WHILE */
5150b89cdedSchristos         PARSEOP_CLOSE_PAREN
51689b8eb6cSchristos         '{' TermList '}'            {$<n>$ = TrLinkOpChildren ($<n>3,2,$7,$13);}
51789b8eb6cSchristos                                     {$<n>$ = TrLinkPeerOp ($13,$9);
518d0e1da26Schristos                                         $$ = $<n>10;}
519d0e1da26Schristos     ;
520d0e1da26Schristos 
521d0e1da26Schristos OptionalPredicate
52289b8eb6cSchristos     :                               {$$ = TrCreateValuedLeafOp (PARSEOP_INTEGER, 1);}
523d0e1da26Schristos     | TermArg                       {$$ = $1;}
524d0e1da26Schristos     ;
525d0e1da26Schristos 
526d0e1da26Schristos FprintfTerm
5270b89cdedSchristos     : PARSEOP_FPRINTF
52889b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FPRINTF);}
529d0e1da26Schristos         TermArg ','
530360a9019Schristos         StringLiteral
531d0e1da26Schristos         PrintfArgList
53289b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);}
5330b89cdedSchristos     | PARSEOP_FPRINTF
5340b89cdedSchristos         PARSEOP_OPEN_PAREN
5350b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
536d0e1da26Schristos     ;
537d0e1da26Schristos 
538d0e1da26Schristos FromBCDTerm
5390b89cdedSchristos     : PARSEOP_FROMBCD
54089b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FROMBCD);}
541d0e1da26Schristos         TermArg
542d0e1da26Schristos         Target
54389b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
5440b89cdedSchristos     | PARSEOP_FROMBCD
5450b89cdedSchristos         PARSEOP_OPEN_PAREN
5460b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
547d0e1da26Schristos     ;
548d0e1da26Schristos 
549d0e1da26Schristos FunctionTerm
5500b89cdedSchristos     : PARSEOP_FUNCTION
55189b8eb6cSchristos         PARSEOP_OPEN_PAREN          {COMMENT_CAPTURE_OFF; $<n>$ = TrCreateLeafOp (PARSEOP_METHOD); }
552d0e1da26Schristos         NameString
553d0e1da26Schristos         OptionalParameterTypePackage
554d0e1da26Schristos         OptionalParameterTypesPackage
555835858a6Schristos         PARSEOP_CLOSE_PAREN '{'     {COMMENT_CAPTURE_ON; }
55689b8eb6cSchristos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,7,
55789b8eb6cSchristos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
5583fd31de5Schristos                                         TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
55989b8eb6cSchristos                                         TrCreateLeafOp (PARSEOP_SERIALIZERULE_NOTSERIAL),
56089b8eb6cSchristos                                         TrCreateValuedLeafOp (PARSEOP_BYTECONST, 0),$5,$6,$10);}
5610b89cdedSchristos     | PARSEOP_FUNCTION
5620b89cdedSchristos         PARSEOP_OPEN_PAREN
5630b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
564d0e1da26Schristos     ;
565d0e1da26Schristos 
566d0e1da26Schristos IfTerm
5670b89cdedSchristos     : PARSEOP_IF
56889b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_IF);}
569d0e1da26Schristos         TermArg
5700b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
57189b8eb6cSchristos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
572d0e1da26Schristos 
5730b89cdedSchristos     | PARSEOP_IF
5740b89cdedSchristos         PARSEOP_OPEN_PAREN
5750b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
576d0e1da26Schristos     ;
577d0e1da26Schristos 
578d0e1da26Schristos IncludeTerm
5790b89cdedSchristos     : PARSEOP_INCLUDE
5800b89cdedSchristos         PARSEOP_OPEN_PAREN
5810b89cdedSchristos         String
58289b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrSetOpIntegerValue (PARSEOP_INCLUDE, $3);
583d0e1da26Schristos                                         FlOpenIncludeFile ($3);}
584d0e1da26Schristos     ;
585d0e1da26Schristos 
586d0e1da26Schristos IncludeEndTerm
58789b8eb6cSchristos     : PARSEOP_INCLUDE_END           {$<n>$ = TrCreateLeafOp (PARSEOP_INCLUDE_END);
58889b8eb6cSchristos                                         TrSetOpCurrentFilename ($$);}
589d0e1da26Schristos     ;
590d0e1da26Schristos 
591d0e1da26Schristos IncTerm
5920b89cdedSchristos     : PARSEOP_INCREMENT
59389b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_INCREMENT);}
594d0e1da26Schristos         SuperName
59589b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
5960b89cdedSchristos     | PARSEOP_INCREMENT
5970b89cdedSchristos         PARSEOP_OPEN_PAREN
5980b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
599d0e1da26Schristos     ;
600d0e1da26Schristos 
601d0e1da26Schristos IndexFieldTerm
6020b89cdedSchristos     : PARSEOP_INDEXFIELD
60389b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_INDEXFIELD);}
604d0e1da26Schristos         NameString
605d0e1da26Schristos         NameStringItem
60647315524Schristos         OptionalAccessTypeKeyword
60747315524Schristos         OptionalLockRuleKeyword
60847315524Schristos         OptionalUpdateRuleKeyword
6090b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
61047315524Schristos             FieldUnitList '}'       {$$ = TrLinkOpChildren ($<n>3,6,$4,$5,$6,$7,$8,$11);}
6110b89cdedSchristos     | PARSEOP_INDEXFIELD
6120b89cdedSchristos         PARSEOP_OPEN_PAREN
6130b89cdedSchristos         error PARSEOP_CLOSE_PAREN
6140b89cdedSchristos         '{' error '}'               {$$ = AslDoError(); yyclearin;}
615d0e1da26Schristos     ;
616d0e1da26Schristos 
617d0e1da26Schristos IndexTerm
6180b89cdedSchristos     : PARSEOP_INDEX
61989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_INDEX);}
620d0e1da26Schristos         TermArg
621d0e1da26Schristos         TermArgItem
622d0e1da26Schristos         Target
62389b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
6240b89cdedSchristos     | PARSEOP_INDEX
6250b89cdedSchristos         PARSEOP_OPEN_PAREN
6260b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
627d0e1da26Schristos     ;
628d0e1da26Schristos 
629d0e1da26Schristos LAndTerm
6300b89cdedSchristos     : PARSEOP_LAND
63189b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LAND);}
632d0e1da26Schristos         TermArg
633d0e1da26Schristos         TermArgItem
63489b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
6350b89cdedSchristos     | PARSEOP_LAND
6360b89cdedSchristos         PARSEOP_OPEN_PAREN
6370b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
638d0e1da26Schristos     ;
639d0e1da26Schristos 
640d0e1da26Schristos LEqualTerm
6410b89cdedSchristos     : PARSEOP_LEQUAL
64289b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LEQUAL);}
643d0e1da26Schristos         TermArg
644d0e1da26Schristos         TermArgItem
64589b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
6460b89cdedSchristos     | PARSEOP_LEQUAL
6470b89cdedSchristos         PARSEOP_OPEN_PAREN
6480b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
649d0e1da26Schristos     ;
650d0e1da26Schristos 
651d0e1da26Schristos LGreaterEqualTerm
6520b89cdedSchristos     : PARSEOP_LGREATEREQUAL
65389b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LLESS);}
654d0e1da26Schristos         TermArg
655d0e1da26Schristos         TermArgItem
65689b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_LNOT, 1,
65789b8eb6cSchristos                                         TrLinkOpChildren ($<n>3,2,$4,$5));}
6580b89cdedSchristos     | PARSEOP_LGREATEREQUAL
6590b89cdedSchristos         PARSEOP_OPEN_PAREN
6600b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
661d0e1da26Schristos     ;
662d0e1da26Schristos 
663d0e1da26Schristos LGreaterTerm
6640b89cdedSchristos     : PARSEOP_LGREATER
66589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LGREATER);}
666d0e1da26Schristos         TermArg
667d0e1da26Schristos         TermArgItem
66889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
6690b89cdedSchristos     | PARSEOP_LGREATER
6700b89cdedSchristos         PARSEOP_OPEN_PAREN
6710b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
672d0e1da26Schristos     ;
673d0e1da26Schristos 
674d0e1da26Schristos LLessEqualTerm
6750b89cdedSchristos     : PARSEOP_LLESSEQUAL
67689b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LGREATER);}
677d0e1da26Schristos         TermArg
678d0e1da26Schristos         TermArgItem
67989b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_LNOT, 1,
68089b8eb6cSchristos                                         TrLinkOpChildren ($<n>3,2,$4,$5));}
6810b89cdedSchristos     | PARSEOP_LLESSEQUAL
6820b89cdedSchristos         PARSEOP_OPEN_PAREN
6830b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
684d0e1da26Schristos     ;
685d0e1da26Schristos 
686d0e1da26Schristos LLessTerm
6870b89cdedSchristos     : PARSEOP_LLESS
68889b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LLESS);}
689d0e1da26Schristos         TermArg
690d0e1da26Schristos         TermArgItem
69189b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
6920b89cdedSchristos     | PARSEOP_LLESS
6930b89cdedSchristos         PARSEOP_OPEN_PAREN
6940b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
695d0e1da26Schristos     ;
696d0e1da26Schristos 
697d0e1da26Schristos LNotEqualTerm
6980b89cdedSchristos     : PARSEOP_LNOTEQUAL
69989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LEQUAL);}
700d0e1da26Schristos         TermArg
701d0e1da26Schristos         TermArgItem
70289b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_LNOT, 1,
70389b8eb6cSchristos                                         TrLinkOpChildren ($<n>3,2,$4,$5));}
7040b89cdedSchristos     | PARSEOP_LNOTEQUAL
7050b89cdedSchristos         PARSEOP_OPEN_PAREN
7060b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
707d0e1da26Schristos     ;
708d0e1da26Schristos 
709d0e1da26Schristos LNotTerm
7100b89cdedSchristos     : PARSEOP_LNOT
71189b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LNOT);}
712d0e1da26Schristos         TermArg
71389b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
7140b89cdedSchristos     | PARSEOP_LNOT
7150b89cdedSchristos         PARSEOP_OPEN_PAREN
7160b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
717d0e1da26Schristos     ;
718d0e1da26Schristos 
719d0e1da26Schristos LoadTableTerm
7200b89cdedSchristos     : PARSEOP_LOADTABLE
72189b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LOADTABLE);}
722d0e1da26Schristos         TermArg
723d0e1da26Schristos         TermArgItem
724d0e1da26Schristos         TermArgItem
725d0e1da26Schristos         OptionalListString
726d0e1da26Schristos         OptionalListString
727d0e1da26Schristos         OptionalReference
72889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
7290b89cdedSchristos     | PARSEOP_LOADTABLE
7300b89cdedSchristos         PARSEOP_OPEN_PAREN
7310b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
732d0e1da26Schristos     ;
733d0e1da26Schristos 
734d0e1da26Schristos LoadTerm
7350b89cdedSchristos     : PARSEOP_LOAD
73689b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LOAD);}
737d0e1da26Schristos         NameString
7385b139df6Schristos         Target
73989b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
7400b89cdedSchristos     | PARSEOP_LOAD
7410b89cdedSchristos         PARSEOP_OPEN_PAREN
7420b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
743d0e1da26Schristos     ;
744d0e1da26Schristos 
745d0e1da26Schristos LocalTerm
74689b8eb6cSchristos     : PARSEOP_LOCAL0                {$$ = TrCreateLeafOp (PARSEOP_LOCAL0);}
74789b8eb6cSchristos     | PARSEOP_LOCAL1                {$$ = TrCreateLeafOp (PARSEOP_LOCAL1);}
74889b8eb6cSchristos     | PARSEOP_LOCAL2                {$$ = TrCreateLeafOp (PARSEOP_LOCAL2);}
74989b8eb6cSchristos     | PARSEOP_LOCAL3                {$$ = TrCreateLeafOp (PARSEOP_LOCAL3);}
75089b8eb6cSchristos     | PARSEOP_LOCAL4                {$$ = TrCreateLeafOp (PARSEOP_LOCAL4);}
75189b8eb6cSchristos     | PARSEOP_LOCAL5                {$$ = TrCreateLeafOp (PARSEOP_LOCAL5);}
75289b8eb6cSchristos     | PARSEOP_LOCAL6                {$$ = TrCreateLeafOp (PARSEOP_LOCAL6);}
75389b8eb6cSchristos     | PARSEOP_LOCAL7                {$$ = TrCreateLeafOp (PARSEOP_LOCAL7);}
754d0e1da26Schristos     ;
755d0e1da26Schristos 
756d0e1da26Schristos LOrTerm
7570b89cdedSchristos     : PARSEOP_LOR
75889b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LOR);}
759d0e1da26Schristos         TermArg
760d0e1da26Schristos         TermArgItem
76189b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
7620b89cdedSchristos     | PARSEOP_LOR
7630b89cdedSchristos         PARSEOP_OPEN_PAREN
7640b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
765d0e1da26Schristos     ;
766d0e1da26Schristos 
767d0e1da26Schristos MatchTerm
7680b89cdedSchristos     : PARSEOP_MATCH
76989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MATCH);}
770d0e1da26Schristos         TermArg
771d0e1da26Schristos         ',' MatchOpKeyword
772d0e1da26Schristos         TermArgItem
773d0e1da26Schristos         ',' MatchOpKeyword
774d0e1da26Schristos         TermArgItem
775d0e1da26Schristos         TermArgItem
77689b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
7770b89cdedSchristos     | PARSEOP_MATCH
7780b89cdedSchristos         PARSEOP_OPEN_PAREN
7790b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
780d0e1da26Schristos     ;
781d0e1da26Schristos 
782d0e1da26Schristos MethodTerm
7830b89cdedSchristos     : PARSEOP_METHOD
78489b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_METHOD); COMMENT_CAPTURE_OFF;}
785d0e1da26Schristos         NameString
786d0e1da26Schristos         OptionalByteConstExpr       {UtCheckIntegerRange ($5, 0, 7);}
787d0e1da26Schristos         OptionalSerializeRuleKeyword
788d0e1da26Schristos         OptionalByteConstExpr
789d0e1da26Schristos         OptionalParameterTypePackage
790d0e1da26Schristos         OptionalParameterTypesPackage
791835858a6Schristos         PARSEOP_CLOSE_PAREN '{'     {COMMENT_CAPTURE_ON;}
79289b8eb6cSchristos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,7,
79389b8eb6cSchristos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
794835858a6Schristos                                         $5,$7,$8,$9,$10,$14);}
7950b89cdedSchristos     | PARSEOP_METHOD
7960b89cdedSchristos         PARSEOP_OPEN_PAREN
7970b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
798d0e1da26Schristos     ;
799d0e1da26Schristos 
800d0e1da26Schristos MidTerm
8010b89cdedSchristos     : PARSEOP_MID
80289b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MID);}
803d0e1da26Schristos         TermArg
804d0e1da26Schristos         TermArgItem
805d0e1da26Schristos         TermArgItem
806d0e1da26Schristos         Target
80789b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,4,$4,$5,$6,$7);}
8080b89cdedSchristos     | PARSEOP_MID
8090b89cdedSchristos         PARSEOP_OPEN_PAREN
8100b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
811d0e1da26Schristos     ;
812d0e1da26Schristos 
813d0e1da26Schristos ModTerm
8140b89cdedSchristos     : PARSEOP_MOD
81589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MOD);}
816d0e1da26Schristos         TermArg
817d0e1da26Schristos         TermArgItem
818d0e1da26Schristos         Target
81989b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
8200b89cdedSchristos     | PARSEOP_MOD
8210b89cdedSchristos         PARSEOP_OPEN_PAREN
8220b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
823d0e1da26Schristos     ;
824d0e1da26Schristos 
825d0e1da26Schristos MultiplyTerm
8260b89cdedSchristos     : PARSEOP_MULTIPLY
82789b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MULTIPLY);}
828d0e1da26Schristos         TermArg
829d0e1da26Schristos         TermArgItem
830d0e1da26Schristos         Target
83189b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
8320b89cdedSchristos     | PARSEOP_MULTIPLY
8330b89cdedSchristos         PARSEOP_OPEN_PAREN
8340b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
835d0e1da26Schristos     ;
836d0e1da26Schristos 
837d0e1da26Schristos MutexTerm
8380b89cdedSchristos     : PARSEOP_MUTEX
83989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MUTEX);}
840d0e1da26Schristos         NameString
84147315524Schristos         OptionalSyncLevel
84289b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,
84347315524Schristos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$5);}
8440b89cdedSchristos     | PARSEOP_MUTEX
8450b89cdedSchristos         PARSEOP_OPEN_PAREN
8460b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
847d0e1da26Schristos     ;
848d0e1da26Schristos 
849d0e1da26Schristos NameTerm
8500b89cdedSchristos     : PARSEOP_NAME
85189b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_NAME);}
852d0e1da26Schristos         NameString
853d0e1da26Schristos         ',' DataObject
85489b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,
85589b8eb6cSchristos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$6);}
8560b89cdedSchristos     | PARSEOP_NAME
8570b89cdedSchristos         PARSEOP_OPEN_PAREN
8580b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
859d0e1da26Schristos     ;
860d0e1da26Schristos 
861d0e1da26Schristos NAndTerm
8620b89cdedSchristos     : PARSEOP_NAND
86389b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_NAND);}
864d0e1da26Schristos         TermArg
865d0e1da26Schristos         TermArgItem
866d0e1da26Schristos         Target
86789b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
8680b89cdedSchristos     | PARSEOP_NAND
8690b89cdedSchristos         PARSEOP_OPEN_PAREN
8700b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
871d0e1da26Schristos     ;
872d0e1da26Schristos 
873d0e1da26Schristos NoOpTerm
87489b8eb6cSchristos     : PARSEOP_NOOP                  {$$ = TrCreateOp (PARSEOP_NOOP, 0);}
875d0e1da26Schristos     ;
876d0e1da26Schristos 
877d0e1da26Schristos NOrTerm
8780b89cdedSchristos     : PARSEOP_NOR
87989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_NOR);}
880d0e1da26Schristos         TermArg
881d0e1da26Schristos         TermArgItem
882d0e1da26Schristos         Target
88389b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
8840b89cdedSchristos     | PARSEOP_NOR
8850b89cdedSchristos         PARSEOP_OPEN_PAREN
8860b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
887d0e1da26Schristos     ;
888d0e1da26Schristos 
889d0e1da26Schristos NotifyTerm
8900b89cdedSchristos     : PARSEOP_NOTIFY
89189b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_NOTIFY);}
892d0e1da26Schristos         SuperName
893d0e1da26Schristos         TermArgItem
89489b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
8950b89cdedSchristos     | PARSEOP_NOTIFY
8960b89cdedSchristos         PARSEOP_OPEN_PAREN
8970b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
898d0e1da26Schristos     ;
899d0e1da26Schristos 
900d0e1da26Schristos NotTerm
9010b89cdedSchristos     : PARSEOP_NOT
90289b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_NOT);}
903d0e1da26Schristos         TermArg
904d0e1da26Schristos         Target
90589b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
9060b89cdedSchristos     | PARSEOP_NOT
9070b89cdedSchristos         PARSEOP_OPEN_PAREN
9080b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
909d0e1da26Schristos     ;
910d0e1da26Schristos 
911d0e1da26Schristos ObjectTypeTerm
9120b89cdedSchristos     : PARSEOP_OBJECTTYPE
91389b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_OBJECTTYPE);}
9140b89cdedSchristos         ObjectTypeSource
91589b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
9160b89cdedSchristos     | PARSEOP_OBJECTTYPE
9170b89cdedSchristos         PARSEOP_OPEN_PAREN
9180b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
919d0e1da26Schristos     ;
920d0e1da26Schristos 
921d0e1da26Schristos OffsetTerm
9220b89cdedSchristos     : PARSEOP_OFFSET
9230b89cdedSchristos         PARSEOP_OPEN_PAREN
924d0e1da26Schristos         AmlPackageLengthTerm
92589b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_OFFSET,1,$3);}
9260b89cdedSchristos     | PARSEOP_OFFSET
9270b89cdedSchristos         PARSEOP_OPEN_PAREN
9280b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
929d0e1da26Schristos     ;
930d0e1da26Schristos 
931d0e1da26Schristos OpRegionTerm
9320b89cdedSchristos     : PARSEOP_OPERATIONREGION
93389b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_OPERATIONREGION);}
934d0e1da26Schristos         NameString
935d0e1da26Schristos         ',' OpRegionSpaceIdTerm
936d0e1da26Schristos         TermArgItem
937d0e1da26Schristos         TermArgItem
93889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,4,
93989b8eb6cSchristos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
940d0e1da26Schristos                                         $6,$7,$8);}
9410b89cdedSchristos     | PARSEOP_OPERATIONREGION
9420b89cdedSchristos         PARSEOP_OPEN_PAREN
9430b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
944d0e1da26Schristos     ;
945d0e1da26Schristos 
946d0e1da26Schristos OpRegionSpaceIdTerm
947d0e1da26Schristos     : RegionSpaceKeyword            {}
948d0e1da26Schristos     | ByteConst                     {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
949d0e1da26Schristos     ;
950d0e1da26Schristos 
951d0e1da26Schristos OrTerm
9520b89cdedSchristos     : PARSEOP_OR
95389b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_OR);}
954d0e1da26Schristos         TermArg
955d0e1da26Schristos         TermArgItem
956d0e1da26Schristos         Target
95789b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
9580b89cdedSchristos     | PARSEOP_OR
9590b89cdedSchristos         PARSEOP_OPEN_PAREN
9600b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
961d0e1da26Schristos     ;
962d0e1da26Schristos 
963d0e1da26Schristos PackageTerm
96489b8eb6cSchristos     : PARSEOP_PACKAGE               {$<n>$ = TrCreateLeafOp (PARSEOP_VAR_PACKAGE);}
965d0e1da26Schristos         OptionalDataCount
96689b8eb6cSchristos         '{' PackageList '}'         {$$ = TrLinkOpChildren ($<n>2,2,$3,$5);}
967d0e1da26Schristos 
968d0e1da26Schristos PowerResTerm
9690b89cdedSchristos     : PARSEOP_POWERRESOURCE
97089b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_POWERRESOURCE);}
971d0e1da26Schristos         NameString
972d0e1da26Schristos         ',' ByteConstExpr
973d0e1da26Schristos         ',' WordConstExpr
9740b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
97589b8eb6cSchristos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,4,
97689b8eb6cSchristos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
977d0e1da26Schristos                                         $6,$8,$11);}
9780b89cdedSchristos     | PARSEOP_POWERRESOURCE
9790b89cdedSchristos         PARSEOP_OPEN_PAREN
9800b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
981d0e1da26Schristos     ;
982d0e1da26Schristos 
983d0e1da26Schristos PrintfTerm
9840b89cdedSchristos     : PARSEOP_PRINTF
98589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_PRINTF);}
986360a9019Schristos         StringLiteral
987d0e1da26Schristos         PrintfArgList
98889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
9890b89cdedSchristos     | PARSEOP_PRINTF
9900b89cdedSchristos         PARSEOP_OPEN_PAREN
9910b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
992d0e1da26Schristos     ;
993d0e1da26Schristos 
994d0e1da26Schristos PrintfArgList
995d0e1da26Schristos     :                               {$$ = NULL;}
996d0e1da26Schristos     | TermArg                       {$$ = $1;}
997d0e1da26Schristos     | PrintfArgList ','
99889b8eb6cSchristos        TermArg                      {$$ = TrLinkPeerOp ($1, $3);}
999d0e1da26Schristos     ;
1000d0e1da26Schristos 
1001d0e1da26Schristos ProcessorTerm
10020b89cdedSchristos     : PARSEOP_PROCESSOR
100389b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_PROCESSOR);}
1004d0e1da26Schristos         NameString
1005d0e1da26Schristos         ',' ByteConstExpr
1006d0e1da26Schristos         OptionalDWordConstExpr
1007d0e1da26Schristos         OptionalByteConstExpr
10080b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
100989b8eb6cSchristos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,5,
101089b8eb6cSchristos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
1011d0e1da26Schristos                                         $6,$7,$8,$11);}
10120b89cdedSchristos     | PARSEOP_PROCESSOR
10130b89cdedSchristos         PARSEOP_OPEN_PAREN
10140b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1015d0e1da26Schristos     ;
1016d0e1da26Schristos 
1017d0e1da26Schristos RawDataBufferTerm
10180b89cdedSchristos     : PARSEOP_DATABUFFER
101989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DATABUFFER);}
1020d0e1da26Schristos         OptionalWordConst
10210b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
102289b8eb6cSchristos             ByteList '}'            {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
10230b89cdedSchristos     | PARSEOP_DATABUFFER
10240b89cdedSchristos         PARSEOP_OPEN_PAREN
10250b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1026d0e1da26Schristos     ;
1027d0e1da26Schristos 
1028d0e1da26Schristos /*
1029d0e1da26Schristos  * In RefOf, the node isn't really a target, but we can't keep track of it after
1030d0e1da26Schristos  * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
1031d0e1da26Schristos  */
1032d0e1da26Schristos RefOfTerm
10330b89cdedSchristos     : PARSEOP_REFOF
103489b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_REFOF);}
10350b89cdedSchristos         RefOfSource
103689b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,
103789b8eb6cSchristos                                         TrSetOpFlags ($4, OP_IS_TARGET));}
10380b89cdedSchristos     | PARSEOP_REFOF
10390b89cdedSchristos         PARSEOP_OPEN_PAREN
10400b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1041d0e1da26Schristos     ;
1042d0e1da26Schristos 
1043d0e1da26Schristos ReleaseTerm
10440b89cdedSchristos     : PARSEOP_RELEASE
104589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_RELEASE);}
1046d0e1da26Schristos         SuperName
104789b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
10480b89cdedSchristos     | PARSEOP_RELEASE
10490b89cdedSchristos         PARSEOP_OPEN_PAREN
10500b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1051d0e1da26Schristos     ;
1052d0e1da26Schristos 
1053d0e1da26Schristos ResetTerm
10540b89cdedSchristos     : PARSEOP_RESET
105589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_RESET);}
1056d0e1da26Schristos         SuperName
105789b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
10580b89cdedSchristos     | PARSEOP_RESET
10590b89cdedSchristos         PARSEOP_OPEN_PAREN
10600b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1061d0e1da26Schristos     ;
1062d0e1da26Schristos 
1063d0e1da26Schristos ReturnTerm
10640b89cdedSchristos     : PARSEOP_RETURN
106589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_RETURN);}
1066d0e1da26Schristos         OptionalReturnArg
106789b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
106889b8eb6cSchristos     | PARSEOP_RETURN                {$$ = TrLinkOpChildren (
106989b8eb6cSchristos                                         TrCreateLeafOp (PARSEOP_RETURN),1,
107089b8eb6cSchristos                                         TrSetOpFlags (TrCreateLeafOp (PARSEOP_ZERO),
107189b8eb6cSchristos                                             OP_IS_NULL_RETURN));}
10720b89cdedSchristos     | PARSEOP_RETURN
10730b89cdedSchristos         PARSEOP_OPEN_PAREN
10740b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1075d0e1da26Schristos     ;
1076d0e1da26Schristos 
1077d0e1da26Schristos ScopeTerm
10780b89cdedSchristos     : PARSEOP_SCOPE
107989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SCOPE);}
1080d0e1da26Schristos         NameString
10810b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
108289b8eb6cSchristos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,2,
108389b8eb6cSchristos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$7);}
10840b89cdedSchristos     | PARSEOP_SCOPE
10850b89cdedSchristos         PARSEOP_OPEN_PAREN
10860b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1087d0e1da26Schristos     ;
1088d0e1da26Schristos 
1089d0e1da26Schristos ShiftLeftTerm
10900b89cdedSchristos     : PARSEOP_SHIFTLEFT
109189b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SHIFTLEFT);}
1092d0e1da26Schristos         TermArg
1093d0e1da26Schristos         TermArgItem
1094d0e1da26Schristos         Target
109589b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
10960b89cdedSchristos     | PARSEOP_SHIFTLEFT
10970b89cdedSchristos         PARSEOP_OPEN_PAREN
10980b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1099d0e1da26Schristos     ;
1100d0e1da26Schristos 
1101d0e1da26Schristos ShiftRightTerm
11020b89cdedSchristos     : PARSEOP_SHIFTRIGHT
110389b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SHIFTRIGHT);}
1104d0e1da26Schristos         TermArg
1105d0e1da26Schristos         TermArgItem
1106d0e1da26Schristos         Target
110789b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
11080b89cdedSchristos     | PARSEOP_SHIFTRIGHT
11090b89cdedSchristos         PARSEOP_OPEN_PAREN
11100b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1111d0e1da26Schristos     ;
1112d0e1da26Schristos 
1113d0e1da26Schristos SignalTerm
11140b89cdedSchristos     : PARSEOP_SIGNAL
111589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SIGNAL);}
1116d0e1da26Schristos         SuperName
111789b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
11180b89cdedSchristos     | PARSEOP_SIGNAL
11190b89cdedSchristos         PARSEOP_OPEN_PAREN
11200b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1121d0e1da26Schristos     ;
1122d0e1da26Schristos 
1123d0e1da26Schristos SizeOfTerm
11240b89cdedSchristos     : PARSEOP_SIZEOF
112589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SIZEOF);}
1126d0e1da26Schristos         SuperName
112789b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
11280b89cdedSchristos     | PARSEOP_SIZEOF
11290b89cdedSchristos         PARSEOP_OPEN_PAREN
11300b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1131d0e1da26Schristos     ;
1132d0e1da26Schristos 
1133d0e1da26Schristos SleepTerm
11340b89cdedSchristos     : PARSEOP_SLEEP
113589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SLEEP);}
1136d0e1da26Schristos         TermArg
113789b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
11380b89cdedSchristos     | PARSEOP_SLEEP
11390b89cdedSchristos         PARSEOP_OPEN_PAREN
11400b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1141d0e1da26Schristos     ;
1142d0e1da26Schristos 
1143d0e1da26Schristos StallTerm
11440b89cdedSchristos     : PARSEOP_STALL
114589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_STALL);}
1146d0e1da26Schristos         TermArg
114789b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
11480b89cdedSchristos     | PARSEOP_STALL
11490b89cdedSchristos         PARSEOP_OPEN_PAREN
11500b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1151d0e1da26Schristos     ;
1152d0e1da26Schristos 
1153d0e1da26Schristos StoreTerm
11540b89cdedSchristos     : PARSEOP_STORE
115589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_STORE);}
1156d0e1da26Schristos         TermArg
1157d0e1da26Schristos         ',' SuperName
115889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,
115989b8eb6cSchristos                                             TrSetOpFlags ($6, OP_IS_TARGET));}
11600b89cdedSchristos     | PARSEOP_STORE
11610b89cdedSchristos         PARSEOP_OPEN_PAREN
11620b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1163d0e1da26Schristos     ;
1164d0e1da26Schristos 
1165d0e1da26Schristos SubtractTerm
11660b89cdedSchristos     : PARSEOP_SUBTRACT
116789b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SUBTRACT);}
1168d0e1da26Schristos         TermArg
1169d0e1da26Schristos         TermArgItem
1170d0e1da26Schristos         Target
117189b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
11720b89cdedSchristos     | PARSEOP_SUBTRACT
11730b89cdedSchristos         PARSEOP_OPEN_PAREN
11740b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1175d0e1da26Schristos     ;
1176d0e1da26Schristos 
1177d0e1da26Schristos SwitchTerm
11780b89cdedSchristos     : PARSEOP_SWITCH
117989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SWITCH);}
1180d0e1da26Schristos         TermArg
11810b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
118289b8eb6cSchristos             CaseDefaultTermList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
11830b89cdedSchristos     | PARSEOP_SWITCH
11840b89cdedSchristos         PARSEOP_OPEN_PAREN
11850b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1186d0e1da26Schristos     ;
1187d0e1da26Schristos 
1188d0e1da26Schristos ThermalZoneTerm
11890b89cdedSchristos     : PARSEOP_THERMALZONE
119089b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_THERMALZONE);}
1191d0e1da26Schristos         NameString
11920b89cdedSchristos         PARSEOP_CLOSE_PAREN '{'
119389b8eb6cSchristos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,2,
119489b8eb6cSchristos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$7);}
11950b89cdedSchristos     | PARSEOP_THERMALZONE
11960b89cdedSchristos         PARSEOP_OPEN_PAREN
11970b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1198d0e1da26Schristos     ;
1199d0e1da26Schristos 
1200d0e1da26Schristos TimerTerm
12010b89cdedSchristos     : PARSEOP_TIMER
120289b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TIMER);}
120389b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,0);}
120489b8eb6cSchristos     | PARSEOP_TIMER                 {$$ = TrLinkOpChildren (
120589b8eb6cSchristos                                         TrCreateLeafOp (PARSEOP_TIMER),0);}
12060b89cdedSchristos     | PARSEOP_TIMER
12070b89cdedSchristos         PARSEOP_OPEN_PAREN
12080b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1209d0e1da26Schristos     ;
1210d0e1da26Schristos 
1211d0e1da26Schristos ToBCDTerm
12120b89cdedSchristos     : PARSEOP_TOBCD
121389b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TOBCD);}
1214d0e1da26Schristos         TermArg
1215d0e1da26Schristos         Target
121689b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
12170b89cdedSchristos     | PARSEOP_TOBCD
12180b89cdedSchristos         PARSEOP_OPEN_PAREN
12190b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1220d0e1da26Schristos     ;
1221d0e1da26Schristos 
1222d0e1da26Schristos ToBufferTerm
12230b89cdedSchristos     : PARSEOP_TOBUFFER
122489b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TOBUFFER);}
1225d0e1da26Schristos         TermArg
1226d0e1da26Schristos         Target
122789b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
12280b89cdedSchristos     | PARSEOP_TOBUFFER
12290b89cdedSchristos         PARSEOP_OPEN_PAREN
12300b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1231d0e1da26Schristos     ;
1232d0e1da26Schristos 
1233d0e1da26Schristos ToDecimalStringTerm
12340b89cdedSchristos     : PARSEOP_TODECIMALSTRING
123589b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TODECIMALSTRING);}
1236d0e1da26Schristos         TermArg
1237d0e1da26Schristos         Target
123889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
12390b89cdedSchristos     | PARSEOP_TODECIMALSTRING
12400b89cdedSchristos         PARSEOP_OPEN_PAREN
12410b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1242d0e1da26Schristos     ;
1243d0e1da26Schristos 
1244d0e1da26Schristos ToHexStringTerm
12450b89cdedSchristos     : PARSEOP_TOHEXSTRING
124689b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TOHEXSTRING);}
1247d0e1da26Schristos         TermArg
1248d0e1da26Schristos         Target
124989b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
12500b89cdedSchristos     | PARSEOP_TOHEXSTRING
12510b89cdedSchristos         PARSEOP_OPEN_PAREN
12520b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1253d0e1da26Schristos     ;
1254d0e1da26Schristos 
1255d0e1da26Schristos ToIntegerTerm
12560b89cdedSchristos     : PARSEOP_TOINTEGER
125789b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TOINTEGER);}
1258d0e1da26Schristos         TermArg
1259d0e1da26Schristos         Target
126089b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
12610b89cdedSchristos     | PARSEOP_TOINTEGER
12620b89cdedSchristos         PARSEOP_OPEN_PAREN
12630b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1264d0e1da26Schristos     ;
1265d0e1da26Schristos 
1266d0e1da26Schristos ToPLDTerm
12670b89cdedSchristos     : PARSEOP_TOPLD
126889b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TOPLD);}
1269d0e1da26Schristos         PldKeywordList
127089b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
12710b89cdedSchristos     | PARSEOP_TOPLD
12720b89cdedSchristos         PARSEOP_OPEN_PAREN
12730b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1274d0e1da26Schristos     ;
1275d0e1da26Schristos 
1276d0e1da26Schristos PldKeywordList
1277d0e1da26Schristos     :                               {$$ = NULL;}
1278d0e1da26Schristos     | PldKeyword
127989b8eb6cSchristos         PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkOpChildren ($1,1,$3);}
1280d0e1da26Schristos     | PldKeyword
128189b8eb6cSchristos         PARSEOP_EXP_EQUALS String   {$$ = TrLinkOpChildren ($1,1,$3);}
1282d0e1da26Schristos     | PldKeywordList ','            /* Allows a trailing comma at list end */
1283d0e1da26Schristos     | PldKeywordList ','
1284d0e1da26Schristos         PldKeyword
128589b8eb6cSchristos         PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkPeerOp ($1,TrLinkOpChildren ($3,1,$5));}
1286d0e1da26Schristos     | PldKeywordList ','
1287d0e1da26Schristos         PldKeyword
128889b8eb6cSchristos         PARSEOP_EXP_EQUALS String   {$$ = TrLinkPeerOp ($1,TrLinkOpChildren ($3,1,$5));}
1289d0e1da26Schristos     ;
1290d0e1da26Schristos 
1291d0e1da26Schristos 
1292d0e1da26Schristos ToStringTerm
12930b89cdedSchristos     : PARSEOP_TOSTRING
129489b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TOSTRING);}
1295d0e1da26Schristos         TermArg
1296d0e1da26Schristos         OptionalCount
1297d0e1da26Schristos         Target
129889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
12990b89cdedSchristos     | PARSEOP_TOSTRING
13000b89cdedSchristos         PARSEOP_OPEN_PAREN
13010b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1302d0e1da26Schristos     ;
1303d0e1da26Schristos 
1304d0e1da26Schristos ToUUIDTerm
13050b89cdedSchristos     : PARSEOP_TOUUID
13060b89cdedSchristos         PARSEOP_OPEN_PAREN
1307360a9019Schristos         StringLiteral
130889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrSetOpIntegerValue (PARSEOP_TOUUID, $3);}
13090b89cdedSchristos     | PARSEOP_TOUUID
13100b89cdedSchristos         PARSEOP_OPEN_PAREN
13110b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1312d0e1da26Schristos     ;
1313d0e1da26Schristos 
1314d0e1da26Schristos UnicodeTerm
13150b89cdedSchristos     : PARSEOP_UNICODE
131689b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_UNICODE);}
1317360a9019Schristos         StringLiteral
131889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,0,$4);}
13190b89cdedSchristos     | PARSEOP_UNICODE
13200b89cdedSchristos         PARSEOP_OPEN_PAREN
13210b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1322d0e1da26Schristos     ;
1323d0e1da26Schristos 
1324d0e1da26Schristos UnloadTerm
13250b89cdedSchristos     : PARSEOP_UNLOAD
132689b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_UNLOAD);}
1327d0e1da26Schristos         SuperName
132889b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
13290b89cdedSchristos     | PARSEOP_UNLOAD
13300b89cdedSchristos         PARSEOP_OPEN_PAREN
13310b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1332d0e1da26Schristos     ;
1333d0e1da26Schristos 
1334d0e1da26Schristos WaitTerm
13350b89cdedSchristos     : PARSEOP_WAIT
133689b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_WAIT);}
1337d0e1da26Schristos         SuperName
1338d0e1da26Schristos         TermArgItem
133989b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
13400b89cdedSchristos     | PARSEOP_WAIT
13410b89cdedSchristos         PARSEOP_OPEN_PAREN
13420b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1343d0e1da26Schristos     ;
1344d0e1da26Schristos 
1345d0e1da26Schristos XOrTerm
13460b89cdedSchristos     : PARSEOP_XOR
134789b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_XOR);}
1348d0e1da26Schristos         TermArg
1349d0e1da26Schristos         TermArgItem
1350d0e1da26Schristos         Target
135189b8eb6cSchristos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
13520b89cdedSchristos     | PARSEOP_XOR
13530b89cdedSchristos         PARSEOP_OPEN_PAREN
13540b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1355d0e1da26Schristos     ;
1356d0e1da26Schristos 
1357d0e1da26Schristos WhileTerm
13580b89cdedSchristos     : PARSEOP_WHILE
135989b8eb6cSchristos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_WHILE);}
1360d0e1da26Schristos         TermArg
13610b89cdedSchristos         PARSEOP_CLOSE_PAREN
136289b8eb6cSchristos             '{' TermList '}'        {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
13630b89cdedSchristos     | PARSEOP_WHILE
13640b89cdedSchristos         PARSEOP_OPEN_PAREN
13650b89cdedSchristos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
1366d0e1da26Schristos     ;
1367