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