aslprimaries.y revision 1.1.1.2 1 1.1 christos NoEcho('
2 1.1 christos /******************************************************************************
3 1.1 christos *
4 1.1 christos * Module Name: aslprimaries.y - Rules for primary ASL operators
5 1.1 christos *
6 1.1 christos *****************************************************************************/
7 1.1 christos
8 1.1 christos /*
9 1.1.1.2 christos * Copyright (C) 2000 - 2017, 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 christos *
50 1.1 christos * ASL Primary Terms
51 1.1 christos *
52 1.1 christos ******************************************************************************/
53 1.1 christos
54 1.1 christos AccessAsTerm
55 1.1.1.2 christos : PARSEOP_ACCESSAS
56 1.1.1.2 christos PARSEOP_OPEN_PAREN
57 1.1 christos AccessTypeKeyword
58 1.1 christos OptionalAccessAttribTerm
59 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
60 1.1.1.2 christos | PARSEOP_ACCESSAS
61 1.1.1.2 christos PARSEOP_OPEN_PAREN
62 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
63 1.1 christos ;
64 1.1 christos
65 1.1 christos AcquireTerm
66 1.1.1.2 christos : PARSEOP_ACQUIRE
67 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
68 1.1 christos SuperName
69 1.1 christos ',' WordConstExpr
70 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
71 1.1.1.2 christos | PARSEOP_ACQUIRE
72 1.1.1.2 christos PARSEOP_OPEN_PAREN
73 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
74 1.1 christos ;
75 1.1 christos
76 1.1 christos AddTerm
77 1.1.1.2 christos : PARSEOP_ADD
78 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
79 1.1 christos TermArg
80 1.1 christos TermArgItem
81 1.1 christos Target
82 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
83 1.1.1.2 christos | PARSEOP_ADD
84 1.1.1.2 christos PARSEOP_OPEN_PAREN
85 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
86 1.1 christos ;
87 1.1 christos
88 1.1 christos AliasTerm
89 1.1.1.2 christos : PARSEOP_ALIAS
90 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);}
91 1.1 christos NameString
92 1.1 christos NameStringItem
93 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,
94 1.1 christos TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
95 1.1.1.2 christos | PARSEOP_ALIAS
96 1.1.1.2 christos PARSEOP_OPEN_PAREN
97 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
98 1.1 christos ;
99 1.1 christos
100 1.1 christos AndTerm
101 1.1.1.2 christos : PARSEOP_AND
102 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
103 1.1 christos TermArg
104 1.1 christos TermArgItem
105 1.1 christos Target
106 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
107 1.1.1.2 christos | PARSEOP_AND
108 1.1.1.2 christos PARSEOP_OPEN_PAREN
109 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
110 1.1 christos ;
111 1.1 christos
112 1.1 christos ArgTerm
113 1.1 christos : PARSEOP_ARG0 {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
114 1.1 christos | PARSEOP_ARG1 {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
115 1.1 christos | PARSEOP_ARG2 {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
116 1.1 christos | PARSEOP_ARG3 {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
117 1.1 christos | PARSEOP_ARG4 {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
118 1.1 christos | PARSEOP_ARG5 {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
119 1.1 christos | PARSEOP_ARG6 {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
120 1.1 christos ;
121 1.1 christos
122 1.1 christos BankFieldTerm
123 1.1.1.2 christos : PARSEOP_BANKFIELD
124 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
125 1.1 christos NameString
126 1.1 christos NameStringItem
127 1.1 christos TermArgItem
128 1.1 christos ',' AccessTypeKeyword
129 1.1 christos ',' LockRuleKeyword
130 1.1 christos ',' UpdateRuleKeyword
131 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
132 1.1 christos FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,7,
133 1.1 christos $4,$5,$6,$8,$10,$12,$15);}
134 1.1.1.2 christos | PARSEOP_BANKFIELD
135 1.1.1.2 christos PARSEOP_OPEN_PAREN
136 1.1.1.2 christos error PARSEOP_CLOSE_PAREN
137 1.1.1.2 christos '{' error '}' {$$ = AslDoError(); yyclearin;}
138 1.1 christos ;
139 1.1 christos
140 1.1 christos BreakTerm
141 1.1 christos : PARSEOP_BREAK {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
142 1.1 christos ;
143 1.1 christos
144 1.1 christos BreakPointTerm
145 1.1 christos : PARSEOP_BREAKPOINT {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
146 1.1 christos ;
147 1.1 christos
148 1.1 christos BufferTerm
149 1.1 christos : PARSEOP_BUFFER {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);}
150 1.1 christos OptionalDataCount
151 1.1 christos '{' BufferTermData '}' {$$ = TrLinkChildren ($<n>2,2,$3,$5);}
152 1.1 christos ;
153 1.1 christos
154 1.1 christos BufferTermData
155 1.1 christos : ByteList {}
156 1.1 christos | StringData {}
157 1.1 christos ;
158 1.1 christos
159 1.1 christos CaseTerm
160 1.1.1.2 christos : PARSEOP_CASE
161 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);}
162 1.1 christos DataObject
163 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
164 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
165 1.1.1.2 christos | PARSEOP_CASE
166 1.1.1.2 christos PARSEOP_OPEN_PAREN
167 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
168 1.1 christos ;
169 1.1 christos
170 1.1 christos ConcatTerm
171 1.1.1.2 christos : PARSEOP_CONCATENATE
172 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
173 1.1 christos TermArg
174 1.1 christos TermArgItem
175 1.1 christos Target
176 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
177 1.1.1.2 christos | PARSEOP_CONCATENATE
178 1.1.1.2 christos PARSEOP_OPEN_PAREN
179 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
180 1.1 christos ;
181 1.1 christos
182 1.1 christos ConcatResTerm
183 1.1.1.2 christos : PARSEOP_CONCATENATERESTEMPLATE
184 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (
185 1.1.1.2 christos PARSEOP_CONCATENATERESTEMPLATE);}
186 1.1 christos TermArg
187 1.1 christos TermArgItem
188 1.1 christos Target
189 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
190 1.1.1.2 christos | PARSEOP_CONCATENATERESTEMPLATE
191 1.1.1.2 christos PARSEOP_OPEN_PAREN
192 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
193 1.1.1.2 christos ;
194 1.1.1.2 christos
195 1.1.1.2 christos CondRefOfTerm
196 1.1.1.2 christos : PARSEOP_CONDREFOF
197 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
198 1.1.1.2 christos CondRefOfSource
199 1.1.1.2 christos Target
200 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
201 1.1.1.2 christos | PARSEOP_CONDREFOF
202 1.1.1.2 christos PARSEOP_OPEN_PAREN
203 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
204 1.1 christos ;
205 1.1 christos
206 1.1 christos ConnectionTerm
207 1.1.1.2 christos : PARSEOP_CONNECTION
208 1.1.1.2 christos PARSEOP_OPEN_PAREN
209 1.1 christos NameString
210 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);}
211 1.1.1.2 christos | PARSEOP_CONNECTION
212 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_CONNECTION);}
213 1.1 christos ResourceMacroTerm
214 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3, 1,
215 1.1 christos TrLinkChildren (
216 1.1 christos TrCreateLeafNode (PARSEOP_RESOURCETEMPLATE), 3,
217 1.1 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
218 1.1 christos TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
219 1.1 christos $4));}
220 1.1.1.2 christos | PARSEOP_CONNECTION
221 1.1.1.2 christos PARSEOP_OPEN_PAREN
222 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
223 1.1 christos ;
224 1.1 christos
225 1.1 christos ContinueTerm
226 1.1 christos : PARSEOP_CONTINUE {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
227 1.1 christos ;
228 1.1 christos
229 1.1 christos CopyObjectTerm
230 1.1.1.2 christos : PARSEOP_COPYOBJECT
231 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
232 1.1 christos TermArg
233 1.1.1.2 christos ',' SimpleName
234 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,
235 1.1 christos TrSetNodeFlags ($6, NODE_IS_TARGET));}
236 1.1.1.2 christos | PARSEOP_COPYOBJECT
237 1.1.1.2 christos PARSEOP_OPEN_PAREN
238 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
239 1.1 christos ;
240 1.1 christos
241 1.1 christos CreateBitFieldTerm
242 1.1.1.2 christos : PARSEOP_CREATEBITFIELD
243 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
244 1.1 christos TermArg
245 1.1 christos TermArgItem
246 1.1 christos NameStringItem
247 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,
248 1.1 christos TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
249 1.1.1.2 christos | PARSEOP_CREATEBITFIELD
250 1.1.1.2 christos PARSEOP_OPEN_PAREN
251 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
252 1.1 christos ;
253 1.1 christos
254 1.1 christos CreateByteFieldTerm
255 1.1.1.2 christos : PARSEOP_CREATEBYTEFIELD
256 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
257 1.1 christos TermArg
258 1.1 christos TermArgItem
259 1.1 christos NameStringItem
260 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,
261 1.1 christos TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
262 1.1.1.2 christos | PARSEOP_CREATEBYTEFIELD
263 1.1.1.2 christos PARSEOP_OPEN_PAREN
264 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
265 1.1 christos ;
266 1.1 christos
267 1.1 christos CreateDWordFieldTerm
268 1.1.1.2 christos : PARSEOP_CREATEDWORDFIELD
269 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
270 1.1 christos TermArg
271 1.1 christos TermArgItem
272 1.1 christos NameStringItem
273 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,
274 1.1 christos TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
275 1.1.1.2 christos | PARSEOP_CREATEDWORDFIELD
276 1.1.1.2 christos PARSEOP_OPEN_PAREN
277 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
278 1.1 christos ;
279 1.1 christos
280 1.1 christos CreateFieldTerm
281 1.1.1.2 christos : PARSEOP_CREATEFIELD
282 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
283 1.1 christos TermArg
284 1.1 christos TermArgItem
285 1.1 christos TermArgItem
286 1.1 christos NameStringItem
287 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,
288 1.1 christos TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
289 1.1.1.2 christos | PARSEOP_CREATEFIELD
290 1.1.1.2 christos PARSEOP_OPEN_PAREN
291 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
292 1.1 christos ;
293 1.1 christos
294 1.1 christos CreateQWordFieldTerm
295 1.1.1.2 christos : PARSEOP_CREATEQWORDFIELD
296 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
297 1.1 christos TermArg
298 1.1 christos TermArgItem
299 1.1 christos NameStringItem
300 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,
301 1.1 christos TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
302 1.1.1.2 christos | PARSEOP_CREATEQWORDFIELD
303 1.1.1.2 christos PARSEOP_OPEN_PAREN
304 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
305 1.1 christos ;
306 1.1 christos
307 1.1 christos CreateWordFieldTerm
308 1.1.1.2 christos : PARSEOP_CREATEWORDFIELD
309 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
310 1.1 christos TermArg
311 1.1 christos TermArgItem
312 1.1 christos NameStringItem
313 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,
314 1.1 christos TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
315 1.1.1.2 christos | PARSEOP_CREATEWORDFIELD
316 1.1.1.2 christos PARSEOP_OPEN_PAREN
317 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
318 1.1 christos ;
319 1.1 christos
320 1.1 christos DataRegionTerm
321 1.1.1.2 christos : PARSEOP_DATATABLEREGION
322 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
323 1.1 christos NameString
324 1.1 christos TermArgItem
325 1.1 christos TermArgItem
326 1.1 christos TermArgItem
327 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,4,
328 1.1 christos TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
329 1.1.1.2 christos | PARSEOP_DATATABLEREGION
330 1.1.1.2 christos PARSEOP_OPEN_PAREN
331 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
332 1.1 christos ;
333 1.1 christos
334 1.1 christos DebugTerm
335 1.1 christos : PARSEOP_DEBUG {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
336 1.1 christos ;
337 1.1 christos
338 1.1 christos DecTerm
339 1.1.1.2 christos : PARSEOP_DECREMENT
340 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
341 1.1 christos SuperName
342 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
343 1.1.1.2 christos | PARSEOP_DECREMENT
344 1.1.1.2 christos PARSEOP_OPEN_PAREN
345 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
346 1.1 christos ;
347 1.1 christos
348 1.1 christos DefaultTerm
349 1.1 christos : PARSEOP_DEFAULT '{' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
350 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
351 1.1 christos | PARSEOP_DEFAULT '{'
352 1.1 christos error '}' {$$ = AslDoError(); yyclearin;}
353 1.1 christos ;
354 1.1 christos
355 1.1 christos DerefOfTerm
356 1.1.1.2 christos : PARSEOP_DEREFOF
357 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
358 1.1.1.2 christos DerefOfSource
359 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
360 1.1.1.2 christos | PARSEOP_DEREFOF
361 1.1.1.2 christos PARSEOP_OPEN_PAREN
362 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
363 1.1 christos ;
364 1.1 christos
365 1.1 christos DeviceTerm
366 1.1.1.2 christos : PARSEOP_DEVICE
367 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);}
368 1.1 christos NameString
369 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
370 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,2,
371 1.1 christos TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
372 1.1.1.2 christos | PARSEOP_DEVICE
373 1.1.1.2 christos PARSEOP_OPEN_PAREN
374 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
375 1.1 christos ;
376 1.1 christos
377 1.1 christos DivideTerm
378 1.1.1.2 christos : PARSEOP_DIVIDE
379 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
380 1.1 christos TermArg
381 1.1 christos TermArgItem
382 1.1 christos Target
383 1.1 christos Target
384 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
385 1.1.1.2 christos | PARSEOP_DIVIDE
386 1.1.1.2 christos PARSEOP_OPEN_PAREN
387 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
388 1.1 christos ;
389 1.1 christos
390 1.1 christos EISAIDTerm
391 1.1.1.2 christos : PARSEOP_EISAID
392 1.1.1.2 christos PARSEOP_OPEN_PAREN
393 1.1.1.2 christos StringData
394 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
395 1.1.1.2 christos | PARSEOP_EISAID
396 1.1.1.2 christos PARSEOP_OPEN_PAREN
397 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
398 1.1 christos ;
399 1.1 christos
400 1.1 christos ElseIfTerm
401 1.1 christos : IfTerm ElseTerm {$$ = TrLinkPeerNode ($1,$2);}
402 1.1 christos ;
403 1.1 christos
404 1.1 christos ElseTerm
405 1.1 christos : {$$ = NULL;}
406 1.1 christos | PARSEOP_ELSE '{' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
407 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);}
408 1.1 christos
409 1.1 christos | PARSEOP_ELSE '{'
410 1.1 christos error '}' {$$ = AslDoError(); yyclearin;}
411 1.1 christos
412 1.1 christos | PARSEOP_ELSE
413 1.1 christos error {$$ = AslDoError(); yyclearin;}
414 1.1 christos
415 1.1.1.2 christos | PARSEOP_ELSEIF
416 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
417 1.1 christos TermArg {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
418 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
419 1.1 christos TermList '}' {TrLinkChildren ($<n>5,2,$4,$8);}
420 1.1 christos ElseTerm {TrLinkPeerNode ($<n>5,$11);}
421 1.1 christos {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
422 1.1 christos
423 1.1.1.2 christos | PARSEOP_ELSEIF
424 1.1.1.2 christos PARSEOP_OPEN_PAREN
425 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
426 1.1 christos
427 1.1 christos | PARSEOP_ELSEIF
428 1.1 christos error {$$ = AslDoError(); yyclearin;}
429 1.1 christos ;
430 1.1 christos
431 1.1 christos EventTerm
432 1.1.1.2 christos : PARSEOP_EVENT
433 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);}
434 1.1 christos NameString
435 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,
436 1.1 christos TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
437 1.1.1.2 christos | PARSEOP_EVENT
438 1.1.1.2 christos PARSEOP_OPEN_PAREN
439 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
440 1.1 christos ;
441 1.1 christos
442 1.1 christos ExternalTerm
443 1.1.1.2 christos : PARSEOP_EXTERNAL
444 1.1.1.2 christos PARSEOP_OPEN_PAREN
445 1.1 christos NameString
446 1.1 christos OptionalObjectTypeKeyword
447 1.1 christos OptionalParameterTypePackage
448 1.1 christos OptionalParameterTypesPackage
449 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
450 1.1.1.2 christos | PARSEOP_EXTERNAL
451 1.1.1.2 christos PARSEOP_OPEN_PAREN
452 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
453 1.1 christos ;
454 1.1 christos
455 1.1 christos FatalTerm
456 1.1.1.2 christos : PARSEOP_FATAL
457 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);}
458 1.1 christos ByteConstExpr
459 1.1 christos ',' DWordConstExpr
460 1.1 christos TermArgItem
461 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
462 1.1.1.2 christos | PARSEOP_FATAL
463 1.1.1.2 christos PARSEOP_OPEN_PAREN
464 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
465 1.1 christos ;
466 1.1 christos
467 1.1 christos FieldTerm
468 1.1.1.2 christos : PARSEOP_FIELD
469 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_FIELD);}
470 1.1 christos NameString
471 1.1 christos ',' AccessTypeKeyword
472 1.1 christos ',' LockRuleKeyword
473 1.1 christos ',' UpdateRuleKeyword
474 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
475 1.1 christos FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
476 1.1.1.2 christos | PARSEOP_FIELD
477 1.1.1.2 christos PARSEOP_OPEN_PAREN
478 1.1.1.2 christos error PARSEOP_CLOSE_PAREN
479 1.1.1.2 christos '{' error '}' {$$ = AslDoError(); yyclearin;}
480 1.1 christos ;
481 1.1 christos
482 1.1 christos FindSetLeftBitTerm
483 1.1.1.2 christos : PARSEOP_FINDSETLEFTBIT
484 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
485 1.1 christos TermArg
486 1.1 christos Target
487 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
488 1.1.1.2 christos | PARSEOP_FINDSETLEFTBIT
489 1.1.1.2 christos PARSEOP_OPEN_PAREN
490 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
491 1.1 christos ;
492 1.1 christos
493 1.1 christos FindSetRightBitTerm
494 1.1.1.2 christos : PARSEOP_FINDSETRIGHTBIT
495 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
496 1.1 christos TermArg
497 1.1 christos Target
498 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
499 1.1.1.2 christos | PARSEOP_FINDSETRIGHTBIT
500 1.1.1.2 christos PARSEOP_OPEN_PAREN
501 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
502 1.1 christos ;
503 1.1 christos
504 1.1 christos /* Convert a For() loop to a While() loop */
505 1.1 christos ForTerm
506 1.1.1.2 christos : PARSEOP_FOR
507 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
508 1.1 christos OptionalTermArg ',' {}
509 1.1 christos OptionalPredicate ','
510 1.1 christos OptionalTermArg {$<n>$ = TrLinkPeerNode ($4,$<n>3);
511 1.1.1.2 christos TrSetParent ($9,$<n>3);} /* New parent is WHILE */
512 1.1.1.2 christos PARSEOP_CLOSE_PAREN
513 1.1.1.2 christos '{' TermList '}' {$<n>$ = TrLinkChildren ($<n>3,2,$7,$13);}
514 1.1 christos {$<n>$ = TrLinkPeerNode ($13,$9);
515 1.1 christos $$ = $<n>10;}
516 1.1 christos ;
517 1.1 christos
518 1.1 christos OptionalPredicate
519 1.1 christos : {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, 1);}
520 1.1 christos | TermArg {$$ = $1;}
521 1.1 christos ;
522 1.1 christos
523 1.1 christos FprintfTerm
524 1.1.1.2 christos : PARSEOP_FPRINTF
525 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_FPRINTF);}
526 1.1 christos TermArg ','
527 1.1 christos StringData
528 1.1 christos PrintfArgList
529 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
530 1.1.1.2 christos | PARSEOP_FPRINTF
531 1.1.1.2 christos PARSEOP_OPEN_PAREN
532 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
533 1.1 christos ;
534 1.1 christos
535 1.1 christos FromBCDTerm
536 1.1.1.2 christos : PARSEOP_FROMBCD
537 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
538 1.1 christos TermArg
539 1.1 christos Target
540 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
541 1.1.1.2 christos | PARSEOP_FROMBCD
542 1.1.1.2 christos PARSEOP_OPEN_PAREN
543 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
544 1.1 christos ;
545 1.1 christos
546 1.1 christos FunctionTerm
547 1.1.1.2 christos : PARSEOP_FUNCTION
548 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
549 1.1 christos NameString
550 1.1 christos OptionalParameterTypePackage
551 1.1 christos OptionalParameterTypesPackage
552 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
553 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,7,
554 1.1 christos TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
555 1.1 christos TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
556 1.1 christos TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
557 1.1 christos TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
558 1.1.1.2 christos | PARSEOP_FUNCTION
559 1.1.1.2 christos PARSEOP_OPEN_PAREN
560 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
561 1.1 christos ;
562 1.1 christos
563 1.1 christos IfTerm
564 1.1.1.2 christos : PARSEOP_IF
565 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
566 1.1 christos TermArg
567 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
568 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
569 1.1 christos
570 1.1.1.2 christos | PARSEOP_IF
571 1.1.1.2 christos PARSEOP_OPEN_PAREN
572 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
573 1.1 christos ;
574 1.1 christos
575 1.1 christos IncludeTerm
576 1.1.1.2 christos : PARSEOP_INCLUDE
577 1.1.1.2 christos PARSEOP_OPEN_PAREN
578 1.1.1.2 christos String
579 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrUpdateNode (PARSEOP_INCLUDE, $3);
580 1.1 christos FlOpenIncludeFile ($3);}
581 1.1 christos ;
582 1.1 christos
583 1.1 christos IncludeEndTerm
584 1.1 christos : PARSEOP_INCLUDE_END {$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);
585 1.1 christos TrSetCurrentFilename ($$);}
586 1.1 christos ;
587 1.1 christos
588 1.1 christos IncTerm
589 1.1.1.2 christos : PARSEOP_INCREMENT
590 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
591 1.1 christos SuperName
592 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
593 1.1.1.2 christos | PARSEOP_INCREMENT
594 1.1.1.2 christos PARSEOP_OPEN_PAREN
595 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
596 1.1 christos ;
597 1.1 christos
598 1.1 christos IndexFieldTerm
599 1.1.1.2 christos : PARSEOP_INDEXFIELD
600 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
601 1.1 christos NameString
602 1.1 christos NameStringItem
603 1.1 christos ',' AccessTypeKeyword
604 1.1 christos ',' LockRuleKeyword
605 1.1 christos ',' UpdateRuleKeyword
606 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
607 1.1 christos FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
608 1.1.1.2 christos | PARSEOP_INDEXFIELD
609 1.1.1.2 christos PARSEOP_OPEN_PAREN
610 1.1.1.2 christos error PARSEOP_CLOSE_PAREN
611 1.1.1.2 christos '{' error '}' {$$ = AslDoError(); yyclearin;}
612 1.1 christos ;
613 1.1 christos
614 1.1 christos IndexTerm
615 1.1.1.2 christos : PARSEOP_INDEX
616 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);}
617 1.1 christos TermArg
618 1.1 christos TermArgItem
619 1.1 christos Target
620 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
621 1.1.1.2 christos | PARSEOP_INDEX
622 1.1.1.2 christos PARSEOP_OPEN_PAREN
623 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
624 1.1 christos ;
625 1.1 christos
626 1.1 christos LAndTerm
627 1.1.1.2 christos : PARSEOP_LAND
628 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
629 1.1 christos TermArg
630 1.1 christos TermArgItem
631 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
632 1.1.1.2 christos | PARSEOP_LAND
633 1.1.1.2 christos PARSEOP_OPEN_PAREN
634 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
635 1.1 christos ;
636 1.1 christos
637 1.1 christos LEqualTerm
638 1.1.1.2 christos : PARSEOP_LEQUAL
639 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
640 1.1 christos TermArg
641 1.1 christos TermArgItem
642 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
643 1.1.1.2 christos | PARSEOP_LEQUAL
644 1.1.1.2 christos PARSEOP_OPEN_PAREN
645 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
646 1.1 christos ;
647 1.1 christos
648 1.1 christos LGreaterEqualTerm
649 1.1.1.2 christos : PARSEOP_LGREATEREQUAL
650 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
651 1.1 christos TermArg
652 1.1 christos TermArgItem
653 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrCreateNode (PARSEOP_LNOT, 1,
654 1.1 christos TrLinkChildren ($<n>3,2,$4,$5));}
655 1.1.1.2 christos | PARSEOP_LGREATEREQUAL
656 1.1.1.2 christos PARSEOP_OPEN_PAREN
657 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
658 1.1 christos ;
659 1.1 christos
660 1.1 christos LGreaterTerm
661 1.1.1.2 christos : PARSEOP_LGREATER
662 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
663 1.1 christos TermArg
664 1.1 christos TermArgItem
665 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
666 1.1.1.2 christos | PARSEOP_LGREATER
667 1.1.1.2 christos PARSEOP_OPEN_PAREN
668 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
669 1.1 christos ;
670 1.1 christos
671 1.1 christos LLessEqualTerm
672 1.1.1.2 christos : PARSEOP_LLESSEQUAL
673 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
674 1.1 christos TermArg
675 1.1 christos TermArgItem
676 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrCreateNode (PARSEOP_LNOT, 1,
677 1.1 christos TrLinkChildren ($<n>3,2,$4,$5));}
678 1.1.1.2 christos | PARSEOP_LLESSEQUAL
679 1.1.1.2 christos PARSEOP_OPEN_PAREN
680 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
681 1.1 christos ;
682 1.1 christos
683 1.1 christos LLessTerm
684 1.1.1.2 christos : PARSEOP_LLESS
685 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
686 1.1 christos TermArg
687 1.1 christos TermArgItem
688 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
689 1.1.1.2 christos | PARSEOP_LLESS
690 1.1.1.2 christos PARSEOP_OPEN_PAREN
691 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
692 1.1 christos ;
693 1.1 christos
694 1.1 christos LNotEqualTerm
695 1.1.1.2 christos : PARSEOP_LNOTEQUAL
696 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
697 1.1 christos TermArg
698 1.1 christos TermArgItem
699 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrCreateNode (PARSEOP_LNOT, 1,
700 1.1 christos TrLinkChildren ($<n>3,2,$4,$5));}
701 1.1.1.2 christos | PARSEOP_LNOTEQUAL
702 1.1.1.2 christos PARSEOP_OPEN_PAREN
703 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
704 1.1 christos ;
705 1.1 christos
706 1.1 christos LNotTerm
707 1.1.1.2 christos : PARSEOP_LNOT
708 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
709 1.1 christos TermArg
710 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
711 1.1.1.2 christos | PARSEOP_LNOT
712 1.1.1.2 christos PARSEOP_OPEN_PAREN
713 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
714 1.1 christos ;
715 1.1 christos
716 1.1 christos LoadTableTerm
717 1.1.1.2 christos : PARSEOP_LOADTABLE
718 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
719 1.1 christos TermArg
720 1.1 christos TermArgItem
721 1.1 christos TermArgItem
722 1.1 christos OptionalListString
723 1.1 christos OptionalListString
724 1.1 christos OptionalReference
725 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
726 1.1.1.2 christos | PARSEOP_LOADTABLE
727 1.1.1.2 christos PARSEOP_OPEN_PAREN
728 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
729 1.1 christos ;
730 1.1 christos
731 1.1 christos LoadTerm
732 1.1.1.2 christos : PARSEOP_LOAD
733 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);}
734 1.1 christos NameString
735 1.1 christos RequiredTarget
736 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
737 1.1.1.2 christos | PARSEOP_LOAD
738 1.1.1.2 christos PARSEOP_OPEN_PAREN
739 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
740 1.1 christos ;
741 1.1 christos
742 1.1 christos LocalTerm
743 1.1 christos : PARSEOP_LOCAL0 {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
744 1.1 christos | PARSEOP_LOCAL1 {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
745 1.1 christos | PARSEOP_LOCAL2 {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
746 1.1 christos | PARSEOP_LOCAL3 {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
747 1.1 christos | PARSEOP_LOCAL4 {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
748 1.1 christos | PARSEOP_LOCAL5 {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
749 1.1 christos | PARSEOP_LOCAL6 {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
750 1.1 christos | PARSEOP_LOCAL7 {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
751 1.1 christos ;
752 1.1 christos
753 1.1 christos LOrTerm
754 1.1.1.2 christos : PARSEOP_LOR
755 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
756 1.1 christos TermArg
757 1.1 christos TermArgItem
758 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
759 1.1.1.2 christos | PARSEOP_LOR
760 1.1.1.2 christos PARSEOP_OPEN_PAREN
761 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
762 1.1 christos ;
763 1.1 christos
764 1.1 christos MatchTerm
765 1.1.1.2 christos : PARSEOP_MATCH
766 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);}
767 1.1 christos TermArg
768 1.1 christos ',' MatchOpKeyword
769 1.1 christos TermArgItem
770 1.1 christos ',' MatchOpKeyword
771 1.1 christos TermArgItem
772 1.1 christos TermArgItem
773 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
774 1.1.1.2 christos | PARSEOP_MATCH
775 1.1.1.2 christos PARSEOP_OPEN_PAREN
776 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
777 1.1 christos ;
778 1.1 christos
779 1.1 christos MethodTerm
780 1.1.1.2 christos : PARSEOP_METHOD
781 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
782 1.1 christos NameString
783 1.1 christos OptionalByteConstExpr {UtCheckIntegerRange ($5, 0, 7);}
784 1.1 christos OptionalSerializeRuleKeyword
785 1.1 christos OptionalByteConstExpr
786 1.1 christos OptionalParameterTypePackage
787 1.1 christos OptionalParameterTypesPackage
788 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
789 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,7,
790 1.1 christos TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
791 1.1 christos $5,$7,$8,$9,$10,$13);}
792 1.1.1.2 christos | PARSEOP_METHOD
793 1.1.1.2 christos PARSEOP_OPEN_PAREN
794 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
795 1.1 christos ;
796 1.1 christos
797 1.1 christos MidTerm
798 1.1.1.2 christos : PARSEOP_MID
799 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_MID);}
800 1.1 christos TermArg
801 1.1 christos TermArgItem
802 1.1 christos TermArgItem
803 1.1 christos Target
804 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
805 1.1.1.2 christos | PARSEOP_MID
806 1.1.1.2 christos PARSEOP_OPEN_PAREN
807 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
808 1.1 christos ;
809 1.1 christos
810 1.1 christos ModTerm
811 1.1.1.2 christos : PARSEOP_MOD
812 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
813 1.1 christos TermArg
814 1.1 christos TermArgItem
815 1.1 christos Target
816 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
817 1.1.1.2 christos | PARSEOP_MOD
818 1.1.1.2 christos PARSEOP_OPEN_PAREN
819 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
820 1.1 christos ;
821 1.1 christos
822 1.1 christos MultiplyTerm
823 1.1.1.2 christos : PARSEOP_MULTIPLY
824 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
825 1.1 christos TermArg
826 1.1 christos TermArgItem
827 1.1 christos Target
828 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
829 1.1.1.2 christos | PARSEOP_MULTIPLY
830 1.1.1.2 christos PARSEOP_OPEN_PAREN
831 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
832 1.1 christos ;
833 1.1 christos
834 1.1 christos MutexTerm
835 1.1.1.2 christos : PARSEOP_MUTEX
836 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);}
837 1.1 christos NameString
838 1.1 christos ',' ByteConstExpr
839 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,
840 1.1 christos TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
841 1.1.1.2 christos | PARSEOP_MUTEX
842 1.1.1.2 christos PARSEOP_OPEN_PAREN
843 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
844 1.1 christos ;
845 1.1 christos
846 1.1 christos NameTerm
847 1.1.1.2 christos : PARSEOP_NAME
848 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);}
849 1.1 christos NameString
850 1.1 christos ',' DataObject
851 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,
852 1.1 christos TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
853 1.1.1.2 christos | PARSEOP_NAME
854 1.1.1.2 christos PARSEOP_OPEN_PAREN
855 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
856 1.1 christos ;
857 1.1 christos
858 1.1 christos NAndTerm
859 1.1.1.2 christos : PARSEOP_NAND
860 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_NAND);}
861 1.1 christos TermArg
862 1.1 christos TermArgItem
863 1.1 christos Target
864 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
865 1.1.1.2 christos | PARSEOP_NAND
866 1.1.1.2 christos PARSEOP_OPEN_PAREN
867 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
868 1.1 christos ;
869 1.1 christos
870 1.1 christos NoOpTerm
871 1.1 christos : PARSEOP_NOOP {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
872 1.1 christos ;
873 1.1 christos
874 1.1 christos NOrTerm
875 1.1.1.2 christos : PARSEOP_NOR
876 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_NOR);}
877 1.1 christos TermArg
878 1.1 christos TermArgItem
879 1.1 christos Target
880 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
881 1.1.1.2 christos | PARSEOP_NOR
882 1.1.1.2 christos PARSEOP_OPEN_PAREN
883 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
884 1.1 christos ;
885 1.1 christos
886 1.1 christos NotifyTerm
887 1.1.1.2 christos : PARSEOP_NOTIFY
888 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
889 1.1 christos SuperName
890 1.1 christos TermArgItem
891 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
892 1.1.1.2 christos | PARSEOP_NOTIFY
893 1.1.1.2 christos PARSEOP_OPEN_PAREN
894 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
895 1.1 christos ;
896 1.1 christos
897 1.1 christos NotTerm
898 1.1.1.2 christos : PARSEOP_NOT
899 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
900 1.1 christos TermArg
901 1.1 christos Target
902 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
903 1.1.1.2 christos | PARSEOP_NOT
904 1.1.1.2 christos PARSEOP_OPEN_PAREN
905 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
906 1.1 christos ;
907 1.1 christos
908 1.1 christos ObjectTypeTerm
909 1.1.1.2 christos : PARSEOP_OBJECTTYPE
910 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
911 1.1.1.2 christos ObjectTypeSource
912 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
913 1.1.1.2 christos | PARSEOP_OBJECTTYPE
914 1.1.1.2 christos PARSEOP_OPEN_PAREN
915 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
916 1.1 christos ;
917 1.1 christos
918 1.1 christos OffsetTerm
919 1.1.1.2 christos : PARSEOP_OFFSET
920 1.1.1.2 christos PARSEOP_OPEN_PAREN
921 1.1 christos AmlPackageLengthTerm
922 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
923 1.1.1.2 christos | PARSEOP_OFFSET
924 1.1.1.2 christos PARSEOP_OPEN_PAREN
925 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
926 1.1 christos ;
927 1.1 christos
928 1.1 christos OpRegionTerm
929 1.1.1.2 christos : PARSEOP_OPERATIONREGION
930 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
931 1.1 christos NameString
932 1.1 christos ',' OpRegionSpaceIdTerm
933 1.1 christos TermArgItem
934 1.1 christos TermArgItem
935 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,4,
936 1.1 christos TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
937 1.1 christos $6,$7,$8);}
938 1.1.1.2 christos | PARSEOP_OPERATIONREGION
939 1.1.1.2 christos PARSEOP_OPEN_PAREN
940 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
941 1.1 christos ;
942 1.1 christos
943 1.1 christos OpRegionSpaceIdTerm
944 1.1 christos : RegionSpaceKeyword {}
945 1.1 christos | ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
946 1.1 christos ;
947 1.1 christos
948 1.1 christos OrTerm
949 1.1.1.2 christos : PARSEOP_OR
950 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
951 1.1 christos TermArg
952 1.1 christos TermArgItem
953 1.1 christos Target
954 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
955 1.1.1.2 christos | PARSEOP_OR
956 1.1.1.2 christos PARSEOP_OPEN_PAREN
957 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
958 1.1 christos ;
959 1.1 christos
960 1.1 christos PackageTerm
961 1.1 christos : PARSEOP_PACKAGE {$<n>$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
962 1.1 christos OptionalDataCount
963 1.1 christos '{' PackageList '}' {$$ = TrLinkChildren ($<n>2,2,$3,$5);}
964 1.1 christos
965 1.1 christos PowerResTerm
966 1.1.1.2 christos : PARSEOP_POWERRESOURCE
967 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
968 1.1 christos NameString
969 1.1 christos ',' ByteConstExpr
970 1.1 christos ',' WordConstExpr
971 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
972 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,4,
973 1.1 christos TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
974 1.1 christos $6,$8,$11);}
975 1.1.1.2 christos | PARSEOP_POWERRESOURCE
976 1.1.1.2 christos PARSEOP_OPEN_PAREN
977 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
978 1.1 christos ;
979 1.1 christos
980 1.1 christos PrintfTerm
981 1.1.1.2 christos : PARSEOP_PRINTF
982 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);}
983 1.1 christos StringData
984 1.1 christos PrintfArgList
985 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
986 1.1.1.2 christos | PARSEOP_PRINTF
987 1.1.1.2 christos PARSEOP_OPEN_PAREN
988 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
989 1.1 christos ;
990 1.1 christos
991 1.1 christos PrintfArgList
992 1.1 christos : {$$ = NULL;}
993 1.1 christos | TermArg {$$ = $1;}
994 1.1 christos | PrintfArgList ','
995 1.1 christos TermArg {$$ = TrLinkPeerNode ($1, $3);}
996 1.1 christos ;
997 1.1 christos
998 1.1 christos ProcessorTerm
999 1.1.1.2 christos : PARSEOP_PROCESSOR
1000 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
1001 1.1 christos NameString
1002 1.1 christos ',' ByteConstExpr
1003 1.1 christos OptionalDWordConstExpr
1004 1.1 christos OptionalByteConstExpr
1005 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
1006 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,5,
1007 1.1 christos TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
1008 1.1 christos $6,$7,$8,$11);}
1009 1.1.1.2 christos | PARSEOP_PROCESSOR
1010 1.1.1.2 christos PARSEOP_OPEN_PAREN
1011 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1012 1.1 christos ;
1013 1.1 christos
1014 1.1 christos RawDataBufferTerm
1015 1.1.1.2 christos : PARSEOP_DATABUFFER
1016 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);}
1017 1.1 christos OptionalWordConst
1018 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
1019 1.1 christos ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1020 1.1.1.2 christos | PARSEOP_DATABUFFER
1021 1.1.1.2 christos PARSEOP_OPEN_PAREN
1022 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1023 1.1 christos ;
1024 1.1 christos
1025 1.1 christos /*
1026 1.1 christos * In RefOf, the node isn't really a target, but we can't keep track of it after
1027 1.1 christos * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
1028 1.1 christos */
1029 1.1 christos RefOfTerm
1030 1.1.1.2 christos : PARSEOP_REFOF
1031 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);}
1032 1.1.1.2 christos RefOfSource
1033 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,
1034 1.1 christos TrSetNodeFlags ($4, NODE_IS_TARGET));}
1035 1.1.1.2 christos | PARSEOP_REFOF
1036 1.1.1.2 christos PARSEOP_OPEN_PAREN
1037 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1038 1.1 christos ;
1039 1.1 christos
1040 1.1 christos ReleaseTerm
1041 1.1.1.2 christos : PARSEOP_RELEASE
1042 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);}
1043 1.1 christos SuperName
1044 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
1045 1.1.1.2 christos | PARSEOP_RELEASE
1046 1.1.1.2 christos PARSEOP_OPEN_PAREN
1047 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1048 1.1 christos ;
1049 1.1 christos
1050 1.1 christos ResetTerm
1051 1.1.1.2 christos : PARSEOP_RESET
1052 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);}
1053 1.1 christos SuperName
1054 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
1055 1.1.1.2 christos | PARSEOP_RESET
1056 1.1.1.2 christos PARSEOP_OPEN_PAREN
1057 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1058 1.1 christos ;
1059 1.1 christos
1060 1.1 christos ReturnTerm
1061 1.1.1.2 christos : PARSEOP_RETURN
1062 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);}
1063 1.1 christos OptionalReturnArg
1064 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
1065 1.1 christos | PARSEOP_RETURN {$$ = TrLinkChildren (
1066 1.1 christos TrCreateLeafNode (PARSEOP_RETURN),1,
1067 1.1 christos TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO),
1068 1.1 christos NODE_IS_NULL_RETURN));}
1069 1.1.1.2 christos | PARSEOP_RETURN
1070 1.1.1.2 christos PARSEOP_OPEN_PAREN
1071 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1072 1.1 christos ;
1073 1.1 christos
1074 1.1 christos ScopeTerm
1075 1.1.1.2 christos : PARSEOP_SCOPE
1076 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);}
1077 1.1 christos NameString
1078 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
1079 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,2,
1080 1.1 christos TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1081 1.1.1.2 christos | PARSEOP_SCOPE
1082 1.1.1.2 christos PARSEOP_OPEN_PAREN
1083 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1084 1.1 christos ;
1085 1.1 christos
1086 1.1 christos ShiftLeftTerm
1087 1.1.1.2 christos : PARSEOP_SHIFTLEFT
1088 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
1089 1.1 christos TermArg
1090 1.1 christos TermArgItem
1091 1.1 christos Target
1092 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1093 1.1.1.2 christos | PARSEOP_SHIFTLEFT
1094 1.1.1.2 christos PARSEOP_OPEN_PAREN
1095 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1096 1.1 christos ;
1097 1.1 christos
1098 1.1 christos ShiftRightTerm
1099 1.1.1.2 christos : PARSEOP_SHIFTRIGHT
1100 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
1101 1.1 christos TermArg
1102 1.1 christos TermArgItem
1103 1.1 christos Target
1104 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1105 1.1.1.2 christos | PARSEOP_SHIFTRIGHT
1106 1.1.1.2 christos PARSEOP_OPEN_PAREN
1107 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1108 1.1 christos ;
1109 1.1 christos
1110 1.1 christos SignalTerm
1111 1.1.1.2 christos : PARSEOP_SIGNAL
1112 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
1113 1.1 christos SuperName
1114 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
1115 1.1.1.2 christos | PARSEOP_SIGNAL
1116 1.1.1.2 christos PARSEOP_OPEN_PAREN
1117 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1118 1.1 christos ;
1119 1.1 christos
1120 1.1 christos SizeOfTerm
1121 1.1.1.2 christos : PARSEOP_SIZEOF
1122 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
1123 1.1 christos SuperName
1124 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
1125 1.1.1.2 christos | PARSEOP_SIZEOF
1126 1.1.1.2 christos PARSEOP_OPEN_PAREN
1127 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1128 1.1 christos ;
1129 1.1 christos
1130 1.1 christos SleepTerm
1131 1.1.1.2 christos : PARSEOP_SLEEP
1132 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);}
1133 1.1 christos TermArg
1134 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
1135 1.1.1.2 christos | PARSEOP_SLEEP
1136 1.1.1.2 christos PARSEOP_OPEN_PAREN
1137 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1138 1.1 christos ;
1139 1.1 christos
1140 1.1 christos StallTerm
1141 1.1.1.2 christos : PARSEOP_STALL
1142 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);}
1143 1.1 christos TermArg
1144 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
1145 1.1.1.2 christos | PARSEOP_STALL
1146 1.1.1.2 christos PARSEOP_OPEN_PAREN
1147 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1148 1.1 christos ;
1149 1.1 christos
1150 1.1 christos StoreTerm
1151 1.1.1.2 christos : PARSEOP_STORE
1152 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);}
1153 1.1 christos TermArg
1154 1.1 christos ',' SuperName
1155 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,
1156 1.1.1.2 christos TrSetNodeFlags ($6, NODE_IS_TARGET));}
1157 1.1.1.2 christos | PARSEOP_STORE
1158 1.1.1.2 christos PARSEOP_OPEN_PAREN
1159 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1160 1.1 christos ;
1161 1.1 christos
1162 1.1 christos SubtractTerm
1163 1.1.1.2 christos : PARSEOP_SUBTRACT
1164 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
1165 1.1 christos TermArg
1166 1.1 christos TermArgItem
1167 1.1 christos Target
1168 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1169 1.1.1.2 christos | PARSEOP_SUBTRACT
1170 1.1.1.2 christos PARSEOP_OPEN_PAREN
1171 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1172 1.1 christos ;
1173 1.1 christos
1174 1.1 christos SwitchTerm
1175 1.1.1.2 christos : PARSEOP_SWITCH
1176 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);}
1177 1.1 christos TermArg
1178 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
1179 1.1.1.2 christos CaseDefaultTermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1180 1.1.1.2 christos | PARSEOP_SWITCH
1181 1.1.1.2 christos PARSEOP_OPEN_PAREN
1182 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1183 1.1 christos ;
1184 1.1 christos
1185 1.1 christos ThermalZoneTerm
1186 1.1.1.2 christos : PARSEOP_THERMALZONE
1187 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
1188 1.1 christos NameString
1189 1.1.1.2 christos PARSEOP_CLOSE_PAREN '{'
1190 1.1 christos TermList '}' {$$ = TrLinkChildren ($<n>3,2,
1191 1.1 christos TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
1192 1.1.1.2 christos | PARSEOP_THERMALZONE
1193 1.1.1.2 christos PARSEOP_OPEN_PAREN
1194 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1195 1.1 christos ;
1196 1.1 christos
1197 1.1 christos TimerTerm
1198 1.1.1.2 christos : PARSEOP_TIMER
1199 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);}
1200 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,0);}
1201 1.1 christos | PARSEOP_TIMER {$$ = TrLinkChildren (
1202 1.1 christos TrCreateLeafNode (PARSEOP_TIMER),0);}
1203 1.1.1.2 christos | PARSEOP_TIMER
1204 1.1.1.2 christos PARSEOP_OPEN_PAREN
1205 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1206 1.1 christos ;
1207 1.1 christos
1208 1.1 christos ToBCDTerm
1209 1.1.1.2 christos : PARSEOP_TOBCD
1210 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);}
1211 1.1 christos TermArg
1212 1.1 christos Target
1213 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1214 1.1.1.2 christos | PARSEOP_TOBCD
1215 1.1.1.2 christos PARSEOP_OPEN_PAREN
1216 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1217 1.1 christos ;
1218 1.1 christos
1219 1.1 christos ToBufferTerm
1220 1.1.1.2 christos : PARSEOP_TOBUFFER
1221 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
1222 1.1 christos TermArg
1223 1.1 christos Target
1224 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1225 1.1.1.2 christos | PARSEOP_TOBUFFER
1226 1.1.1.2 christos PARSEOP_OPEN_PAREN
1227 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1228 1.1 christos ;
1229 1.1 christos
1230 1.1 christos ToDecimalStringTerm
1231 1.1.1.2 christos : PARSEOP_TODECIMALSTRING
1232 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
1233 1.1 christos TermArg
1234 1.1 christos Target
1235 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1236 1.1.1.2 christos | PARSEOP_TODECIMALSTRING
1237 1.1.1.2 christos PARSEOP_OPEN_PAREN
1238 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1239 1.1 christos ;
1240 1.1 christos
1241 1.1 christos ToHexStringTerm
1242 1.1.1.2 christos : PARSEOP_TOHEXSTRING
1243 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
1244 1.1 christos TermArg
1245 1.1 christos Target
1246 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1247 1.1.1.2 christos | PARSEOP_TOHEXSTRING
1248 1.1.1.2 christos PARSEOP_OPEN_PAREN
1249 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1250 1.1 christos ;
1251 1.1 christos
1252 1.1 christos ToIntegerTerm
1253 1.1.1.2 christos : PARSEOP_TOINTEGER
1254 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
1255 1.1 christos TermArg
1256 1.1 christos Target
1257 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1258 1.1.1.2 christos | PARSEOP_TOINTEGER
1259 1.1.1.2 christos PARSEOP_OPEN_PAREN
1260 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1261 1.1 christos ;
1262 1.1 christos
1263 1.1 christos ToPLDTerm
1264 1.1.1.2 christos : PARSEOP_TOPLD
1265 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);}
1266 1.1 christos PldKeywordList
1267 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
1268 1.1.1.2 christos | PARSEOP_TOPLD
1269 1.1.1.2 christos PARSEOP_OPEN_PAREN
1270 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1271 1.1 christos ;
1272 1.1 christos
1273 1.1 christos PldKeywordList
1274 1.1 christos : {$$ = NULL;}
1275 1.1 christos | PldKeyword
1276 1.1 christos PARSEOP_EXP_EQUALS Integer {$$ = TrLinkChildren ($1,1,$3);}
1277 1.1 christos | PldKeyword
1278 1.1 christos PARSEOP_EXP_EQUALS String {$$ = TrLinkChildren ($1,1,$3);}
1279 1.1 christos | PldKeywordList ',' /* Allows a trailing comma at list end */
1280 1.1 christos | PldKeywordList ','
1281 1.1 christos PldKeyword
1282 1.1 christos PARSEOP_EXP_EQUALS Integer {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
1283 1.1 christos | PldKeywordList ','
1284 1.1 christos PldKeyword
1285 1.1 christos PARSEOP_EXP_EQUALS String {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
1286 1.1 christos ;
1287 1.1 christos
1288 1.1 christos
1289 1.1 christos ToStringTerm
1290 1.1.1.2 christos : PARSEOP_TOSTRING
1291 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
1292 1.1 christos TermArg
1293 1.1 christos OptionalCount
1294 1.1 christos Target
1295 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1296 1.1.1.2 christos | PARSEOP_TOSTRING
1297 1.1.1.2 christos PARSEOP_OPEN_PAREN
1298 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1299 1.1 christos ;
1300 1.1 christos
1301 1.1 christos ToUUIDTerm
1302 1.1.1.2 christos : PARSEOP_TOUUID
1303 1.1.1.2 christos PARSEOP_OPEN_PAREN
1304 1.1.1.2 christos StringData
1305 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
1306 1.1.1.2 christos | PARSEOP_TOUUID
1307 1.1.1.2 christos PARSEOP_OPEN_PAREN
1308 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1309 1.1 christos ;
1310 1.1 christos
1311 1.1 christos UnicodeTerm
1312 1.1.1.2 christos : PARSEOP_UNICODE
1313 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);}
1314 1.1 christos StringData
1315 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,0,$4);}
1316 1.1.1.2 christos | PARSEOP_UNICODE
1317 1.1.1.2 christos PARSEOP_OPEN_PAREN
1318 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1319 1.1 christos ;
1320 1.1 christos
1321 1.1 christos UnloadTerm
1322 1.1.1.2 christos : PARSEOP_UNLOAD
1323 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
1324 1.1 christos SuperName
1325 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,1,$4);}
1326 1.1.1.2 christos | PARSEOP_UNLOAD
1327 1.1.1.2 christos PARSEOP_OPEN_PAREN
1328 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1329 1.1 christos ;
1330 1.1 christos
1331 1.1 christos WaitTerm
1332 1.1.1.2 christos : PARSEOP_WAIT
1333 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);}
1334 1.1 christos SuperName
1335 1.1 christos TermArgItem
1336 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
1337 1.1.1.2 christos | PARSEOP_WAIT
1338 1.1.1.2 christos PARSEOP_OPEN_PAREN
1339 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1340 1.1 christos ;
1341 1.1 christos
1342 1.1 christos XOrTerm
1343 1.1.1.2 christos : PARSEOP_XOR
1344 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
1345 1.1 christos TermArg
1346 1.1 christos TermArgItem
1347 1.1 christos Target
1348 1.1.1.2 christos PARSEOP_CLOSE_PAREN {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
1349 1.1.1.2 christos | PARSEOP_XOR
1350 1.1.1.2 christos PARSEOP_OPEN_PAREN
1351 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1352 1.1 christos ;
1353 1.1 christos
1354 1.1 christos WhileTerm
1355 1.1.1.2 christos : PARSEOP_WHILE
1356 1.1.1.2 christos PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
1357 1.1 christos TermArg
1358 1.1.1.2 christos PARSEOP_CLOSE_PAREN
1359 1.1.1.2 christos '{' TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
1360 1.1.1.2 christos | PARSEOP_WHILE
1361 1.1.1.2 christos PARSEOP_OPEN_PAREN
1362 1.1.1.2 christos error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
1363 1.1 christos ;
1364