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