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