aslrules.y revision 1.1.1.1.2.3 1 1.1 christos NoEcho('
2 1.1 christos /******************************************************************************
3 1.1 christos *
4 1.1.1.1.2.2 skrll * Module Name: aslrules.y - Main Bison/Yacc production rules
5 1.1 christos *
6 1.1 christos *****************************************************************************/
7 1.1 christos
8 1.1 christos /*
9 1.1.1.1.2.2 skrll * Copyright (C) 2000 - 2016, Intel Corp.
10 1.1 christos * All rights reserved.
11 1.1 christos *
12 1.1 christos * Redistribution and use in source and binary forms, with or without
13 1.1 christos * modification, are permitted provided that the following conditions
14 1.1 christos * are met:
15 1.1 christos * 1. Redistributions of source code must retain the above copyright
16 1.1 christos * notice, this list of conditions, and the following disclaimer,
17 1.1 christos * without modification.
18 1.1 christos * 2. Redistributions in binary form must reproduce at minimum a disclaimer
19 1.1 christos * substantially similar to the "NO WARRANTY" disclaimer below
20 1.1 christos * ("Disclaimer") and any redistribution must be conditioned upon
21 1.1 christos * including a substantially similar Disclaimer requirement for further
22 1.1 christos * binary redistribution.
23 1.1 christos * 3. Neither the names of the above-listed copyright holders nor the names
24 1.1 christos * of any contributors may be used to endorse or promote products derived
25 1.1 christos * from this software without specific prior written permission.
26 1.1 christos *
27 1.1 christos * Alternatively, this software may be distributed under the terms of the
28 1.1 christos * GNU General Public License ("GPL") version 2 as published by the Free
29 1.1 christos * Software Foundation.
30 1.1 christos *
31 1.1 christos * NO WARRANTY
32 1.1 christos * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
33 1.1 christos * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
34 1.1 christos * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
35 1.1 christos * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
36 1.1 christos * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37 1.1 christos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38 1.1 christos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39 1.1 christos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40 1.1 christos * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41 1.1 christos * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42 1.1 christos * POSSIBILITY OF SUCH DAMAGES.
43 1.1 christos */
44 1.1 christos
45 1.1 christos ')
46 1.1 christos
47 1.1 christos /*******************************************************************************
48 1.1 christos *
49 1.1.1.1.2.2 skrll * ASL Root and Secondary Terms
50 1.1 christos *
51 1.1 christos ******************************************************************************/
52 1.1 christos
53 1.1 christos /*
54 1.1.1.1.2.2 skrll * Root term. Allow multiple #line directives before the definition block
55 1.1 christos * to handle output from preprocessors
56 1.1 christos */
57 1.1.1.1.2.2 skrll AslCode
58 1.1.1.1.2.2 skrll : DefinitionBlockList {$<n>$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_ASL_CODE),1, $1);}
59 1.1 christos | error {YYABORT; $$ = NULL;}
60 1.1 christos ;
61 1.1 christos
62 1.1 christos
63 1.1 christos /*
64 1.1 christos * Note concerning support for "module-level code".
65 1.1 christos *
66 1.1 christos * ACPI 1.0 allowed Type1 and Type2 executable opcodes outside of control
67 1.1 christos * methods (the so-called module-level code.) This support was explicitly
68 1.1 christos * removed in ACPI 2.0, but this type of code continues to be created by
69 1.1 christos * BIOS vendors. In order to support the disassembly and recompilation of
70 1.1 christos * such code (and the porting of ASL code to iASL), iASL supports this
71 1.1 christos * code in violation of the current ACPI specification.
72 1.1 christos *
73 1.1 christos * The grammar change to support module-level code is to revert the
74 1.1 christos * {ObjectList} portion of the DefinitionBlockTerm in ACPI 2.0 to the
75 1.1 christos * original use of {TermList} instead (see below.) This allows the use
76 1.1 christos * of Type1 and Type2 opcodes at module level.
77 1.1.1.1.2.3 skrll *
78 1.1.1.1.2.3 skrll * 04/2016: The module-level code is now allowed in the following terms:
79 1.1.1.1.2.3 skrll * DeviceTerm, PowerResTerm, ProcessorTerm, ScopeTerm, ThermalZoneTerm.
80 1.1.1.1.2.3 skrll * The ObjectList term is obsolete and has been removed.
81 1.1 christos */
82 1.1 christos DefinitionBlockTerm
83 1.1.1.1.2.2 skrll : PARSEOP_DEFINITION_BLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITION_BLOCK);}
84 1.1 christos String ','
85 1.1 christos String ','
86 1.1 christos ByteConst ','
87 1.1 christos String ','
88 1.1 christos String ','
89 1.1 christos DWordConst
90 1.1 christos ')' {TrSetEndLineNumber ($<n>3);}
91 1.1 christos '{' TermList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);}
92 1.1 christos ;
93 1.1 christos
94 1.1.1.1.2.2 skrll DefinitionBlockList
95 1.1.1.1.2.2 skrll : DefinitionBlockTerm
96 1.1.1.1.2.2 skrll | DefinitionBlockTerm
97 1.1.1.1.2.2 skrll DefinitionBlockList {$$ = TrLinkPeerNodes (2, $1,$2);}
98 1.1.1.1.2.1 skrll ;
99 1.1.1.1.2.1 skrll
100 1.1.1.1.2.2 skrll SuperName
101 1.1.1.1.2.2 skrll : NameString {}
102 1.1.1.1.2.2 skrll | ArgTerm {}
103 1.1.1.1.2.2 skrll | LocalTerm {}
104 1.1.1.1.2.2 skrll | DebugTerm {}
105 1.1.1.1.2.2 skrll | Type6Opcode {}
106 1.1.1.1.2.1 skrll
107 1.1.1.1.2.2 skrll Target
108 1.1.1.1.2.2 skrll : {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
109 1.1.1.1.2.2 skrll | ',' {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
110 1.1.1.1.2.2 skrll | ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
111 1.1 christos ;
112 1.1 christos
113 1.1.1.1.2.2 skrll TermArg
114 1.1.1.1.2.2 skrll : Type2Opcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
115 1.1.1.1.2.2 skrll | DataObject {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
116 1.1.1.1.2.2 skrll | NameString {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
117 1.1.1.1.2.2 skrll | ArgTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
118 1.1.1.1.2.2 skrll | LocalTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
119 1.1 christos ;
120 1.1 christos
121 1.1.1.1.2.2 skrll /*
122 1.1.1.1.2.2 skrll NOTE: Removed from TermArg due to reduce/reduce conflicts:
123 1.1.1.1.2.2 skrll | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
124 1.1.1.1.2.2 skrll | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
125 1.1.1.1.2.2 skrll | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
126 1.1.1.1.2.2 skrll | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
127 1.1 christos
128 1.1.1.1.2.2 skrll */
129 1.1 christos
130 1.1.1.1.2.2 skrll MethodInvocationTerm
131 1.1.1.1.2.2 skrll : NameString '(' {TrUpdateNode (PARSEOP_METHODCALL, $1);}
132 1.1.1.1.2.2 skrll ArgList ')' {$$ = TrLinkChildNode ($1,$4);}
133 1.1 christos ;
134 1.1 christos
135 1.1.1.1.2.2 skrll /* OptionalCount must appear before ByteList or an incorrect reduction will result */
136 1.1 christos
137 1.1.1.1.2.2 skrll OptionalCount
138 1.1.1.1.2.2 skrll : {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
139 1.1.1.1.2.2 skrll | ',' {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
140 1.1.1.1.2.2 skrll | ',' TermArg {$$ = $2;}
141 1.1 christos ;
142 1.1 christos
143 1.1.1.1.2.2 skrll VarPackageLengthTerm
144 1.1.1.1.2.2 skrll : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
145 1.1.1.1.2.2 skrll | TermArg {$$ = $1;}
146 1.1 christos ;
147 1.1 christos
148 1.1 christos
149 1.1.1.1.2.2 skrll /******* List Terms **************************************************/
150 1.1 christos
151 1.1.1.1.2.2 skrll ArgList
152 1.1.1.1.2.2 skrll : {$$ = NULL;}
153 1.1.1.1.2.2 skrll | TermArg
154 1.1.1.1.2.2 skrll | ArgList ',' /* Allows a trailing comma at list end */
155 1.1.1.1.2.2 skrll | ArgList ','
156 1.1.1.1.2.2 skrll TermArg {$$ = TrLinkPeerNode ($1,$3);}
157 1.1 christos ;
158 1.1 christos
159 1.1.1.1.2.2 skrll ByteList
160 1.1.1.1.2.2 skrll : {$$ = NULL;}
161 1.1.1.1.2.2 skrll | ByteConstExpr
162 1.1.1.1.2.2 skrll | ByteList ',' /* Allows a trailing comma at list end */
163 1.1.1.1.2.2 skrll | ByteList ','
164 1.1.1.1.2.2 skrll ByteConstExpr {$$ = TrLinkPeerNode ($1,$3);}
165 1.1 christos ;
166 1.1 christos
167 1.1.1.1.2.2 skrll DWordList
168 1.1.1.1.2.2 skrll : {$$ = NULL;}
169 1.1.1.1.2.2 skrll | DWordConstExpr
170 1.1.1.1.2.2 skrll | DWordList ',' /* Allows a trailing comma at list end */
171 1.1.1.1.2.2 skrll | DWordList ','
172 1.1.1.1.2.2 skrll DWordConstExpr {$$ = TrLinkPeerNode ($1,$3);}
173 1.1 christos ;
174 1.1 christos
175 1.1.1.1.2.2 skrll FieldUnitList
176 1.1 christos : {$$ = NULL;}
177 1.1.1.1.2.2 skrll | FieldUnit
178 1.1.1.1.2.2 skrll | FieldUnitList ',' /* Allows a trailing comma at list end */
179 1.1.1.1.2.2 skrll | FieldUnitList ','
180 1.1.1.1.2.2 skrll FieldUnit {$$ = TrLinkPeerNode ($1,$3);}
181 1.1 christos ;
182 1.1 christos
183 1.1.1.1.2.2 skrll FieldUnit
184 1.1.1.1.2.2 skrll : FieldUnitEntry {}
185 1.1.1.1.2.2 skrll | OffsetTerm {}
186 1.1.1.1.2.2 skrll | AccessAsTerm {}
187 1.1.1.1.2.2 skrll | ConnectionTerm {}
188 1.1.1.1.2.2 skrll ;
189 1.1 christos
190 1.1.1.1.2.2 skrll FieldUnitEntry
191 1.1.1.1.2.2 skrll : ',' AmlPackageLengthTerm {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
192 1.1.1.1.2.2 skrll | NameSeg ','
193 1.1.1.1.2.2 skrll AmlPackageLengthTerm {$$ = TrLinkChildNode ($1,$3);}
194 1.1.1.1.2.2 skrll ;
195 1.1 christos
196 1.1.1.1.2.2 skrll Object
197 1.1.1.1.2.2 skrll : CompilerDirective {}
198 1.1.1.1.2.2 skrll | NamedObject {}
199 1.1.1.1.2.2 skrll | NameSpaceModifier {}
200 1.1 christos ;
201 1.1 christos
202 1.1.1.1.2.2 skrll PackageList
203 1.1.1.1.2.2 skrll : {$$ = NULL;}
204 1.1.1.1.2.2 skrll | PackageElement
205 1.1.1.1.2.2 skrll | PackageList ',' /* Allows a trailing comma at list end */
206 1.1.1.1.2.2 skrll | PackageList ','
207 1.1.1.1.2.2 skrll PackageElement {$$ = TrLinkPeerNode ($1,$3);}
208 1.1 christos ;
209 1.1 christos
210 1.1.1.1.2.2 skrll PackageElement
211 1.1.1.1.2.2 skrll : DataObject {}
212 1.1.1.1.2.2 skrll | NameString {}
213 1.1 christos ;
214 1.1 christos
215 1.1.1.1.2.2 skrll /* Rules for specifying the type of one method argument or return value */
216 1.1 christos
217 1.1 christos ParameterTypePackage
218 1.1 christos : {$$ = NULL;}
219 1.1 christos | ObjectTypeKeyword {$$ = $1;}
220 1.1 christos | ParameterTypePackage ','
221 1.1 christos ObjectTypeKeyword {$$ = TrLinkPeerNodes (2,$1,$3);}
222 1.1 christos ;
223 1.1 christos
224 1.1 christos ParameterTypePackageList
225 1.1 christos : {$$ = NULL;}
226 1.1 christos | ObjectTypeKeyword {$$ = $1;}
227 1.1 christos | '{' ParameterTypePackage '}' {$$ = $2;}
228 1.1 christos ;
229 1.1 christos
230 1.1 christos OptionalParameterTypePackage
231 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
232 1.1 christos | ',' ParameterTypePackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
233 1.1 christos ;
234 1.1 christos
235 1.1.1.1.2.2 skrll /* Rules for specifying the types for method arguments */
236 1.1 christos
237 1.1 christos ParameterTypesPackage
238 1.1 christos : ParameterTypePackageList {$$ = $1;}
239 1.1 christos | ParameterTypesPackage ','
240 1.1 christos ParameterTypePackageList {$$ = TrLinkPeerNodes (2,$1,$3);}
241 1.1 christos ;
242 1.1 christos
243 1.1 christos ParameterTypesPackageList
244 1.1 christos : {$$ = NULL;}
245 1.1 christos | ObjectTypeKeyword {$$ = $1;}
246 1.1 christos | '{' ParameterTypesPackage '}' {$$ = $2;}
247 1.1 christos ;
248 1.1 christos
249 1.1 christos OptionalParameterTypesPackage
250 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
251 1.1 christos | ',' ParameterTypesPackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
252 1.1 christos ;
253 1.1 christos
254 1.1.1.1.2.2 skrll /* ACPI 3.0 -- allow semicolons between terms */
255 1.1 christos
256 1.1.1.1.2.2 skrll TermList
257 1.1.1.1.2.2 skrll : {$$ = NULL;}
258 1.1.1.1.2.2 skrll | TermList Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
259 1.1.1.1.2.2 skrll | TermList Term ';' {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
260 1.1.1.1.2.2 skrll | TermList ';' Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
261 1.1.1.1.2.2 skrll | TermList ';' Term ';' {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
262 1.1 christos ;
263 1.1 christos
264 1.1.1.1.2.2 skrll Term
265 1.1.1.1.2.2 skrll : Object {}
266 1.1.1.1.2.2 skrll | Type1Opcode {}
267 1.1.1.1.2.2 skrll | Type2Opcode {}
268 1.1.1.1.2.2 skrll | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
269 1.1.1.1.2.2 skrll | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
270 1.1.1.1.2.2 skrll | Type2BufferOpcode {}
271 1.1.1.1.2.2 skrll | Type2BufferOrStringOpcode {}
272 1.1.1.1.2.2 skrll | error {$$ = AslDoError(); yyclearin;}
273 1.1 christos ;
274 1.1 christos
275 1.1 christos /*
276 1.1.1.1.2.2 skrll * Case-Default list; allow only one Default term and unlimited Case terms
277 1.1 christos */
278 1.1.1.1.2.2 skrll CaseDefaultTermList
279 1.1.1.1.2.2 skrll : {$$ = NULL;}
280 1.1.1.1.2.2 skrll | CaseTerm {}
281 1.1.1.1.2.2 skrll | DefaultTerm {}
282 1.1.1.1.2.2 skrll | CaseDefaultTermList
283 1.1.1.1.2.2 skrll CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
284 1.1.1.1.2.2 skrll | CaseDefaultTermList
285 1.1.1.1.2.2 skrll DefaultTerm {$$ = TrLinkPeerNode ($1,$2);}
286 1.1 christos
287 1.1.1.1.2.2 skrll /* Original - attempts to force zero or one default term within the switch */
288 1.1.1.1.2.2 skrll
289 1.1.1.1.2.2 skrll /*
290 1.1.1.1.2.2 skrll CaseDefaultTermList
291 1.1.1.1.2.2 skrll : {$$ = NULL;}
292 1.1.1.1.2.2 skrll | CaseTermList
293 1.1.1.1.2.2 skrll DefaultTerm
294 1.1.1.1.2.2 skrll CaseTermList {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
295 1.1.1.1.2.2 skrll | CaseTermList
296 1.1.1.1.2.2 skrll CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
297 1.1.1.1.2.2 skrll ;
298 1.1.1.1.2.2 skrll
299 1.1.1.1.2.2 skrll CaseTermList
300 1.1.1.1.2.2 skrll : {$$ = NULL;}
301 1.1.1.1.2.2 skrll | CaseTerm {}
302 1.1.1.1.2.2 skrll | CaseTermList
303 1.1.1.1.2.2 skrll CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
304 1.1.1.1.2.2 skrll ;
305 1.1.1.1.2.2 skrll */
306 1.1.1.1.2.2 skrll
307 1.1.1.1.2.2 skrll
308 1.1.1.1.2.2 skrll /*******************************************************************************
309 1.1.1.1.2.2 skrll *
310 1.1.1.1.2.2 skrll * ASL Data and Constant Terms
311 1.1.1.1.2.2 skrll *
312 1.1.1.1.2.2 skrll ******************************************************************************/
313 1.1.1.1.2.2 skrll
314 1.1.1.1.2.2 skrll DataObject
315 1.1.1.1.2.2 skrll : BufferData {}
316 1.1.1.1.2.2 skrll | PackageData {}
317 1.1.1.1.2.2 skrll | IntegerData {}
318 1.1.1.1.2.2 skrll | StringData {}
319 1.1.1.1.2.2 skrll ;
320 1.1.1.1.2.2 skrll
321 1.1.1.1.2.2 skrll BufferData
322 1.1.1.1.2.2 skrll : Type5Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
323 1.1.1.1.2.2 skrll | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
324 1.1.1.1.2.2 skrll | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
325 1.1.1.1.2.2 skrll | BufferTerm {}
326 1.1.1.1.2.2 skrll ;
327 1.1.1.1.2.2 skrll
328 1.1.1.1.2.2 skrll PackageData
329 1.1.1.1.2.2 skrll : PackageTerm {}
330 1.1.1.1.2.2 skrll ;
331 1.1.1.1.2.2 skrll
332 1.1.1.1.2.2 skrll IntegerData
333 1.1.1.1.2.2 skrll : Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
334 1.1.1.1.2.2 skrll | Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
335 1.1.1.1.2.2 skrll | Integer {}
336 1.1.1.1.2.2 skrll | ConstTerm {}
337 1.1.1.1.2.2 skrll ;
338 1.1.1.1.2.2 skrll
339 1.1.1.1.2.2 skrll StringData
340 1.1.1.1.2.2 skrll : Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
341 1.1.1.1.2.2 skrll | String {}
342 1.1.1.1.2.2 skrll ;
343 1.1.1.1.2.2 skrll
344 1.1.1.1.2.2 skrll ByteConst
345 1.1.1.1.2.2 skrll : Integer {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
346 1.1.1.1.2.2 skrll ;
347 1.1.1.1.2.2 skrll
348 1.1.1.1.2.2 skrll WordConst
349 1.1.1.1.2.2 skrll : Integer {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
350 1.1.1.1.2.2 skrll ;
351 1.1.1.1.2.2 skrll
352 1.1.1.1.2.2 skrll DWordConst
353 1.1.1.1.2.2 skrll : Integer {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
354 1.1.1.1.2.2 skrll ;
355 1.1.1.1.2.2 skrll
356 1.1.1.1.2.2 skrll QWordConst
357 1.1.1.1.2.2 skrll : Integer {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
358 1.1.1.1.2.2 skrll ;
359 1.1.1.1.2.2 skrll
360 1.1.1.1.2.2 skrll /*
361 1.1.1.1.2.2 skrll * The NODE_COMPILE_TIME_CONST flag in the following constant expressions
362 1.1.1.1.2.2 skrll * enables compile-time constant folding to reduce the Type3Opcodes/Type2IntegerOpcodes
363 1.1.1.1.2.2 skrll * to simple integers. It is an error if these types of expressions cannot be
364 1.1.1.1.2.2 skrll * reduced, since the AML grammar for ****ConstExpr requires a simple constant.
365 1.1.1.1.2.2 skrll * Note: The required byte length of the constant is passed through to the
366 1.1.1.1.2.2 skrll * constant folding code in the node AmlLength field.
367 1.1.1.1.2.2 skrll */
368 1.1.1.1.2.2 skrll ByteConstExpr
369 1.1.1.1.2.2 skrll : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);}
370 1.1.1.1.2.2 skrll | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);}
371 1.1.1.1.2.2 skrll | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
372 1.1.1.1.2.2 skrll | ByteConst {}
373 1.1.1.1.2.2 skrll ;
374 1.1.1.1.2.2 skrll
375 1.1.1.1.2.2 skrll WordConstExpr
376 1.1.1.1.2.2 skrll : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);}
377 1.1.1.1.2.2 skrll | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);}
378 1.1.1.1.2.2 skrll | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
379 1.1.1.1.2.2 skrll | WordConst {}
380 1.1.1.1.2.2 skrll ;
381 1.1.1.1.2.2 skrll
382 1.1.1.1.2.2 skrll DWordConstExpr
383 1.1.1.1.2.2 skrll : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);}
384 1.1.1.1.2.2 skrll | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);}
385 1.1.1.1.2.2 skrll | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
386 1.1.1.1.2.2 skrll | DWordConst {}
387 1.1.1.1.2.2 skrll ;
388 1.1.1.1.2.2 skrll
389 1.1.1.1.2.2 skrll QWordConstExpr
390 1.1.1.1.2.2 skrll : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);}
391 1.1.1.1.2.2 skrll | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);}
392 1.1.1.1.2.2 skrll | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
393 1.1.1.1.2.2 skrll | QWordConst {}
394 1.1.1.1.2.2 skrll ;
395 1.1.1.1.2.2 skrll
396 1.1.1.1.2.2 skrll ConstTerm
397 1.1.1.1.2.2 skrll : ConstExprTerm {}
398 1.1.1.1.2.2 skrll | PARSEOP_REVISION {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
399 1.1.1.1.2.2 skrll ;
400 1.1.1.1.2.2 skrll
401 1.1.1.1.2.2 skrll ConstExprTerm
402 1.1.1.1.2.2 skrll : PARSEOP_ZERO {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
403 1.1.1.1.2.2 skrll | PARSEOP_ONE {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
404 1.1.1.1.2.2 skrll | PARSEOP_ONES {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_UINT64_MAX);}
405 1.1.1.1.2.2 skrll | PARSEOP___DATE__ {$$ = TrCreateConstantLeafNode (PARSEOP___DATE__);}
406 1.1.1.1.2.2 skrll | PARSEOP___FILE__ {$$ = TrCreateConstantLeafNode (PARSEOP___FILE__);}
407 1.1.1.1.2.2 skrll | PARSEOP___LINE__ {$$ = TrCreateConstantLeafNode (PARSEOP___LINE__);}
408 1.1.1.1.2.2 skrll | PARSEOP___PATH__ {$$ = TrCreateConstantLeafNode (PARSEOP___PATH__);}
409 1.1.1.1.2.2 skrll ;
410 1.1.1.1.2.2 skrll
411 1.1.1.1.2.2 skrll Integer
412 1.1.1.1.2.2 skrll : PARSEOP_INTEGER {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);}
413 1.1.1.1.2.2 skrll ;
414 1.1.1.1.2.2 skrll
415 1.1.1.1.2.2 skrll String
416 1.1.1.1.2.2 skrll : PARSEOP_STRING_LITERAL {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);}
417 1.1.1.1.2.2 skrll ;
418 1.1.1.1.2.2 skrll
419 1.1.1.1.2.2 skrll
420 1.1.1.1.2.2 skrll /*******************************************************************************
421 1.1.1.1.2.2 skrll *
422 1.1.1.1.2.2 skrll * ASL Opcode Terms
423 1.1.1.1.2.2 skrll *
424 1.1.1.1.2.2 skrll ******************************************************************************/
425 1.1.1.1.2.2 skrll
426 1.1.1.1.2.2 skrll CompilerDirective
427 1.1.1.1.2.2 skrll : IncludeTerm {}
428 1.1.1.1.2.2 skrll | IncludeEndTerm {}
429 1.1.1.1.2.2 skrll | ExternalTerm {}
430 1.1.1.1.2.2 skrll ;
431 1.1.1.1.2.2 skrll
432 1.1.1.1.2.2 skrll NamedObject
433 1.1.1.1.2.2 skrll : BankFieldTerm {}
434 1.1.1.1.2.2 skrll | CreateBitFieldTerm {}
435 1.1.1.1.2.2 skrll | CreateByteFieldTerm {}
436 1.1.1.1.2.2 skrll | CreateDWordFieldTerm {}
437 1.1.1.1.2.2 skrll | CreateFieldTerm {}
438 1.1.1.1.2.2 skrll | CreateQWordFieldTerm {}
439 1.1.1.1.2.2 skrll | CreateWordFieldTerm {}
440 1.1.1.1.2.2 skrll | DataRegionTerm {}
441 1.1.1.1.2.2 skrll | DeviceTerm {}
442 1.1.1.1.2.2 skrll | EventTerm {}
443 1.1.1.1.2.2 skrll | FieldTerm {}
444 1.1.1.1.2.2 skrll | FunctionTerm {}
445 1.1.1.1.2.2 skrll | IndexFieldTerm {}
446 1.1.1.1.2.2 skrll | MethodTerm {}
447 1.1.1.1.2.2 skrll | MutexTerm {}
448 1.1.1.1.2.2 skrll | OpRegionTerm {}
449 1.1.1.1.2.2 skrll | PowerResTerm {}
450 1.1.1.1.2.2 skrll | ProcessorTerm {}
451 1.1.1.1.2.2 skrll | ThermalZoneTerm {}
452 1.1.1.1.2.2 skrll ;
453 1.1.1.1.2.2 skrll
454 1.1.1.1.2.2 skrll NameSpaceModifier
455 1.1.1.1.2.2 skrll : AliasTerm {}
456 1.1.1.1.2.2 skrll | NameTerm {}
457 1.1.1.1.2.2 skrll | ScopeTerm {}
458 1.1.1.1.2.2 skrll ;
459 1.1.1.1.2.2 skrll
460 1.1.1.1.2.2 skrll /* For ObjectType: SuperName except for MethodInvocationTerm */
461 1.1.1.1.2.2 skrll
462 1.1.1.1.2.2 skrll ObjectTypeName
463 1.1.1.1.2.2 skrll : NameString {}
464 1.1.1.1.2.2 skrll | ArgTerm {}
465 1.1.1.1.2.2 skrll | LocalTerm {}
466 1.1.1.1.2.2 skrll | DebugTerm {}
467 1.1.1.1.2.2 skrll | RefOfTerm {}
468 1.1.1.1.2.2 skrll | DerefOfTerm {}
469 1.1.1.1.2.2 skrll | IndexTerm {}
470 1.1.1.1.2.2 skrll /* | MethodInvocationTerm {} */ /* Caused reduce/reduce with Type6Opcode->MethodInvocationTerm */
471 1.1.1.1.2.2 skrll ;
472 1.1.1.1.2.2 skrll
473 1.1.1.1.2.2 skrll RequiredTarget
474 1.1.1.1.2.2 skrll : ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
475 1.1.1.1.2.2 skrll ;
476 1.1.1.1.2.2 skrll
477 1.1.1.1.2.2 skrll SimpleTarget
478 1.1.1.1.2.2 skrll : NameString {}
479 1.1.1.1.2.2 skrll | LocalTerm {}
480 1.1.1.1.2.2 skrll | ArgTerm {}
481 1.1.1.1.2.2 skrll ;
482 1.1.1.1.2.2 skrll
483 1.1.1.1.2.2 skrll /* Opcode types */
484 1.1.1.1.2.2 skrll
485 1.1.1.1.2.2 skrll Type1Opcode
486 1.1.1.1.2.2 skrll : BreakTerm {}
487 1.1.1.1.2.2 skrll | BreakPointTerm {}
488 1.1.1.1.2.2 skrll | ContinueTerm {}
489 1.1.1.1.2.2 skrll | FatalTerm {}
490 1.1.1.1.2.3 skrll | ForTerm {}
491 1.1.1.1.2.2 skrll | ElseIfTerm {}
492 1.1.1.1.2.2 skrll | LoadTerm {}
493 1.1.1.1.2.2 skrll | NoOpTerm {}
494 1.1.1.1.2.2 skrll | NotifyTerm {}
495 1.1.1.1.2.2 skrll | ReleaseTerm {}
496 1.1.1.1.2.2 skrll | ResetTerm {}
497 1.1.1.1.2.2 skrll | ReturnTerm {}
498 1.1.1.1.2.2 skrll | SignalTerm {}
499 1.1.1.1.2.2 skrll | SleepTerm {}
500 1.1.1.1.2.2 skrll | StallTerm {}
501 1.1.1.1.2.2 skrll | SwitchTerm {}
502 1.1.1.1.2.2 skrll | UnloadTerm {}
503 1.1.1.1.2.2 skrll | WhileTerm {}
504 1.1.1.1.2.2 skrll ;
505 1.1.1.1.2.2 skrll
506 1.1.1.1.2.2 skrll Type2Opcode
507 1.1.1.1.2.2 skrll : AcquireTerm {}
508 1.1.1.1.2.2 skrll | CondRefOfTerm {}
509 1.1.1.1.2.2 skrll | CopyObjectTerm {}
510 1.1.1.1.2.2 skrll | DerefOfTerm {}
511 1.1.1.1.2.2 skrll | ObjectTypeTerm {}
512 1.1.1.1.2.2 skrll | RefOfTerm {}
513 1.1.1.1.2.2 skrll | SizeOfTerm {}
514 1.1.1.1.2.2 skrll | StoreTerm {}
515 1.1.1.1.2.2 skrll | EqualsTerm {}
516 1.1.1.1.2.2 skrll | TimerTerm {}
517 1.1.1.1.2.2 skrll | WaitTerm {}
518 1.1.1.1.2.2 skrll | MethodInvocationTerm {}
519 1.1.1.1.2.2 skrll ;
520 1.1.1.1.2.2 skrll
521 1.1.1.1.2.2 skrll /*
522 1.1.1.1.2.2 skrll * Type 3/4/5 opcodes
523 1.1.1.1.2.2 skrll */
524 1.1.1.1.2.2 skrll Type2IntegerOpcode /* "Type3" opcodes */
525 1.1.1.1.2.2 skrll : Expression {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
526 1.1.1.1.2.2 skrll | AddTerm {}
527 1.1.1.1.2.2 skrll | AndTerm {}
528 1.1 christos | DecTerm {}
529 1.1 christos | DivideTerm {}
530 1.1 christos | FindSetLeftBitTerm {}
531 1.1 christos | FindSetRightBitTerm {}
532 1.1 christos | FromBCDTerm {}
533 1.1 christos | IncTerm {}
534 1.1 christos | IndexTerm {}
535 1.1 christos | LAndTerm {}
536 1.1 christos | LEqualTerm {}
537 1.1 christos | LGreaterTerm {}
538 1.1 christos | LGreaterEqualTerm {}
539 1.1 christos | LLessTerm {}
540 1.1 christos | LLessEqualTerm {}
541 1.1 christos | LNotTerm {}
542 1.1 christos | LNotEqualTerm {}
543 1.1 christos | LoadTableTerm {}
544 1.1 christos | LOrTerm {}
545 1.1 christos | MatchTerm {}
546 1.1 christos | ModTerm {}
547 1.1 christos | MultiplyTerm {}
548 1.1 christos | NAndTerm {}
549 1.1 christos | NOrTerm {}
550 1.1 christos | NotTerm {}
551 1.1 christos | OrTerm {}
552 1.1 christos | ShiftLeftTerm {}
553 1.1 christos | ShiftRightTerm {}
554 1.1 christos | SubtractTerm {}
555 1.1 christos | ToBCDTerm {}
556 1.1 christos | ToIntegerTerm {}
557 1.1 christos | XOrTerm {}
558 1.1 christos ;
559 1.1 christos
560 1.1 christos Type2StringOpcode /* "Type4" Opcodes */
561 1.1 christos : ToDecimalStringTerm {}
562 1.1 christos | ToHexStringTerm {}
563 1.1 christos | ToStringTerm {}
564 1.1 christos ;
565 1.1 christos
566 1.1 christos Type2BufferOpcode /* "Type5" Opcodes */
567 1.1 christos : ToBufferTerm {}
568 1.1 christos | ConcatResTerm {}
569 1.1 christos ;
570 1.1 christos
571 1.1 christos Type2BufferOrStringOpcode
572 1.1.1.1.2.1 skrll : ConcatTerm {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
573 1.1.1.1.2.1 skrll | PrintfTerm {}
574 1.1.1.1.2.1 skrll | FprintfTerm {}
575 1.1 christos | MidTerm {}
576 1.1 christos ;
577 1.1 christos
578 1.1 christos /*
579 1.1 christos * A type 3 opcode evaluates to an Integer and cannot have a destination operand
580 1.1 christos */
581 1.1 christos Type3Opcode
582 1.1 christos : EISAIDTerm {}
583 1.1 christos ;
584 1.1 christos
585 1.1 christos /* Obsolete
586 1.1 christos Type4Opcode
587 1.1 christos : ConcatTerm {}
588 1.1 christos | ToDecimalStringTerm {}
589 1.1 christos | ToHexStringTerm {}
590 1.1 christos | MidTerm {}
591 1.1 christos | ToStringTerm {}
592 1.1 christos ;
593 1.1 christos */
594 1.1 christos
595 1.1 christos Type5Opcode
596 1.1 christos : ResourceTemplateTerm {}
597 1.1 christos | UnicodeTerm {}
598 1.1.1.1.2.1 skrll | ToPLDTerm {}
599 1.1 christos | ToUUIDTerm {}
600 1.1 christos ;
601 1.1 christos
602 1.1 christos Type6Opcode
603 1.1 christos : RefOfTerm {}
604 1.1 christos | DerefOfTerm {}
605 1.1 christos | IndexTerm {}
606 1.1.1.1.2.2 skrll | IndexExpTerm {}
607 1.1.1.1.2.1 skrll | MethodInvocationTerm {}
608 1.1 christos ;
609 1.1 christos
610 1.1 christos
611 1.1.1.1.2.2 skrll /*******************************************************************************
612 1.1.1.1.2.2 skrll *
613 1.1.1.1.2.2 skrll * ASL Primary Terms
614 1.1.1.1.2.2 skrll *
615 1.1.1.1.2.2 skrll ******************************************************************************/
616 1.1.1.1.2.2 skrll
617 1.1.1.1.2.2 skrll AccessAsTerm
618 1.1.1.1.2.2 skrll : PARSEOP_ACCESSAS '('
619 1.1.1.1.2.2 skrll AccessTypeKeyword
620 1.1.1.1.2.2 skrll OptionalAccessAttribTerm
621 1.1.1.1.2.2 skrll ')' {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
622 1.1.1.1.2.2 skrll | PARSEOP_ACCESSAS '('
623 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
624 1.1 christos ;
625 1.1 christos
626 1.1.1.1.2.2 skrll AcquireTerm
627 1.1.1.1.2.2 skrll : PARSEOP_ACQUIRE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
628 1.1.1.1.2.2 skrll SuperName
629 1.1.1.1.2.2 skrll ',' WordConstExpr
630 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
631 1.1.1.1.2.2 skrll | PARSEOP_ACQUIRE '('
632 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
633 1.1.1.1.2.2 skrll ;
634 1.1.1.1.2.2 skrll
635 1.1.1.1.2.2 skrll AddTerm
636 1.1.1.1.2.2 skrll : PARSEOP_ADD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
637 1.1.1.1.2.2 skrll TermArg
638 1.1.1.1.2.2 skrll TermArgItem
639 1.1.1.1.2.2 skrll Target
640 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
641 1.1.1.1.2.2 skrll | PARSEOP_ADD '('
642 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
643 1.1 christos ;
644 1.1 christos
645 1.1.1.1.2.2 skrll AliasTerm
646 1.1.1.1.2.2 skrll : PARSEOP_ALIAS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);}
647 1.1.1.1.2.2 skrll NameString
648 1.1.1.1.2.2 skrll NameStringItem
649 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,
650 1.1.1.1.2.2 skrll TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
651 1.1.1.1.2.2 skrll | PARSEOP_ALIAS '('
652 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
653 1.1.1.1.2.2 skrll ;
654 1.1 christos
655 1.1.1.1.2.2 skrll AndTerm
656 1.1.1.1.2.2 skrll : PARSEOP_AND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
657 1.1.1.1.2.2 skrll TermArg
658 1.1.1.1.2.2 skrll TermArgItem
659 1.1.1.1.2.2 skrll Target
660 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
661 1.1.1.1.2.2 skrll | PARSEOP_AND '('
662 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
663 1.1.1.1.2.2 skrll ;
664 1.1 christos
665 1.1.1.1.2.2 skrll ArgTerm
666 1.1.1.1.2.2 skrll : PARSEOP_ARG0 {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
667 1.1.1.1.2.2 skrll | PARSEOP_ARG1 {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
668 1.1.1.1.2.2 skrll | PARSEOP_ARG2 {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
669 1.1.1.1.2.2 skrll | PARSEOP_ARG3 {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
670 1.1.1.1.2.2 skrll | PARSEOP_ARG4 {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
671 1.1.1.1.2.2 skrll | PARSEOP_ARG5 {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
672 1.1.1.1.2.2 skrll | PARSEOP_ARG6 {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
673 1.1.1.1.2.2 skrll ;
674 1.1 christos
675 1.1 christos BankFieldTerm
676 1.1 christos : PARSEOP_BANKFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
677 1.1 christos NameString
678 1.1 christos NameStringItem
679 1.1 christos TermArgItem
680 1.1 christos ',' AccessTypeKeyword
681 1.1 christos ',' LockRuleKeyword
682 1.1 christos ',' UpdateRuleKeyword
683 1.1 christos ')' '{'
684 1.1 christos FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);}
685 1.1 christos | PARSEOP_BANKFIELD '('
686 1.1 christos error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
687 1.1 christos ;
688 1.1 christos
689 1.1.1.1.2.2 skrll BreakTerm
690 1.1.1.1.2.2 skrll : PARSEOP_BREAK {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
691 1.1 christos ;
692 1.1 christos
693 1.1.1.1.2.2 skrll BreakPointTerm
694 1.1.1.1.2.2 skrll : PARSEOP_BREAKPOINT {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
695 1.1 christos ;
696 1.1 christos
697 1.1.1.1.2.2 skrll BufferTerm
698 1.1.1.1.2.2 skrll : PARSEOP_BUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);}
699 1.1.1.1.2.3 skrll OptionalBufferLength
700 1.1.1.1.2.2 skrll ')' '{'
701 1.1.1.1.2.2 skrll BufferTermData '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
702 1.1.1.1.2.2 skrll | PARSEOP_BUFFER '('
703 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
704 1.1 christos ;
705 1.1 christos
706 1.1.1.1.2.2 skrll BufferTermData
707 1.1.1.1.2.2 skrll : ByteList {}
708 1.1.1.1.2.2 skrll | StringData {}
709 1.1.1.1.2.2 skrll ;
710 1.1.1.1.2.2 skrll
711 1.1.1.1.2.2 skrll CaseTerm
712 1.1.1.1.2.2 skrll : PARSEOP_CASE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);}
713 1.1.1.1.2.2 skrll DataObject
714 1.1.1.1.2.2 skrll ')' '{'
715 1.1.1.1.2.2 skrll TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
716 1.1.1.1.2.2 skrll | PARSEOP_CASE '('
717 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
718 1.1 christos ;
719 1.1 christos
720 1.1.1.1.2.2 skrll ConcatTerm
721 1.1.1.1.2.2 skrll : PARSEOP_CONCATENATE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
722 1.1.1.1.2.2 skrll TermArg
723 1.1.1.1.2.2 skrll TermArgItem
724 1.1.1.1.2.2 skrll Target
725 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
726 1.1.1.1.2.2 skrll | PARSEOP_CONCATENATE '('
727 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
728 1.1.1.1.2.2 skrll ;
729 1.1.1.1.2.2 skrll
730 1.1.1.1.2.2 skrll ConcatResTerm
731 1.1.1.1.2.2 skrll : PARSEOP_CONCATENATERESTEMPLATE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);}
732 1.1.1.1.2.2 skrll TermArg
733 1.1.1.1.2.2 skrll TermArgItem
734 1.1.1.1.2.2 skrll Target
735 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
736 1.1.1.1.2.2 skrll | PARSEOP_CONCATENATERESTEMPLATE '('
737 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
738 1.1 christos ;
739 1.1 christos
740 1.1 christos ConnectionTerm
741 1.1 christos : PARSEOP_CONNECTION '('
742 1.1 christos NameString
743 1.1 christos ')' {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);}
744 1.1 christos | PARSEOP_CONNECTION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONNECTION);}
745 1.1 christos ResourceMacroTerm
746 1.1 christos ')' {$$ = TrLinkChildren ($<n>3, 1,
747 1.1 christos TrLinkChildren (TrCreateLeafNode (PARSEOP_RESOURCETEMPLATE), 3,
748 1.1 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
749 1.1 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
750 1.1 christos $4));}
751 1.1 christos | PARSEOP_CONNECTION '('
752 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
753 1.1 christos ;
754 1.1 christos
755 1.1.1.1.2.2 skrll CondRefOfTerm
756 1.1.1.1.2.2 skrll : PARSEOP_CONDREFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
757 1.1.1.1.2.2 skrll SuperName
758 1.1.1.1.2.2 skrll Target
759 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
760 1.1.1.1.2.2 skrll | PARSEOP_CONDREFOF '('
761 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
762 1.1.1.1.2.2 skrll ;
763 1.1.1.1.2.2 skrll
764 1.1.1.1.2.2 skrll ContinueTerm
765 1.1.1.1.2.2 skrll : PARSEOP_CONTINUE {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
766 1.1.1.1.2.2 skrll ;
767 1.1.1.1.2.2 skrll
768 1.1.1.1.2.2 skrll CopyObjectTerm
769 1.1.1.1.2.2 skrll : PARSEOP_COPYOBJECT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
770 1.1.1.1.2.2 skrll TermArg
771 1.1.1.1.2.2 skrll ',' SimpleTarget
772 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
773 1.1.1.1.2.2 skrll | PARSEOP_COPYOBJECT '('
774 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
775 1.1.1.1.2.2 skrll ;
776 1.1.1.1.2.2 skrll
777 1.1 christos CreateBitFieldTerm
778 1.1 christos : PARSEOP_CREATEBITFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
779 1.1 christos TermArg
780 1.1 christos TermArgItem
781 1.1 christos NameStringItem
782 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
783 1.1 christos | PARSEOP_CREATEBITFIELD '('
784 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
785 1.1 christos ;
786 1.1 christos
787 1.1 christos CreateByteFieldTerm
788 1.1 christos : PARSEOP_CREATEBYTEFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
789 1.1 christos TermArg
790 1.1 christos TermArgItem
791 1.1 christos NameStringItem
792 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
793 1.1 christos | PARSEOP_CREATEBYTEFIELD '('
794 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
795 1.1 christos ;
796 1.1 christos
797 1.1 christos CreateDWordFieldTerm
798 1.1 christos : PARSEOP_CREATEDWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
799 1.1 christos TermArg
800 1.1 christos TermArgItem
801 1.1 christos NameStringItem
802 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
803 1.1 christos | PARSEOP_CREATEDWORDFIELD '('
804 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
805 1.1 christos ;
806 1.1 christos
807 1.1 christos CreateFieldTerm
808 1.1 christos : PARSEOP_CREATEFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
809 1.1 christos TermArg
810 1.1 christos TermArgItem
811 1.1 christos TermArgItem
812 1.1 christos NameStringItem
813 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
814 1.1 christos | PARSEOP_CREATEFIELD '('
815 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
816 1.1 christos ;
817 1.1 christos
818 1.1 christos CreateQWordFieldTerm
819 1.1 christos : PARSEOP_CREATEQWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
820 1.1 christos TermArg
821 1.1 christos TermArgItem
822 1.1 christos NameStringItem
823 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
824 1.1 christos | PARSEOP_CREATEQWORDFIELD '('
825 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
826 1.1 christos ;
827 1.1 christos
828 1.1 christos CreateWordFieldTerm
829 1.1 christos : PARSEOP_CREATEWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
830 1.1 christos TermArg
831 1.1 christos TermArgItem
832 1.1 christos NameStringItem
833 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
834 1.1 christos | PARSEOP_CREATEWORDFIELD '('
835 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
836 1.1 christos ;
837 1.1 christos
838 1.1 christos DataRegionTerm
839 1.1 christos : PARSEOP_DATATABLEREGION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
840 1.1 christos NameString
841 1.1 christos TermArgItem
842 1.1 christos TermArgItem
843 1.1 christos TermArgItem
844 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
845 1.1 christos | PARSEOP_DATATABLEREGION '('
846 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
847 1.1 christos ;
848 1.1 christos
849 1.1.1.1.2.2 skrll DebugTerm
850 1.1.1.1.2.2 skrll : PARSEOP_DEBUG {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
851 1.1.1.1.2.2 skrll ;
852 1.1.1.1.2.2 skrll
853 1.1.1.1.2.2 skrll DecTerm
854 1.1.1.1.2.2 skrll : PARSEOP_DECREMENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
855 1.1.1.1.2.2 skrll SuperName
856 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
857 1.1.1.1.2.2 skrll | PARSEOP_DECREMENT '('
858 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
859 1.1.1.1.2.2 skrll ;
860 1.1.1.1.2.2 skrll
861 1.1.1.1.2.2 skrll DefaultTerm
862 1.1.1.1.2.2 skrll : PARSEOP_DEFAULT '{' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
863 1.1.1.1.2.2 skrll TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
864 1.1.1.1.2.2 skrll | PARSEOP_DEFAULT '{'
865 1.1.1.1.2.2 skrll error '}' {$$ = AslDoError(); yyclearin;}
866 1.1.1.1.2.2 skrll ;
867 1.1.1.1.2.2 skrll
868 1.1.1.1.2.2 skrll DerefOfTerm
869 1.1.1.1.2.2 skrll : PARSEOP_DEREFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
870 1.1.1.1.2.2 skrll TermArg
871 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
872 1.1.1.1.2.2 skrll | PARSEOP_DEREFOF '('
873 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
874 1.1.1.1.2.2 skrll ;
875 1.1.1.1.2.2 skrll
876 1.1 christos DeviceTerm
877 1.1 christos : PARSEOP_DEVICE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);}
878 1.1 christos NameString
879 1.1 christos ')' '{'
880 1.1.1.1.2.3 skrll TermList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
881 1.1 christos | PARSEOP_DEVICE '('
882 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
883 1.1 christos ;
884 1.1 christos
885 1.1.1.1.2.2 skrll DivideTerm
886 1.1.1.1.2.2 skrll : PARSEOP_DIVIDE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
887 1.1.1.1.2.2 skrll TermArg
888 1.1.1.1.2.2 skrll TermArgItem
889 1.1.1.1.2.2 skrll Target
890 1.1.1.1.2.2 skrll Target
891 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
892 1.1.1.1.2.2 skrll | PARSEOP_DIVIDE '('
893 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
894 1.1.1.1.2.2 skrll ;
895 1.1.1.1.2.2 skrll
896 1.1.1.1.2.2 skrll EISAIDTerm
897 1.1.1.1.2.2 skrll : PARSEOP_EISAID '('
898 1.1.1.1.2.2 skrll StringData ')' {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
899 1.1.1.1.2.2 skrll | PARSEOP_EISAID '('
900 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
901 1.1.1.1.2.2 skrll ;
902 1.1.1.1.2.2 skrll
903 1.1.1.1.2.2 skrll ElseIfTerm
904 1.1.1.1.2.2 skrll : IfTerm ElseTerm {$$ = TrLinkPeerNode ($1,$2);}
905 1.1.1.1.2.2 skrll ;
906 1.1.1.1.2.2 skrll
907 1.1.1.1.2.2 skrll ElseTerm
908 1.1.1.1.2.2 skrll : {$$ = NULL;}
909 1.1.1.1.2.2 skrll | PARSEOP_ELSE '{' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
910 1.1.1.1.2.2 skrll TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
911 1.1.1.1.2.2 skrll
912 1.1.1.1.2.2 skrll | PARSEOP_ELSE '{'
913 1.1.1.1.2.2 skrll error '}' {$$ = AslDoError(); yyclearin;}
914 1.1.1.1.2.2 skrll
915 1.1.1.1.2.2 skrll | PARSEOP_ELSE
916 1.1.1.1.2.2 skrll error {$$ = AslDoError(); yyclearin;}
917 1.1.1.1.2.2 skrll
918 1.1.1.1.2.2 skrll | PARSEOP_ELSEIF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
919 1.1.1.1.2.2 skrll TermArg {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
920 1.1.1.1.2.2 skrll ')' '{'
921 1.1.1.1.2.2 skrll TermList '}' {TrLinkChildren ($<n>5,2,$4,$8);}
922 1.1.1.1.2.2 skrll ElseTerm {TrLinkPeerNode ($<n>5,$11);}
923 1.1.1.1.2.2 skrll {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
924 1.1.1.1.2.2 skrll
925 1.1.1.1.2.2 skrll | PARSEOP_ELSEIF '('
926 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
927 1.1.1.1.2.2 skrll
928 1.1.1.1.2.2 skrll | PARSEOP_ELSEIF
929 1.1.1.1.2.2 skrll error {$$ = AslDoError(); yyclearin;}
930 1.1.1.1.2.2 skrll ;
931 1.1.1.1.2.2 skrll
932 1.1 christos EventTerm
933 1.1 christos : PARSEOP_EVENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);}
934 1.1 christos NameString
935 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
936 1.1 christos | PARSEOP_EVENT '('
937 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
938 1.1 christos ;
939 1.1 christos
940 1.1.1.1.2.2 skrll ExternalTerm
941 1.1.1.1.2.2 skrll : PARSEOP_EXTERNAL '('
942 1.1.1.1.2.2 skrll NameString
943 1.1.1.1.2.2 skrll OptionalObjectTypeKeyword
944 1.1.1.1.2.2 skrll OptionalParameterTypePackage
945 1.1.1.1.2.2 skrll OptionalParameterTypesPackage
946 1.1.1.1.2.2 skrll ')' {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
947 1.1.1.1.2.2 skrll | PARSEOP_EXTERNAL '('
948 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
949 1.1.1.1.2.2 skrll ;
950 1.1.1.1.2.2 skrll
951 1.1.1.1.2.2 skrll FatalTerm
952 1.1.1.1.2.2 skrll : PARSEOP_FATAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);}
953 1.1.1.1.2.2 skrll ByteConstExpr
954 1.1.1.1.2.2 skrll ',' DWordConstExpr
955 1.1.1.1.2.2 skrll TermArgItem
956 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
957 1.1.1.1.2.2 skrll | PARSEOP_FATAL '('
958 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
959 1.1.1.1.2.2 skrll ;
960 1.1.1.1.2.2 skrll
961 1.1 christos FieldTerm
962 1.1 christos : PARSEOP_FIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIELD);}
963 1.1 christos NameString
964 1.1 christos ',' AccessTypeKeyword
965 1.1 christos ',' LockRuleKeyword
966 1.1 christos ',' UpdateRuleKeyword
967 1.1 christos ')' '{'
968 1.1 christos FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
969 1.1 christos | PARSEOP_FIELD '('
970 1.1 christos error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
971 1.1 christos ;
972 1.1 christos
973 1.1.1.1.2.2 skrll FindSetLeftBitTerm
974 1.1.1.1.2.2 skrll : PARSEOP_FINDSETLEFTBIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
975 1.1.1.1.2.2 skrll TermArg
976 1.1.1.1.2.2 skrll Target
977 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
978 1.1.1.1.2.2 skrll | PARSEOP_FINDSETLEFTBIT '('
979 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
980 1.1 christos ;
981 1.1 christos
982 1.1.1.1.2.2 skrll FindSetRightBitTerm
983 1.1.1.1.2.2 skrll : PARSEOP_FINDSETRIGHTBIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
984 1.1.1.1.2.2 skrll TermArg
985 1.1.1.1.2.2 skrll Target
986 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
987 1.1.1.1.2.2 skrll | PARSEOP_FINDSETRIGHTBIT '('
988 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
989 1.1 christos ;
990 1.1 christos
991 1.1.1.1.2.3 skrll /* Convert a For() loop to a While() loop */
992 1.1.1.1.2.3 skrll ForTerm
993 1.1.1.1.2.3 skrll : PARSEOP_FOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
994 1.1.1.1.2.3 skrll OptionalTermArg ',' {}
995 1.1.1.1.2.3 skrll OptionalPredicate ','
996 1.1.1.1.2.3 skrll OptionalTermArg {$<n>$ = TrLinkPeerNode ($4,$<n>3);
997 1.1.1.1.2.3 skrll TrSetParent ($9,$<n>3);} /* New parent is WHILE */
998 1.1.1.1.2.3 skrll ')' '{' TermList '}' {$<n>$ = TrLinkChildren ($<n>3,2,$7,$13);}
999 1.1.1.1.2.3 skrll {$<n>$ = TrLinkPeerNode ($13,$9);
1000 1.1.1.1.2.3 skrll $$ = $<n>10;}
1001 1.1.1.1.2.3 skrll ;
1002 1.1.1.1.2.3 skrll
1003 1.1.1.1.2.3 skrll OptionalPredicate
1004 1.1.1.1.2.3 skrll : {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, 1);}
1005 1.1.1.1.2.3 skrll | TermArg {$$ = $1;}
1006 1.1.1.1.2.3 skrll ;
1007 1.1.1.1.2.3 skrll
1008 1.1.1.1.2.2 skrll FprintfTerm
1009 1.1.1.1.2.2 skrll : PARSEOP_FPRINTF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FPRINTF);}
1010 1.1.1.1.2.2 skrll TermArg ','
1011 1.1.1.1.2.2 skrll StringData
1012 1.1.1.1.2.2 skrll PrintfArgList
1013 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
1014 1.1.1.1.2.2 skrll | PARSEOP_FPRINTF '('
1015 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1016 1.1 christos ;
1017 1.1 christos
1018 1.1.1.1.2.2 skrll FromBCDTerm
1019 1.1.1.1.2.2 skrll : PARSEOP_FROMBCD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
1020 1.1.1.1.2.2 skrll TermArg
1021 1.1.1.1.2.2 skrll Target
1022 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1023 1.1.1.1.2.2 skrll | PARSEOP_FROMBCD '('
1024 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1025 1.1 christos ;
1026 1.1 christos
1027 1.1.1.1.2.2 skrll FunctionTerm
1028 1.1.1.1.2.2 skrll : PARSEOP_FUNCTION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
1029 1.1 christos NameString
1030 1.1.1.1.2.2 skrll OptionalParameterTypePackage
1031 1.1.1.1.2.2 skrll OptionalParameterTypesPackage
1032 1.1 christos ')' '{'
1033 1.1.1.1.2.2 skrll TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
1034 1.1.1.1.2.2 skrll TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
1035 1.1.1.1.2.2 skrll TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
1036 1.1.1.1.2.2 skrll TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
1037 1.1.1.1.2.2 skrll | PARSEOP_FUNCTION '('
1038 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1039 1.1 christos ;
1040 1.1 christos
1041 1.1.1.1.2.2 skrll IfTerm
1042 1.1.1.1.2.2 skrll : PARSEOP_IF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
1043 1.1.1.1.2.2 skrll TermArg
1044 1.1 christos ')' '{'
1045 1.1.1.1.2.2 skrll TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1046 1.1 christos
1047 1.1.1.1.2.2 skrll | PARSEOP_IF '('
1048 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1049 1.1 christos ;
1050 1.1 christos
1051 1.1.1.1.2.2 skrll IncludeTerm
1052 1.1.1.1.2.2 skrll : PARSEOP_INCLUDE '('
1053 1.1.1.1.2.2 skrll String ')' {$$ = TrUpdateNode (PARSEOP_INCLUDE, $3);
1054 1.1.1.1.2.2 skrll FlOpenIncludeFile ($3);}
1055 1.1.1.1.2.2 skrll ;
1056 1.1 christos
1057 1.1.1.1.2.2 skrll IncludeEndTerm
1058 1.1.1.1.2.2 skrll : PARSEOP_INCLUDE_END {$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE_END); TrSetCurrentFilename ($$);}
1059 1.1.1.1.2.2 skrll ;
1060 1.1 christos
1061 1.1.1.1.2.2 skrll IncTerm
1062 1.1.1.1.2.2 skrll : PARSEOP_INCREMENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
1063 1.1.1.1.2.2 skrll SuperName
1064 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1065 1.1.1.1.2.2 skrll | PARSEOP_INCREMENT '('
1066 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1067 1.1.1.1.2.2 skrll ;
1068 1.1 christos
1069 1.1.1.1.2.2 skrll IndexFieldTerm
1070 1.1.1.1.2.2 skrll : PARSEOP_INDEXFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
1071 1.1 christos NameString
1072 1.1 christos NameStringItem
1073 1.1.1.1.2.2 skrll ',' AccessTypeKeyword
1074 1.1.1.1.2.2 skrll ',' LockRuleKeyword
1075 1.1.1.1.2.2 skrll ',' UpdateRuleKeyword
1076 1.1.1.1.2.2 skrll ')' '{'
1077 1.1.1.1.2.2 skrll FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
1078 1.1.1.1.2.2 skrll | PARSEOP_INDEXFIELD '('
1079 1.1.1.1.2.2 skrll error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
1080 1.1 christos ;
1081 1.1 christos
1082 1.1.1.1.2.2 skrll IndexTerm
1083 1.1.1.1.2.2 skrll : PARSEOP_INDEX '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);}
1084 1.1.1.1.2.2 skrll TermArg
1085 1.1.1.1.2.2 skrll TermArgItem
1086 1.1.1.1.2.2 skrll Target
1087 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1088 1.1.1.1.2.2 skrll | PARSEOP_INDEX '('
1089 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1090 1.1 christos ;
1091 1.1 christos
1092 1.1.1.1.2.2 skrll LAndTerm
1093 1.1.1.1.2.2 skrll : PARSEOP_LAND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
1094 1.1.1.1.2.2 skrll TermArg
1095 1.1.1.1.2.2 skrll TermArgItem
1096 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1097 1.1.1.1.2.2 skrll | PARSEOP_LAND '('
1098 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1099 1.1 christos ;
1100 1.1 christos
1101 1.1.1.1.2.2 skrll LEqualTerm
1102 1.1.1.1.2.2 skrll : PARSEOP_LEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1103 1.1.1.1.2.2 skrll TermArg
1104 1.1.1.1.2.2 skrll TermArgItem
1105 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1106 1.1.1.1.2.2 skrll | PARSEOP_LEQUAL '('
1107 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1108 1.1 christos ;
1109 1.1 christos
1110 1.1.1.1.2.2 skrll LGreaterEqualTerm
1111 1.1.1.1.2.2 skrll : PARSEOP_LGREATEREQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
1112 1.1.1.1.2.2 skrll TermArg
1113 1.1.1.1.2.2 skrll TermArgItem
1114 1.1.1.1.2.2 skrll ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1115 1.1.1.1.2.2 skrll | PARSEOP_LGREATEREQUAL '('
1116 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1117 1.1 christos ;
1118 1.1 christos
1119 1.1.1.1.2.2 skrll LGreaterTerm
1120 1.1.1.1.2.2 skrll : PARSEOP_LGREATER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1121 1.1.1.1.2.2 skrll TermArg
1122 1.1.1.1.2.2 skrll TermArgItem
1123 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1124 1.1.1.1.2.2 skrll | PARSEOP_LGREATER '('
1125 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1126 1.1 christos ;
1127 1.1 christos
1128 1.1.1.1.2.2 skrll LLessEqualTerm
1129 1.1.1.1.2.2 skrll : PARSEOP_LLESSEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1130 1.1.1.1.2.2 skrll TermArg
1131 1.1 christos TermArgItem
1132 1.1.1.1.2.2 skrll ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1133 1.1.1.1.2.2 skrll | PARSEOP_LLESSEQUAL '('
1134 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1135 1.1 christos ;
1136 1.1 christos
1137 1.1.1.1.2.2 skrll LLessTerm
1138 1.1.1.1.2.2 skrll : PARSEOP_LLESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
1139 1.1.1.1.2.2 skrll TermArg
1140 1.1.1.1.2.2 skrll TermArgItem
1141 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1142 1.1.1.1.2.2 skrll | PARSEOP_LLESS '('
1143 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1144 1.1 christos ;
1145 1.1 christos
1146 1.1.1.1.2.2 skrll LNotEqualTerm
1147 1.1.1.1.2.2 skrll : PARSEOP_LNOTEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1148 1.1 christos TermArg
1149 1.1.1.1.2.2 skrll TermArgItem
1150 1.1.1.1.2.2 skrll ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1151 1.1.1.1.2.2 skrll | PARSEOP_LNOTEQUAL '('
1152 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1153 1.1 christos ;
1154 1.1 christos
1155 1.1.1.1.2.2 skrll LNotTerm
1156 1.1.1.1.2.2 skrll : PARSEOP_LNOT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
1157 1.1.1.1.2.2 skrll TermArg
1158 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1159 1.1.1.1.2.2 skrll | PARSEOP_LNOT '('
1160 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1161 1.1.1.1.2.2 skrll ;
1162 1.1 christos
1163 1.1.1.1.2.2 skrll LoadTableTerm
1164 1.1.1.1.2.2 skrll : PARSEOP_LOADTABLE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
1165 1.1.1.1.2.2 skrll TermArg
1166 1.1.1.1.2.2 skrll TermArgItem
1167 1.1.1.1.2.2 skrll TermArgItem
1168 1.1.1.1.2.2 skrll OptionalListString
1169 1.1.1.1.2.2 skrll OptionalListString
1170 1.1.1.1.2.2 skrll OptionalReference
1171 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
1172 1.1.1.1.2.2 skrll | PARSEOP_LOADTABLE '('
1173 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1174 1.1 christos ;
1175 1.1 christos
1176 1.1 christos LoadTerm
1177 1.1 christos : PARSEOP_LOAD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);}
1178 1.1 christos NameString
1179 1.1 christos RequiredTarget
1180 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1181 1.1 christos | PARSEOP_LOAD '('
1182 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1183 1.1 christos ;
1184 1.1 christos
1185 1.1.1.1.2.2 skrll LocalTerm
1186 1.1.1.1.2.2 skrll : PARSEOP_LOCAL0 {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
1187 1.1.1.1.2.2 skrll | PARSEOP_LOCAL1 {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
1188 1.1.1.1.2.2 skrll | PARSEOP_LOCAL2 {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
1189 1.1.1.1.2.2 skrll | PARSEOP_LOCAL3 {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
1190 1.1.1.1.2.2 skrll | PARSEOP_LOCAL4 {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
1191 1.1.1.1.2.2 skrll | PARSEOP_LOCAL5 {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
1192 1.1.1.1.2.2 skrll | PARSEOP_LOCAL6 {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
1193 1.1.1.1.2.2 skrll | PARSEOP_LOCAL7 {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
1194 1.1 christos ;
1195 1.1 christos
1196 1.1.1.1.2.2 skrll LOrTerm
1197 1.1.1.1.2.2 skrll : PARSEOP_LOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
1198 1.1.1.1.2.2 skrll TermArg
1199 1.1 christos TermArgItem
1200 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1201 1.1.1.1.2.2 skrll | PARSEOP_LOR '('
1202 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1203 1.1 christos ;
1204 1.1 christos
1205 1.1.1.1.2.2 skrll MatchTerm
1206 1.1.1.1.2.2 skrll : PARSEOP_MATCH '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);}
1207 1.1 christos TermArg
1208 1.1.1.1.2.2 skrll ',' MatchOpKeyword
1209 1.1.1.1.2.2 skrll TermArgItem
1210 1.1.1.1.2.2 skrll ',' MatchOpKeyword
1211 1.1.1.1.2.2 skrll TermArgItem
1212 1.1.1.1.2.2 skrll TermArgItem
1213 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
1214 1.1.1.1.2.2 skrll | PARSEOP_MATCH '('
1215 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1216 1.1 christos ;
1217 1.1 christos
1218 1.1.1.1.2.2 skrll MethodTerm
1219 1.1.1.1.2.2 skrll : PARSEOP_METHOD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
1220 1.1.1.1.2.2 skrll NameString
1221 1.1.1.1.2.2 skrll OptionalByteConstExpr {UtCheckIntegerRange ($5, 0, 7);}
1222 1.1.1.1.2.2 skrll OptionalSerializeRuleKeyword
1223 1.1.1.1.2.2 skrll OptionalByteConstExpr
1224 1.1.1.1.2.2 skrll OptionalParameterTypePackage
1225 1.1.1.1.2.2 skrll OptionalParameterTypesPackage
1226 1.1 christos ')' '{'
1227 1.1.1.1.2.2 skrll TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);}
1228 1.1.1.1.2.2 skrll | PARSEOP_METHOD '('
1229 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1230 1.1 christos ;
1231 1.1 christos
1232 1.1.1.1.2.2 skrll MidTerm
1233 1.1.1.1.2.2 skrll : PARSEOP_MID '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MID);}
1234 1.1 christos TermArg
1235 1.1 christos TermArgItem
1236 1.1 christos TermArgItem
1237 1.1 christos Target
1238 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
1239 1.1.1.1.2.2 skrll | PARSEOP_MID '('
1240 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1241 1.1 christos ;
1242 1.1 christos
1243 1.1.1.1.2.2 skrll ModTerm
1244 1.1.1.1.2.2 skrll : PARSEOP_MOD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
1245 1.1 christos TermArg
1246 1.1 christos TermArgItem
1247 1.1 christos Target
1248 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1249 1.1.1.1.2.2 skrll | PARSEOP_MOD '('
1250 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1251 1.1 christos ;
1252 1.1 christos
1253 1.1.1.1.2.2 skrll MultiplyTerm
1254 1.1.1.1.2.2 skrll : PARSEOP_MULTIPLY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
1255 1.1 christos TermArg
1256 1.1 christos TermArgItem
1257 1.1 christos Target
1258 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1259 1.1.1.1.2.2 skrll | PARSEOP_MULTIPLY '('
1260 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1261 1.1 christos ;
1262 1.1 christos
1263 1.1.1.1.2.2 skrll MutexTerm
1264 1.1.1.1.2.2 skrll : PARSEOP_MUTEX '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);}
1265 1.1.1.1.2.2 skrll NameString
1266 1.1.1.1.2.2 skrll ',' ByteConstExpr
1267 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
1268 1.1.1.1.2.2 skrll | PARSEOP_MUTEX '('
1269 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1270 1.1 christos ;
1271 1.1 christos
1272 1.1.1.1.2.2 skrll NameTerm
1273 1.1.1.1.2.2 skrll : PARSEOP_NAME '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);}
1274 1.1.1.1.2.2 skrll NameString
1275 1.1.1.1.2.2 skrll ',' DataObject
1276 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
1277 1.1.1.1.2.2 skrll | PARSEOP_NAME '('
1278 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1279 1.1 christos ;
1280 1.1 christos
1281 1.1.1.1.2.2 skrll NAndTerm
1282 1.1.1.1.2.2 skrll : PARSEOP_NAND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NAND);}
1283 1.1 christos TermArg
1284 1.1 christos TermArgItem
1285 1.1 christos Target
1286 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1287 1.1.1.1.2.2 skrll | PARSEOP_NAND '('
1288 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1289 1.1 christos ;
1290 1.1 christos
1291 1.1.1.1.2.2 skrll NoOpTerm
1292 1.1.1.1.2.2 skrll : PARSEOP_NOOP {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
1293 1.1 christos ;
1294 1.1 christos
1295 1.1.1.1.2.2 skrll NOrTerm
1296 1.1.1.1.2.2 skrll : PARSEOP_NOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOR);}
1297 1.1 christos TermArg
1298 1.1.1.1.2.2 skrll TermArgItem
1299 1.1 christos Target
1300 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1301 1.1.1.1.2.2 skrll | PARSEOP_NOR '('
1302 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1303 1.1 christos ;
1304 1.1 christos
1305 1.1.1.1.2.2 skrll NotifyTerm
1306 1.1.1.1.2.2 skrll : PARSEOP_NOTIFY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
1307 1.1 christos SuperName
1308 1.1 christos TermArgItem
1309 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1310 1.1.1.1.2.2 skrll | PARSEOP_NOTIFY '('
1311 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1312 1.1 christos ;
1313 1.1 christos
1314 1.1.1.1.2.2 skrll NotTerm
1315 1.1.1.1.2.2 skrll : PARSEOP_NOT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
1316 1.1.1.1.2.2 skrll TermArg
1317 1.1.1.1.2.2 skrll Target
1318 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1319 1.1.1.1.2.2 skrll | PARSEOP_NOT '('
1320 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1321 1.1 christos ;
1322 1.1 christos
1323 1.1.1.1.2.2 skrll ObjectTypeTerm
1324 1.1.1.1.2.2 skrll : PARSEOP_OBJECTTYPE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
1325 1.1.1.1.2.2 skrll ObjectTypeName
1326 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1327 1.1.1.1.2.2 skrll | PARSEOP_OBJECTTYPE '('
1328 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1329 1.1 christos ;
1330 1.1 christos
1331 1.1.1.1.2.2 skrll OffsetTerm
1332 1.1.1.1.2.2 skrll : PARSEOP_OFFSET '('
1333 1.1.1.1.2.2 skrll AmlPackageLengthTerm
1334 1.1.1.1.2.2 skrll ')' {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
1335 1.1.1.1.2.2 skrll | PARSEOP_OFFSET '('
1336 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1337 1.1 christos ;
1338 1.1 christos
1339 1.1.1.1.2.2 skrll OpRegionTerm
1340 1.1.1.1.2.2 skrll : PARSEOP_OPERATIONREGION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
1341 1.1.1.1.2.2 skrll NameString
1342 1.1.1.1.2.2 skrll ',' OpRegionSpaceIdTerm
1343 1.1.1.1.2.2 skrll TermArgItem
1344 1.1.1.1.2.2 skrll TermArgItem
1345 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);}
1346 1.1.1.1.2.2 skrll | PARSEOP_OPERATIONREGION '('
1347 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1348 1.1 christos ;
1349 1.1 christos
1350 1.1.1.1.2.2 skrll OpRegionSpaceIdTerm
1351 1.1.1.1.2.2 skrll : RegionSpaceKeyword {}
1352 1.1.1.1.2.2 skrll | ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
1353 1.1.1.1.2.2 skrll ;
1354 1.1.1.1.2.2 skrll
1355 1.1.1.1.2.2 skrll OrTerm
1356 1.1.1.1.2.2 skrll : PARSEOP_OR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
1357 1.1.1.1.2.2 skrll TermArg
1358 1.1.1.1.2.2 skrll TermArgItem
1359 1.1.1.1.2.2 skrll Target
1360 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1361 1.1.1.1.2.2 skrll | PARSEOP_OR '('
1362 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1363 1.1 christos ;
1364 1.1 christos
1365 1.1 christos PackageTerm
1366 1.1 christos : PARSEOP_PACKAGE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
1367 1.1 christos VarPackageLengthTerm
1368 1.1 christos ')' '{'
1369 1.1 christos PackageList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1370 1.1 christos | PARSEOP_PACKAGE '('
1371 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1372 1.1 christos ;
1373 1.1 christos
1374 1.1.1.1.2.2 skrll PowerResTerm
1375 1.1.1.1.2.2 skrll : PARSEOP_POWERRESOURCE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
1376 1.1.1.1.2.2 skrll NameString
1377 1.1.1.1.2.2 skrll ',' ByteConstExpr
1378 1.1.1.1.2.2 skrll ',' WordConstExpr
1379 1.1.1.1.2.2 skrll ')' '{'
1380 1.1.1.1.2.3 skrll TermList '}' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);}
1381 1.1.1.1.2.2 skrll | PARSEOP_POWERRESOURCE '('
1382 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1383 1.1 christos ;
1384 1.1 christos
1385 1.1.1.1.2.2 skrll PrintfTerm
1386 1.1.1.1.2.2 skrll : PARSEOP_PRINTF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);}
1387 1.1 christos StringData
1388 1.1.1.1.2.2 skrll PrintfArgList
1389 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1390 1.1.1.1.2.2 skrll | PARSEOP_PRINTF '('
1391 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1392 1.1 christos ;
1393 1.1 christos
1394 1.1.1.1.2.2 skrll PrintfArgList
1395 1.1 christos : {$$ = NULL;}
1396 1.1.1.1.2.2 skrll | TermArg {$$ = $1;}
1397 1.1.1.1.2.2 skrll | PrintfArgList ','
1398 1.1.1.1.2.2 skrll TermArg {$$ = TrLinkPeerNode ($1, $3);}
1399 1.1 christos ;
1400 1.1 christos
1401 1.1.1.1.2.2 skrll ProcessorTerm
1402 1.1.1.1.2.2 skrll : PARSEOP_PROCESSOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
1403 1.1.1.1.2.2 skrll NameString
1404 1.1.1.1.2.2 skrll ',' ByteConstExpr
1405 1.1.1.1.2.2 skrll OptionalDWordConstExpr
1406 1.1.1.1.2.2 skrll OptionalByteConstExpr
1407 1.1 christos ')' '{'
1408 1.1.1.1.2.3 skrll TermList '}' {$$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);}
1409 1.1.1.1.2.2 skrll | PARSEOP_PROCESSOR '('
1410 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1411 1.1 christos ;
1412 1.1 christos
1413 1.1.1.1.2.2 skrll RawDataBufferTerm
1414 1.1.1.1.2.2 skrll : PARSEOP_DATABUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);}
1415 1.1.1.1.2.2 skrll OptionalWordConst
1416 1.1.1.1.2.2 skrll ')' '{'
1417 1.1.1.1.2.2 skrll ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1418 1.1.1.1.2.2 skrll | PARSEOP_DATABUFFER '('
1419 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1420 1.1 christos ;
1421 1.1 christos
1422 1.1.1.1.2.2 skrll /*
1423 1.1.1.1.2.2 skrll * In RefOf, the node isn't really a target, but we can't keep track of it after
1424 1.1.1.1.2.2 skrll * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
1425 1.1.1.1.2.2 skrll */
1426 1.1.1.1.2.2 skrll RefOfTerm
1427 1.1.1.1.2.2 skrll : PARSEOP_REFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);}
1428 1.1.1.1.2.2 skrll SuperName
1429 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
1430 1.1.1.1.2.2 skrll | PARSEOP_REFOF '('
1431 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1432 1.1 christos ;
1433 1.1 christos
1434 1.1.1.1.2.2 skrll ReleaseTerm
1435 1.1.1.1.2.2 skrll : PARSEOP_RELEASE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);}
1436 1.1.1.1.2.2 skrll SuperName
1437 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1438 1.1.1.1.2.2 skrll | PARSEOP_RELEASE '('
1439 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1440 1.1 christos ;
1441 1.1 christos
1442 1.1.1.1.2.2 skrll ResetTerm
1443 1.1.1.1.2.2 skrll : PARSEOP_RESET '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);}
1444 1.1.1.1.2.2 skrll SuperName
1445 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1446 1.1.1.1.2.2 skrll | PARSEOP_RESET '('
1447 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1448 1.1 christos ;
1449 1.1 christos
1450 1.1.1.1.2.2 skrll ReturnTerm
1451 1.1.1.1.2.2 skrll : PARSEOP_RETURN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);}
1452 1.1.1.1.2.2 skrll OptionalReturnArg
1453 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1454 1.1.1.1.2.2 skrll | PARSEOP_RETURN {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN));}
1455 1.1.1.1.2.2 skrll | PARSEOP_RETURN '('
1456 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1457 1.1 christos ;
1458 1.1 christos
1459 1.1.1.1.2.2 skrll ScopeTerm
1460 1.1.1.1.2.2 skrll : PARSEOP_SCOPE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);}
1461 1.1.1.1.2.2 skrll NameString
1462 1.1 christos ')' '{'
1463 1.1.1.1.2.3 skrll TermList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1464 1.1.1.1.2.2 skrll | PARSEOP_SCOPE '('
1465 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1466 1.1 christos ;
1467 1.1 christos
1468 1.1.1.1.2.2 skrll ShiftLeftTerm
1469 1.1.1.1.2.2 skrll : PARSEOP_SHIFTLEFT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
1470 1.1.1.1.2.2 skrll TermArg
1471 1.1.1.1.2.2 skrll TermArgItem
1472 1.1.1.1.2.2 skrll Target
1473 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1474 1.1.1.1.2.2 skrll | PARSEOP_SHIFTLEFT '('
1475 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1476 1.1 christos ;
1477 1.1 christos
1478 1.1.1.1.2.2 skrll ShiftRightTerm
1479 1.1.1.1.2.2 skrll : PARSEOP_SHIFTRIGHT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
1480 1.1.1.1.2.2 skrll TermArg
1481 1.1.1.1.2.2 skrll TermArgItem
1482 1.1.1.1.2.2 skrll Target
1483 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1484 1.1.1.1.2.2 skrll | PARSEOP_SHIFTRIGHT '('
1485 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1486 1.1 christos ;
1487 1.1 christos
1488 1.1.1.1.2.2 skrll SignalTerm
1489 1.1.1.1.2.2 skrll : PARSEOP_SIGNAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
1490 1.1.1.1.2.2 skrll SuperName
1491 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1492 1.1.1.1.2.2 skrll | PARSEOP_SIGNAL '('
1493 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1494 1.1 christos ;
1495 1.1 christos
1496 1.1.1.1.2.2 skrll SizeOfTerm
1497 1.1.1.1.2.2 skrll : PARSEOP_SIZEOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
1498 1.1.1.1.2.2 skrll SuperName
1499 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1500 1.1.1.1.2.2 skrll | PARSEOP_SIZEOF '('
1501 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1502 1.1 christos ;
1503 1.1 christos
1504 1.1.1.1.2.2 skrll SleepTerm
1505 1.1.1.1.2.2 skrll : PARSEOP_SLEEP '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);}
1506 1.1.1.1.2.2 skrll TermArg
1507 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1508 1.1.1.1.2.2 skrll | PARSEOP_SLEEP '('
1509 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1510 1.1 christos ;
1511 1.1 christos
1512 1.1.1.1.2.2 skrll StallTerm
1513 1.1.1.1.2.2 skrll : PARSEOP_STALL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);}
1514 1.1.1.1.2.2 skrll TermArg
1515 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1516 1.1.1.1.2.2 skrll | PARSEOP_STALL '('
1517 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1518 1.1 christos ;
1519 1.1 christos
1520 1.1.1.1.2.2 skrll StoreTerm
1521 1.1.1.1.2.2 skrll : PARSEOP_STORE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);}
1522 1.1.1.1.2.2 skrll TermArg
1523 1.1.1.1.2.2 skrll ',' SuperName
1524 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
1525 1.1.1.1.2.2 skrll | PARSEOP_STORE '('
1526 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1527 1.1 christos ;
1528 1.1 christos
1529 1.1.1.1.2.2 skrll SubtractTerm
1530 1.1.1.1.2.2 skrll : PARSEOP_SUBTRACT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
1531 1.1.1.1.2.2 skrll TermArg
1532 1.1.1.1.2.2 skrll TermArgItem
1533 1.1.1.1.2.2 skrll Target
1534 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1535 1.1.1.1.2.2 skrll | PARSEOP_SUBTRACT '('
1536 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1537 1.1.1.1.2.2 skrll ;
1538 1.1.1.1.2.2 skrll SwitchTerm
1539 1.1.1.1.2.2 skrll : PARSEOP_SWITCH '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);}
1540 1.1.1.1.2.2 skrll TermArg
1541 1.1.1.1.2.2 skrll ')' '{'
1542 1.1.1.1.2.2 skrll CaseDefaultTermList '}'
1543 1.1.1.1.2.2 skrll {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1544 1.1.1.1.2.2 skrll | PARSEOP_SWITCH '('
1545 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1546 1.1 christos ;
1547 1.1 christos
1548 1.1.1.1.2.2 skrll ThermalZoneTerm
1549 1.1.1.1.2.2 skrll : PARSEOP_THERMALZONE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
1550 1.1.1.1.2.2 skrll NameString
1551 1.1.1.1.2.2 skrll ')' '{'
1552 1.1.1.1.2.3 skrll TermList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1553 1.1.1.1.2.2 skrll | PARSEOP_THERMALZONE '('
1554 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1555 1.1 christos ;
1556 1.1 christos
1557 1.1.1.1.2.2 skrll TimerTerm
1558 1.1.1.1.2.2 skrll : PARSEOP_TIMER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);}
1559 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,0);}
1560 1.1.1.1.2.2 skrll | PARSEOP_TIMER {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);}
1561 1.1.1.1.2.2 skrll | PARSEOP_TIMER '('
1562 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1563 1.1 christos ;
1564 1.1 christos
1565 1.1.1.1.2.2 skrll ToBCDTerm
1566 1.1.1.1.2.2 skrll : PARSEOP_TOBCD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);}
1567 1.1.1.1.2.2 skrll TermArg
1568 1.1.1.1.2.2 skrll Target
1569 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1570 1.1.1.1.2.2 skrll | PARSEOP_TOBCD '('
1571 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1572 1.1 christos ;
1573 1.1 christos
1574 1.1.1.1.2.2 skrll ToBufferTerm
1575 1.1.1.1.2.2 skrll : PARSEOP_TOBUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
1576 1.1.1.1.2.2 skrll TermArg
1577 1.1.1.1.2.2 skrll Target
1578 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1579 1.1.1.1.2.2 skrll | PARSEOP_TOBUFFER '('
1580 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1581 1.1 christos ;
1582 1.1 christos
1583 1.1.1.1.2.2 skrll ToDecimalStringTerm
1584 1.1.1.1.2.2 skrll : PARSEOP_TODECIMALSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
1585 1.1.1.1.2.2 skrll TermArg
1586 1.1.1.1.2.2 skrll Target
1587 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1588 1.1.1.1.2.2 skrll | PARSEOP_TODECIMALSTRING '('
1589 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1590 1.1 christos ;
1591 1.1 christos
1592 1.1.1.1.2.2 skrll ToHexStringTerm
1593 1.1.1.1.2.2 skrll : PARSEOP_TOHEXSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
1594 1.1.1.1.2.2 skrll TermArg
1595 1.1.1.1.2.2 skrll Target
1596 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1597 1.1.1.1.2.2 skrll | PARSEOP_TOHEXSTRING '('
1598 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1599 1.1 christos ;
1600 1.1 christos
1601 1.1.1.1.2.2 skrll ToIntegerTerm
1602 1.1.1.1.2.2 skrll : PARSEOP_TOINTEGER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
1603 1.1.1.1.2.2 skrll TermArg
1604 1.1.1.1.2.2 skrll Target
1605 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1606 1.1.1.1.2.2 skrll | PARSEOP_TOINTEGER '('
1607 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1608 1.1 christos ;
1609 1.1 christos
1610 1.1.1.1.2.2 skrll ToPLDTerm
1611 1.1.1.1.2.2 skrll : PARSEOP_TOPLD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);}
1612 1.1.1.1.2.2 skrll PldKeywordList
1613 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1614 1.1.1.1.2.2 skrll | PARSEOP_TOPLD '('
1615 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1616 1.1 christos ;
1617 1.1 christos
1618 1.1.1.1.2.2 skrll PldKeywordList
1619 1.1.1.1.2.2 skrll : {$$ = NULL;}
1620 1.1.1.1.2.2 skrll | PldKeyword
1621 1.1.1.1.2.2 skrll PARSEOP_EXP_EQUALS Integer {$$ = TrLinkChildren ($1,1,$3);}
1622 1.1.1.1.2.2 skrll | PldKeyword
1623 1.1.1.1.2.2 skrll PARSEOP_EXP_EQUALS String {$$ = TrLinkChildren ($1,1,$3);}
1624 1.1.1.1.2.2 skrll | PldKeywordList ',' /* Allows a trailing comma at list end */
1625 1.1.1.1.2.2 skrll | PldKeywordList ','
1626 1.1.1.1.2.2 skrll PldKeyword
1627 1.1.1.1.2.2 skrll PARSEOP_EXP_EQUALS Integer {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
1628 1.1.1.1.2.2 skrll | PldKeywordList ','
1629 1.1.1.1.2.2 skrll PldKeyword
1630 1.1.1.1.2.2 skrll PARSEOP_EXP_EQUALS String {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
1631 1.1 christos ;
1632 1.1 christos
1633 1.1.1.1.2.2 skrll
1634 1.1.1.1.2.2 skrll ToStringTerm
1635 1.1.1.1.2.2 skrll : PARSEOP_TOSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
1636 1.1.1.1.2.2 skrll TermArg
1637 1.1.1.1.2.2 skrll OptionalCount
1638 1.1.1.1.2.2 skrll Target
1639 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1640 1.1.1.1.2.2 skrll | PARSEOP_TOSTRING '('
1641 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1642 1.1 christos ;
1643 1.1 christos
1644 1.1.1.1.2.2 skrll ToUUIDTerm
1645 1.1.1.1.2.2 skrll : PARSEOP_TOUUID '('
1646 1.1.1.1.2.2 skrll StringData ')' {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
1647 1.1.1.1.2.2 skrll | PARSEOP_TOUUID '('
1648 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1649 1.1 christos ;
1650 1.1 christos
1651 1.1.1.1.2.2 skrll UnicodeTerm
1652 1.1.1.1.2.2 skrll : PARSEOP_UNICODE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);}
1653 1.1.1.1.2.2 skrll StringData
1654 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,0,$4);}
1655 1.1.1.1.2.2 skrll | PARSEOP_UNICODE '('
1656 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1657 1.1 christos ;
1658 1.1 christos
1659 1.1.1.1.2.2 skrll UnloadTerm
1660 1.1.1.1.2.2 skrll : PARSEOP_UNLOAD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
1661 1.1.1.1.2.2 skrll SuperName
1662 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1663 1.1.1.1.2.2 skrll | PARSEOP_UNLOAD '('
1664 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1665 1.1 christos ;
1666 1.1 christos
1667 1.1.1.1.2.2 skrll WaitTerm
1668 1.1.1.1.2.2 skrll : PARSEOP_WAIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);}
1669 1.1.1.1.2.2 skrll SuperName
1670 1.1.1.1.2.2 skrll TermArgItem
1671 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1672 1.1.1.1.2.2 skrll | PARSEOP_WAIT '('
1673 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1674 1.1 christos ;
1675 1.1 christos
1676 1.1.1.1.2.2 skrll XOrTerm
1677 1.1.1.1.2.2 skrll : PARSEOP_XOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
1678 1.1.1.1.2.2 skrll TermArg
1679 1.1.1.1.2.2 skrll TermArgItem
1680 1.1.1.1.2.2 skrll Target
1681 1.1.1.1.2.2 skrll ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1682 1.1.1.1.2.2 skrll | PARSEOP_XOR '('
1683 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1684 1.1 christos ;
1685 1.1 christos
1686 1.1.1.1.2.2 skrll WhileTerm
1687 1.1.1.1.2.2 skrll : PARSEOP_WHILE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
1688 1.1.1.1.2.2 skrll TermArg
1689 1.1.1.1.2.2 skrll ')' '{' TermList '}'
1690 1.1.1.1.2.2 skrll {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1691 1.1.1.1.2.2 skrll | PARSEOP_WHILE '('
1692 1.1.1.1.2.2 skrll error ')' {$$ = AslDoError(); yyclearin;}
1693 1.1 christos ;
1694 1.1 christos
1695 1.1 christos
1696 1.1.1.1.2.2 skrll /*******************************************************************************
1697 1.1.1.1.2.2 skrll *
1698 1.1.1.1.2.2 skrll * ASL Helper Terms
1699 1.1.1.1.2.2 skrll *
1700 1.1.1.1.2.2 skrll ******************************************************************************/
1701 1.1 christos
1702 1.1 christos AmlPackageLengthTerm
1703 1.1 christos : Integer {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);}
1704 1.1 christos ;
1705 1.1 christos
1706 1.1 christos NameStringItem
1707 1.1 christos : ',' NameString {$$ = $2;}
1708 1.1 christos | ',' error {$$ = AslDoError (); yyclearin;}
1709 1.1 christos ;
1710 1.1 christos
1711 1.1 christos TermArgItem
1712 1.1 christos : ',' TermArg {$$ = $2;}
1713 1.1 christos | ',' error {$$ = AslDoError (); yyclearin;}
1714 1.1 christos ;
1715 1.1 christos
1716 1.1 christos OptionalReference
1717 1.1 christos : {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
1718 1.1 christos | ',' {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */
1719 1.1 christos | ',' TermArg {$$ = $2;}
1720 1.1 christos ;
1721 1.1 christos
1722 1.1 christos OptionalReturnArg
1723 1.1 christos : {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN);} /* Placeholder is a ZeroOp object */
1724 1.1 christos | TermArg {$$ = $1;}
1725 1.1 christos ;
1726 1.1 christos
1727 1.1 christos OptionalSerializeRuleKeyword
1728 1.1 christos : {$$ = NULL;}
1729 1.1 christos | ',' {$$ = NULL;}
1730 1.1 christos | ',' SerializeRuleKeyword {$$ = $2;}
1731 1.1 christos ;
1732 1.1 christos
1733 1.1 christos OptionalTermArg
1734 1.1.1.1.2.3 skrll : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
1735 1.1.1.1.2.3 skrll | TermArg {$$ = $1;}
1736 1.1.1.1.2.3 skrll ;
1737 1.1.1.1.2.3 skrll
1738 1.1.1.1.2.3 skrll OptionalBufferLength
1739 1.1 christos : {$$ = NULL;}
1740 1.1 christos | TermArg {$$ = $1;}
1741 1.1 christos ;
1742 1.1 christos
1743 1.1 christos OptionalWordConst
1744 1.1 christos : {$$ = NULL;}
1745 1.1 christos | WordConst {$$ = $1;}
1746 1.1 christos ;
1747