aslresources.y revision 1.1.1.13 1 NoEcho('
2 /******************************************************************************
3 *
4 * Module Name: aslresources.y - Bison/Yacc production rules for resources
5 * - Keep this file synched with the
6 * CvParseOpBlockType function in cvcompiler.c
7 *
8 *****************************************************************************/
9
10 /*
11 * Copyright (C) 2000 - 2023, Intel Corp.
12 * All rights reserved.
13 *
14 * Redistribution and use in source and binary forms, with or without
15 * modification, are permitted provided that the following conditions
16 * are met:
17 * 1. Redistributions of source code must retain the above copyright
18 * notice, this list of conditions, and the following disclaimer,
19 * without modification.
20 * 2. Redistributions in binary form must reproduce at minimum a disclaimer
21 * substantially similar to the "NO WARRANTY" disclaimer below
22 * ("Disclaimer") and any redistribution must be conditioned upon
23 * including a substantially similar Disclaimer requirement for further
24 * binary redistribution.
25 * 3. Neither the names of the above-listed copyright holders nor the names
26 * of any contributors may be used to endorse or promote products derived
27 * from this software without specific prior written permission.
28 *
29 * Alternatively, this software may be distributed under the terms of the
30 * GNU General Public License ("GPL") version 2 as published by the Free
31 * Software Foundation.
32 *
33 * NO WARRANTY
34 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
35 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
36 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
37 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
38 * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
39 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
40 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
41 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
42 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
43 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
44 * POSSIBILITY OF SUCH DAMAGES.
45 */
46
47 ')
48
49
50 /*******************************************************************************
51 *
52 * ASL Resource Template Terms
53 *
54 ******************************************************************************/
55
56 /*
57 * Note: Create two default nodes to allow conversion to a Buffer AML opcode
58 * Also, insert the EndTag at the end of the template.
59 */
60 ResourceTemplateTerm
61 : PARSEOP_RESOURCETEMPLATE {COMMENT_CAPTURE_OFF;}
62 OptionalParentheses
63 '{'
64 ResourceMacroList '}' {$$ = TrCreateOp (PARSEOP_RESOURCETEMPLATE,4,
65 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
66 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
67 $5,
68 TrCreateLeafOp (PARSEOP_ENDTAG));
69 COMMENT_CAPTURE_ON;}
70 ;
71
72 OptionalParentheses
73 : {$$ = NULL;}
74 | PARSEOP_OPEN_PAREN
75 PARSEOP_CLOSE_PAREN {$$ = NULL;}
76 ;
77
78 ResourceMacroList
79 : {$$ = NULL;}
80 | ResourceMacroList
81 ResourceMacroTerm {$$ = TrLinkPeerOp ($1,$2);}
82 ;
83
84 ResourceMacroTerm
85 : Csi2SerialBusTerm {}
86 | DMATerm {}
87 | DWordIOTerm {}
88 | DWordMemoryTerm {}
89 | DWordPccTerm {}
90 | DWordSpaceTerm {}
91 | EndDependentFnTerm {}
92 | ExtendedIOTerm {}
93 | ExtendedMemoryTerm {}
94 | ExtendedSpaceTerm {}
95 | FixedDmaTerm {}
96 | FixedIOTerm {}
97 | GpioIntTerm {}
98 | GpioIoTerm {}
99 | I2cSerialBusTerm {}
100 | I2cSerialBusTermV2 {}
101 | InterruptTerm {}
102 | IOTerm {}
103 | IRQNoFlagsTerm {}
104 | IRQTerm {}
105 | Memory24Term {}
106 | Memory32FixedTerm {}
107 | Memory32Term {}
108 | PinConfigTerm {}
109 | PinFunctionTerm {}
110 | ClockInputTerm {}
111 | PinGroupTerm {}
112 | PinGroupConfigTerm {}
113 | PinGroupFunctionTerm {}
114 | QWordIOTerm {}
115 | QWordMemoryTerm {}
116 | QWordPccTerm {}
117 | QWordSpaceTerm {}
118 | RegisterTerm {}
119 | SpiSerialBusTerm {}
120 | SpiSerialBusTermV2 {}
121 | StartDependentFnNoPriTerm {}
122 | StartDependentFnTerm {}
123 | UartSerialBusTerm {}
124 | UartSerialBusTermV2 {}
125 | VendorLongTerm {}
126 | VendorShortTerm {}
127 | WordBusNumberTerm {}
128 | WordIOTerm {}
129 | WordPccTerm {}
130 | WordSpaceTerm {}
131 ;
132
133 Csi2SerialBusTerm
134 : PARSEOP_CSI2_SERIALBUS
135 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CSI2_SERIALBUS);}
136 OptionalSlaveMode_First {UtCheckIntegerRange ($4, 0x00, 0x01);} /* 04: SlaveMode */
137 ',' ByteConstExpr {UtCheckIntegerRange ($7, 0x00, 0x03);} /* 07: PhyType */
138 OptionalByteConstExpr {UtCheckIntegerRange ($9, 0x00, 0xFC);} /* 09: LocalPortInstance */
139 ',' StringData /* 12: ResourceSource */
140 ',' ByteConstExpr /* 14: ResourceSourceIndex */
141 OptionalResourceType /* 15; ResourceType (ResourceUsage) */
142 OptionalNameString /* 16: DescriptorName */
143 OptionalBuffer_Last /* 17: VendorData */
144 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,8,
145 $4,$7,$9,$12,$14,$15,$16,$17);}
146 | PARSEOP_CSI2_SERIALBUS
147 PARSEOP_OPEN_PAREN
148 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
149
150 DMATerm
151 : PARSEOP_DMA
152 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DMA);}
153 DMATypeKeyword
154 OptionalBusMasterKeyword
155 ',' XferTypeKeyword
156 OptionalNameString_Last
157 PARSEOP_CLOSE_PAREN '{'
158 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$7,$8,$11);}
159 | PARSEOP_DMA
160 PARSEOP_OPEN_PAREN
161 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
162 ;
163
164 DWordIOTerm
165 : PARSEOP_DWORDIO
166 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDIO);}
167 OptionalResourceType_First
168 OptionalMinType
169 OptionalMaxType
170 OptionalDecodeType
171 OptionalRangeType
172 ',' DWordConstExpr
173 ',' DWordConstExpr
174 ',' DWordConstExpr
175 ',' DWordConstExpr
176 ',' DWordConstExpr
177 OptionalByteConstExpr
178 OptionalStringData
179 OptionalNameString
180 OptionalType
181 OptionalTranslationType_Last
182 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
183 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
184 | PARSEOP_DWORDIO
185 PARSEOP_OPEN_PAREN
186 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
187 ;
188
189 DWordMemoryTerm
190 : PARSEOP_DWORDMEMORY
191 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDMEMORY);}
192 OptionalResourceType_First
193 OptionalDecodeType
194 OptionalMinType
195 OptionalMaxType
196 OptionalMemType
197 ',' OptionalReadWriteKeyword
198 ',' DWordConstExpr
199 ',' DWordConstExpr
200 ',' DWordConstExpr
201 ',' DWordConstExpr
202 ',' DWordConstExpr
203 OptionalByteConstExpr
204 OptionalStringData
205 OptionalNameString
206 OptionalAddressRange
207 OptionalType_Last
208 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,16,
209 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
210 | PARSEOP_DWORDMEMORY
211 PARSEOP_OPEN_PAREN
212 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
213 ;
214
215 DWordPccTerm
216 : PARSEOP_DWORDPCC
217 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDPCC);}
218 ByteConstExpr
219 OptionalByteConstExpr
220 OptionalStringData
221 OptionalNameString_Last
222 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,
223 $4,$5,$6,$7);}
224 | PARSEOP_DWORDPCC
225 PARSEOP_OPEN_PAREN
226 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
227 ;
228
229 DWordSpaceTerm
230 : PARSEOP_DWORDSPACE
231 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DWORDSPACE);}
232 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
233 OptionalResourceType
234 OptionalDecodeType
235 OptionalMinType
236 OptionalMaxType
237 ',' ByteConstExpr
238 ',' DWordConstExpr
239 ',' DWordConstExpr
240 ',' DWordConstExpr
241 ',' DWordConstExpr
242 ',' DWordConstExpr
243 OptionalByteConstExpr
244 OptionalStringData
245 OptionalNameString_Last
246 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
247 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
248 | PARSEOP_DWORDSPACE
249 PARSEOP_OPEN_PAREN
250 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
251 ;
252
253 EndDependentFnTerm
254 : PARSEOP_ENDDEPENDENTFN
255 PARSEOP_OPEN_PAREN
256 PARSEOP_CLOSE_PAREN {$$ = TrCreateLeafOp (PARSEOP_ENDDEPENDENTFN);}
257 | PARSEOP_ENDDEPENDENTFN
258 PARSEOP_OPEN_PAREN
259 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
260 ;
261
262 ExtendedIOTerm
263 : PARSEOP_EXTENDEDIO
264 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDIO);}
265 OptionalResourceType_First
266 OptionalMinType
267 OptionalMaxType
268 OptionalDecodeType
269 OptionalRangeType
270 ',' QWordConstExpr
271 ',' QWordConstExpr
272 ',' QWordConstExpr
273 ',' QWordConstExpr
274 ',' QWordConstExpr
275 OptionalQWordConstExpr
276 OptionalNameString
277 OptionalType
278 OptionalTranslationType_Last
279 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
280 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
281 | PARSEOP_EXTENDEDIO
282 PARSEOP_OPEN_PAREN
283 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
284 ;
285
286 ExtendedMemoryTerm
287 : PARSEOP_EXTENDEDMEMORY
288 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDMEMORY);}
289 OptionalResourceType_First
290 OptionalDecodeType
291 OptionalMinType
292 OptionalMaxType
293 OptionalMemType
294 ',' OptionalReadWriteKeyword
295 ',' QWordConstExpr
296 ',' QWordConstExpr
297 ',' QWordConstExpr
298 ',' QWordConstExpr
299 ',' QWordConstExpr
300 OptionalQWordConstExpr
301 OptionalNameString
302 OptionalAddressRange
303 OptionalType_Last
304 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
305 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
306 | PARSEOP_EXTENDEDMEMORY
307 PARSEOP_OPEN_PAREN
308 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
309 ;
310
311 ExtendedSpaceTerm
312 : PARSEOP_EXTENDEDSPACE PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EXTENDEDSPACE);}
313 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
314 OptionalResourceType
315 OptionalDecodeType
316 OptionalMinType
317 OptionalMaxType
318 ',' ByteConstExpr
319 ',' QWordConstExpr
320 ',' QWordConstExpr
321 ',' QWordConstExpr
322 ',' QWordConstExpr
323 ',' QWordConstExpr
324 OptionalQWordConstExpr
325 OptionalNameString_Last
326 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,13,
327 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
328 | PARSEOP_EXTENDEDSPACE
329 PARSEOP_OPEN_PAREN
330 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
331 ;
332
333 FixedDmaTerm
334 : PARSEOP_FIXEDDMA
335 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDDMA);}
336 WordConstExpr /* 04: DMA RequestLines */
337 ',' WordConstExpr /* 06: DMA Channels */
338 OptionalXferSize /* 07: DMA TransferSize */
339 OptionalNameString /* 08: DescriptorName */
340 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$7,$8);}
341 | PARSEOP_FIXEDDMA
342 PARSEOP_OPEN_PAREN
343 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
344 ;
345
346 FixedIOTerm
347 : PARSEOP_FIXEDIO
348 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIXEDIO);}
349 WordConstExpr
350 ',' ByteConstExpr
351 OptionalNameString_Last
352 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);}
353 | PARSEOP_FIXEDIO
354 PARSEOP_OPEN_PAREN
355 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
356 ;
357
358 GpioIntTerm
359 : PARSEOP_GPIO_INT
360 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_INT);}
361 InterruptTypeKeyword /* 04: InterruptType */
362 ',' InterruptLevel /* 06: InterruptLevel */
363 OptionalShareType /* 07: SharedType */
364 ',' PinConfigByte /* 09: PinConfig */
365 OptionalWordConstExpr /* 10: DebounceTimeout */
366 ',' StringData /* 12: ResourceSource */
367 OptionalByteConstExpr /* 13: ResourceSourceIndex */
368 OptionalResourceType /* 14: ResourceType */
369 OptionalNameString /* 15: DescriptorName */
370 OptionalBuffer_Last /* 16: VendorData */
371 PARSEOP_CLOSE_PAREN '{'
372 DWordConstExpr '}' {$$ = TrLinkOpChildren ($<n>3,11,
373 $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
374 | PARSEOP_GPIO_INT
375 PARSEOP_OPEN_PAREN
376 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
377 ;
378
379 GpioIoTerm
380 : PARSEOP_GPIO_IO
381 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_GPIO_IO);}
382 OptionalShareType_First /* 04: SharedType */
383 ',' PinConfigByte /* 06: PinConfig */
384 OptionalWordConstExpr /* 07: DebounceTimeout */
385 OptionalWordConstExpr /* 08: DriveStrength */
386 OptionalIoRestriction /* 09: IoRestriction */
387 ',' StringData /* 11: ResourceSource */
388 OptionalByteConstExpr /* 12: ResourceSourceIndex */
389 OptionalResourceType /* 13: ResourceType */
390 OptionalNameString /* 14: DescriptorName */
391 OptionalBuffer_Last /* 15: VendorData */
392 PARSEOP_CLOSE_PAREN '{'
393 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,11,
394 $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
395 | PARSEOP_GPIO_IO
396 PARSEOP_OPEN_PAREN
397 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
398 ;
399
400 I2cSerialBusTerm
401 : PARSEOP_I2C_SERIALBUS
402 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS);}
403 WordConstExpr /* 04: SlaveAddress */
404 OptionalSlaveMode /* 05: SlaveMode */
405 ',' DWordConstExpr /* 07: ConnectionSpeed */
406 OptionalAddressingMode /* 08: AddressingMode */
407 ',' StringData /* 10: ResourceSource */
408 OptionalByteConstExpr /* 11: ResourceSourceIndex */
409 OptionalResourceType /* 12: ResourceType */
410 OptionalNameString /* 13: DescriptorName */
411 OptionalBuffer_Last /* 14: VendorData */
412 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,10,
413 $4,$5,$7,$8,$10,$11,$12,$13,
414 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$14);}
415 | PARSEOP_I2C_SERIALBUS
416 PARSEOP_OPEN_PAREN
417 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
418 ;
419
420 I2cSerialBusTermV2
421 : PARSEOP_I2C_SERIALBUS_V2
422 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_I2C_SERIALBUS_V2);}
423 WordConstExpr /* 04: SlaveAddress */
424 OptionalSlaveMode /* 05: SlaveMode */
425 ',' DWordConstExpr /* 07: ConnectionSpeed */
426 OptionalAddressingMode /* 08: AddressingMode */
427 ',' StringData /* 10: ResourceSource */
428 OptionalByteConstExpr /* 11: ResourceSourceIndex */
429 OptionalResourceType /* 12: ResourceType */
430 OptionalNameString /* 13: DescriptorName */
431 OptionalShareType /* 14: Share */
432 OptionalBuffer_Last /* 15: VendorData */
433 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,10,
434 $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
435 | PARSEOP_I2C_SERIALBUS_V2
436 PARSEOP_OPEN_PAREN
437 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
438 ;
439
440 InterruptTerm
441 : PARSEOP_INTERRUPT
442 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_INTERRUPT);}
443 OptionalResourceType_First
444 ',' InterruptTypeKeyword
445 ',' InterruptLevel
446 OptionalShareType
447 OptionalByteConstExpr
448 OptionalStringData
449 OptionalNameString_Last
450 PARSEOP_CLOSE_PAREN '{'
451 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,8,
452 $4,$6,$8,$9,$10,$11,$12,$15);}
453 | PARSEOP_INTERRUPT
454 PARSEOP_OPEN_PAREN
455 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
456 ;
457
458 IOTerm
459 : PARSEOP_IO
460 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IO);}
461 IODecodeKeyword
462 ',' WordConstExpr
463 ',' WordConstExpr
464 ',' ByteConstExpr
465 ',' ByteConstExpr
466 OptionalNameString_Last
467 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
468 | PARSEOP_IO
469 PARSEOP_OPEN_PAREN
470 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
471 ;
472
473 IRQNoFlagsTerm
474 : PARSEOP_IRQNOFLAGS
475 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IRQNOFLAGS);}
476 OptionalNameString_First
477 PARSEOP_CLOSE_PAREN '{'
478 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
479 | PARSEOP_IRQNOFLAGS
480 PARSEOP_OPEN_PAREN
481 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
482 ;
483
484 IRQTerm
485 : PARSEOP_IRQ
486 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IRQ);}
487 InterruptTypeKeyword
488 ',' InterruptLevel
489 OptionalShareType
490 OptionalNameString_Last
491 PARSEOP_CLOSE_PAREN '{'
492 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$6,$7,$8,$11);}
493 | PARSEOP_IRQ
494 PARSEOP_OPEN_PAREN
495 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
496 ;
497
498 Memory24Term
499 : PARSEOP_MEMORY24
500 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY24);}
501 OptionalReadWriteKeyword
502 ',' WordConstExpr
503 ',' WordConstExpr
504 ',' WordConstExpr
505 ',' WordConstExpr
506 OptionalNameString_Last
507 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
508 | PARSEOP_MEMORY24
509 PARSEOP_OPEN_PAREN
510 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
511 ;
512
513 Memory32FixedTerm
514 : PARSEOP_MEMORY32FIXED
515 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32FIXED);}
516 OptionalReadWriteKeyword
517 ',' DWordConstExpr
518 ',' DWordConstExpr
519 OptionalNameString_Last
520 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$6,$8,$9);}
521 | PARSEOP_MEMORY32FIXED
522 PARSEOP_OPEN_PAREN
523 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
524 ;
525
526 Memory32Term
527 : PARSEOP_MEMORY32
528 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MEMORY32);}
529 OptionalReadWriteKeyword
530 ',' DWordConstExpr
531 ',' DWordConstExpr
532 ',' DWordConstExpr
533 ',' DWordConstExpr
534 OptionalNameString_Last
535 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
536 | PARSEOP_MEMORY32
537 PARSEOP_OPEN_PAREN
538 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
539 ;
540
541 PinConfigTerm
542 : PARSEOP_PINCONFIG
543 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINCONFIG);}
544 OptionalShareType_First /* 04: SharedType */
545 ',' ByteConstExpr /* 06: PinConfigType */
546 ',' DWordConstExpr /* 08: PinConfigValue */
547 ',' StringData /* 10: ResourceSource */
548 OptionalByteConstExpr /* 11: ResourceSourceIndex */
549 OptionalResourceType /* 12: ResourceType */
550 OptionalNameString /* 13: DescriptorName */
551 OptionalBuffer_Last /* 14: VendorData */
552 PARSEOP_CLOSE_PAREN '{'
553 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,9,
554 $4,$6,$8,$10,$11,$12,$13,$14,$17);}
555 | PARSEOP_PINCONFIG
556 PARSEOP_OPEN_PAREN
557 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
558 ;
559
560 PinFunctionTerm
561 : PARSEOP_PINFUNCTION
562 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINFUNCTION);}
563 OptionalShareType_First /* 04: SharedType */
564 ',' PinConfigByte /* 06: PinConfig */
565 ',' WordConstExpr /* 08: FunctionNumber */
566 ',' StringData /* 10: ResourceSource */
567 OptionalByteConstExpr /* 11: ResourceSourceIndex */
568 OptionalResourceType /* 12: ResourceType */
569 OptionalNameString /* 13: DescriptorName */
570 OptionalBuffer_Last /* 14: VendorData */
571 PARSEOP_CLOSE_PAREN '{'
572 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,9,
573 $4,$6,$8,$10,$11,$12,$13,$14,$17);}
574 | PARSEOP_PINFUNCTION
575 PARSEOP_OPEN_PAREN
576 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
577 ;
578
579 ClockInputTerm
580 : PARSEOP_CLOCKINPUT
581 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CLOCKINPUT);}
582 DWordConstExpr /* 04: FrequencyNumerator */
583 ',' WordConstExpr /* 06: FrequencyDivisor */
584 ',' ClockScaleKeyword /* 08: Scale */
585 ',' ClockModeKeyword /* 10: Mode*/
586 OptionalStringData /* 11: ResourceSource */
587 OptionalByteConstExpr /* 12: ResourceSourceIndex */
588 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
589 | PARSEOP_CLOCKINPUT
590 PARSEOP_OPEN_PAREN
591 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
592 ;
593
594 PinGroupTerm
595 : PARSEOP_PINGROUP
596 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUP);}
597 StringData /* 04: ResourceLabel */
598 OptionalProducerResourceType /* 05: ResourceType */
599 OptionalNameString /* 06: DescriptorName */
600 OptionalBuffer_Last /* 07: VendorData */
601 PARSEOP_CLOSE_PAREN '{'
602 DWordList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$6,$7,$10);}
603 | PARSEOP_PINGROUP
604 PARSEOP_OPEN_PAREN
605 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
606 ;
607
608 PinGroupConfigTerm
609 : PARSEOP_PINGROUPCONFIG
610 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPCONFIG);}
611 OptionalShareType_First /* 04: SharedType */
612 ',' ByteConstExpr /* 06: PinConfigType */
613 ',' DWordConstExpr /* 08: PinConfigValue */
614 ',' StringData /* 10: ResourceSource */
615 OptionalByteConstExpr /* 11: ResourceSourceIndex */
616 ',' StringData /* 13: ResourceSourceLabel */
617 OptionalResourceType /* 14: ResourceType */
618 OptionalNameString /* 15: DescriptorName */
619 OptionalBuffer_Last /* 16: VendorData */
620 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,9,
621 $4,$6,$8,$10,$11,$13,$14,$15,$16);}
622 | PARSEOP_PINGROUPCONFIG
623 PARSEOP_OPEN_PAREN
624 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
625 ;
626
627 PinGroupFunctionTerm
628 : PARSEOP_PINGROUPFUNCTION
629 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PINGROUPFUNCTION);}
630 OptionalShareType_First /* 04: SharedType */
631 ',' WordConstExpr /* 06: FunctionNumber */
632 ',' StringData /* 08: ResourceSource */
633 OptionalByteConstExpr /* 09: ResourceSourceIndex */
634 ',' StringData /* 11: ResourceSourceLabel */
635 OptionalResourceType /* 12: ResourceType */
636 OptionalNameString /* 13: DescriptorName */
637 OptionalBuffer_Last /* 14: VendorData */
638 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,8,
639 $4,$6,$8,$9,$11,$12,$13,$14);}
640 | PARSEOP_PINGROUPFUNCTION
641 PARSEOP_OPEN_PAREN
642 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
643 ;
644
645 QWordIOTerm
646 : PARSEOP_QWORDIO
647 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDIO);}
648 OptionalResourceType_First
649 OptionalMinType
650 OptionalMaxType
651 OptionalDecodeType
652 OptionalRangeType
653 ',' QWordConstExpr
654 ',' QWordConstExpr
655 ',' QWordConstExpr
656 ',' QWordConstExpr
657 ',' QWordConstExpr
658 OptionalByteConstExpr
659 OptionalStringData
660 OptionalNameString
661 OptionalType
662 OptionalTranslationType_Last
663 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
664 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
665 | PARSEOP_QWORDIO
666 PARSEOP_OPEN_PAREN
667 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
668 ;
669
670 QWordMemoryTerm
671 : PARSEOP_QWORDMEMORY
672 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDMEMORY);}
673 OptionalResourceType_First
674 OptionalDecodeType
675 OptionalMinType
676 OptionalMaxType
677 OptionalMemType
678 ',' OptionalReadWriteKeyword
679 ',' QWordConstExpr
680 ',' QWordConstExpr
681 ',' QWordConstExpr
682 ',' QWordConstExpr
683 ',' QWordConstExpr
684 OptionalByteConstExpr
685 OptionalStringData
686 OptionalNameString
687 OptionalAddressRange
688 OptionalType_Last
689 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,16,
690 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
691 | PARSEOP_QWORDMEMORY
692 PARSEOP_OPEN_PAREN
693 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
694 ;
695
696 QWordPccTerm
697 : PARSEOP_QWORDPCC
698 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDPCC);}
699 ByteConstExpr
700 OptionalByteConstExpr
701 OptionalStringData
702 OptionalNameString_Last
703 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,
704 $4,$5,$6,$7);}
705 | PARSEOP_QWORDPCC
706 PARSEOP_OPEN_PAREN
707 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
708 ;
709
710 QWordSpaceTerm
711 : PARSEOP_QWORDSPACE
712 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_QWORDSPACE);}
713 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
714 OptionalResourceType
715 OptionalDecodeType
716 OptionalMinType
717 OptionalMaxType
718 ',' ByteConstExpr
719 ',' QWordConstExpr
720 ',' QWordConstExpr
721 ',' QWordConstExpr
722 ',' QWordConstExpr
723 ',' QWordConstExpr
724 OptionalByteConstExpr
725 OptionalStringData
726 OptionalNameString_Last
727 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
728 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
729 | PARSEOP_QWORDSPACE
730 PARSEOP_OPEN_PAREN
731 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
732 ;
733
734 RegisterTerm
735 : PARSEOP_REGISTER
736 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_REGISTER);}
737 AddressSpaceKeyword
738 ',' ByteConstExpr
739 ',' ByteConstExpr
740 ',' QWordConstExpr
741 OptionalAccessSize
742 OptionalNameString_Last
743 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
744 | PARSEOP_REGISTER
745 PARSEOP_OPEN_PAREN
746 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
747 ;
748
749 SpiSerialBusTerm
750 : PARSEOP_SPI_SERIALBUS
751 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS);}
752 WordConstExpr /* 04: DeviceSelection */
753 OptionalDevicePolarity /* 05: DevicePolarity */
754 OptionalWireMode /* 06: WireMode */
755 ',' ByteConstExpr /* 08: DataBitLength */
756 OptionalSlaveMode /* 09: SlaveMode */
757 ',' DWordConstExpr /* 11: ConnectionSpeed */
758 ',' ClockPolarityKeyword /* 13: ClockPolarity */
759 ',' ClockPhaseKeyword /* 15: ClockPhase */
760 ',' StringData /* 17: ResourceSource */
761 OptionalByteConstExpr /* 18: ResourceSourceIndex */
762 OptionalResourceType /* 19: ResourceType */
763 OptionalNameString /* 20: DescriptorName */
764 OptionalBuffer_Last /* 21: VendorData */
765 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
766 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
767 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);}
768 | PARSEOP_SPI_SERIALBUS
769 PARSEOP_OPEN_PAREN
770 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
771 ;
772
773 SpiSerialBusTermV2
774 : PARSEOP_SPI_SERIALBUS_V2
775 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SPI_SERIALBUS_V2);}
776 WordConstExpr /* 04: DeviceSelection */
777 OptionalDevicePolarity /* 05: DevicePolarity */
778 OptionalWireMode /* 06: WireMode */
779 ',' ByteConstExpr /* 08: DataBitLength */
780 OptionalSlaveMode /* 09: SlaveMode */
781 ',' DWordConstExpr /* 11: ConnectionSpeed */
782 ',' ClockPolarityKeyword /* 13: ClockPolarity */
783 ',' ClockPhaseKeyword /* 15: ClockPhase */
784 ',' StringData /* 17: ResourceSource */
785 OptionalByteConstExpr /* 18: ResourceSourceIndex */
786 OptionalResourceType /* 19: ResourceType */
787 OptionalNameString /* 20: DescriptorName */
788 OptionalShareType /* 21: Share */
789 OptionalBuffer_Last /* 22: VendorData */
790 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
791 $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
792 | PARSEOP_SPI_SERIALBUS_V2
793 PARSEOP_OPEN_PAREN
794 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
795 ;
796
797 StartDependentFnNoPriTerm
798 : PARSEOP_STARTDEPENDENTFN_NOPRI
799 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN_NOPRI);}
800 PARSEOP_CLOSE_PAREN '{'
801 ResourceMacroList '}' {$$ = TrLinkOpChildren ($<n>3,1,$6);}
802 | PARSEOP_STARTDEPENDENTFN_NOPRI
803 PARSEOP_OPEN_PAREN
804 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
805 ;
806
807 StartDependentFnTerm
808 : PARSEOP_STARTDEPENDENTFN
809 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STARTDEPENDENTFN);}
810 ByteConstExpr
811 ',' ByteConstExpr
812 PARSEOP_CLOSE_PAREN '{'
813 ResourceMacroList '}' {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$9);}
814 | PARSEOP_STARTDEPENDENTFN
815 PARSEOP_OPEN_PAREN
816 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
817 ;
818
819 UartSerialBusTerm
820 : PARSEOP_UART_SERIALBUS
821 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS);}
822 DWordConstExpr /* 04: ConnectionSpeed */
823 OptionalBitsPerByte /* 05: BitsPerByte */
824 OptionalStopBits /* 06: StopBits */
825 ',' ByteConstExpr /* 08: LinesInUse */
826 OptionalEndian /* 09: Endianness */
827 OptionalParityType /* 10: Parity */
828 OptionalFlowControl /* 11: FlowControl */
829 ',' WordConstExpr /* 13: Rx BufferSize */
830 ',' WordConstExpr /* 15: Tx BufferSize */
831 ',' StringData /* 17: ResourceSource */
832 OptionalByteConstExpr /* 18: ResourceSourceIndex */
833 OptionalResourceType /* 19: ResourceType */
834 OptionalNameString /* 20: DescriptorName */
835 OptionalBuffer_Last /* 21: VendorData */
836 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
837 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
838 TrCreateLeafOp (PARSEOP_DEFAULT_ARG),$21);}
839 | PARSEOP_UART_SERIALBUS
840 PARSEOP_OPEN_PAREN
841 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
842 ;
843
844 UartSerialBusTermV2
845 : PARSEOP_UART_SERIALBUS_V2
846 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UART_SERIALBUS_V2);}
847 DWordConstExpr /* 04: ConnectionSpeed */
848 OptionalBitsPerByte /* 05: BitsPerByte */
849 OptionalStopBits /* 06: StopBits */
850 ',' ByteConstExpr /* 08: LinesInUse */
851 OptionalEndian /* 09: Endianness */
852 OptionalParityType /* 10: Parity */
853 OptionalFlowControl /* 11: FlowControl */
854 ',' WordConstExpr /* 13: Rx BufferSize */
855 ',' WordConstExpr /* 15: Tx BufferSize */
856 ',' StringData /* 17: ResourceSource */
857 OptionalByteConstExpr /* 18: ResourceSourceIndex */
858 OptionalResourceType /* 19: ResourceType */
859 OptionalNameString /* 20: DescriptorName */
860 OptionalShareType /* 21: Share */
861 OptionalBuffer_Last /* 22: VendorData */
862 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
863 $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
864 | PARSEOP_UART_SERIALBUS_V2
865 PARSEOP_OPEN_PAREN
866 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
867 ;
868
869 VendorLongTerm
870 : PARSEOP_VENDORLONG
871 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORLONG);}
872 OptionalNameString_First
873 PARSEOP_CLOSE_PAREN '{'
874 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
875 | PARSEOP_VENDORLONG
876 PARSEOP_OPEN_PAREN
877 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
878 ;
879
880 VendorShortTerm
881 : PARSEOP_VENDORSHORT
882 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_VENDORSHORT);}
883 OptionalNameString_First
884 PARSEOP_CLOSE_PAREN '{'
885 ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
886 | PARSEOP_VENDORSHORT
887 PARSEOP_OPEN_PAREN
888 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
889 ;
890
891 WordBusNumberTerm
892 : PARSEOP_WORDBUSNUMBER
893 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDBUSNUMBER);}
894 OptionalResourceType_First
895 OptionalMinType
896 OptionalMaxType
897 OptionalDecodeType
898 ',' WordConstExpr
899 ',' WordConstExpr
900 ',' WordConstExpr
901 ',' WordConstExpr
902 ',' WordConstExpr
903 OptionalByteConstExpr
904 OptionalStringData
905 OptionalNameString_Last
906 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,12,
907 $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
908 | PARSEOP_WORDBUSNUMBER
909 PARSEOP_OPEN_PAREN
910 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
911 ;
912
913 WordIOTerm
914 : PARSEOP_WORDIO
915 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDIO);}
916 OptionalResourceType_First
917 OptionalMinType
918 OptionalMaxType
919 OptionalDecodeType
920 OptionalRangeType
921 ',' WordConstExpr
922 ',' WordConstExpr
923 ',' WordConstExpr
924 ',' WordConstExpr
925 ',' WordConstExpr
926 OptionalByteConstExpr
927 OptionalStringData
928 OptionalNameString
929 OptionalType
930 OptionalTranslationType_Last
931 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,15,
932 $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
933 | PARSEOP_WORDIO
934 PARSEOP_OPEN_PAREN
935 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
936 ;
937
938 WordPccTerm
939 : PARSEOP_WORDPCC
940 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDPCC);}
941 ByteConstExpr
942 OptionalByteConstExpr
943 OptionalStringData
944 OptionalNameString_Last
945 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,
946 $4,$5,$6,$7);}
947 | PARSEOP_WORDPCC
948 PARSEOP_OPEN_PAREN
949 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
950 ;
951
952 WordSpaceTerm
953 : PARSEOP_WORDSPACE
954 PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WORDSPACE);}
955 ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
956 OptionalResourceType
957 OptionalDecodeType
958 OptionalMinType
959 OptionalMaxType
960 ',' ByteConstExpr
961 ',' WordConstExpr
962 ',' WordConstExpr
963 ',' WordConstExpr
964 ',' WordConstExpr
965 ',' WordConstExpr
966 OptionalByteConstExpr
967 OptionalStringData
968 OptionalNameString_Last
969 PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,14,
970 $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
971 | PARSEOP_WORDSPACE
972 PARSEOP_OPEN_PAREN
973 error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;}
974 ;
975