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