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