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