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