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