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