Home | History | Annotate | Line # | Download | only in compiler
aslresources.y revision 1.1.1.5
      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  christos         ResourceMacroList '}'       {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
     65      1.1  christos                                           TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
     66      1.1  christos                                           TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
     67  1.1.1.5  christos                                           $5,
     68  1.1.1.5  christos                                           TrCreateLeafNode (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  christos         ResourceMacroTerm           {$$ = TrLinkPeerNode ($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  christos     | QWordIOTerm                   {}
    107      1.1  christos     | QWordMemoryTerm               {}
    108      1.1  christos     | QWordSpaceTerm                {}
    109      1.1  christos     | RegisterTerm                  {}
    110      1.1  christos     | SpiSerialBusTerm              {}
    111  1.1.1.2  christos     | SpiSerialBusTermV2            {}
    112      1.1  christos     | StartDependentFnNoPriTerm     {}
    113      1.1  christos     | StartDependentFnTerm          {}
    114      1.1  christos     | UartSerialBusTerm             {}
    115  1.1.1.2  christos     | UartSerialBusTermV2           {}
    116      1.1  christos     | VendorLongTerm                {}
    117      1.1  christos     | VendorShortTerm               {}
    118      1.1  christos     | WordBusNumberTerm             {}
    119      1.1  christos     | WordIOTerm                    {}
    120      1.1  christos     | WordSpaceTerm                 {}
    121      1.1  christos     ;
    122      1.1  christos 
    123      1.1  christos DMATerm
    124  1.1.1.4  christos     : PARSEOP_DMA
    125  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
    126      1.1  christos         DMATypeKeyword
    127      1.1  christos         OptionalBusMasterKeyword
    128      1.1  christos         ',' XferTypeKeyword
    129      1.1  christos         OptionalNameString_Last
    130  1.1.1.4  christos         PARSEOP_CLOSE_PAREN '{'
    131      1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
    132  1.1.1.4  christos     | PARSEOP_DMA
    133  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    134  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    135      1.1  christos     ;
    136      1.1  christos 
    137      1.1  christos DWordIOTerm
    138  1.1.1.4  christos     : PARSEOP_DWORDIO
    139  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
    140      1.1  christos         OptionalResourceType_First
    141      1.1  christos         OptionalMinType
    142      1.1  christos         OptionalMaxType
    143      1.1  christos         OptionalDecodeType
    144      1.1  christos         OptionalRangeType
    145      1.1  christos         ',' DWordConstExpr
    146      1.1  christos         ',' DWordConstExpr
    147      1.1  christos         ',' DWordConstExpr
    148      1.1  christos         ',' DWordConstExpr
    149      1.1  christos         ',' DWordConstExpr
    150      1.1  christos         OptionalByteConstExpr
    151      1.1  christos         OptionalStringData
    152      1.1  christos         OptionalNameString
    153      1.1  christos         OptionalType
    154      1.1  christos         OptionalTranslationType_Last
    155  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,15,
    156  1.1.1.3  christos                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
    157  1.1.1.4  christos     | PARSEOP_DWORDIO
    158  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    159  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    160      1.1  christos     ;
    161      1.1  christos 
    162      1.1  christos DWordMemoryTerm
    163  1.1.1.4  christos     : PARSEOP_DWORDMEMORY
    164  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
    165      1.1  christos         OptionalResourceType_First
    166      1.1  christos         OptionalDecodeType
    167      1.1  christos         OptionalMinType
    168      1.1  christos         OptionalMaxType
    169      1.1  christos         OptionalMemType
    170      1.1  christos         ',' OptionalReadWriteKeyword
    171      1.1  christos         ',' DWordConstExpr
    172      1.1  christos         ',' DWordConstExpr
    173      1.1  christos         ',' DWordConstExpr
    174      1.1  christos         ',' DWordConstExpr
    175      1.1  christos         ',' DWordConstExpr
    176      1.1  christos         OptionalByteConstExpr
    177      1.1  christos         OptionalStringData
    178      1.1  christos         OptionalNameString
    179      1.1  christos         OptionalAddressRange
    180      1.1  christos         OptionalType_Last
    181  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,16,
    182  1.1.1.3  christos                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
    183  1.1.1.4  christos     | PARSEOP_DWORDMEMORY
    184  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    185  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    186      1.1  christos     ;
    187      1.1  christos 
    188      1.1  christos DWordSpaceTerm
    189  1.1.1.4  christos     : PARSEOP_DWORDSPACE
    190  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
    191      1.1  christos         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
    192      1.1  christos         OptionalResourceType
    193      1.1  christos         OptionalDecodeType
    194      1.1  christos         OptionalMinType
    195      1.1  christos         OptionalMaxType
    196      1.1  christos         ',' ByteConstExpr
    197      1.1  christos         ',' DWordConstExpr
    198      1.1  christos         ',' DWordConstExpr
    199      1.1  christos         ',' DWordConstExpr
    200      1.1  christos         ',' DWordConstExpr
    201      1.1  christos         ',' DWordConstExpr
    202      1.1  christos         OptionalByteConstExpr
    203      1.1  christos         OptionalStringData
    204      1.1  christos         OptionalNameString_Last
    205  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,14,
    206  1.1.1.3  christos                                         $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
    207  1.1.1.4  christos     | PARSEOP_DWORDSPACE
    208  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    209  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    210      1.1  christos     ;
    211      1.1  christos 
    212      1.1  christos EndDependentFnTerm
    213  1.1.1.4  christos     : PARSEOP_ENDDEPENDENTFN
    214  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    215  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
    216  1.1.1.4  christos     | PARSEOP_ENDDEPENDENTFN
    217  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    218  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    219      1.1  christos     ;
    220      1.1  christos 
    221      1.1  christos ExtendedIOTerm
    222  1.1.1.4  christos     : PARSEOP_EXTENDEDIO
    223  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
    224      1.1  christos         OptionalResourceType_First
    225      1.1  christos         OptionalMinType
    226      1.1  christos         OptionalMaxType
    227      1.1  christos         OptionalDecodeType
    228      1.1  christos         OptionalRangeType
    229      1.1  christos         ',' QWordConstExpr
    230      1.1  christos         ',' QWordConstExpr
    231      1.1  christos         ',' QWordConstExpr
    232      1.1  christos         ',' QWordConstExpr
    233      1.1  christos         ',' QWordConstExpr
    234      1.1  christos         OptionalQWordConstExpr
    235      1.1  christos         OptionalNameString
    236      1.1  christos         OptionalType
    237      1.1  christos         OptionalTranslationType_Last
    238  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,14,
    239  1.1.1.3  christos                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
    240  1.1.1.4  christos     | PARSEOP_EXTENDEDIO
    241  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    242  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    243      1.1  christos     ;
    244      1.1  christos 
    245      1.1  christos ExtendedMemoryTerm
    246  1.1.1.4  christos     : PARSEOP_EXTENDEDMEMORY
    247  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
    248      1.1  christos         OptionalResourceType_First
    249      1.1  christos         OptionalDecodeType
    250      1.1  christos         OptionalMinType
    251      1.1  christos         OptionalMaxType
    252      1.1  christos         OptionalMemType
    253      1.1  christos         ',' OptionalReadWriteKeyword
    254      1.1  christos         ',' QWordConstExpr
    255      1.1  christos         ',' QWordConstExpr
    256      1.1  christos         ',' QWordConstExpr
    257      1.1  christos         ',' QWordConstExpr
    258      1.1  christos         ',' QWordConstExpr
    259      1.1  christos         OptionalQWordConstExpr
    260      1.1  christos         OptionalNameString
    261      1.1  christos         OptionalAddressRange
    262      1.1  christos         OptionalType_Last
    263  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,15,
    264  1.1.1.3  christos                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
    265  1.1.1.4  christos     | PARSEOP_EXTENDEDMEMORY
    266  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    267  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    268      1.1  christos     ;
    269      1.1  christos 
    270      1.1  christos ExtendedSpaceTerm
    271  1.1.1.4  christos     : PARSEOP_EXTENDEDSPACE PARSEOP_OPEN_PAREN     {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
    272      1.1  christos         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
    273      1.1  christos         OptionalResourceType
    274      1.1  christos         OptionalDecodeType
    275      1.1  christos         OptionalMinType
    276      1.1  christos         OptionalMaxType
    277      1.1  christos         ',' ByteConstExpr
    278      1.1  christos         ',' QWordConstExpr
    279      1.1  christos         ',' QWordConstExpr
    280      1.1  christos         ',' QWordConstExpr
    281      1.1  christos         ',' QWordConstExpr
    282      1.1  christos         ',' QWordConstExpr
    283      1.1  christos         OptionalQWordConstExpr
    284      1.1  christos         OptionalNameString_Last
    285  1.1.1.4  christos         PARSEOP_CLOSE_PAREN                         {$$ = TrLinkChildren ($<n>3,13,
    286  1.1.1.3  christos                                         $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
    287  1.1.1.4  christos     | PARSEOP_EXTENDEDSPACE
    288  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    289  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN                   {$$ = AslDoError(); yyclearin;}
    290      1.1  christos     ;
    291      1.1  christos 
    292      1.1  christos FixedDmaTerm
    293  1.1.1.4  christos     : PARSEOP_FIXEDDMA
    294  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
    295      1.1  christos         WordConstExpr               /* 04: DMA RequestLines */
    296      1.1  christos         ',' WordConstExpr           /* 06: DMA Channels */
    297      1.1  christos         OptionalXferSize            /* 07: DMA TransferSize */
    298      1.1  christos         OptionalNameString          /* 08: DescriptorName */
    299  1.1.1.4  christos         PARSEOP_CLOSE_PAREN                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
    300  1.1.1.4  christos     | PARSEOP_FIXEDDMA
    301  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    302  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN                   {$$ = AslDoError(); yyclearin;}
    303      1.1  christos     ;
    304      1.1  christos 
    305      1.1  christos FixedIOTerm
    306  1.1.1.4  christos     : PARSEOP_FIXEDIO
    307  1.1.1.4  christos         PARSEOP_OPEN_PAREN           {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
    308      1.1  christos         WordConstExpr
    309      1.1  christos         ',' ByteConstExpr
    310      1.1  christos         OptionalNameString_Last
    311  1.1.1.4  christos         PARSEOP_CLOSE_PAREN                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
    312  1.1.1.4  christos     | PARSEOP_FIXEDIO
    313  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    314  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN                   {$$ = AslDoError(); yyclearin;}
    315      1.1  christos     ;
    316      1.1  christos 
    317      1.1  christos GpioIntTerm
    318  1.1.1.4  christos     : PARSEOP_GPIO_INT
    319  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
    320      1.1  christos         InterruptTypeKeyword        /* 04: InterruptType */
    321      1.1  christos         ',' InterruptLevel          /* 06: InterruptLevel */
    322      1.1  christos         OptionalShareType           /* 07: SharedType */
    323      1.1  christos         ',' PinConfigByte           /* 09: PinConfig */
    324      1.1  christos         OptionalWordConstExpr       /* 10: DebounceTimeout */
    325      1.1  christos         ',' StringData              /* 12: ResourceSource */
    326      1.1  christos         OptionalByteConstExpr       /* 13: ResourceSourceIndex */
    327      1.1  christos         OptionalResourceType        /* 14: ResourceType */
    328      1.1  christos         OptionalNameString          /* 15: DescriptorName */
    329      1.1  christos         OptionalBuffer_Last         /* 16: VendorData */
    330  1.1.1.4  christos         PARSEOP_CLOSE_PAREN '{'
    331  1.1.1.3  christos             DWordConstExpr '}'      {$$ = TrLinkChildren ($<n>3,11,
    332  1.1.1.3  christos                                         $4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
    333  1.1.1.4  christos     | PARSEOP_GPIO_INT
    334  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    335  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    336      1.1  christos     ;
    337      1.1  christos 
    338      1.1  christos GpioIoTerm
    339  1.1.1.4  christos     : PARSEOP_GPIO_IO
    340  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
    341      1.1  christos         OptionalShareType_First     /* 04: SharedType */
    342      1.1  christos         ',' PinConfigByte           /* 06: PinConfig */
    343      1.1  christos         OptionalWordConstExpr       /* 07: DebounceTimeout */
    344      1.1  christos         OptionalWordConstExpr       /* 08: DriveStrength */
    345      1.1  christos         OptionalIoRestriction       /* 09: IoRestriction */
    346      1.1  christos         ',' StringData              /* 11: ResourceSource */
    347      1.1  christos         OptionalByteConstExpr       /* 12: ResourceSourceIndex */
    348      1.1  christos         OptionalResourceType        /* 13: ResourceType */
    349      1.1  christos         OptionalNameString          /* 14: DescriptorName */
    350      1.1  christos         OptionalBuffer_Last         /* 15: VendorData */
    351  1.1.1.4  christos         PARSEOP_CLOSE_PAREN '{'
    352  1.1.1.3  christos             DWordList '}'           {$$ = TrLinkChildren ($<n>3,11,
    353  1.1.1.3  christos                                         $4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
    354  1.1.1.4  christos     | PARSEOP_GPIO_IO
    355  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    356  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN                   {$$ = AslDoError(); yyclearin;}
    357      1.1  christos     ;
    358      1.1  christos 
    359      1.1  christos I2cSerialBusTerm
    360  1.1.1.4  christos     : PARSEOP_I2C_SERIALBUS
    361  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
    362      1.1  christos         WordConstExpr               /* 04: SlaveAddress */
    363      1.1  christos         OptionalSlaveMode           /* 05: SlaveMode */
    364      1.1  christos         ',' DWordConstExpr          /* 07: ConnectionSpeed */
    365      1.1  christos         OptionalAddressingMode      /* 08: AddressingMode */
    366      1.1  christos         ',' StringData              /* 10: ResourceSource */
    367      1.1  christos         OptionalByteConstExpr       /* 11: ResourceSourceIndex */
    368      1.1  christos         OptionalResourceType        /* 12: ResourceType */
    369      1.1  christos         OptionalNameString          /* 13: DescriptorName */
    370      1.1  christos         OptionalBuffer_Last         /* 14: VendorData */
    371  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,10,
    372  1.1.1.3  christos                                         $4,$5,$7,$8,$10,$11,$12,$13,
    373  1.1.1.2  christos                                         TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$14);}
    374  1.1.1.4  christos     | PARSEOP_I2C_SERIALBUS
    375  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    376  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    377      1.1  christos     ;
    378      1.1  christos 
    379  1.1.1.2  christos I2cSerialBusTermV2
    380  1.1.1.4  christos     : PARSEOP_I2C_SERIALBUS_V2
    381  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS_V2);}
    382  1.1.1.2  christos         WordConstExpr               /* 04: SlaveAddress */
    383  1.1.1.2  christos         OptionalSlaveMode           /* 05: SlaveMode */
    384  1.1.1.2  christos         ',' DWordConstExpr          /* 07: ConnectionSpeed */
    385  1.1.1.2  christos         OptionalAddressingMode      /* 08: AddressingMode */
    386  1.1.1.2  christos         ',' StringData              /* 10: ResourceSource */
    387  1.1.1.2  christos         OptionalByteConstExpr       /* 11: ResourceSourceIndex */
    388  1.1.1.2  christos         OptionalResourceType        /* 12: ResourceType */
    389  1.1.1.2  christos         OptionalNameString          /* 13: DescriptorName */
    390  1.1.1.2  christos         OptionalShareType           /* 14: Share */
    391  1.1.1.2  christos         OptionalBuffer_Last         /* 15: VendorData */
    392  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,10,
    393  1.1.1.3  christos                                         $4,$5,$7,$8,$10,$11,$12,$13,$14,$15);}
    394  1.1.1.4  christos     | PARSEOP_I2C_SERIALBUS_V2
    395  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    396  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    397  1.1.1.2  christos     ;
    398  1.1.1.2  christos 
    399      1.1  christos InterruptTerm
    400  1.1.1.4  christos     : PARSEOP_INTERRUPT
    401  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
    402      1.1  christos         OptionalResourceType_First
    403      1.1  christos         ',' InterruptTypeKeyword
    404      1.1  christos         ',' InterruptLevel
    405      1.1  christos         OptionalShareType
    406      1.1  christos         OptionalByteConstExpr
    407      1.1  christos         OptionalStringData
    408      1.1  christos         OptionalNameString_Last
    409  1.1.1.4  christos         PARSEOP_CLOSE_PAREN '{'
    410  1.1.1.3  christos             DWordList '}'           {$$ = TrLinkChildren ($<n>3,8,
    411  1.1.1.3  christos                                         $4,$6,$8,$9,$10,$11,$12,$15);}
    412  1.1.1.4  christos     | PARSEOP_INTERRUPT
    413  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    414  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    415      1.1  christos     ;
    416      1.1  christos 
    417      1.1  christos IOTerm
    418  1.1.1.4  christos     : PARSEOP_IO
    419  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
    420      1.1  christos         IODecodeKeyword
    421      1.1  christos         ',' WordConstExpr
    422      1.1  christos         ',' WordConstExpr
    423      1.1  christos         ',' ByteConstExpr
    424      1.1  christos         ',' ByteConstExpr
    425      1.1  christos         OptionalNameString_Last
    426  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
    427  1.1.1.4  christos     | PARSEOP_IO
    428  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    429  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    430      1.1  christos     ;
    431      1.1  christos 
    432      1.1  christos IRQNoFlagsTerm
    433  1.1.1.4  christos     : PARSEOP_IRQNOFLAGS
    434  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
    435      1.1  christos         OptionalNameString_First
    436  1.1.1.4  christos         PARSEOP_CLOSE_PAREN '{'
    437      1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    438  1.1.1.4  christos     | PARSEOP_IRQNOFLAGS
    439  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    440  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    441      1.1  christos     ;
    442      1.1  christos 
    443      1.1  christos IRQTerm
    444  1.1.1.4  christos     : PARSEOP_IRQ
    445  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
    446      1.1  christos         InterruptTypeKeyword
    447      1.1  christos         ',' InterruptLevel
    448      1.1  christos         OptionalShareType
    449      1.1  christos         OptionalNameString_Last
    450  1.1.1.4  christos         PARSEOP_CLOSE_PAREN '{'
    451      1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
    452  1.1.1.4  christos     | PARSEOP_IRQ
    453  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    454  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    455      1.1  christos     ;
    456      1.1  christos 
    457      1.1  christos Memory24Term
    458  1.1.1.4  christos     : PARSEOP_MEMORY24
    459  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
    460      1.1  christos         OptionalReadWriteKeyword
    461      1.1  christos         ',' WordConstExpr
    462      1.1  christos         ',' WordConstExpr
    463      1.1  christos         ',' WordConstExpr
    464      1.1  christos         ',' WordConstExpr
    465      1.1  christos         OptionalNameString_Last
    466  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
    467  1.1.1.4  christos     | PARSEOP_MEMORY24
    468  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    469  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    470      1.1  christos     ;
    471      1.1  christos 
    472      1.1  christos Memory32FixedTerm
    473  1.1.1.4  christos     : PARSEOP_MEMORY32FIXED
    474  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
    475      1.1  christos         OptionalReadWriteKeyword
    476      1.1  christos         ',' DWordConstExpr
    477      1.1  christos         ',' DWordConstExpr
    478      1.1  christos         OptionalNameString_Last
    479  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
    480  1.1.1.4  christos     | PARSEOP_MEMORY32FIXED
    481  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    482  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    483      1.1  christos     ;
    484      1.1  christos 
    485      1.1  christos Memory32Term
    486  1.1.1.4  christos     : PARSEOP_MEMORY32
    487  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
    488      1.1  christos         OptionalReadWriteKeyword
    489      1.1  christos         ',' DWordConstExpr
    490      1.1  christos         ',' DWordConstExpr
    491      1.1  christos         ',' DWordConstExpr
    492      1.1  christos         ',' DWordConstExpr
    493      1.1  christos         OptionalNameString_Last
    494  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
    495  1.1.1.4  christos     | PARSEOP_MEMORY32
    496  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    497  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    498      1.1  christos     ;
    499      1.1  christos 
    500      1.1  christos QWordIOTerm
    501  1.1.1.4  christos     : PARSEOP_QWORDIO
    502  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
    503      1.1  christos         OptionalResourceType_First
    504      1.1  christos         OptionalMinType
    505      1.1  christos         OptionalMaxType
    506      1.1  christos         OptionalDecodeType
    507      1.1  christos         OptionalRangeType
    508      1.1  christos         ',' QWordConstExpr
    509      1.1  christos         ',' QWordConstExpr
    510      1.1  christos         ',' QWordConstExpr
    511      1.1  christos         ',' QWordConstExpr
    512      1.1  christos         ',' QWordConstExpr
    513      1.1  christos         OptionalByteConstExpr
    514      1.1  christos         OptionalStringData
    515      1.1  christos         OptionalNameString
    516      1.1  christos         OptionalType
    517      1.1  christos         OptionalTranslationType_Last
    518  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,15,
    519  1.1.1.3  christos                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
    520  1.1.1.4  christos     | PARSEOP_QWORDIO
    521  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    522  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    523      1.1  christos     ;
    524      1.1  christos 
    525      1.1  christos QWordMemoryTerm
    526  1.1.1.4  christos     : PARSEOP_QWORDMEMORY
    527  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
    528      1.1  christos         OptionalResourceType_First
    529      1.1  christos         OptionalDecodeType
    530      1.1  christos         OptionalMinType
    531      1.1  christos         OptionalMaxType
    532      1.1  christos         OptionalMemType
    533      1.1  christos         ',' OptionalReadWriteKeyword
    534      1.1  christos         ',' QWordConstExpr
    535      1.1  christos         ',' QWordConstExpr
    536      1.1  christos         ',' QWordConstExpr
    537      1.1  christos         ',' QWordConstExpr
    538      1.1  christos         ',' QWordConstExpr
    539      1.1  christos         OptionalByteConstExpr
    540      1.1  christos         OptionalStringData
    541      1.1  christos         OptionalNameString
    542      1.1  christos         OptionalAddressRange
    543      1.1  christos         OptionalType_Last
    544  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,16,
    545  1.1.1.3  christos                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
    546  1.1.1.4  christos     | PARSEOP_QWORDMEMORY
    547  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    548  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    549      1.1  christos     ;
    550      1.1  christos 
    551      1.1  christos QWordSpaceTerm
    552  1.1.1.4  christos     : PARSEOP_QWORDSPACE
    553  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
    554      1.1  christos         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
    555      1.1  christos         OptionalResourceType
    556      1.1  christos         OptionalDecodeType
    557      1.1  christos         OptionalMinType
    558      1.1  christos         OptionalMaxType
    559      1.1  christos         ',' ByteConstExpr
    560      1.1  christos         ',' QWordConstExpr
    561      1.1  christos         ',' QWordConstExpr
    562      1.1  christos         ',' QWordConstExpr
    563      1.1  christos         ',' QWordConstExpr
    564      1.1  christos         ',' QWordConstExpr
    565      1.1  christos         OptionalByteConstExpr
    566      1.1  christos         OptionalStringData
    567      1.1  christos         OptionalNameString_Last
    568  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,14,
    569  1.1.1.3  christos                                         $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
    570  1.1.1.4  christos     | PARSEOP_QWORDSPACE
    571  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    572  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    573      1.1  christos     ;
    574      1.1  christos 
    575      1.1  christos RegisterTerm
    576  1.1.1.4  christos     : PARSEOP_REGISTER
    577  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
    578      1.1  christos         AddressSpaceKeyword
    579      1.1  christos         ',' ByteConstExpr
    580      1.1  christos         ',' ByteConstExpr
    581      1.1  christos         ',' QWordConstExpr
    582      1.1  christos         OptionalAccessSize
    583      1.1  christos         OptionalNameString_Last
    584  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
    585  1.1.1.4  christos     | PARSEOP_REGISTER
    586  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    587  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    588      1.1  christos     ;
    589      1.1  christos 
    590      1.1  christos SpiSerialBusTerm
    591  1.1.1.4  christos     : PARSEOP_SPI_SERIALBUS
    592  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
    593      1.1  christos         WordConstExpr               /* 04: DeviceSelection */
    594      1.1  christos         OptionalDevicePolarity      /* 05: DevicePolarity */
    595      1.1  christos         OptionalWireMode            /* 06: WireMode */
    596      1.1  christos         ',' ByteConstExpr           /* 08: DataBitLength */
    597      1.1  christos         OptionalSlaveMode           /* 09: SlaveMode */
    598      1.1  christos         ',' DWordConstExpr          /* 11: ConnectionSpeed */
    599      1.1  christos         ',' ClockPolarityKeyword    /* 13: ClockPolarity */
    600      1.1  christos         ',' ClockPhaseKeyword       /* 15: ClockPhase */
    601      1.1  christos         ',' StringData              /* 17: ResourceSource */
    602      1.1  christos         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
    603      1.1  christos         OptionalResourceType        /* 19: ResourceType */
    604      1.1  christos         OptionalNameString          /* 20: DescriptorName */
    605      1.1  christos         OptionalBuffer_Last         /* 21: VendorData */
    606  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,14,
    607  1.1.1.3  christos                                         $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
    608  1.1.1.2  christos                                         TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
    609  1.1.1.4  christos     | PARSEOP_SPI_SERIALBUS
    610  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    611  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    612      1.1  christos     ;
    613      1.1  christos 
    614  1.1.1.2  christos SpiSerialBusTermV2
    615  1.1.1.4  christos     : PARSEOP_SPI_SERIALBUS_V2
    616  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS_V2);}
    617  1.1.1.2  christos         WordConstExpr               /* 04: DeviceSelection */
    618  1.1.1.2  christos         OptionalDevicePolarity      /* 05: DevicePolarity */
    619  1.1.1.2  christos         OptionalWireMode            /* 06: WireMode */
    620  1.1.1.2  christos         ',' ByteConstExpr           /* 08: DataBitLength */
    621  1.1.1.2  christos         OptionalSlaveMode           /* 09: SlaveMode */
    622  1.1.1.2  christos         ',' DWordConstExpr          /* 11: ConnectionSpeed */
    623  1.1.1.2  christos         ',' ClockPolarityKeyword    /* 13: ClockPolarity */
    624  1.1.1.2  christos         ',' ClockPhaseKeyword       /* 15: ClockPhase */
    625  1.1.1.2  christos         ',' StringData              /* 17: ResourceSource */
    626  1.1.1.2  christos         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
    627  1.1.1.2  christos         OptionalResourceType        /* 19: ResourceType */
    628  1.1.1.2  christos         OptionalNameString          /* 20: DescriptorName */
    629  1.1.1.2  christos         OptionalShareType           /* 21: Share */
    630  1.1.1.2  christos         OptionalBuffer_Last         /* 22: VendorData */
    631  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,14,
    632  1.1.1.3  christos                                         $4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
    633  1.1.1.4  christos     | PARSEOP_SPI_SERIALBUS_V2
    634  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    635  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    636  1.1.1.2  christos     ;
    637  1.1.1.2  christos 
    638      1.1  christos StartDependentFnNoPriTerm
    639  1.1.1.4  christos     : PARSEOP_STARTDEPENDENTFN_NOPRI
    640  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
    641  1.1.1.4  christos         PARSEOP_CLOSE_PAREN '{'
    642      1.1  christos         ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,1,$6);}
    643  1.1.1.4  christos     | PARSEOP_STARTDEPENDENTFN_NOPRI
    644  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    645  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    646      1.1  christos     ;
    647      1.1  christos 
    648      1.1  christos StartDependentFnTerm
    649  1.1.1.4  christos     : PARSEOP_STARTDEPENDENTFN
    650  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
    651      1.1  christos         ByteConstExpr
    652      1.1  christos         ',' ByteConstExpr
    653  1.1.1.4  christos         PARSEOP_CLOSE_PAREN '{'
    654      1.1  christos         ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
    655  1.1.1.4  christos     | PARSEOP_STARTDEPENDENTFN
    656  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    657  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    658      1.1  christos     ;
    659      1.1  christos 
    660      1.1  christos UartSerialBusTerm
    661  1.1.1.4  christos     : PARSEOP_UART_SERIALBUS
    662  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
    663      1.1  christos         DWordConstExpr              /* 04: ConnectionSpeed */
    664      1.1  christos         OptionalBitsPerByte         /* 05: BitsPerByte */
    665      1.1  christos         OptionalStopBits            /* 06: StopBits */
    666      1.1  christos         ',' ByteConstExpr           /* 08: LinesInUse */
    667      1.1  christos         OptionalEndian              /* 09: Endianess */
    668      1.1  christos         OptionalParityType          /* 10: Parity */
    669      1.1  christos         OptionalFlowControl         /* 11: FlowControl */
    670      1.1  christos         ',' WordConstExpr           /* 13: Rx BufferSize */
    671      1.1  christos         ',' WordConstExpr           /* 15: Tx BufferSize */
    672      1.1  christos         ',' StringData              /* 17: ResourceSource */
    673      1.1  christos         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
    674      1.1  christos         OptionalResourceType        /* 19: ResourceType */
    675      1.1  christos         OptionalNameString          /* 20: DescriptorName */
    676      1.1  christos         OptionalBuffer_Last         /* 21: VendorData */
    677  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,15,
    678  1.1.1.3  christos                                         $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
    679  1.1.1.2  christos                                         TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
    680  1.1.1.4  christos     | PARSEOP_UART_SERIALBUS
    681  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    682  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    683      1.1  christos     ;
    684      1.1  christos 
    685  1.1.1.2  christos UartSerialBusTermV2
    686  1.1.1.4  christos     : PARSEOP_UART_SERIALBUS_V2
    687  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS_V2);}
    688  1.1.1.2  christos         DWordConstExpr              /* 04: ConnectionSpeed */
    689  1.1.1.2  christos         OptionalBitsPerByte         /* 05: BitsPerByte */
    690  1.1.1.2  christos         OptionalStopBits            /* 06: StopBits */
    691  1.1.1.2  christos         ',' ByteConstExpr           /* 08: LinesInUse */
    692  1.1.1.2  christos         OptionalEndian              /* 09: Endianess */
    693  1.1.1.2  christos         OptionalParityType          /* 10: Parity */
    694  1.1.1.2  christos         OptionalFlowControl         /* 11: FlowControl */
    695  1.1.1.2  christos         ',' WordConstExpr           /* 13: Rx BufferSize */
    696  1.1.1.2  christos         ',' WordConstExpr           /* 15: Tx BufferSize */
    697  1.1.1.2  christos         ',' StringData              /* 17: ResourceSource */
    698  1.1.1.2  christos         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
    699  1.1.1.2  christos         OptionalResourceType        /* 19: ResourceType */
    700  1.1.1.2  christos         OptionalNameString          /* 20: DescriptorName */
    701  1.1.1.2  christos         OptionalShareType           /* 21: Share */
    702  1.1.1.2  christos         OptionalBuffer_Last         /* 22: VendorData */
    703  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,15,
    704  1.1.1.3  christos                                         $4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21,$22);}
    705  1.1.1.4  christos     | PARSEOP_UART_SERIALBUS_V2
    706  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    707  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    708  1.1.1.2  christos     ;
    709  1.1.1.2  christos 
    710      1.1  christos VendorLongTerm
    711  1.1.1.4  christos     : PARSEOP_VENDORLONG
    712  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
    713      1.1  christos         OptionalNameString_First
    714  1.1.1.4  christos         PARSEOP_CLOSE_PAREN '{'
    715      1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    716  1.1.1.4  christos     | PARSEOP_VENDORLONG
    717  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    718  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    719      1.1  christos     ;
    720      1.1  christos 
    721      1.1  christos VendorShortTerm
    722  1.1.1.4  christos     : PARSEOP_VENDORSHORT
    723  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
    724      1.1  christos         OptionalNameString_First
    725  1.1.1.4  christos         PARSEOP_CLOSE_PAREN '{'
    726      1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    727  1.1.1.4  christos     | PARSEOP_VENDORSHORT
    728  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    729  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    730      1.1  christos     ;
    731      1.1  christos 
    732      1.1  christos WordBusNumberTerm
    733  1.1.1.4  christos     : PARSEOP_WORDBUSNUMBER
    734  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
    735      1.1  christos         OptionalResourceType_First
    736      1.1  christos         OptionalMinType
    737      1.1  christos         OptionalMaxType
    738      1.1  christos         OptionalDecodeType
    739      1.1  christos         ',' WordConstExpr
    740      1.1  christos         ',' WordConstExpr
    741      1.1  christos         ',' WordConstExpr
    742      1.1  christos         ',' WordConstExpr
    743      1.1  christos         ',' WordConstExpr
    744      1.1  christos         OptionalByteConstExpr
    745      1.1  christos         OptionalStringData
    746      1.1  christos         OptionalNameString_Last
    747  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,12,
    748  1.1.1.3  christos                                         $4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
    749  1.1.1.4  christos     | PARSEOP_WORDBUSNUMBER
    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 WordIOTerm
    755  1.1.1.4  christos     : PARSEOP_WORDIO
    756  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
    757      1.1  christos         OptionalResourceType_First
    758      1.1  christos         OptionalMinType
    759      1.1  christos         OptionalMaxType
    760      1.1  christos         OptionalDecodeType
    761      1.1  christos         OptionalRangeType
    762      1.1  christos         ',' WordConstExpr
    763      1.1  christos         ',' WordConstExpr
    764      1.1  christos         ',' WordConstExpr
    765      1.1  christos         ',' WordConstExpr
    766      1.1  christos         ',' WordConstExpr
    767      1.1  christos         OptionalByteConstExpr
    768      1.1  christos         OptionalStringData
    769      1.1  christos         OptionalNameString
    770      1.1  christos         OptionalType
    771      1.1  christos         OptionalTranslationType_Last
    772  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,15,
    773  1.1.1.3  christos                                         $4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
    774  1.1.1.4  christos     | PARSEOP_WORDIO
    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  christos WordSpaceTerm
    780  1.1.1.4  christos     : PARSEOP_WORDSPACE
    781  1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
    782      1.1  christos         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
    783      1.1  christos         OptionalResourceType
    784      1.1  christos         OptionalDecodeType
    785      1.1  christos         OptionalMinType
    786      1.1  christos         OptionalMaxType
    787      1.1  christos         ',' ByteConstExpr
    788      1.1  christos         ',' WordConstExpr
    789      1.1  christos         ',' WordConstExpr
    790      1.1  christos         ',' WordConstExpr
    791      1.1  christos         ',' WordConstExpr
    792      1.1  christos         ',' WordConstExpr
    793      1.1  christos         OptionalByteConstExpr
    794      1.1  christos         OptionalStringData
    795      1.1  christos         OptionalNameString_Last
    796  1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,14,
    797  1.1.1.3  christos                                         $4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
    798  1.1.1.4  christos     | PARSEOP_WORDSPACE
    799  1.1.1.4  christos         PARSEOP_OPEN_PAREN
    800  1.1.1.4  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    801      1.1  christos     ;
    802