aslrules.y revision 1.1.1.4 1 1.1 christos NoEcho('
2 1.1 christos /******************************************************************************
3 1.1 christos *
4 1.1.1.3 christos * 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.3 christos * 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.3 christos * 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.3 christos * 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.3 christos AslCode
58 1.1.1.3 christos : 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.4 christos *
78 1.1.1.4 christos * 04/2016: The module-level code is now allowed in the following terms:
79 1.1.1.4 christos * DeviceTerm, PowerResTerm, ProcessorTerm, ScopeTerm, ThermalZoneTerm.
80 1.1.1.4 christos * The ObjectList term is obsolete and has been removed.
81 1.1 christos */
82 1.1 christos DefinitionBlockTerm
83 1.1.1.3 christos : 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.3 christos DefinitionBlockList
95 1.1.1.3 christos : DefinitionBlockTerm
96 1.1.1.3 christos | DefinitionBlockTerm
97 1.1.1.3 christos DefinitionBlockList {$$ = TrLinkPeerNodes (2, $1,$2);}
98 1.1.1.2 christos ;
99 1.1.1.2 christos
100 1.1.1.3 christos SuperName
101 1.1.1.3 christos : NameString {}
102 1.1.1.3 christos | ArgTerm {}
103 1.1.1.3 christos | LocalTerm {}
104 1.1.1.3 christos | DebugTerm {}
105 1.1.1.3 christos | Type6Opcode {}
106 1.1.1.2 christos
107 1.1.1.3 christos Target
108 1.1.1.3 christos : {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
109 1.1.1.3 christos | ',' {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
110 1.1.1.3 christos | ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
111 1.1 christos ;
112 1.1 christos
113 1.1.1.3 christos TermArg
114 1.1.1.3 christos : Type2Opcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
115 1.1.1.3 christos | DataObject {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
116 1.1.1.3 christos | NameString {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
117 1.1.1.3 christos | ArgTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
118 1.1.1.3 christos | LocalTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
119 1.1 christos ;
120 1.1 christos
121 1.1.1.3 christos /*
122 1.1.1.3 christos NOTE: Removed from TermArg due to reduce/reduce conflicts:
123 1.1.1.3 christos | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
124 1.1.1.3 christos | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
125 1.1.1.3 christos | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
126 1.1.1.3 christos | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
127 1.1 christos
128 1.1.1.3 christos */
129 1.1 christos
130 1.1.1.3 christos MethodInvocationTerm
131 1.1.1.3 christos : NameString '(' {TrUpdateNode (PARSEOP_METHODCALL, $1);}
132 1.1.1.3 christos ArgList ')' {$$ = TrLinkChildNode ($1,$4);}
133 1.1 christos ;
134 1.1 christos
135 1.1.1.3 christos /* OptionalCount must appear before ByteList or an incorrect reduction will result */
136 1.1 christos
137 1.1.1.3 christos OptionalCount
138 1.1.1.3 christos : {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
139 1.1.1.3 christos | ',' {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */
140 1.1.1.3 christos | ',' TermArg {$$ = $2;}
141 1.1 christos ;
142 1.1 christos
143 1.1.1.3 christos VarPackageLengthTerm
144 1.1.1.3 christos : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
145 1.1.1.3 christos | TermArg {$$ = $1;}
146 1.1 christos ;
147 1.1 christos
148 1.1 christos
149 1.1.1.3 christos /******* List Terms **************************************************/
150 1.1 christos
151 1.1.1.3 christos ArgList
152 1.1.1.3 christos : {$$ = NULL;}
153 1.1.1.3 christos | TermArg
154 1.1.1.3 christos | ArgList ',' /* Allows a trailing comma at list end */
155 1.1.1.3 christos | ArgList ','
156 1.1.1.3 christos TermArg {$$ = TrLinkPeerNode ($1,$3);}
157 1.1 christos ;
158 1.1 christos
159 1.1.1.3 christos ByteList
160 1.1.1.3 christos : {$$ = NULL;}
161 1.1.1.3 christos | ByteConstExpr
162 1.1.1.3 christos | ByteList ',' /* Allows a trailing comma at list end */
163 1.1.1.3 christos | ByteList ','
164 1.1.1.3 christos ByteConstExpr {$$ = TrLinkPeerNode ($1,$3);}
165 1.1 christos ;
166 1.1 christos
167 1.1.1.3 christos DWordList
168 1.1.1.3 christos : {$$ = NULL;}
169 1.1.1.3 christos | DWordConstExpr
170 1.1.1.3 christos | DWordList ',' /* Allows a trailing comma at list end */
171 1.1.1.3 christos | DWordList ','
172 1.1.1.3 christos DWordConstExpr {$$ = TrLinkPeerNode ($1,$3);}
173 1.1 christos ;
174 1.1 christos
175 1.1.1.3 christos FieldUnitList
176 1.1 christos : {$$ = NULL;}
177 1.1.1.3 christos | FieldUnit
178 1.1.1.3 christos | FieldUnitList ',' /* Allows a trailing comma at list end */
179 1.1.1.3 christos | FieldUnitList ','
180 1.1.1.3 christos FieldUnit {$$ = TrLinkPeerNode ($1,$3);}
181 1.1 christos ;
182 1.1 christos
183 1.1.1.3 christos FieldUnit
184 1.1.1.3 christos : FieldUnitEntry {}
185 1.1.1.3 christos | OffsetTerm {}
186 1.1.1.3 christos | AccessAsTerm {}
187 1.1.1.3 christos | ConnectionTerm {}
188 1.1.1.3 christos ;
189 1.1 christos
190 1.1.1.3 christos FieldUnitEntry
191 1.1.1.3 christos : ',' AmlPackageLengthTerm {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
192 1.1.1.3 christos | NameSeg ','
193 1.1.1.3 christos AmlPackageLengthTerm {$$ = TrLinkChildNode ($1,$3);}
194 1.1.1.3 christos ;
195 1.1 christos
196 1.1.1.3 christos Object
197 1.1.1.3 christos : CompilerDirective {}
198 1.1.1.3 christos | NamedObject {}
199 1.1.1.3 christos | NameSpaceModifier {}
200 1.1 christos ;
201 1.1 christos
202 1.1.1.3 christos PackageList
203 1.1.1.3 christos : {$$ = NULL;}
204 1.1.1.3 christos | PackageElement
205 1.1.1.3 christos | PackageList ',' /* Allows a trailing comma at list end */
206 1.1.1.3 christos | PackageList ','
207 1.1.1.3 christos PackageElement {$$ = TrLinkPeerNode ($1,$3);}
208 1.1 christos ;
209 1.1 christos
210 1.1.1.3 christos PackageElement
211 1.1.1.3 christos : DataObject {}
212 1.1.1.3 christos | NameString {}
213 1.1 christos ;
214 1.1 christos
215 1.1.1.3 christos /* 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.3 christos /* 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.3 christos /* ACPI 3.0 -- allow semicolons between terms */
255 1.1 christos
256 1.1.1.3 christos TermList
257 1.1.1.3 christos : {$$ = NULL;}
258 1.1.1.3 christos | TermList Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
259 1.1.1.3 christos | TermList Term ';' {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
260 1.1.1.3 christos | TermList ';' Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
261 1.1.1.3 christos | TermList ';' Term ';' {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
262 1.1 christos ;
263 1.1 christos
264 1.1.1.3 christos Term
265 1.1.1.3 christos : Object {}
266 1.1.1.3 christos | Type1Opcode {}
267 1.1.1.3 christos | Type2Opcode {}
268 1.1.1.3 christos | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
269 1.1.1.3 christos | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
270 1.1.1.3 christos | Type2BufferOpcode {}
271 1.1.1.3 christos | Type2BufferOrStringOpcode {}
272 1.1.1.3 christos | error {$$ = AslDoError(); yyclearin;}
273 1.1 christos ;
274 1.1 christos
275 1.1 christos /*
276 1.1.1.3 christos * Case-Default list; allow only one Default term and unlimited Case terms
277 1.1 christos */
278 1.1.1.3 christos CaseDefaultTermList
279 1.1.1.3 christos : {$$ = NULL;}
280 1.1.1.3 christos | CaseTerm {}
281 1.1.1.3 christos | DefaultTerm {}
282 1.1.1.3 christos | CaseDefaultTermList
283 1.1.1.3 christos CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
284 1.1.1.3 christos | CaseDefaultTermList
285 1.1.1.3 christos DefaultTerm {$$ = TrLinkPeerNode ($1,$2);}
286 1.1 christos
287 1.1.1.3 christos /* Original - attempts to force zero or one default term within the switch */
288 1.1.1.3 christos
289 1.1.1.3 christos /*
290 1.1.1.3 christos CaseDefaultTermList
291 1.1.1.3 christos : {$$ = NULL;}
292 1.1.1.3 christos | CaseTermList
293 1.1.1.3 christos DefaultTerm
294 1.1.1.3 christos CaseTermList {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
295 1.1.1.3 christos | CaseTermList
296 1.1.1.3 christos CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
297 1.1.1.3 christos ;
298 1.1.1.3 christos
299 1.1.1.3 christos CaseTermList
300 1.1.1.3 christos : {$$ = NULL;}
301 1.1.1.3 christos | CaseTerm {}
302 1.1.1.3 christos | CaseTermList
303 1.1.1.3 christos CaseTerm {$$ = TrLinkPeerNode ($1,$2);}
304 1.1.1.3 christos ;
305 1.1.1.3 christos */
306 1.1.1.3 christos
307 1.1.1.3 christos
308 1.1.1.3 christos /*******************************************************************************
309 1.1.1.3 christos *
310 1.1.1.3 christos * ASL Data and Constant Terms
311 1.1.1.3 christos *
312 1.1.1.3 christos ******************************************************************************/
313 1.1.1.3 christos
314 1.1.1.3 christos DataObject
315 1.1.1.3 christos : BufferData {}
316 1.1.1.3 christos | PackageData {}
317 1.1.1.3 christos | IntegerData {}
318 1.1.1.3 christos | StringData {}
319 1.1.1.3 christos ;
320 1.1.1.3 christos
321 1.1.1.3 christos BufferData
322 1.1.1.3 christos : Type5Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
323 1.1.1.3 christos | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
324 1.1.1.3 christos | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
325 1.1.1.3 christos | BufferTerm {}
326 1.1.1.3 christos ;
327 1.1.1.3 christos
328 1.1.1.3 christos PackageData
329 1.1.1.3 christos : PackageTerm {}
330 1.1.1.3 christos ;
331 1.1.1.3 christos
332 1.1.1.3 christos IntegerData
333 1.1.1.3 christos : Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
334 1.1.1.3 christos | Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
335 1.1.1.3 christos | Integer {}
336 1.1.1.3 christos | ConstTerm {}
337 1.1.1.3 christos ;
338 1.1.1.3 christos
339 1.1.1.3 christos StringData
340 1.1.1.3 christos : Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
341 1.1.1.3 christos | String {}
342 1.1.1.3 christos ;
343 1.1.1.3 christos
344 1.1.1.3 christos ByteConst
345 1.1.1.3 christos : Integer {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
346 1.1.1.3 christos ;
347 1.1.1.3 christos
348 1.1.1.3 christos WordConst
349 1.1.1.3 christos : Integer {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
350 1.1.1.3 christos ;
351 1.1.1.3 christos
352 1.1.1.3 christos DWordConst
353 1.1.1.3 christos : Integer {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
354 1.1.1.3 christos ;
355 1.1.1.3 christos
356 1.1.1.3 christos QWordConst
357 1.1.1.3 christos : Integer {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
358 1.1.1.3 christos ;
359 1.1.1.3 christos
360 1.1.1.3 christos /*
361 1.1.1.3 christos * The NODE_COMPILE_TIME_CONST flag in the following constant expressions
362 1.1.1.3 christos * enables compile-time constant folding to reduce the Type3Opcodes/Type2IntegerOpcodes
363 1.1.1.3 christos * to simple integers. It is an error if these types of expressions cannot be
364 1.1.1.3 christos * reduced, since the AML grammar for ****ConstExpr requires a simple constant.
365 1.1.1.3 christos * Note: The required byte length of the constant is passed through to the
366 1.1.1.3 christos * constant folding code in the node AmlLength field.
367 1.1.1.3 christos */
368 1.1.1.3 christos ByteConstExpr
369 1.1.1.3 christos : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);}
370 1.1.1.3 christos | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);}
371 1.1.1.3 christos | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
372 1.1.1.3 christos | ByteConst {}
373 1.1.1.3 christos ;
374 1.1.1.3 christos
375 1.1.1.3 christos WordConstExpr
376 1.1.1.3 christos : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);}
377 1.1.1.3 christos | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);}
378 1.1.1.3 christos | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
379 1.1.1.3 christos | WordConst {}
380 1.1.1.3 christos ;
381 1.1.1.3 christos
382 1.1.1.3 christos DWordConstExpr
383 1.1.1.3 christos : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);}
384 1.1.1.3 christos | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);}
385 1.1.1.3 christos | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
386 1.1.1.3 christos | DWordConst {}
387 1.1.1.3 christos ;
388 1.1.1.3 christos
389 1.1.1.3 christos QWordConstExpr
390 1.1.1.3 christos : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);}
391 1.1.1.3 christos | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);}
392 1.1.1.3 christos | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
393 1.1.1.3 christos | QWordConst {}
394 1.1.1.3 christos ;
395 1.1.1.3 christos
396 1.1.1.3 christos ConstTerm
397 1.1.1.3 christos : ConstExprTerm {}
398 1.1.1.3 christos | PARSEOP_REVISION {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
399 1.1.1.3 christos ;
400 1.1.1.3 christos
401 1.1.1.3 christos ConstExprTerm
402 1.1.1.3 christos : PARSEOP_ZERO {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
403 1.1.1.3 christos | PARSEOP_ONE {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
404 1.1.1.3 christos | PARSEOP_ONES {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_UINT64_MAX);}
405 1.1.1.3 christos | PARSEOP___DATE__ {$$ = TrCreateConstantLeafNode (PARSEOP___DATE__);}
406 1.1.1.3 christos | PARSEOP___FILE__ {$$ = TrCreateConstantLeafNode (PARSEOP___FILE__);}
407 1.1.1.3 christos | PARSEOP___LINE__ {$$ = TrCreateConstantLeafNode (PARSEOP___LINE__);}
408 1.1.1.3 christos | PARSEOP___PATH__ {$$ = TrCreateConstantLeafNode (PARSEOP___PATH__);}
409 1.1.1.3 christos ;
410 1.1.1.3 christos
411 1.1.1.3 christos Integer
412 1.1.1.3 christos : PARSEOP_INTEGER {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);}
413 1.1.1.3 christos ;
414 1.1.1.3 christos
415 1.1.1.3 christos String
416 1.1.1.3 christos : PARSEOP_STRING_LITERAL {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);}
417 1.1.1.3 christos ;
418 1.1.1.3 christos
419 1.1.1.3 christos
420 1.1.1.3 christos /*******************************************************************************
421 1.1.1.3 christos *
422 1.1.1.3 christos * ASL Opcode Terms
423 1.1.1.3 christos *
424 1.1.1.3 christos ******************************************************************************/
425 1.1.1.3 christos
426 1.1.1.3 christos CompilerDirective
427 1.1.1.3 christos : IncludeTerm {}
428 1.1.1.3 christos | IncludeEndTerm {}
429 1.1.1.3 christos | ExternalTerm {}
430 1.1.1.3 christos ;
431 1.1.1.3 christos
432 1.1.1.3 christos NamedObject
433 1.1.1.3 christos : BankFieldTerm {}
434 1.1.1.3 christos | CreateBitFieldTerm {}
435 1.1.1.3 christos | CreateByteFieldTerm {}
436 1.1.1.3 christos | CreateDWordFieldTerm {}
437 1.1.1.3 christos | CreateFieldTerm {}
438 1.1.1.3 christos | CreateQWordFieldTerm {}
439 1.1.1.3 christos | CreateWordFieldTerm {}
440 1.1.1.3 christos | DataRegionTerm {}
441 1.1.1.3 christos | DeviceTerm {}
442 1.1.1.3 christos | EventTerm {}
443 1.1.1.3 christos | FieldTerm {}
444 1.1.1.3 christos | FunctionTerm {}
445 1.1.1.3 christos | IndexFieldTerm {}
446 1.1.1.3 christos | MethodTerm {}
447 1.1.1.3 christos | MutexTerm {}
448 1.1.1.3 christos | OpRegionTerm {}
449 1.1.1.3 christos | PowerResTerm {}
450 1.1.1.3 christos | ProcessorTerm {}
451 1.1.1.3 christos | ThermalZoneTerm {}
452 1.1.1.3 christos ;
453 1.1.1.3 christos
454 1.1.1.3 christos NameSpaceModifier
455 1.1.1.3 christos : AliasTerm {}
456 1.1.1.3 christos | NameTerm {}
457 1.1.1.3 christos | ScopeTerm {}
458 1.1.1.3 christos ;
459 1.1.1.3 christos
460 1.1.1.3 christos /* For ObjectType: SuperName except for MethodInvocationTerm */
461 1.1.1.3 christos
462 1.1.1.3 christos ObjectTypeName
463 1.1.1.3 christos : NameString {}
464 1.1.1.3 christos | ArgTerm {}
465 1.1.1.3 christos | LocalTerm {}
466 1.1.1.3 christos | DebugTerm {}
467 1.1.1.3 christos | RefOfTerm {}
468 1.1.1.3 christos | DerefOfTerm {}
469 1.1.1.3 christos | IndexTerm {}
470 1.1.1.3 christos /* | MethodInvocationTerm {} */ /* Caused reduce/reduce with Type6Opcode->MethodInvocationTerm */
471 1.1.1.3 christos ;
472 1.1.1.3 christos
473 1.1.1.3 christos RequiredTarget
474 1.1.1.3 christos : ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
475 1.1.1.3 christos ;
476 1.1.1.3 christos
477 1.1.1.3 christos SimpleTarget
478 1.1.1.3 christos : NameString {}
479 1.1.1.3 christos | LocalTerm {}
480 1.1.1.3 christos | ArgTerm {}
481 1.1.1.3 christos ;
482 1.1.1.3 christos
483 1.1.1.3 christos /* Opcode types */
484 1.1.1.3 christos
485 1.1.1.3 christos Type1Opcode
486 1.1.1.3 christos : BreakTerm {}
487 1.1.1.3 christos | BreakPointTerm {}
488 1.1.1.3 christos | ContinueTerm {}
489 1.1.1.3 christos | FatalTerm {}
490 1.1.1.4 christos | ForTerm {}
491 1.1.1.3 christos | ElseIfTerm {}
492 1.1.1.3 christos | LoadTerm {}
493 1.1.1.3 christos | NoOpTerm {}
494 1.1.1.3 christos | NotifyTerm {}
495 1.1.1.3 christos | ReleaseTerm {}
496 1.1.1.3 christos | ResetTerm {}
497 1.1.1.3 christos | ReturnTerm {}
498 1.1.1.3 christos | SignalTerm {}
499 1.1.1.3 christos | SleepTerm {}
500 1.1.1.3 christos | StallTerm {}
501 1.1.1.3 christos | SwitchTerm {}
502 1.1.1.3 christos | UnloadTerm {}
503 1.1.1.3 christos | WhileTerm {}
504 1.1.1.3 christos ;
505 1.1.1.3 christos
506 1.1.1.3 christos Type2Opcode
507 1.1.1.3 christos : AcquireTerm {}
508 1.1.1.3 christos | CondRefOfTerm {}
509 1.1.1.3 christos | CopyObjectTerm {}
510 1.1.1.3 christos | DerefOfTerm {}
511 1.1.1.3 christos | ObjectTypeTerm {}
512 1.1.1.3 christos | RefOfTerm {}
513 1.1.1.3 christos | SizeOfTerm {}
514 1.1.1.3 christos | StoreTerm {}
515 1.1.1.3 christos | EqualsTerm {}
516 1.1.1.3 christos | TimerTerm {}
517 1.1.1.3 christos | WaitTerm {}
518 1.1.1.3 christos | MethodInvocationTerm {}
519 1.1.1.3 christos ;
520 1.1.1.3 christos
521 1.1.1.3 christos /*
522 1.1.1.3 christos * Type 3/4/5 opcodes
523 1.1.1.3 christos */
524 1.1.1.3 christos Type2IntegerOpcode /* "Type3" opcodes */
525 1.1.1.3 christos : Expression {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
526 1.1.1.3 christos | AddTerm {}
527 1.1.1.3 christos | 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.2 christos : ConcatTerm {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
573 1.1.1.2 christos | PrintfTerm {}
574 1.1.1.2 christos | 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.2 christos | 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.3 christos | IndexExpTerm {}
607 1.1.1.2 christos | MethodInvocationTerm {}
608 1.1 christos ;
609 1.1 christos
610 1.1 christos
611 1.1.1.3 christos /*******************************************************************************
612 1.1.1.3 christos *
613 1.1.1.3 christos * ASL Primary Terms
614 1.1.1.3 christos *
615 1.1.1.3 christos ******************************************************************************/
616 1.1.1.3 christos
617 1.1.1.3 christos AccessAsTerm
618 1.1.1.3 christos : PARSEOP_ACCESSAS '('
619 1.1.1.3 christos AccessTypeKeyword
620 1.1.1.3 christos OptionalAccessAttribTerm
621 1.1.1.3 christos ')' {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
622 1.1.1.3 christos | PARSEOP_ACCESSAS '('
623 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
624 1.1 christos ;
625 1.1 christos
626 1.1.1.3 christos AcquireTerm
627 1.1.1.3 christos : PARSEOP_ACQUIRE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
628 1.1.1.3 christos SuperName
629 1.1.1.3 christos ',' WordConstExpr
630 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
631 1.1.1.3 christos | PARSEOP_ACQUIRE '('
632 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
633 1.1.1.3 christos ;
634 1.1.1.3 christos
635 1.1.1.3 christos AddTerm
636 1.1.1.3 christos : PARSEOP_ADD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
637 1.1.1.3 christos TermArg
638 1.1.1.3 christos TermArgItem
639 1.1.1.3 christos Target
640 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
641 1.1.1.3 christos | PARSEOP_ADD '('
642 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
643 1.1 christos ;
644 1.1 christos
645 1.1.1.3 christos AliasTerm
646 1.1.1.3 christos : PARSEOP_ALIAS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);}
647 1.1.1.3 christos NameString
648 1.1.1.3 christos NameStringItem
649 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,
650 1.1.1.3 christos TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
651 1.1.1.3 christos | PARSEOP_ALIAS '('
652 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
653 1.1.1.3 christos ;
654 1.1 christos
655 1.1.1.3 christos AndTerm
656 1.1.1.3 christos : PARSEOP_AND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
657 1.1.1.3 christos TermArg
658 1.1.1.3 christos TermArgItem
659 1.1.1.3 christos Target
660 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
661 1.1.1.3 christos | PARSEOP_AND '('
662 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
663 1.1.1.3 christos ;
664 1.1 christos
665 1.1.1.3 christos ArgTerm
666 1.1.1.3 christos : PARSEOP_ARG0 {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
667 1.1.1.3 christos | PARSEOP_ARG1 {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
668 1.1.1.3 christos | PARSEOP_ARG2 {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
669 1.1.1.3 christos | PARSEOP_ARG3 {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
670 1.1.1.3 christos | PARSEOP_ARG4 {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
671 1.1.1.3 christos | PARSEOP_ARG5 {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
672 1.1.1.3 christos | PARSEOP_ARG6 {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
673 1.1.1.3 christos ;
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.3 christos BreakTerm
690 1.1.1.3 christos : PARSEOP_BREAK {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
691 1.1 christos ;
692 1.1 christos
693 1.1.1.3 christos BreakPointTerm
694 1.1.1.3 christos : PARSEOP_BREAKPOINT {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
695 1.1 christos ;
696 1.1 christos
697 1.1.1.3 christos BufferTerm
698 1.1.1.3 christos : PARSEOP_BUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);}
699 1.1.1.4 christos OptionalBufferLength
700 1.1.1.3 christos ')' '{'
701 1.1.1.3 christos BufferTermData '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
702 1.1.1.3 christos | PARSEOP_BUFFER '('
703 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
704 1.1 christos ;
705 1.1 christos
706 1.1.1.3 christos BufferTermData
707 1.1.1.3 christos : ByteList {}
708 1.1.1.3 christos | StringData {}
709 1.1.1.3 christos ;
710 1.1.1.3 christos
711 1.1.1.3 christos CaseTerm
712 1.1.1.3 christos : PARSEOP_CASE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);}
713 1.1.1.3 christos DataObject
714 1.1.1.3 christos ')' '{'
715 1.1.1.3 christos TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
716 1.1.1.3 christos | PARSEOP_CASE '('
717 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
718 1.1 christos ;
719 1.1 christos
720 1.1.1.3 christos ConcatTerm
721 1.1.1.3 christos : PARSEOP_CONCATENATE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
722 1.1.1.3 christos TermArg
723 1.1.1.3 christos TermArgItem
724 1.1.1.3 christos Target
725 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
726 1.1.1.3 christos | PARSEOP_CONCATENATE '('
727 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
728 1.1.1.3 christos ;
729 1.1.1.3 christos
730 1.1.1.3 christos ConcatResTerm
731 1.1.1.3 christos : PARSEOP_CONCATENATERESTEMPLATE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);}
732 1.1.1.3 christos TermArg
733 1.1.1.3 christos TermArgItem
734 1.1.1.3 christos Target
735 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
736 1.1.1.3 christos | 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.3 christos CondRefOfTerm
756 1.1.1.3 christos : PARSEOP_CONDREFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
757 1.1.1.3 christos SuperName
758 1.1.1.3 christos Target
759 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
760 1.1.1.3 christos | PARSEOP_CONDREFOF '('
761 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
762 1.1.1.3 christos ;
763 1.1.1.3 christos
764 1.1.1.3 christos ContinueTerm
765 1.1.1.3 christos : PARSEOP_CONTINUE {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
766 1.1.1.3 christos ;
767 1.1.1.3 christos
768 1.1.1.3 christos CopyObjectTerm
769 1.1.1.3 christos : PARSEOP_COPYOBJECT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
770 1.1.1.3 christos TermArg
771 1.1.1.3 christos ',' SimpleTarget
772 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
773 1.1.1.3 christos | PARSEOP_COPYOBJECT '('
774 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
775 1.1.1.3 christos ;
776 1.1.1.3 christos
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.3 christos DebugTerm
850 1.1.1.3 christos : PARSEOP_DEBUG {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
851 1.1.1.3 christos ;
852 1.1.1.3 christos
853 1.1.1.3 christos DecTerm
854 1.1.1.3 christos : PARSEOP_DECREMENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
855 1.1.1.3 christos SuperName
856 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
857 1.1.1.3 christos | PARSEOP_DECREMENT '('
858 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
859 1.1.1.3 christos ;
860 1.1.1.3 christos
861 1.1.1.3 christos DefaultTerm
862 1.1.1.3 christos : PARSEOP_DEFAULT '{' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
863 1.1.1.3 christos TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
864 1.1.1.3 christos | PARSEOP_DEFAULT '{'
865 1.1.1.3 christos error '}' {$$ = AslDoError(); yyclearin;}
866 1.1.1.3 christos ;
867 1.1.1.3 christos
868 1.1.1.3 christos DerefOfTerm
869 1.1.1.3 christos : PARSEOP_DEREFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
870 1.1.1.3 christos TermArg
871 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
872 1.1.1.3 christos | PARSEOP_DEREFOF '('
873 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
874 1.1.1.3 christos ;
875 1.1.1.3 christos
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.4 christos 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.3 christos DivideTerm
886 1.1.1.3 christos : PARSEOP_DIVIDE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
887 1.1.1.3 christos TermArg
888 1.1.1.3 christos TermArgItem
889 1.1.1.3 christos Target
890 1.1.1.3 christos Target
891 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
892 1.1.1.3 christos | PARSEOP_DIVIDE '('
893 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
894 1.1.1.3 christos ;
895 1.1.1.3 christos
896 1.1.1.3 christos EISAIDTerm
897 1.1.1.3 christos : PARSEOP_EISAID '('
898 1.1.1.3 christos StringData ')' {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
899 1.1.1.3 christos | PARSEOP_EISAID '('
900 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
901 1.1.1.3 christos ;
902 1.1.1.3 christos
903 1.1.1.3 christos ElseIfTerm
904 1.1.1.3 christos : IfTerm ElseTerm {$$ = TrLinkPeerNode ($1,$2);}
905 1.1.1.3 christos ;
906 1.1.1.3 christos
907 1.1.1.3 christos ElseTerm
908 1.1.1.3 christos : {$$ = NULL;}
909 1.1.1.3 christos | PARSEOP_ELSE '{' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
910 1.1.1.3 christos TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
911 1.1.1.3 christos
912 1.1.1.3 christos | PARSEOP_ELSE '{'
913 1.1.1.3 christos error '}' {$$ = AslDoError(); yyclearin;}
914 1.1.1.3 christos
915 1.1.1.3 christos | PARSEOP_ELSE
916 1.1.1.3 christos error {$$ = AslDoError(); yyclearin;}
917 1.1.1.3 christos
918 1.1.1.3 christos | PARSEOP_ELSEIF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
919 1.1.1.3 christos TermArg {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
920 1.1.1.3 christos ')' '{'
921 1.1.1.3 christos TermList '}' {TrLinkChildren ($<n>5,2,$4,$8);}
922 1.1.1.3 christos ElseTerm {TrLinkPeerNode ($<n>5,$11);}
923 1.1.1.3 christos {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
924 1.1.1.3 christos
925 1.1.1.3 christos | PARSEOP_ELSEIF '('
926 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
927 1.1.1.3 christos
928 1.1.1.3 christos | PARSEOP_ELSEIF
929 1.1.1.3 christos error {$$ = AslDoError(); yyclearin;}
930 1.1.1.3 christos ;
931 1.1.1.3 christos
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.3 christos ExternalTerm
941 1.1.1.3 christos : PARSEOP_EXTERNAL '('
942 1.1.1.3 christos NameString
943 1.1.1.3 christos OptionalObjectTypeKeyword
944 1.1.1.3 christos OptionalParameterTypePackage
945 1.1.1.3 christos OptionalParameterTypesPackage
946 1.1.1.3 christos ')' {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
947 1.1.1.3 christos | PARSEOP_EXTERNAL '('
948 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
949 1.1.1.3 christos ;
950 1.1.1.3 christos
951 1.1.1.3 christos FatalTerm
952 1.1.1.3 christos : PARSEOP_FATAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);}
953 1.1.1.3 christos ByteConstExpr
954 1.1.1.3 christos ',' DWordConstExpr
955 1.1.1.3 christos TermArgItem
956 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
957 1.1.1.3 christos | PARSEOP_FATAL '('
958 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
959 1.1.1.3 christos ;
960 1.1.1.3 christos
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.3 christos FindSetLeftBitTerm
974 1.1.1.3 christos : PARSEOP_FINDSETLEFTBIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
975 1.1.1.3 christos TermArg
976 1.1.1.3 christos Target
977 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
978 1.1.1.3 christos | PARSEOP_FINDSETLEFTBIT '('
979 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
980 1.1 christos ;
981 1.1 christos
982 1.1.1.3 christos FindSetRightBitTerm
983 1.1.1.3 christos : PARSEOP_FINDSETRIGHTBIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
984 1.1.1.3 christos TermArg
985 1.1.1.3 christos Target
986 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
987 1.1.1.3 christos | PARSEOP_FINDSETRIGHTBIT '('
988 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
989 1.1 christos ;
990 1.1 christos
991 1.1.1.4 christos /* Convert a For() loop to a While() loop */
992 1.1.1.4 christos ForTerm
993 1.1.1.4 christos : PARSEOP_FOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
994 1.1.1.4 christos OptionalTermArg ',' {}
995 1.1.1.4 christos OptionalPredicate ','
996 1.1.1.4 christos OptionalTermArg {$<n>$ = TrLinkPeerNode ($4,$<n>3);
997 1.1.1.4 christos TrSetParent ($9,$<n>3);} /* New parent is WHILE */
998 1.1.1.4 christos ')' '{' TermList '}' {$<n>$ = TrLinkChildren ($<n>3,2,$7,$13);}
999 1.1.1.4 christos {$<n>$ = TrLinkPeerNode ($13,$9);
1000 1.1.1.4 christos $$ = $<n>10;}
1001 1.1.1.4 christos ;
1002 1.1.1.4 christos
1003 1.1.1.4 christos OptionalPredicate
1004 1.1.1.4 christos : {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, 1);}
1005 1.1.1.4 christos | TermArg {$$ = $1;}
1006 1.1.1.4 christos ;
1007 1.1.1.4 christos
1008 1.1.1.3 christos FprintfTerm
1009 1.1.1.3 christos : PARSEOP_FPRINTF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FPRINTF);}
1010 1.1.1.3 christos TermArg ','
1011 1.1.1.3 christos StringData
1012 1.1.1.3 christos PrintfArgList
1013 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
1014 1.1.1.3 christos | PARSEOP_FPRINTF '('
1015 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1016 1.1 christos ;
1017 1.1 christos
1018 1.1.1.3 christos FromBCDTerm
1019 1.1.1.3 christos : PARSEOP_FROMBCD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
1020 1.1.1.3 christos TermArg
1021 1.1.1.3 christos Target
1022 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1023 1.1.1.3 christos | PARSEOP_FROMBCD '('
1024 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1025 1.1 christos ;
1026 1.1 christos
1027 1.1.1.3 christos FunctionTerm
1028 1.1.1.3 christos : PARSEOP_FUNCTION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
1029 1.1 christos NameString
1030 1.1.1.3 christos OptionalParameterTypePackage
1031 1.1.1.3 christos OptionalParameterTypesPackage
1032 1.1 christos ')' '{'
1033 1.1.1.3 christos TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
1034 1.1.1.3 christos TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
1035 1.1.1.3 christos TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
1036 1.1.1.3 christos TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
1037 1.1.1.3 christos | PARSEOP_FUNCTION '('
1038 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1039 1.1 christos ;
1040 1.1 christos
1041 1.1.1.3 christos IfTerm
1042 1.1.1.3 christos : PARSEOP_IF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
1043 1.1.1.3 christos TermArg
1044 1.1 christos ')' '{'
1045 1.1.1.3 christos TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1046 1.1 christos
1047 1.1.1.3 christos | PARSEOP_IF '('
1048 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1049 1.1 christos ;
1050 1.1 christos
1051 1.1.1.3 christos IncludeTerm
1052 1.1.1.3 christos : PARSEOP_INCLUDE '('
1053 1.1.1.3 christos String ')' {$$ = TrUpdateNode (PARSEOP_INCLUDE, $3);
1054 1.1.1.3 christos FlOpenIncludeFile ($3);}
1055 1.1.1.3 christos ;
1056 1.1 christos
1057 1.1.1.3 christos IncludeEndTerm
1058 1.1.1.3 christos : PARSEOP_INCLUDE_END {$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE_END); TrSetCurrentFilename ($$);}
1059 1.1.1.3 christos ;
1060 1.1 christos
1061 1.1.1.3 christos IncTerm
1062 1.1.1.3 christos : PARSEOP_INCREMENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
1063 1.1.1.3 christos SuperName
1064 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1065 1.1.1.3 christos | PARSEOP_INCREMENT '('
1066 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
1067 1.1.1.3 christos ;
1068 1.1 christos
1069 1.1.1.3 christos IndexFieldTerm
1070 1.1.1.3 christos : PARSEOP_INDEXFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
1071 1.1 christos NameString
1072 1.1 christos NameStringItem
1073 1.1.1.3 christos ',' AccessTypeKeyword
1074 1.1.1.3 christos ',' LockRuleKeyword
1075 1.1.1.3 christos ',' UpdateRuleKeyword
1076 1.1.1.3 christos ')' '{'
1077 1.1.1.3 christos FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
1078 1.1.1.3 christos | PARSEOP_INDEXFIELD '('
1079 1.1.1.3 christos error ')' '{' error '}' {$$ = AslDoError(); yyclearin;}
1080 1.1 christos ;
1081 1.1 christos
1082 1.1.1.3 christos IndexTerm
1083 1.1.1.3 christos : PARSEOP_INDEX '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);}
1084 1.1.1.3 christos TermArg
1085 1.1.1.3 christos TermArgItem
1086 1.1.1.3 christos Target
1087 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1088 1.1.1.3 christos | PARSEOP_INDEX '('
1089 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1090 1.1 christos ;
1091 1.1 christos
1092 1.1.1.3 christos LAndTerm
1093 1.1.1.3 christos : PARSEOP_LAND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
1094 1.1.1.3 christos TermArg
1095 1.1.1.3 christos TermArgItem
1096 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1097 1.1.1.3 christos | PARSEOP_LAND '('
1098 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1099 1.1 christos ;
1100 1.1 christos
1101 1.1.1.3 christos LEqualTerm
1102 1.1.1.3 christos : PARSEOP_LEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1103 1.1.1.3 christos TermArg
1104 1.1.1.3 christos TermArgItem
1105 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1106 1.1.1.3 christos | PARSEOP_LEQUAL '('
1107 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
1108 1.1 christos ;
1109 1.1 christos
1110 1.1.1.3 christos LGreaterEqualTerm
1111 1.1.1.3 christos : PARSEOP_LGREATEREQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
1112 1.1.1.3 christos TermArg
1113 1.1.1.3 christos TermArgItem
1114 1.1.1.3 christos ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1115 1.1.1.3 christos | PARSEOP_LGREATEREQUAL '('
1116 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
1117 1.1 christos ;
1118 1.1 christos
1119 1.1.1.3 christos LGreaterTerm
1120 1.1.1.3 christos : PARSEOP_LGREATER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1121 1.1.1.3 christos TermArg
1122 1.1.1.3 christos TermArgItem
1123 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1124 1.1.1.3 christos | PARSEOP_LGREATER '('
1125 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
1126 1.1 christos ;
1127 1.1 christos
1128 1.1.1.3 christos LLessEqualTerm
1129 1.1.1.3 christos : PARSEOP_LLESSEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
1130 1.1.1.3 christos TermArg
1131 1.1 christos TermArgItem
1132 1.1.1.3 christos ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1133 1.1.1.3 christos | PARSEOP_LLESSEQUAL '('
1134 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1135 1.1 christos ;
1136 1.1 christos
1137 1.1.1.3 christos LLessTerm
1138 1.1.1.3 christos : PARSEOP_LLESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
1139 1.1.1.3 christos TermArg
1140 1.1.1.3 christos TermArgItem
1141 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1142 1.1.1.3 christos | PARSEOP_LLESS '('
1143 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
1144 1.1 christos ;
1145 1.1 christos
1146 1.1.1.3 christos LNotEqualTerm
1147 1.1.1.3 christos : PARSEOP_LNOTEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
1148 1.1 christos TermArg
1149 1.1.1.3 christos TermArgItem
1150 1.1.1.3 christos ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
1151 1.1.1.3 christos | PARSEOP_LNOTEQUAL '('
1152 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1153 1.1 christos ;
1154 1.1 christos
1155 1.1.1.3 christos LNotTerm
1156 1.1.1.3 christos : PARSEOP_LNOT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
1157 1.1.1.3 christos TermArg
1158 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1159 1.1.1.3 christos | PARSEOP_LNOT '('
1160 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1161 1.1.1.3 christos ;
1162 1.1 christos
1163 1.1.1.3 christos LoadTableTerm
1164 1.1.1.3 christos : PARSEOP_LOADTABLE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
1165 1.1.1.3 christos TermArg
1166 1.1.1.3 christos TermArgItem
1167 1.1.1.3 christos TermArgItem
1168 1.1.1.3 christos OptionalListString
1169 1.1.1.3 christos OptionalListString
1170 1.1.1.3 christos OptionalReference
1171 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
1172 1.1.1.3 christos | PARSEOP_LOADTABLE '('
1173 1.1.1.3 christos 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.3 christos LocalTerm
1186 1.1.1.3 christos : PARSEOP_LOCAL0 {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
1187 1.1.1.3 christos | PARSEOP_LOCAL1 {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
1188 1.1.1.3 christos | PARSEOP_LOCAL2 {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
1189 1.1.1.3 christos | PARSEOP_LOCAL3 {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
1190 1.1.1.3 christos | PARSEOP_LOCAL4 {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
1191 1.1.1.3 christos | PARSEOP_LOCAL5 {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
1192 1.1.1.3 christos | PARSEOP_LOCAL6 {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
1193 1.1.1.3 christos | PARSEOP_LOCAL7 {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
1194 1.1 christos ;
1195 1.1 christos
1196 1.1.1.3 christos LOrTerm
1197 1.1.1.3 christos : PARSEOP_LOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
1198 1.1.1.3 christos TermArg
1199 1.1 christos TermArgItem
1200 1.1 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1201 1.1.1.3 christos | PARSEOP_LOR '('
1202 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1203 1.1 christos ;
1204 1.1 christos
1205 1.1.1.3 christos MatchTerm
1206 1.1.1.3 christos : PARSEOP_MATCH '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);}
1207 1.1 christos TermArg
1208 1.1.1.3 christos ',' MatchOpKeyword
1209 1.1.1.3 christos TermArgItem
1210 1.1.1.3 christos ',' MatchOpKeyword
1211 1.1.1.3 christos TermArgItem
1212 1.1.1.3 christos TermArgItem
1213 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
1214 1.1.1.3 christos | PARSEOP_MATCH '('
1215 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1216 1.1 christos ;
1217 1.1 christos
1218 1.1.1.3 christos MethodTerm
1219 1.1.1.3 christos : PARSEOP_METHOD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
1220 1.1.1.3 christos NameString
1221 1.1.1.3 christos OptionalByteConstExpr {UtCheckIntegerRange ($5, 0, 7);}
1222 1.1.1.3 christos OptionalSerializeRuleKeyword
1223 1.1.1.3 christos OptionalByteConstExpr
1224 1.1.1.3 christos OptionalParameterTypePackage
1225 1.1.1.3 christos OptionalParameterTypesPackage
1226 1.1 christos ')' '{'
1227 1.1.1.3 christos TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);}
1228 1.1.1.3 christos | PARSEOP_METHOD '('
1229 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1230 1.1 christos ;
1231 1.1 christos
1232 1.1.1.3 christos MidTerm
1233 1.1.1.3 christos : 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.3 christos ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
1239 1.1.1.3 christos | PARSEOP_MID '('
1240 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1241 1.1 christos ;
1242 1.1 christos
1243 1.1.1.3 christos ModTerm
1244 1.1.1.3 christos : 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.3 christos | PARSEOP_MOD '('
1250 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1251 1.1 christos ;
1252 1.1 christos
1253 1.1.1.3 christos MultiplyTerm
1254 1.1.1.3 christos : 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.3 christos | PARSEOP_MULTIPLY '('
1260 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1261 1.1 christos ;
1262 1.1 christos
1263 1.1.1.3 christos MutexTerm
1264 1.1.1.3 christos : PARSEOP_MUTEX '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);}
1265 1.1.1.3 christos NameString
1266 1.1.1.3 christos ',' ByteConstExpr
1267 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
1268 1.1.1.3 christos | PARSEOP_MUTEX '('
1269 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1270 1.1 christos ;
1271 1.1 christos
1272 1.1.1.3 christos NameTerm
1273 1.1.1.3 christos : PARSEOP_NAME '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);}
1274 1.1.1.3 christos NameString
1275 1.1.1.3 christos ',' DataObject
1276 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
1277 1.1.1.3 christos | PARSEOP_NAME '('
1278 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1279 1.1 christos ;
1280 1.1 christos
1281 1.1.1.3 christos NAndTerm
1282 1.1.1.3 christos : 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.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1287 1.1.1.3 christos | PARSEOP_NAND '('
1288 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1289 1.1 christos ;
1290 1.1 christos
1291 1.1.1.3 christos NoOpTerm
1292 1.1.1.3 christos : PARSEOP_NOOP {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
1293 1.1 christos ;
1294 1.1 christos
1295 1.1.1.3 christos NOrTerm
1296 1.1.1.3 christos : PARSEOP_NOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOR);}
1297 1.1 christos TermArg
1298 1.1.1.3 christos TermArgItem
1299 1.1 christos Target
1300 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1301 1.1.1.3 christos | PARSEOP_NOR '('
1302 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1303 1.1 christos ;
1304 1.1 christos
1305 1.1.1.3 christos NotifyTerm
1306 1.1.1.3 christos : PARSEOP_NOTIFY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
1307 1.1 christos SuperName
1308 1.1 christos TermArgItem
1309 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1310 1.1.1.3 christos | PARSEOP_NOTIFY '('
1311 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
1312 1.1 christos ;
1313 1.1 christos
1314 1.1.1.3 christos NotTerm
1315 1.1.1.3 christos : PARSEOP_NOT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
1316 1.1.1.3 christos TermArg
1317 1.1.1.3 christos Target
1318 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1319 1.1.1.3 christos | PARSEOP_NOT '('
1320 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1321 1.1 christos ;
1322 1.1 christos
1323 1.1.1.3 christos ObjectTypeTerm
1324 1.1.1.3 christos : PARSEOP_OBJECTTYPE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
1325 1.1.1.3 christos ObjectTypeName
1326 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1327 1.1.1.3 christos | PARSEOP_OBJECTTYPE '('
1328 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
1329 1.1 christos ;
1330 1.1 christos
1331 1.1.1.3 christos OffsetTerm
1332 1.1.1.3 christos : PARSEOP_OFFSET '('
1333 1.1.1.3 christos AmlPackageLengthTerm
1334 1.1.1.3 christos ')' {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
1335 1.1.1.3 christos | PARSEOP_OFFSET '('
1336 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
1337 1.1 christos ;
1338 1.1 christos
1339 1.1.1.3 christos OpRegionTerm
1340 1.1.1.3 christos : PARSEOP_OPERATIONREGION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
1341 1.1.1.3 christos NameString
1342 1.1.1.3 christos ',' OpRegionSpaceIdTerm
1343 1.1.1.3 christos TermArgItem
1344 1.1.1.3 christos TermArgItem
1345 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);}
1346 1.1.1.3 christos | PARSEOP_OPERATIONREGION '('
1347 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1348 1.1 christos ;
1349 1.1 christos
1350 1.1.1.3 christos OpRegionSpaceIdTerm
1351 1.1.1.3 christos : RegionSpaceKeyword {}
1352 1.1.1.3 christos | ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
1353 1.1.1.3 christos ;
1354 1.1.1.3 christos
1355 1.1.1.3 christos OrTerm
1356 1.1.1.3 christos : PARSEOP_OR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
1357 1.1.1.3 christos TermArg
1358 1.1.1.3 christos TermArgItem
1359 1.1.1.3 christos Target
1360 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1361 1.1.1.3 christos | PARSEOP_OR '('
1362 1.1.1.3 christos 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.3 christos PowerResTerm
1375 1.1.1.3 christos : PARSEOP_POWERRESOURCE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
1376 1.1.1.3 christos NameString
1377 1.1.1.3 christos ',' ByteConstExpr
1378 1.1.1.3 christos ',' WordConstExpr
1379 1.1.1.3 christos ')' '{'
1380 1.1.1.4 christos TermList '}' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);}
1381 1.1.1.3 christos | PARSEOP_POWERRESOURCE '('
1382 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1383 1.1 christos ;
1384 1.1 christos
1385 1.1.1.3 christos PrintfTerm
1386 1.1.1.3 christos : PARSEOP_PRINTF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);}
1387 1.1 christos StringData
1388 1.1.1.3 christos PrintfArgList
1389 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1390 1.1.1.3 christos | PARSEOP_PRINTF '('
1391 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1392 1.1 christos ;
1393 1.1 christos
1394 1.1.1.3 christos PrintfArgList
1395 1.1 christos : {$$ = NULL;}
1396 1.1.1.3 christos | TermArg {$$ = $1;}
1397 1.1.1.3 christos | PrintfArgList ','
1398 1.1.1.3 christos TermArg {$$ = TrLinkPeerNode ($1, $3);}
1399 1.1 christos ;
1400 1.1 christos
1401 1.1.1.3 christos ProcessorTerm
1402 1.1.1.3 christos : PARSEOP_PROCESSOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
1403 1.1.1.3 christos NameString
1404 1.1.1.3 christos ',' ByteConstExpr
1405 1.1.1.3 christos OptionalDWordConstExpr
1406 1.1.1.3 christos OptionalByteConstExpr
1407 1.1 christos ')' '{'
1408 1.1.1.4 christos TermList '}' {$$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);}
1409 1.1.1.3 christos | PARSEOP_PROCESSOR '('
1410 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1411 1.1 christos ;
1412 1.1 christos
1413 1.1.1.3 christos RawDataBufferTerm
1414 1.1.1.3 christos : PARSEOP_DATABUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);}
1415 1.1.1.3 christos OptionalWordConst
1416 1.1.1.3 christos ')' '{'
1417 1.1.1.3 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1418 1.1.1.3 christos | PARSEOP_DATABUFFER '('
1419 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1420 1.1 christos ;
1421 1.1 christos
1422 1.1.1.3 christos /*
1423 1.1.1.3 christos * In RefOf, the node isn't really a target, but we can't keep track of it after
1424 1.1.1.3 christos * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
1425 1.1.1.3 christos */
1426 1.1.1.3 christos RefOfTerm
1427 1.1.1.3 christos : PARSEOP_REFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);}
1428 1.1.1.3 christos SuperName
1429 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
1430 1.1.1.3 christos | PARSEOP_REFOF '('
1431 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1432 1.1 christos ;
1433 1.1 christos
1434 1.1.1.3 christos ReleaseTerm
1435 1.1.1.3 christos : PARSEOP_RELEASE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);}
1436 1.1.1.3 christos SuperName
1437 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1438 1.1.1.3 christos | PARSEOP_RELEASE '('
1439 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1440 1.1 christos ;
1441 1.1 christos
1442 1.1.1.3 christos ResetTerm
1443 1.1.1.3 christos : PARSEOP_RESET '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);}
1444 1.1.1.3 christos SuperName
1445 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1446 1.1.1.3 christos | PARSEOP_RESET '('
1447 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1448 1.1 christos ;
1449 1.1 christos
1450 1.1.1.3 christos ReturnTerm
1451 1.1.1.3 christos : PARSEOP_RETURN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);}
1452 1.1.1.3 christos OptionalReturnArg
1453 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1454 1.1.1.3 christos | PARSEOP_RETURN {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN));}
1455 1.1.1.3 christos | PARSEOP_RETURN '('
1456 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1457 1.1 christos ;
1458 1.1 christos
1459 1.1.1.3 christos ScopeTerm
1460 1.1.1.3 christos : PARSEOP_SCOPE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);}
1461 1.1.1.3 christos NameString
1462 1.1 christos ')' '{'
1463 1.1.1.4 christos TermList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1464 1.1.1.3 christos | PARSEOP_SCOPE '('
1465 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1466 1.1 christos ;
1467 1.1 christos
1468 1.1.1.3 christos ShiftLeftTerm
1469 1.1.1.3 christos : PARSEOP_SHIFTLEFT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
1470 1.1.1.3 christos TermArg
1471 1.1.1.3 christos TermArgItem
1472 1.1.1.3 christos Target
1473 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1474 1.1.1.3 christos | PARSEOP_SHIFTLEFT '('
1475 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1476 1.1 christos ;
1477 1.1 christos
1478 1.1.1.3 christos ShiftRightTerm
1479 1.1.1.3 christos : PARSEOP_SHIFTRIGHT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
1480 1.1.1.3 christos TermArg
1481 1.1.1.3 christos TermArgItem
1482 1.1.1.3 christos Target
1483 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1484 1.1.1.3 christos | PARSEOP_SHIFTRIGHT '('
1485 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1486 1.1 christos ;
1487 1.1 christos
1488 1.1.1.3 christos SignalTerm
1489 1.1.1.3 christos : PARSEOP_SIGNAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
1490 1.1.1.3 christos SuperName
1491 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1492 1.1.1.3 christos | PARSEOP_SIGNAL '('
1493 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1494 1.1 christos ;
1495 1.1 christos
1496 1.1.1.3 christos SizeOfTerm
1497 1.1.1.3 christos : PARSEOP_SIZEOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
1498 1.1.1.3 christos SuperName
1499 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1500 1.1.1.3 christos | PARSEOP_SIZEOF '('
1501 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1502 1.1 christos ;
1503 1.1 christos
1504 1.1.1.3 christos SleepTerm
1505 1.1.1.3 christos : PARSEOP_SLEEP '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);}
1506 1.1.1.3 christos TermArg
1507 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1508 1.1.1.3 christos | PARSEOP_SLEEP '('
1509 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1510 1.1 christos ;
1511 1.1 christos
1512 1.1.1.3 christos StallTerm
1513 1.1.1.3 christos : PARSEOP_STALL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);}
1514 1.1.1.3 christos TermArg
1515 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1516 1.1.1.3 christos | PARSEOP_STALL '('
1517 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1518 1.1 christos ;
1519 1.1 christos
1520 1.1.1.3 christos StoreTerm
1521 1.1.1.3 christos : PARSEOP_STORE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);}
1522 1.1.1.3 christos TermArg
1523 1.1.1.3 christos ',' SuperName
1524 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
1525 1.1.1.3 christos | PARSEOP_STORE '('
1526 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1527 1.1 christos ;
1528 1.1 christos
1529 1.1.1.3 christos SubtractTerm
1530 1.1.1.3 christos : PARSEOP_SUBTRACT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
1531 1.1.1.3 christos TermArg
1532 1.1.1.3 christos TermArgItem
1533 1.1.1.3 christos Target
1534 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1535 1.1.1.3 christos | PARSEOP_SUBTRACT '('
1536 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
1537 1.1.1.3 christos ;
1538 1.1.1.3 christos SwitchTerm
1539 1.1.1.3 christos : PARSEOP_SWITCH '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);}
1540 1.1.1.3 christos TermArg
1541 1.1.1.3 christos ')' '{'
1542 1.1.1.3 christos CaseDefaultTermList '}'
1543 1.1.1.3 christos {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1544 1.1.1.3 christos | PARSEOP_SWITCH '('
1545 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1546 1.1 christos ;
1547 1.1 christos
1548 1.1.1.3 christos ThermalZoneTerm
1549 1.1.1.3 christos : PARSEOP_THERMALZONE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
1550 1.1.1.3 christos NameString
1551 1.1.1.3 christos ')' '{'
1552 1.1.1.4 christos TermList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1553 1.1.1.3 christos | PARSEOP_THERMALZONE '('
1554 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1555 1.1 christos ;
1556 1.1 christos
1557 1.1.1.3 christos TimerTerm
1558 1.1.1.3 christos : PARSEOP_TIMER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);}
1559 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,0);}
1560 1.1.1.3 christos | PARSEOP_TIMER {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);}
1561 1.1.1.3 christos | PARSEOP_TIMER '('
1562 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1563 1.1 christos ;
1564 1.1 christos
1565 1.1.1.3 christos ToBCDTerm
1566 1.1.1.3 christos : PARSEOP_TOBCD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);}
1567 1.1.1.3 christos TermArg
1568 1.1.1.3 christos Target
1569 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1570 1.1.1.3 christos | PARSEOP_TOBCD '('
1571 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1572 1.1 christos ;
1573 1.1 christos
1574 1.1.1.3 christos ToBufferTerm
1575 1.1.1.3 christos : PARSEOP_TOBUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
1576 1.1.1.3 christos TermArg
1577 1.1.1.3 christos Target
1578 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1579 1.1.1.3 christos | PARSEOP_TOBUFFER '('
1580 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1581 1.1 christos ;
1582 1.1 christos
1583 1.1.1.3 christos ToDecimalStringTerm
1584 1.1.1.3 christos : PARSEOP_TODECIMALSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
1585 1.1.1.3 christos TermArg
1586 1.1.1.3 christos Target
1587 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1588 1.1.1.3 christos | PARSEOP_TODECIMALSTRING '('
1589 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1590 1.1 christos ;
1591 1.1 christos
1592 1.1.1.3 christos ToHexStringTerm
1593 1.1.1.3 christos : PARSEOP_TOHEXSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
1594 1.1.1.3 christos TermArg
1595 1.1.1.3 christos Target
1596 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1597 1.1.1.3 christos | PARSEOP_TOHEXSTRING '('
1598 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1599 1.1 christos ;
1600 1.1 christos
1601 1.1.1.3 christos ToIntegerTerm
1602 1.1.1.3 christos : PARSEOP_TOINTEGER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
1603 1.1.1.3 christos TermArg
1604 1.1.1.3 christos Target
1605 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1606 1.1.1.3 christos | PARSEOP_TOINTEGER '('
1607 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1608 1.1 christos ;
1609 1.1 christos
1610 1.1.1.3 christos ToPLDTerm
1611 1.1.1.3 christos : PARSEOP_TOPLD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);}
1612 1.1.1.3 christos PldKeywordList
1613 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1614 1.1.1.3 christos | PARSEOP_TOPLD '('
1615 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1616 1.1 christos ;
1617 1.1 christos
1618 1.1.1.3 christos PldKeywordList
1619 1.1.1.3 christos : {$$ = NULL;}
1620 1.1.1.3 christos | PldKeyword
1621 1.1.1.3 christos PARSEOP_EXP_EQUALS Integer {$$ = TrLinkChildren ($1,1,$3);}
1622 1.1.1.3 christos | PldKeyword
1623 1.1.1.3 christos PARSEOP_EXP_EQUALS String {$$ = TrLinkChildren ($1,1,$3);}
1624 1.1.1.3 christos | PldKeywordList ',' /* Allows a trailing comma at list end */
1625 1.1.1.3 christos | PldKeywordList ','
1626 1.1.1.3 christos PldKeyword
1627 1.1.1.3 christos PARSEOP_EXP_EQUALS Integer {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
1628 1.1.1.3 christos | PldKeywordList ','
1629 1.1.1.3 christos PldKeyword
1630 1.1.1.3 christos PARSEOP_EXP_EQUALS String {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
1631 1.1 christos ;
1632 1.1 christos
1633 1.1.1.3 christos
1634 1.1.1.3 christos ToStringTerm
1635 1.1.1.3 christos : PARSEOP_TOSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
1636 1.1.1.3 christos TermArg
1637 1.1.1.3 christos OptionalCount
1638 1.1.1.3 christos Target
1639 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1640 1.1.1.3 christos | PARSEOP_TOSTRING '('
1641 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1642 1.1 christos ;
1643 1.1 christos
1644 1.1.1.3 christos ToUUIDTerm
1645 1.1.1.3 christos : PARSEOP_TOUUID '('
1646 1.1.1.3 christos StringData ')' {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
1647 1.1.1.3 christos | PARSEOP_TOUUID '('
1648 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1649 1.1 christos ;
1650 1.1 christos
1651 1.1.1.3 christos UnicodeTerm
1652 1.1.1.3 christos : PARSEOP_UNICODE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);}
1653 1.1.1.3 christos StringData
1654 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,0,$4);}
1655 1.1.1.3 christos | PARSEOP_UNICODE '('
1656 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1657 1.1 christos ;
1658 1.1 christos
1659 1.1.1.3 christos UnloadTerm
1660 1.1.1.3 christos : PARSEOP_UNLOAD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
1661 1.1.1.3 christos SuperName
1662 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,1,$4);}
1663 1.1.1.3 christos | PARSEOP_UNLOAD '('
1664 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1665 1.1 christos ;
1666 1.1 christos
1667 1.1.1.3 christos WaitTerm
1668 1.1.1.3 christos : PARSEOP_WAIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);}
1669 1.1.1.3 christos SuperName
1670 1.1.1.3 christos TermArgItem
1671 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1672 1.1.1.3 christos | PARSEOP_WAIT '('
1673 1.1 christos error ')' {$$ = AslDoError(); yyclearin;}
1674 1.1 christos ;
1675 1.1 christos
1676 1.1.1.3 christos XOrTerm
1677 1.1.1.3 christos : PARSEOP_XOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
1678 1.1.1.3 christos TermArg
1679 1.1.1.3 christos TermArgItem
1680 1.1.1.3 christos Target
1681 1.1.1.3 christos ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1682 1.1.1.3 christos | PARSEOP_XOR '('
1683 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
1684 1.1 christos ;
1685 1.1 christos
1686 1.1.1.3 christos WhileTerm
1687 1.1.1.3 christos : PARSEOP_WHILE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
1688 1.1.1.3 christos TermArg
1689 1.1.1.3 christos ')' '{' TermList '}'
1690 1.1.1.3 christos {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1691 1.1.1.3 christos | PARSEOP_WHILE '('
1692 1.1.1.3 christos error ')' {$$ = AslDoError(); yyclearin;}
1693 1.1 christos ;
1694 1.1 christos
1695 1.1 christos
1696 1.1.1.3 christos /*******************************************************************************
1697 1.1.1.3 christos *
1698 1.1.1.3 christos * ASL Helper Terms
1699 1.1.1.3 christos *
1700 1.1.1.3 christos ******************************************************************************/
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.4 christos : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
1735 1.1.1.4 christos | TermArg {$$ = $1;}
1736 1.1.1.4 christos ;
1737 1.1.1.4 christos
1738 1.1.1.4 christos 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