Home | History | Annotate | Line # | Download | only in compiler
aslresources.y revision 1.1
      1  1.1  christos NoEcho('
      2  1.1  christos /******************************************************************************
      3  1.1  christos  *
      4  1.1  christos  * Module Name: aslresources.y - Bison/Yacc production rules for resources
      5  1.1  christos  *
      6  1.1  christos  *****************************************************************************/
      7  1.1  christos 
      8  1.1  christos /*
      9  1.1  christos  * Copyright (C) 2000 - 2016, Intel Corp.
     10  1.1  christos  * All rights reserved.
     11  1.1  christos  *
     12  1.1  christos  * Redistribution and use in source and binary forms, with or without
     13  1.1  christos  * modification, are permitted provided that the following conditions
     14  1.1  christos  * are met:
     15  1.1  christos  * 1. Redistributions of source code must retain the above copyright
     16  1.1  christos  *    notice, this list of conditions, and the following disclaimer,
     17  1.1  christos  *    without modification.
     18  1.1  christos  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     19  1.1  christos  *    substantially similar to the "NO WARRANTY" disclaimer below
     20  1.1  christos  *    ("Disclaimer") and any redistribution must be conditioned upon
     21  1.1  christos  *    including a substantially similar Disclaimer requirement for further
     22  1.1  christos  *    binary redistribution.
     23  1.1  christos  * 3. Neither the names of the above-listed copyright holders nor the names
     24  1.1  christos  *    of any contributors may be used to endorse or promote products derived
     25  1.1  christos  *    from this software without specific prior written permission.
     26  1.1  christos  *
     27  1.1  christos  * Alternatively, this software may be distributed under the terms of the
     28  1.1  christos  * GNU General Public License ("GPL") version 2 as published by the Free
     29  1.1  christos  * Software Foundation.
     30  1.1  christos  *
     31  1.1  christos  * NO WARRANTY
     32  1.1  christos  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     33  1.1  christos  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     34  1.1  christos  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
     35  1.1  christos  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     36  1.1  christos  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     37  1.1  christos  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     38  1.1  christos  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     39  1.1  christos  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     40  1.1  christos  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     41  1.1  christos  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     42  1.1  christos  * POSSIBILITY OF SUCH DAMAGES.
     43  1.1  christos  */
     44  1.1  christos 
     45  1.1  christos ')
     46  1.1  christos 
     47  1.1  christos /*******************************************************************************
     48  1.1  christos  *
     49  1.1  christos  * ASL Parameter Keyword Terms
     50  1.1  christos  *
     51  1.1  christos  ******************************************************************************/
     52  1.1  christos 
     53  1.1  christos AccessAttribKeyword
     54  1.1  christos     : PARSEOP_ACCESSATTRIB_BLOCK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);}
     55  1.1  christos     | PARSEOP_ACCESSATTRIB_BLOCK_CALL       {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);}
     56  1.1  christos     | PARSEOP_ACCESSATTRIB_BYTE             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);}
     57  1.1  christos     | PARSEOP_ACCESSATTRIB_QUICK            {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );}
     58  1.1  christos     | PARSEOP_ACCESSATTRIB_SND_RCV          {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);}
     59  1.1  christos     | PARSEOP_ACCESSATTRIB_WORD             {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);}
     60  1.1  christos     | PARSEOP_ACCESSATTRIB_WORD_CALL        {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);}
     61  1.1  christos     | PARSEOP_ACCESSATTRIB_MULTIBYTE '('    {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_MULTIBYTE);}
     62  1.1  christos         ByteConst
     63  1.1  christos         ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
     64  1.1  christos     | PARSEOP_ACCESSATTRIB_RAW_BYTES '('    {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_BYTES);}
     65  1.1  christos         ByteConst
     66  1.1  christos         ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
     67  1.1  christos     | PARSEOP_ACCESSATTRIB_RAW_PROCESS '('  {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_PROCESS);}
     68  1.1  christos         ByteConst
     69  1.1  christos         ')'                                 {$$ = TrLinkChildren ($<n>3,1,$4);}
     70  1.1  christos     ;
     71  1.1  christos 
     72  1.1  christos AccessTypeKeyword
     73  1.1  christos     : PARSEOP_ACCESSTYPE_ANY                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);}
     74  1.1  christos     | PARSEOP_ACCESSTYPE_BYTE               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);}
     75  1.1  christos     | PARSEOP_ACCESSTYPE_WORD               {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);}
     76  1.1  christos     | PARSEOP_ACCESSTYPE_DWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);}
     77  1.1  christos     | PARSEOP_ACCESSTYPE_QWORD              {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);}
     78  1.1  christos     | PARSEOP_ACCESSTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);}
     79  1.1  christos     ;
     80  1.1  christos 
     81  1.1  christos AddressingModeKeyword
     82  1.1  christos     : PARSEOP_ADDRESSINGMODE_7BIT           {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_7BIT);}
     83  1.1  christos     | PARSEOP_ADDRESSINGMODE_10BIT          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_10BIT);}
     84  1.1  christos     ;
     85  1.1  christos 
     86  1.1  christos AddressKeyword
     87  1.1  christos     : PARSEOP_ADDRESSTYPE_MEMORY            {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);}
     88  1.1  christos     | PARSEOP_ADDRESSTYPE_RESERVED          {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);}
     89  1.1  christos     | PARSEOP_ADDRESSTYPE_NVS               {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);}
     90  1.1  christos     | PARSEOP_ADDRESSTYPE_ACPI              {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);}
     91  1.1  christos     ;
     92  1.1  christos 
     93  1.1  christos AddressSpaceKeyword
     94  1.1  christos     : ByteConst                             {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);}
     95  1.1  christos     | RegionSpaceKeyword                    {}
     96  1.1  christos     ;
     97  1.1  christos 
     98  1.1  christos BitsPerByteKeyword
     99  1.1  christos     : PARSEOP_BITSPERBYTE_FIVE              {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_FIVE);}
    100  1.1  christos     | PARSEOP_BITSPERBYTE_SIX               {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SIX);}
    101  1.1  christos     | PARSEOP_BITSPERBYTE_SEVEN             {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SEVEN);}
    102  1.1  christos     | PARSEOP_BITSPERBYTE_EIGHT             {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_EIGHT);}
    103  1.1  christos     | PARSEOP_BITSPERBYTE_NINE              {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_NINE);}
    104  1.1  christos     ;
    105  1.1  christos 
    106  1.1  christos ClockPhaseKeyword
    107  1.1  christos     : PARSEOP_CLOCKPHASE_FIRST              {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_FIRST);}
    108  1.1  christos     | PARSEOP_CLOCKPHASE_SECOND             {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_SECOND);}
    109  1.1  christos     ;
    110  1.1  christos 
    111  1.1  christos ClockPolarityKeyword
    112  1.1  christos     : PARSEOP_CLOCKPOLARITY_LOW             {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_LOW);}
    113  1.1  christos     | PARSEOP_CLOCKPOLARITY_HIGH            {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_HIGH);}
    114  1.1  christos     ;
    115  1.1  christos 
    116  1.1  christos DecodeKeyword
    117  1.1  christos     : PARSEOP_DECODETYPE_POS                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);}
    118  1.1  christos     | PARSEOP_DECODETYPE_SUB                {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);}
    119  1.1  christos     ;
    120  1.1  christos 
    121  1.1  christos DevicePolarityKeyword
    122  1.1  christos     : PARSEOP_DEVICEPOLARITY_LOW            {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_LOW);}
    123  1.1  christos     | PARSEOP_DEVICEPOLARITY_HIGH           {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_HIGH);}
    124  1.1  christos     ;
    125  1.1  christos 
    126  1.1  christos DMATypeKeyword
    127  1.1  christos     : PARSEOP_DMATYPE_A                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);}
    128  1.1  christos     | PARSEOP_DMATYPE_COMPATIBILITY         {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);}
    129  1.1  christos     | PARSEOP_DMATYPE_B                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);}
    130  1.1  christos     | PARSEOP_DMATYPE_F                     {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);}
    131  1.1  christos     ;
    132  1.1  christos 
    133  1.1  christos EndianKeyword
    134  1.1  christos     : PARSEOP_ENDIAN_LITTLE                 {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_LITTLE);}
    135  1.1  christos     | PARSEOP_ENDIAN_BIG                    {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_BIG);}
    136  1.1  christos     ;
    137  1.1  christos 
    138  1.1  christos FlowControlKeyword
    139  1.1  christos     : PARSEOP_FLOWCONTROL_HW                {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_HW);}
    140  1.1  christos     | PARSEOP_FLOWCONTROL_NONE              {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_NONE);}
    141  1.1  christos     | PARSEOP_FLOWCONTROL_SW                {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_SW);}
    142  1.1  christos     ;
    143  1.1  christos 
    144  1.1  christos InterruptLevel
    145  1.1  christos     : PARSEOP_INTLEVEL_ACTIVEBOTH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEBOTH);}
    146  1.1  christos     | PARSEOP_INTLEVEL_ACTIVEHIGH           {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);}
    147  1.1  christos     | PARSEOP_INTLEVEL_ACTIVELOW            {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);}
    148  1.1  christos     ;
    149  1.1  christos 
    150  1.1  christos InterruptTypeKeyword
    151  1.1  christos     : PARSEOP_INTTYPE_EDGE                  {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);}
    152  1.1  christos     | PARSEOP_INTTYPE_LEVEL                 {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);}
    153  1.1  christos     ;
    154  1.1  christos 
    155  1.1  christos IODecodeKeyword
    156  1.1  christos     : PARSEOP_IODECODETYPE_16               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);}
    157  1.1  christos     | PARSEOP_IODECODETYPE_10               {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);}
    158  1.1  christos     ;
    159  1.1  christos 
    160  1.1  christos IoRestrictionKeyword
    161  1.1  christos     : PARSEOP_IORESTRICT_IN                 {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);}
    162  1.1  christos     | PARSEOP_IORESTRICT_OUT                {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);}
    163  1.1  christos     | PARSEOP_IORESTRICT_NONE               {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);}
    164  1.1  christos     | PARSEOP_IORESTRICT_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);}
    165  1.1  christos     ;
    166  1.1  christos 
    167  1.1  christos LockRuleKeyword
    168  1.1  christos     : PARSEOP_LOCKRULE_LOCK                 {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);}
    169  1.1  christos     | PARSEOP_LOCKRULE_NOLOCK               {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);}
    170  1.1  christos     ;
    171  1.1  christos 
    172  1.1  christos MatchOpKeyword
    173  1.1  christos     : PARSEOP_MATCHTYPE_MTR                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);}
    174  1.1  christos     | PARSEOP_MATCHTYPE_MEQ                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);}
    175  1.1  christos     | PARSEOP_MATCHTYPE_MLE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);}
    176  1.1  christos     | PARSEOP_MATCHTYPE_MLT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);}
    177  1.1  christos     | PARSEOP_MATCHTYPE_MGE                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);}
    178  1.1  christos     | PARSEOP_MATCHTYPE_MGT                 {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);}
    179  1.1  christos     ;
    180  1.1  christos 
    181  1.1  christos MaxKeyword
    182  1.1  christos     : PARSEOP_MAXTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);}
    183  1.1  christos     | PARSEOP_MAXTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);}
    184  1.1  christos     ;
    185  1.1  christos 
    186  1.1  christos MemTypeKeyword
    187  1.1  christos     : PARSEOP_MEMTYPE_CACHEABLE             {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);}
    188  1.1  christos     | PARSEOP_MEMTYPE_WRITECOMBINING        {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);}
    189  1.1  christos     | PARSEOP_MEMTYPE_PREFETCHABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);}
    190  1.1  christos     | PARSEOP_MEMTYPE_NONCACHEABLE          {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);}
    191  1.1  christos     ;
    192  1.1  christos 
    193  1.1  christos MinKeyword
    194  1.1  christos     : PARSEOP_MINTYPE_FIXED                 {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);}
    195  1.1  christos     | PARSEOP_MINTYPE_NOTFIXED              {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);}
    196  1.1  christos     ;
    197  1.1  christos 
    198  1.1  christos ObjectTypeKeyword
    199  1.1  christos     : PARSEOP_OBJECTTYPE_UNK                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
    200  1.1  christos     | PARSEOP_OBJECTTYPE_INT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);}
    201  1.1  christos     | PARSEOP_OBJECTTYPE_STR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);}
    202  1.1  christos     | PARSEOP_OBJECTTYPE_BUF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);}
    203  1.1  christos     | PARSEOP_OBJECTTYPE_PKG                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);}
    204  1.1  christos     | PARSEOP_OBJECTTYPE_FLD                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);}
    205  1.1  christos     | PARSEOP_OBJECTTYPE_DEV                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);}
    206  1.1  christos     | PARSEOP_OBJECTTYPE_EVT                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);}
    207  1.1  christos     | PARSEOP_OBJECTTYPE_MTH                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);}
    208  1.1  christos     | PARSEOP_OBJECTTYPE_MTX                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);}
    209  1.1  christos     | PARSEOP_OBJECTTYPE_OPR                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);}
    210  1.1  christos     | PARSEOP_OBJECTTYPE_POW                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);}
    211  1.1  christos     | PARSEOP_OBJECTTYPE_PRO                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);}
    212  1.1  christos     | PARSEOP_OBJECTTYPE_THZ                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);}
    213  1.1  christos     | PARSEOP_OBJECTTYPE_BFF                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);}
    214  1.1  christos     | PARSEOP_OBJECTTYPE_DDB                {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);}
    215  1.1  christos     ;
    216  1.1  christos 
    217  1.1  christos ParityTypeKeyword
    218  1.1  christos     : PARSEOP_PARITYTYPE_SPACE              {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_SPACE);}
    219  1.1  christos     | PARSEOP_PARITYTYPE_MARK               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_MARK);}
    220  1.1  christos     | PARSEOP_PARITYTYPE_ODD                {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_ODD);}
    221  1.1  christos     | PARSEOP_PARITYTYPE_EVEN               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_EVEN);}
    222  1.1  christos     | PARSEOP_PARITYTYPE_NONE               {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_NONE);}
    223  1.1  christos     ;
    224  1.1  christos 
    225  1.1  christos PinConfigByte
    226  1.1  christos     : PinConfigKeyword                      {$$ = $1;}
    227  1.1  christos     | ByteConstExpr                         {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
    228  1.1  christos     ;
    229  1.1  christos 
    230  1.1  christos PinConfigKeyword
    231  1.1  christos     : PARSEOP_PIN_NOPULL                    {$$ = TrCreateLeafNode (PARSEOP_PIN_NOPULL);}
    232  1.1  christos     | PARSEOP_PIN_PULLDOWN                  {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDOWN);}
    233  1.1  christos     | PARSEOP_PIN_PULLUP                    {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLUP);}
    234  1.1  christos     | PARSEOP_PIN_PULLDEFAULT               {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDEFAULT);}
    235  1.1  christos     ;
    236  1.1  christos 
    237  1.1  christos PldKeyword
    238  1.1  christos     : PARSEOP_PLD_REVISION                  {$$ = TrCreateLeafNode (PARSEOP_PLD_REVISION);}
    239  1.1  christos     | PARSEOP_PLD_IGNORECOLOR               {$$ = TrCreateLeafNode (PARSEOP_PLD_IGNORECOLOR);}
    240  1.1  christos     | PARSEOP_PLD_RED                       {$$ = TrCreateLeafNode (PARSEOP_PLD_RED);}
    241  1.1  christos     | PARSEOP_PLD_GREEN                     {$$ = TrCreateLeafNode (PARSEOP_PLD_GREEN);}
    242  1.1  christos     | PARSEOP_PLD_BLUE                      {$$ = TrCreateLeafNode (PARSEOP_PLD_BLUE);}
    243  1.1  christos     | PARSEOP_PLD_WIDTH                     {$$ = TrCreateLeafNode (PARSEOP_PLD_WIDTH);}
    244  1.1  christos     | PARSEOP_PLD_HEIGHT                    {$$ = TrCreateLeafNode (PARSEOP_PLD_HEIGHT);}
    245  1.1  christos     | PARSEOP_PLD_USERVISIBLE               {$$ = TrCreateLeafNode (PARSEOP_PLD_USERVISIBLE);}
    246  1.1  christos     | PARSEOP_PLD_DOCK                      {$$ = TrCreateLeafNode (PARSEOP_PLD_DOCK);}
    247  1.1  christos     | PARSEOP_PLD_LID                       {$$ = TrCreateLeafNode (PARSEOP_PLD_LID);}
    248  1.1  christos     | PARSEOP_PLD_PANEL                     {$$ = TrCreateLeafNode (PARSEOP_PLD_PANEL);}
    249  1.1  christos     | PARSEOP_PLD_VERTICALPOSITION          {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALPOSITION);}
    250  1.1  christos     | PARSEOP_PLD_HORIZONTALPOSITION        {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALPOSITION);}
    251  1.1  christos     | PARSEOP_PLD_SHAPE                     {$$ = TrCreateLeafNode (PARSEOP_PLD_SHAPE);}
    252  1.1  christos     | PARSEOP_PLD_GROUPORIENTATION          {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPORIENTATION);}
    253  1.1  christos     | PARSEOP_PLD_GROUPTOKEN                {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPTOKEN);}
    254  1.1  christos     | PARSEOP_PLD_GROUPPOSITION             {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPPOSITION);}
    255  1.1  christos     | PARSEOP_PLD_BAY                       {$$ = TrCreateLeafNode (PARSEOP_PLD_BAY);}
    256  1.1  christos     | PARSEOP_PLD_EJECTABLE                 {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTABLE);}
    257  1.1  christos     | PARSEOP_PLD_EJECTREQUIRED             {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTREQUIRED);}
    258  1.1  christos     | PARSEOP_PLD_CABINETNUMBER             {$$ = TrCreateLeafNode (PARSEOP_PLD_CABINETNUMBER);}
    259  1.1  christos     | PARSEOP_PLD_CARDCAGENUMBER            {$$ = TrCreateLeafNode (PARSEOP_PLD_CARDCAGENUMBER);}
    260  1.1  christos     | PARSEOP_PLD_REFERENCE                 {$$ = TrCreateLeafNode (PARSEOP_PLD_REFERENCE);}
    261  1.1  christos     | PARSEOP_PLD_ROTATION                  {$$ = TrCreateLeafNode (PARSEOP_PLD_ROTATION);}
    262  1.1  christos     | PARSEOP_PLD_ORDER                     {$$ = TrCreateLeafNode (PARSEOP_PLD_ORDER);}
    263  1.1  christos     | PARSEOP_PLD_RESERVED                  {$$ = TrCreateLeafNode (PARSEOP_PLD_RESERVED);}
    264  1.1  christos     | PARSEOP_PLD_VERTICALOFFSET            {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALOFFSET);}
    265  1.1  christos     | PARSEOP_PLD_HORIZONTALOFFSET          {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALOFFSET);}
    266  1.1  christos     ;
    267  1.1  christos 
    268  1.1  christos RangeTypeKeyword
    269  1.1  christos     : PARSEOP_RANGETYPE_ISAONLY             {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);}
    270  1.1  christos     | PARSEOP_RANGETYPE_NONISAONLY          {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);}
    271  1.1  christos     | PARSEOP_RANGETYPE_ENTIRE              {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);}
    272  1.1  christos     ;
    273  1.1  christos 
    274  1.1  christos RegionSpaceKeyword
    275  1.1  christos     : PARSEOP_REGIONSPACE_IO                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);}
    276  1.1  christos     | PARSEOP_REGIONSPACE_MEM               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);}
    277  1.1  christos     | PARSEOP_REGIONSPACE_PCI               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);}
    278  1.1  christos     | PARSEOP_REGIONSPACE_EC                {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);}
    279  1.1  christos     | PARSEOP_REGIONSPACE_SMBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);}
    280  1.1  christos     | PARSEOP_REGIONSPACE_CMOS              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);}
    281  1.1  christos     | PARSEOP_REGIONSPACE_PCIBAR            {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);}
    282  1.1  christos     | PARSEOP_REGIONSPACE_IPMI              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);}
    283  1.1  christos     | PARSEOP_REGIONSPACE_GPIO              {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GPIO);}
    284  1.1  christos     | PARSEOP_REGIONSPACE_GSBUS             {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GSBUS);}
    285  1.1  christos     | PARSEOP_REGIONSPACE_PCC               {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCC);}
    286  1.1  christos     | PARSEOP_REGIONSPACE_FFIXEDHW          {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_FFIXEDHW);}
    287  1.1  christos     ;
    288  1.1  christos 
    289  1.1  christos ResourceTypeKeyword
    290  1.1  christos     : PARSEOP_RESOURCETYPE_CONSUMER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
    291  1.1  christos     | PARSEOP_RESOURCETYPE_PRODUCER         {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);}
    292  1.1  christos     ;
    293  1.1  christos 
    294  1.1  christos SerializeRuleKeyword
    295  1.1  christos     : PARSEOP_SERIALIZERULE_SERIAL          {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);}
    296  1.1  christos     | PARSEOP_SERIALIZERULE_NOTSERIAL       {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);}
    297  1.1  christos     ;
    298  1.1  christos 
    299  1.1  christos ShareTypeKeyword
    300  1.1  christos     : PARSEOP_SHARETYPE_SHARED              {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);}
    301  1.1  christos     | PARSEOP_SHARETYPE_EXCLUSIVE           {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);}
    302  1.1  christos     | PARSEOP_SHARETYPE_SHAREDWAKE          {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHAREDWAKE);}
    303  1.1  christos     | PARSEOP_SHARETYPE_EXCLUSIVEWAKE       {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVEWAKE);}
    304  1.1  christos    ;
    305  1.1  christos 
    306  1.1  christos SlaveModeKeyword
    307  1.1  christos     : PARSEOP_SLAVEMODE_CONTROLLERINIT      {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_CONTROLLERINIT);}
    308  1.1  christos     | PARSEOP_SLAVEMODE_DEVICEINIT          {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_DEVICEINIT);}
    309  1.1  christos     ;
    310  1.1  christos 
    311  1.1  christos StopBitsKeyword
    312  1.1  christos     : PARSEOP_STOPBITS_TWO                  {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_TWO);}
    313  1.1  christos     | PARSEOP_STOPBITS_ONEPLUSHALF          {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONEPLUSHALF);}
    314  1.1  christos     | PARSEOP_STOPBITS_ONE                  {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONE);}
    315  1.1  christos     | PARSEOP_STOPBITS_ZERO                 {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ZERO);}
    316  1.1  christos     ;
    317  1.1  christos 
    318  1.1  christos TranslationKeyword
    319  1.1  christos     : PARSEOP_TRANSLATIONTYPE_SPARSE        {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);}
    320  1.1  christos     | PARSEOP_TRANSLATIONTYPE_DENSE         {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);}
    321  1.1  christos     ;
    322  1.1  christos 
    323  1.1  christos TypeKeyword
    324  1.1  christos     : PARSEOP_TYPE_TRANSLATION              {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);}
    325  1.1  christos     | PARSEOP_TYPE_STATIC                   {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);}
    326  1.1  christos     ;
    327  1.1  christos 
    328  1.1  christos UpdateRuleKeyword
    329  1.1  christos     : PARSEOP_UPDATERULE_PRESERVE           {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);}
    330  1.1  christos     | PARSEOP_UPDATERULE_ONES               {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);}
    331  1.1  christos     | PARSEOP_UPDATERULE_ZEROS              {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);}
    332  1.1  christos     ;
    333  1.1  christos 
    334  1.1  christos WireModeKeyword
    335  1.1  christos     : PARSEOP_WIREMODE_FOUR                 {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_FOUR);}
    336  1.1  christos     | PARSEOP_WIREMODE_THREE                {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_THREE);}
    337  1.1  christos     ;
    338  1.1  christos 
    339  1.1  christos XferSizeKeyword
    340  1.1  christos     : PARSEOP_XFERSIZE_8                    {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_8,   0);}
    341  1.1  christos     | PARSEOP_XFERSIZE_16                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_16,  1);}
    342  1.1  christos     | PARSEOP_XFERSIZE_32                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32,  2);}
    343  1.1  christos     | PARSEOP_XFERSIZE_64                   {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_64,  3);}
    344  1.1  christos     | PARSEOP_XFERSIZE_128                  {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_128, 4);}
    345  1.1  christos     | PARSEOP_XFERSIZE_256                  {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_256, 5);}
    346  1.1  christos     ;
    347  1.1  christos 
    348  1.1  christos XferTypeKeyword
    349  1.1  christos     : PARSEOP_XFERTYPE_8                    {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);}
    350  1.1  christos     | PARSEOP_XFERTYPE_8_16                 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);}
    351  1.1  christos     | PARSEOP_XFERTYPE_16                   {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);}
    352  1.1  christos     ;
    353  1.1  christos 
    354  1.1  christos 
    355  1.1  christos /*******************************************************************************
    356  1.1  christos  *
    357  1.1  christos  * ASL Resource Template Terms
    358  1.1  christos  *
    359  1.1  christos  ******************************************************************************/
    360  1.1  christos 
    361  1.1  christos /*
    362  1.1  christos  * Note: Create two default nodes to allow conversion to a Buffer AML opcode
    363  1.1  christos  * Also, insert the EndTag at the end of the template.
    364  1.1  christos  */
    365  1.1  christos ResourceTemplateTerm
    366  1.1  christos     : PARSEOP_RESOURCETEMPLATE '(' ')'
    367  1.1  christos         '{'
    368  1.1  christos         ResourceMacroList '}'       {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4,
    369  1.1  christos                                           TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
    370  1.1  christos                                           TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
    371  1.1  christos                                           $5,
    372  1.1  christos                                           TrCreateLeafNode (PARSEOP_ENDTAG));}
    373  1.1  christos     ;
    374  1.1  christos 
    375  1.1  christos ResourceMacroList
    376  1.1  christos     :                               {$$ = NULL;}
    377  1.1  christos     | ResourceMacroList
    378  1.1  christos         ResourceMacroTerm           {$$ = TrLinkPeerNode ($1,$2);}
    379  1.1  christos     ;
    380  1.1  christos 
    381  1.1  christos ResourceMacroTerm
    382  1.1  christos     : DMATerm                       {}
    383  1.1  christos     | DWordIOTerm                   {}
    384  1.1  christos     | DWordMemoryTerm               {}
    385  1.1  christos     | DWordSpaceTerm                {}
    386  1.1  christos     | EndDependentFnTerm            {}
    387  1.1  christos     | ExtendedIOTerm                {}
    388  1.1  christos     | ExtendedMemoryTerm            {}
    389  1.1  christos     | ExtendedSpaceTerm             {}
    390  1.1  christos     | FixedDmaTerm                  {}
    391  1.1  christos     | FixedIOTerm                   {}
    392  1.1  christos     | GpioIntTerm                   {}
    393  1.1  christos     | GpioIoTerm                    {}
    394  1.1  christos     | I2cSerialBusTerm              {}
    395  1.1  christos     | InterruptTerm                 {}
    396  1.1  christos     | IOTerm                        {}
    397  1.1  christos     | IRQNoFlagsTerm                {}
    398  1.1  christos     | IRQTerm                       {}
    399  1.1  christos     | Memory24Term                  {}
    400  1.1  christos     | Memory32FixedTerm             {}
    401  1.1  christos     | Memory32Term                  {}
    402  1.1  christos     | QWordIOTerm                   {}
    403  1.1  christos     | QWordMemoryTerm               {}
    404  1.1  christos     | QWordSpaceTerm                {}
    405  1.1  christos     | RegisterTerm                  {}
    406  1.1  christos     | SpiSerialBusTerm              {}
    407  1.1  christos     | StartDependentFnNoPriTerm     {}
    408  1.1  christos     | StartDependentFnTerm          {}
    409  1.1  christos     | UartSerialBusTerm             {}
    410  1.1  christos     | VendorLongTerm                {}
    411  1.1  christos     | VendorShortTerm               {}
    412  1.1  christos     | WordBusNumberTerm             {}
    413  1.1  christos     | WordIOTerm                    {}
    414  1.1  christos     | WordSpaceTerm                 {}
    415  1.1  christos     ;
    416  1.1  christos 
    417  1.1  christos DMATerm
    418  1.1  christos     : PARSEOP_DMA '('               {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
    419  1.1  christos         DMATypeKeyword
    420  1.1  christos         OptionalBusMasterKeyword
    421  1.1  christos         ',' XferTypeKeyword
    422  1.1  christos         OptionalNameString_Last
    423  1.1  christos         ')' '{'
    424  1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
    425  1.1  christos     | PARSEOP_DMA '('
    426  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    427  1.1  christos     ;
    428  1.1  christos 
    429  1.1  christos DWordIOTerm
    430  1.1  christos     : PARSEOP_DWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
    431  1.1  christos         OptionalResourceType_First
    432  1.1  christos         OptionalMinType
    433  1.1  christos         OptionalMaxType
    434  1.1  christos         OptionalDecodeType
    435  1.1  christos         OptionalRangeType
    436  1.1  christos         ',' DWordConstExpr
    437  1.1  christos         ',' DWordConstExpr
    438  1.1  christos         ',' DWordConstExpr
    439  1.1  christos         ',' DWordConstExpr
    440  1.1  christos         ',' DWordConstExpr
    441  1.1  christos         OptionalByteConstExpr
    442  1.1  christos         OptionalStringData
    443  1.1  christos         OptionalNameString
    444  1.1  christos         OptionalType
    445  1.1  christos         OptionalTranslationType_Last
    446  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
    447  1.1  christos     | PARSEOP_DWORDIO '('
    448  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    449  1.1  christos     ;
    450  1.1  christos 
    451  1.1  christos DWordMemoryTerm
    452  1.1  christos     : PARSEOP_DWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
    453  1.1  christos         OptionalResourceType_First
    454  1.1  christos         OptionalDecodeType
    455  1.1  christos         OptionalMinType
    456  1.1  christos         OptionalMaxType
    457  1.1  christos         OptionalMemType
    458  1.1  christos         ',' OptionalReadWriteKeyword
    459  1.1  christos         ',' DWordConstExpr
    460  1.1  christos         ',' DWordConstExpr
    461  1.1  christos         ',' DWordConstExpr
    462  1.1  christos         ',' DWordConstExpr
    463  1.1  christos         ',' DWordConstExpr
    464  1.1  christos         OptionalByteConstExpr
    465  1.1  christos         OptionalStringData
    466  1.1  christos         OptionalNameString
    467  1.1  christos         OptionalAddressRange
    468  1.1  christos         OptionalType_Last
    469  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
    470  1.1  christos     | PARSEOP_DWORDMEMORY '('
    471  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    472  1.1  christos     ;
    473  1.1  christos 
    474  1.1  christos DWordSpaceTerm
    475  1.1  christos     : PARSEOP_DWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
    476  1.1  christos         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
    477  1.1  christos         OptionalResourceType
    478  1.1  christos         OptionalDecodeType
    479  1.1  christos         OptionalMinType
    480  1.1  christos         OptionalMaxType
    481  1.1  christos         ',' ByteConstExpr
    482  1.1  christos         ',' DWordConstExpr
    483  1.1  christos         ',' DWordConstExpr
    484  1.1  christos         ',' DWordConstExpr
    485  1.1  christos         ',' DWordConstExpr
    486  1.1  christos         ',' DWordConstExpr
    487  1.1  christos         OptionalByteConstExpr
    488  1.1  christos         OptionalStringData
    489  1.1  christos         OptionalNameString_Last
    490  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
    491  1.1  christos     | PARSEOP_DWORDSPACE '('
    492  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    493  1.1  christos     ;
    494  1.1  christos 
    495  1.1  christos EndDependentFnTerm
    496  1.1  christos     : PARSEOP_ENDDEPENDENTFN '('
    497  1.1  christos         ')'                         {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
    498  1.1  christos     | PARSEOP_ENDDEPENDENTFN '('
    499  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    500  1.1  christos     ;
    501  1.1  christos 
    502  1.1  christos ExtendedIOTerm
    503  1.1  christos     : PARSEOP_EXTENDEDIO '('        {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
    504  1.1  christos         OptionalResourceType_First
    505  1.1  christos         OptionalMinType
    506  1.1  christos         OptionalMaxType
    507  1.1  christos         OptionalDecodeType
    508  1.1  christos         OptionalRangeType
    509  1.1  christos         ',' QWordConstExpr
    510  1.1  christos         ',' QWordConstExpr
    511  1.1  christos         ',' QWordConstExpr
    512  1.1  christos         ',' QWordConstExpr
    513  1.1  christos         ',' QWordConstExpr
    514  1.1  christos         OptionalQWordConstExpr
    515  1.1  christos         OptionalNameString
    516  1.1  christos         OptionalType
    517  1.1  christos         OptionalTranslationType_Last
    518  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
    519  1.1  christos     | PARSEOP_EXTENDEDIO '('
    520  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    521  1.1  christos     ;
    522  1.1  christos 
    523  1.1  christos ExtendedMemoryTerm
    524  1.1  christos     : PARSEOP_EXTENDEDMEMORY '('    {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
    525  1.1  christos         OptionalResourceType_First
    526  1.1  christos         OptionalDecodeType
    527  1.1  christos         OptionalMinType
    528  1.1  christos         OptionalMaxType
    529  1.1  christos         OptionalMemType
    530  1.1  christos         ',' OptionalReadWriteKeyword
    531  1.1  christos         ',' QWordConstExpr
    532  1.1  christos         ',' QWordConstExpr
    533  1.1  christos         ',' QWordConstExpr
    534  1.1  christos         ',' QWordConstExpr
    535  1.1  christos         ',' QWordConstExpr
    536  1.1  christos         OptionalQWordConstExpr
    537  1.1  christos         OptionalNameString
    538  1.1  christos         OptionalAddressRange
    539  1.1  christos         OptionalType_Last
    540  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
    541  1.1  christos     | PARSEOP_EXTENDEDMEMORY '('
    542  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    543  1.1  christos     ;
    544  1.1  christos 
    545  1.1  christos ExtendedSpaceTerm
    546  1.1  christos     : PARSEOP_EXTENDEDSPACE '('     {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
    547  1.1  christos         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
    548  1.1  christos         OptionalResourceType
    549  1.1  christos         OptionalDecodeType
    550  1.1  christos         OptionalMinType
    551  1.1  christos         OptionalMaxType
    552  1.1  christos         ',' ByteConstExpr
    553  1.1  christos         ',' QWordConstExpr
    554  1.1  christos         ',' QWordConstExpr
    555  1.1  christos         ',' QWordConstExpr
    556  1.1  christos         ',' QWordConstExpr
    557  1.1  christos         ',' QWordConstExpr
    558  1.1  christos         OptionalQWordConstExpr
    559  1.1  christos         OptionalNameString_Last
    560  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
    561  1.1  christos     | PARSEOP_EXTENDEDSPACE '('
    562  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    563  1.1  christos     ;
    564  1.1  christos 
    565  1.1  christos FixedDmaTerm
    566  1.1  christos     : PARSEOP_FIXEDDMA '('          {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
    567  1.1  christos         WordConstExpr               /* 04: DMA RequestLines */
    568  1.1  christos         ',' WordConstExpr           /* 06: DMA Channels */
    569  1.1  christos         OptionalXferSize            /* 07: DMA TransferSize */
    570  1.1  christos         OptionalNameString          /* 08: DescriptorName */
    571  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
    572  1.1  christos     | PARSEOP_FIXEDDMA '('
    573  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    574  1.1  christos     ;
    575  1.1  christos 
    576  1.1  christos FixedIOTerm
    577  1.1  christos     : PARSEOP_FIXEDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
    578  1.1  christos         WordConstExpr
    579  1.1  christos         ',' ByteConstExpr
    580  1.1  christos         OptionalNameString_Last
    581  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
    582  1.1  christos     | PARSEOP_FIXEDIO '('
    583  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    584  1.1  christos     ;
    585  1.1  christos 
    586  1.1  christos GpioIntTerm
    587  1.1  christos     : PARSEOP_GPIO_INT '('          {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
    588  1.1  christos         InterruptTypeKeyword        /* 04: InterruptType */
    589  1.1  christos         ',' InterruptLevel          /* 06: InterruptLevel */
    590  1.1  christos         OptionalShareType           /* 07: SharedType */
    591  1.1  christos         ',' PinConfigByte           /* 09: PinConfig */
    592  1.1  christos         OptionalWordConstExpr       /* 10: DebounceTimeout */
    593  1.1  christos         ',' StringData              /* 12: ResourceSource */
    594  1.1  christos         OptionalByteConstExpr       /* 13: ResourceSourceIndex */
    595  1.1  christos         OptionalResourceType        /* 14: ResourceType */
    596  1.1  christos         OptionalNameString          /* 15: DescriptorName */
    597  1.1  christos         OptionalBuffer_Last         /* 16: VendorData */
    598  1.1  christos         ')' '{'
    599  1.1  christos             DWordConstExpr '}'      {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
    600  1.1  christos     | PARSEOP_GPIO_INT '('
    601  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    602  1.1  christos     ;
    603  1.1  christos 
    604  1.1  christos GpioIoTerm
    605  1.1  christos     : PARSEOP_GPIO_IO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
    606  1.1  christos         OptionalShareType_First     /* 04: SharedType */
    607  1.1  christos         ',' PinConfigByte           /* 06: PinConfig */
    608  1.1  christos         OptionalWordConstExpr       /* 07: DebounceTimeout */
    609  1.1  christos         OptionalWordConstExpr       /* 08: DriveStrength */
    610  1.1  christos         OptionalIoRestriction       /* 09: IoRestriction */
    611  1.1  christos         ',' StringData              /* 11: ResourceSource */
    612  1.1  christos         OptionalByteConstExpr       /* 12: ResourceSourceIndex */
    613  1.1  christos         OptionalResourceType        /* 13: ResourceType */
    614  1.1  christos         OptionalNameString          /* 14: DescriptorName */
    615  1.1  christos         OptionalBuffer_Last         /* 15: VendorData */
    616  1.1  christos         ')' '{'
    617  1.1  christos             DWordList '}'           {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
    618  1.1  christos     | PARSEOP_GPIO_IO '('
    619  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    620  1.1  christos     ;
    621  1.1  christos 
    622  1.1  christos I2cSerialBusTerm
    623  1.1  christos     : PARSEOP_I2C_SERIALBUS '('     {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
    624  1.1  christos         WordConstExpr               /* 04: SlaveAddress */
    625  1.1  christos         OptionalSlaveMode           /* 05: SlaveMode */
    626  1.1  christos         ',' DWordConstExpr          /* 07: ConnectionSpeed */
    627  1.1  christos         OptionalAddressingMode      /* 08: AddressingMode */
    628  1.1  christos         ',' StringData              /* 10: ResourceSource */
    629  1.1  christos         OptionalByteConstExpr       /* 11: ResourceSourceIndex */
    630  1.1  christos         OptionalResourceType        /* 12: ResourceType */
    631  1.1  christos         OptionalNameString          /* 13: DescriptorName */
    632  1.1  christos         OptionalBuffer_Last         /* 14: VendorData */
    633  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,9,$4,$5,$7,$8,$10,$11,$12,$13,$14);}
    634  1.1  christos     | PARSEOP_I2C_SERIALBUS '('
    635  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    636  1.1  christos     ;
    637  1.1  christos 
    638  1.1  christos InterruptTerm
    639  1.1  christos     : PARSEOP_INTERRUPT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
    640  1.1  christos         OptionalResourceType_First
    641  1.1  christos         ',' InterruptTypeKeyword
    642  1.1  christos         ',' InterruptLevel
    643  1.1  christos         OptionalShareType
    644  1.1  christos         OptionalByteConstExpr
    645  1.1  christos         OptionalStringData
    646  1.1  christos         OptionalNameString_Last
    647  1.1  christos         ')' '{'
    648  1.1  christos             DWordList '}'           {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
    649  1.1  christos     | PARSEOP_INTERRUPT '('
    650  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    651  1.1  christos     ;
    652  1.1  christos 
    653  1.1  christos IOTerm
    654  1.1  christos     : PARSEOP_IO '('                {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
    655  1.1  christos         IODecodeKeyword
    656  1.1  christos         ',' WordConstExpr
    657  1.1  christos         ',' WordConstExpr
    658  1.1  christos         ',' ByteConstExpr
    659  1.1  christos         ',' ByteConstExpr
    660  1.1  christos         OptionalNameString_Last
    661  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
    662  1.1  christos     | PARSEOP_IO '('
    663  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    664  1.1  christos     ;
    665  1.1  christos 
    666  1.1  christos IRQNoFlagsTerm
    667  1.1  christos     : PARSEOP_IRQNOFLAGS '('        {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
    668  1.1  christos         OptionalNameString_First
    669  1.1  christos         ')' '{'
    670  1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    671  1.1  christos     | PARSEOP_IRQNOFLAGS '('
    672  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    673  1.1  christos     ;
    674  1.1  christos 
    675  1.1  christos IRQTerm
    676  1.1  christos     : PARSEOP_IRQ '('               {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
    677  1.1  christos         InterruptTypeKeyword
    678  1.1  christos         ',' InterruptLevel
    679  1.1  christos         OptionalShareType
    680  1.1  christos         OptionalNameString_Last
    681  1.1  christos         ')' '{'
    682  1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
    683  1.1  christos     | PARSEOP_IRQ '('
    684  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    685  1.1  christos     ;
    686  1.1  christos 
    687  1.1  christos Memory24Term
    688  1.1  christos     : PARSEOP_MEMORY24 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
    689  1.1  christos         OptionalReadWriteKeyword
    690  1.1  christos         ',' WordConstExpr
    691  1.1  christos         ',' WordConstExpr
    692  1.1  christos         ',' WordConstExpr
    693  1.1  christos         ',' WordConstExpr
    694  1.1  christos         OptionalNameString_Last
    695  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
    696  1.1  christos     | PARSEOP_MEMORY24 '('
    697  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    698  1.1  christos     ;
    699  1.1  christos 
    700  1.1  christos Memory32FixedTerm
    701  1.1  christos     : PARSEOP_MEMORY32FIXED '('     {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
    702  1.1  christos         OptionalReadWriteKeyword
    703  1.1  christos         ',' DWordConstExpr
    704  1.1  christos         ',' DWordConstExpr
    705  1.1  christos         OptionalNameString_Last
    706  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
    707  1.1  christos     | PARSEOP_MEMORY32FIXED '('
    708  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    709  1.1  christos     ;
    710  1.1  christos 
    711  1.1  christos Memory32Term
    712  1.1  christos     : PARSEOP_MEMORY32 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
    713  1.1  christos         OptionalReadWriteKeyword
    714  1.1  christos         ',' DWordConstExpr
    715  1.1  christos         ',' DWordConstExpr
    716  1.1  christos         ',' DWordConstExpr
    717  1.1  christos         ',' DWordConstExpr
    718  1.1  christos         OptionalNameString_Last
    719  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
    720  1.1  christos     | PARSEOP_MEMORY32 '('
    721  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    722  1.1  christos     ;
    723  1.1  christos 
    724  1.1  christos QWordIOTerm
    725  1.1  christos     : PARSEOP_QWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
    726  1.1  christos         OptionalResourceType_First
    727  1.1  christos         OptionalMinType
    728  1.1  christos         OptionalMaxType
    729  1.1  christos         OptionalDecodeType
    730  1.1  christos         OptionalRangeType
    731  1.1  christos         ',' QWordConstExpr
    732  1.1  christos         ',' QWordConstExpr
    733  1.1  christos         ',' QWordConstExpr
    734  1.1  christos         ',' QWordConstExpr
    735  1.1  christos         ',' QWordConstExpr
    736  1.1  christos         OptionalByteConstExpr
    737  1.1  christos         OptionalStringData
    738  1.1  christos         OptionalNameString
    739  1.1  christos         OptionalType
    740  1.1  christos         OptionalTranslationType_Last
    741  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
    742  1.1  christos     | PARSEOP_QWORDIO '('
    743  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    744  1.1  christos     ;
    745  1.1  christos 
    746  1.1  christos QWordMemoryTerm
    747  1.1  christos     : PARSEOP_QWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
    748  1.1  christos         OptionalResourceType_First
    749  1.1  christos         OptionalDecodeType
    750  1.1  christos         OptionalMinType
    751  1.1  christos         OptionalMaxType
    752  1.1  christos         OptionalMemType
    753  1.1  christos         ',' OptionalReadWriteKeyword
    754  1.1  christos         ',' QWordConstExpr
    755  1.1  christos         ',' QWordConstExpr
    756  1.1  christos         ',' QWordConstExpr
    757  1.1  christos         ',' QWordConstExpr
    758  1.1  christos         ',' QWordConstExpr
    759  1.1  christos         OptionalByteConstExpr
    760  1.1  christos         OptionalStringData
    761  1.1  christos         OptionalNameString
    762  1.1  christos         OptionalAddressRange
    763  1.1  christos         OptionalType_Last
    764  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
    765  1.1  christos     | PARSEOP_QWORDMEMORY '('
    766  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    767  1.1  christos     ;
    768  1.1  christos 
    769  1.1  christos QWordSpaceTerm
    770  1.1  christos     : PARSEOP_QWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
    771  1.1  christos         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
    772  1.1  christos         OptionalResourceType
    773  1.1  christos         OptionalDecodeType
    774  1.1  christos         OptionalMinType
    775  1.1  christos         OptionalMaxType
    776  1.1  christos         ',' ByteConstExpr
    777  1.1  christos         ',' QWordConstExpr
    778  1.1  christos         ',' QWordConstExpr
    779  1.1  christos         ',' QWordConstExpr
    780  1.1  christos         ',' QWordConstExpr
    781  1.1  christos         ',' QWordConstExpr
    782  1.1  christos         OptionalByteConstExpr
    783  1.1  christos         OptionalStringData
    784  1.1  christos         OptionalNameString_Last
    785  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
    786  1.1  christos     | PARSEOP_QWORDSPACE '('
    787  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    788  1.1  christos     ;
    789  1.1  christos 
    790  1.1  christos RegisterTerm
    791  1.1  christos     : PARSEOP_REGISTER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
    792  1.1  christos         AddressSpaceKeyword
    793  1.1  christos         ',' ByteConstExpr
    794  1.1  christos         ',' ByteConstExpr
    795  1.1  christos         ',' QWordConstExpr
    796  1.1  christos         OptionalAccessSize
    797  1.1  christos         OptionalNameString_Last
    798  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
    799  1.1  christos     | PARSEOP_REGISTER '('
    800  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    801  1.1  christos     ;
    802  1.1  christos 
    803  1.1  christos SpiSerialBusTerm
    804  1.1  christos     : PARSEOP_SPI_SERIALBUS '('     {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
    805  1.1  christos         WordConstExpr               /* 04: DeviceSelection */
    806  1.1  christos         OptionalDevicePolarity      /* 05: DevicePolarity */
    807  1.1  christos         OptionalWireMode            /* 06: WireMode */
    808  1.1  christos         ',' ByteConstExpr           /* 08: DataBitLength */
    809  1.1  christos         OptionalSlaveMode           /* 09: SlaveMode */
    810  1.1  christos         ',' DWordConstExpr          /* 11: ConnectionSpeed */
    811  1.1  christos         ',' ClockPolarityKeyword    /* 13: ClockPolarity */
    812  1.1  christos         ',' ClockPhaseKeyword       /* 15: ClockPhase */
    813  1.1  christos         ',' StringData              /* 17: ResourceSource */
    814  1.1  christos         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
    815  1.1  christos         OptionalResourceType        /* 19: ResourceType */
    816  1.1  christos         OptionalNameString          /* 20: DescriptorName */
    817  1.1  christos         OptionalBuffer_Last         /* 21: VendorData */
    818  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,13,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21);}
    819  1.1  christos     | PARSEOP_SPI_SERIALBUS '('
    820  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    821  1.1  christos     ;
    822  1.1  christos 
    823  1.1  christos StartDependentFnNoPriTerm
    824  1.1  christos     : PARSEOP_STARTDEPENDENTFN_NOPRI '('    {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
    825  1.1  christos         ')' '{'
    826  1.1  christos         ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,1,$6);}
    827  1.1  christos     | PARSEOP_STARTDEPENDENTFN_NOPRI '('
    828  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    829  1.1  christos     ;
    830  1.1  christos 
    831  1.1  christos StartDependentFnTerm
    832  1.1  christos     : PARSEOP_STARTDEPENDENTFN '('  {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
    833  1.1  christos         ByteConstExpr
    834  1.1  christos         ',' ByteConstExpr
    835  1.1  christos         ')' '{'
    836  1.1  christos         ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
    837  1.1  christos     | PARSEOP_STARTDEPENDENTFN '('
    838  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    839  1.1  christos     ;
    840  1.1  christos 
    841  1.1  christos UartSerialBusTerm
    842  1.1  christos     : PARSEOP_UART_SERIALBUS '('    {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
    843  1.1  christos         DWordConstExpr              /* 04: ConnectionSpeed */
    844  1.1  christos         OptionalBitsPerByte         /* 05: BitsPerByte */
    845  1.1  christos         OptionalStopBits            /* 06: StopBits */
    846  1.1  christos         ',' ByteConstExpr           /* 08: LinesInUse */
    847  1.1  christos         OptionalEndian              /* 09: Endianess */
    848  1.1  christos         OptionalParityType          /* 10: Parity */
    849  1.1  christos         OptionalFlowControl         /* 11: FlowControl */
    850  1.1  christos         ',' WordConstExpr           /* 13: Rx BufferSize */
    851  1.1  christos         ',' WordConstExpr           /* 15: Tx BufferSize */
    852  1.1  christos         ',' StringData              /* 17: ResourceSource */
    853  1.1  christos         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
    854  1.1  christos         OptionalResourceType        /* 19: ResourceType */
    855  1.1  christos         OptionalNameString          /* 20: DescriptorName */
    856  1.1  christos         OptionalBuffer_Last         /* 21: VendorData */
    857  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21);}
    858  1.1  christos     | PARSEOP_UART_SERIALBUS '('
    859  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    860  1.1  christos     ;
    861  1.1  christos 
    862  1.1  christos VendorLongTerm
    863  1.1  christos     : PARSEOP_VENDORLONG '('        {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
    864  1.1  christos         OptionalNameString_First
    865  1.1  christos         ')' '{'
    866  1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    867  1.1  christos     | PARSEOP_VENDORLONG '('
    868  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    869  1.1  christos     ;
    870  1.1  christos 
    871  1.1  christos VendorShortTerm
    872  1.1  christos     : PARSEOP_VENDORSHORT '('       {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
    873  1.1  christos         OptionalNameString_First
    874  1.1  christos         ')' '{'
    875  1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    876  1.1  christos     | PARSEOP_VENDORSHORT '('
    877  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    878  1.1  christos     ;
    879  1.1  christos 
    880  1.1  christos WordBusNumberTerm
    881  1.1  christos     : PARSEOP_WORDBUSNUMBER '('     {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
    882  1.1  christos         OptionalResourceType_First
    883  1.1  christos         OptionalMinType
    884  1.1  christos         OptionalMaxType
    885  1.1  christos         OptionalDecodeType
    886  1.1  christos         ',' WordConstExpr
    887  1.1  christos         ',' WordConstExpr
    888  1.1  christos         ',' WordConstExpr
    889  1.1  christos         ',' WordConstExpr
    890  1.1  christos         ',' WordConstExpr
    891  1.1  christos         OptionalByteConstExpr
    892  1.1  christos         OptionalStringData
    893  1.1  christos         OptionalNameString_Last
    894  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
    895  1.1  christos     | PARSEOP_WORDBUSNUMBER '('
    896  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    897  1.1  christos     ;
    898  1.1  christos 
    899  1.1  christos WordIOTerm
    900  1.1  christos     : PARSEOP_WORDIO '('            {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
    901  1.1  christos         OptionalResourceType_First
    902  1.1  christos         OptionalMinType
    903  1.1  christos         OptionalMaxType
    904  1.1  christos         OptionalDecodeType
    905  1.1  christos         OptionalRangeType
    906  1.1  christos         ',' WordConstExpr
    907  1.1  christos         ',' WordConstExpr
    908  1.1  christos         ',' WordConstExpr
    909  1.1  christos         ',' WordConstExpr
    910  1.1  christos         ',' WordConstExpr
    911  1.1  christos         OptionalByteConstExpr
    912  1.1  christos         OptionalStringData
    913  1.1  christos         OptionalNameString
    914  1.1  christos         OptionalType
    915  1.1  christos         OptionalTranslationType_Last
    916  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
    917  1.1  christos     | PARSEOP_WORDIO '('
    918  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    919  1.1  christos     ;
    920  1.1  christos 
    921  1.1  christos WordSpaceTerm
    922  1.1  christos     : PARSEOP_WORDSPACE '('         {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
    923  1.1  christos         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
    924  1.1  christos         OptionalResourceType
    925  1.1  christos         OptionalDecodeType
    926  1.1  christos         OptionalMinType
    927  1.1  christos         OptionalMaxType
    928  1.1  christos         ',' ByteConstExpr
    929  1.1  christos         ',' WordConstExpr
    930  1.1  christos         ',' WordConstExpr
    931  1.1  christos         ',' WordConstExpr
    932  1.1  christos         ',' WordConstExpr
    933  1.1  christos         ',' WordConstExpr
    934  1.1  christos         OptionalByteConstExpr
    935  1.1  christos         OptionalStringData
    936  1.1  christos         OptionalNameString_Last
    937  1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
    938  1.1  christos     | PARSEOP_WORDSPACE '('
    939  1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    940  1.1  christos     ;
    941  1.1  christos 
    942  1.1  christos 
    943  1.1  christos /******* Object References ***********************************************/
    944  1.1  christos 
    945  1.1  christos /* Allow IO, DMA, IRQ Resource macro names to also be used as identifiers */
    946  1.1  christos 
    947  1.1  christos NameString
    948  1.1  christos     : NameSeg                       {}
    949  1.1  christos     | PARSEOP_NAMESTRING            {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
    950  1.1  christos     | PARSEOP_IO                    {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
    951  1.1  christos     | PARSEOP_DMA                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
    952  1.1  christos     | PARSEOP_IRQ                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
    953  1.1  christos     ;
    954  1.1  christos 
    955  1.1  christos NameSeg
    956  1.1  christos     : PARSEOP_NAMESEG               {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
    957  1.1  christos     ;
    958  1.1  christos 
    959  1.1  christos 
    960  1.1  christos /*******************************************************************************
    961  1.1  christos  *
    962  1.1  christos  * ASL Helper Terms
    963  1.1  christos  *
    964  1.1  christos  ******************************************************************************/
    965  1.1  christos 
    966  1.1  christos OptionalBusMasterKeyword
    967  1.1  christos     : ','                                       {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
    968  1.1  christos     | ',' PARSEOP_BUSMASTERTYPE_MASTER          {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
    969  1.1  christos     | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER       {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
    970  1.1  christos     ;
    971  1.1  christos 
    972  1.1  christos OptionalAccessAttribTerm
    973  1.1  christos     :                               {$$ = NULL;}
    974  1.1  christos     | ','                           {$$ = NULL;}
    975  1.1  christos     | ',' ByteConstExpr             {$$ = $2;}
    976  1.1  christos     | ',' AccessAttribKeyword       {$$ = $2;}
    977  1.1  christos     ;
    978  1.1  christos 
    979  1.1  christos OptionalAccessSize
    980  1.1  christos     :                               {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
    981  1.1  christos     | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
    982  1.1  christos     | ',' ByteConstExpr             {$$ = $2;}
    983  1.1  christos     ;
    984  1.1  christos 
    985  1.1  christos OptionalAddressingMode
    986  1.1  christos     : ','                           {$$ = NULL;}
    987  1.1  christos     | ',' AddressingModeKeyword     {$$ = $2;}
    988  1.1  christos     ;
    989  1.1  christos 
    990  1.1  christos OptionalAddressRange
    991  1.1  christos     :                               {$$ = NULL;}
    992  1.1  christos     | ','                           {$$ = NULL;}
    993  1.1  christos     | ',' AddressKeyword            {$$ = $2;}
    994  1.1  christos     ;
    995  1.1  christos 
    996  1.1  christos OptionalBitsPerByte
    997  1.1  christos     : ','                           {$$ = NULL;}
    998  1.1  christos     | ',' BitsPerByteKeyword        {$$ = $2;}
    999  1.1  christos     ;
   1000  1.1  christos 
   1001  1.1  christos OptionalBuffer_Last
   1002  1.1  christos     :                               {$$ = NULL;}
   1003  1.1  christos     | ','                           {$$ = NULL;}
   1004  1.1  christos     | ',' RawDataBufferTerm         {$$ = $2;}
   1005  1.1  christos     ;
   1006  1.1  christos 
   1007  1.1  christos OptionalByteConstExpr
   1008  1.1  christos     :                               {$$ = NULL;}
   1009  1.1  christos     | ','                           {$$ = NULL;}
   1010  1.1  christos     | ',' ByteConstExpr             {$$ = $2;}
   1011  1.1  christos     ;
   1012  1.1  christos 
   1013  1.1  christos OptionalDecodeType
   1014  1.1  christos     : ','                           {$$ = NULL;}
   1015  1.1  christos     | ',' DecodeKeyword             {$$ = $2;}
   1016  1.1  christos     ;
   1017  1.1  christos 
   1018  1.1  christos OptionalDevicePolarity
   1019  1.1  christos     : ','                           {$$ = NULL;}
   1020  1.1  christos     | ',' DevicePolarityKeyword     {$$ = $2;}
   1021  1.1  christos     ;
   1022  1.1  christos 
   1023  1.1  christos OptionalDWordConstExpr
   1024  1.1  christos     :                               {$$ = NULL;}
   1025  1.1  christos     | ','                           {$$ = NULL;}
   1026  1.1  christos     | ',' DWordConstExpr            {$$ = $2;}
   1027  1.1  christos     ;
   1028  1.1  christos 
   1029  1.1  christos OptionalEndian
   1030  1.1  christos     : ','                           {$$ = NULL;}
   1031  1.1  christos     | ',' EndianKeyword             {$$ = $2;}
   1032  1.1  christos     ;
   1033  1.1  christos 
   1034  1.1  christos OptionalFlowControl
   1035  1.1  christos     : ','                           {$$ = NULL;}
   1036  1.1  christos     | ',' FlowControlKeyword        {$$ = $2;}
   1037  1.1  christos     ;
   1038  1.1  christos 
   1039  1.1  christos OptionalIoRestriction
   1040  1.1  christos     : ','                           {$$ = NULL;}
   1041  1.1  christos     | ',' IoRestrictionKeyword      {$$ = $2;}
   1042  1.1  christos     ;
   1043  1.1  christos 
   1044  1.1  christos OptionalListString
   1045  1.1  christos     :                               {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
   1046  1.1  christos     | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
   1047  1.1  christos     | ',' TermArg                   {$$ = $2;}
   1048  1.1  christos     ;
   1049  1.1  christos 
   1050  1.1  christos OptionalMaxType
   1051  1.1  christos     : ','                           {$$ = NULL;}
   1052  1.1  christos     | ',' MaxKeyword                {$$ = $2;}
   1053  1.1  christos     ;
   1054  1.1  christos 
   1055  1.1  christos OptionalMemType
   1056  1.1  christos     : ','                           {$$ = NULL;}
   1057  1.1  christos     | ',' MemTypeKeyword            {$$ = $2;}
   1058  1.1  christos     ;
   1059  1.1  christos 
   1060  1.1  christos OptionalMinType
   1061  1.1  christos     : ','                           {$$ = NULL;}
   1062  1.1  christos     | ',' MinKeyword                {$$ = $2;}
   1063  1.1  christos     ;
   1064  1.1  christos 
   1065  1.1  christos OptionalNameString
   1066  1.1  christos     :                               {$$ = NULL;}
   1067  1.1  christos     | ','                           {$$ = NULL;}
   1068  1.1  christos     | ',' NameString                {$$ = $2;}
   1069  1.1  christos     ;
   1070  1.1  christos 
   1071  1.1  christos OptionalNameString_Last
   1072  1.1  christos     :                               {$$ = NULL;}
   1073  1.1  christos     | ','                           {$$ = NULL;}
   1074  1.1  christos     | ',' NameString                {$$ = $2;}
   1075  1.1  christos     ;
   1076  1.1  christos 
   1077  1.1  christos OptionalNameString_First
   1078  1.1  christos     :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
   1079  1.1  christos     | NameString                    {$$ = $1;}
   1080  1.1  christos     ;
   1081  1.1  christos 
   1082  1.1  christos OptionalObjectTypeKeyword
   1083  1.1  christos     :                               {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
   1084  1.1  christos     | ',' ObjectTypeKeyword         {$$ = $2;}
   1085  1.1  christos     ;
   1086  1.1  christos 
   1087  1.1  christos OptionalParityType
   1088  1.1  christos     : ','                           {$$ = NULL;}
   1089  1.1  christos     | ',' ParityTypeKeyword         {$$ = $2;}
   1090  1.1  christos     ;
   1091  1.1  christos 
   1092  1.1  christos OptionalQWordConstExpr
   1093  1.1  christos     :                               {$$ = NULL;}
   1094  1.1  christos     | ','                           {$$ = NULL;}
   1095  1.1  christos     | ',' QWordConstExpr            {$$ = $2;}
   1096  1.1  christos     ;
   1097  1.1  christos 
   1098  1.1  christos OptionalRangeType
   1099  1.1  christos     : ','                           {$$ = NULL;}
   1100  1.1  christos     | ',' RangeTypeKeyword          {$$ = $2;}
   1101  1.1  christos     ;
   1102  1.1  christos 
   1103  1.1  christos OptionalReadWriteKeyword
   1104  1.1  christos     :                                   {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
   1105  1.1  christos     | PARSEOP_READWRITETYPE_BOTH        {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
   1106  1.1  christos     | PARSEOP_READWRITETYPE_READONLY    {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
   1107  1.1  christos     ;
   1108  1.1  christos 
   1109  1.1  christos OptionalResourceType_First
   1110  1.1  christos     :                               {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
   1111  1.1  christos     | ResourceTypeKeyword           {$$ = $1;}
   1112  1.1  christos     ;
   1113  1.1  christos 
   1114  1.1  christos OptionalResourceType
   1115  1.1  christos     :                               {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
   1116  1.1  christos     | ','                           {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
   1117  1.1  christos     | ',' ResourceTypeKeyword       {$$ = $2;}
   1118  1.1  christos     ;
   1119  1.1  christos 
   1120  1.1  christos OptionalSlaveMode
   1121  1.1  christos     : ','                           {$$ = NULL;}
   1122  1.1  christos     | ',' SlaveModeKeyword          {$$ = $2;}
   1123  1.1  christos     ;
   1124  1.1  christos 
   1125  1.1  christos OptionalShareType
   1126  1.1  christos     :                               {$$ = NULL;}
   1127  1.1  christos     | ','                           {$$ = NULL;}
   1128  1.1  christos     | ',' ShareTypeKeyword          {$$ = $2;}
   1129  1.1  christos     ;
   1130  1.1  christos 
   1131  1.1  christos OptionalShareType_First
   1132  1.1  christos     :                               {$$ = NULL;}
   1133  1.1  christos     | ShareTypeKeyword              {$$ = $1;}
   1134  1.1  christos     ;
   1135  1.1  christos 
   1136  1.1  christos OptionalStopBits
   1137  1.1  christos     : ','                           {$$ = NULL;}
   1138  1.1  christos     | ',' StopBitsKeyword           {$$ = $2;}
   1139  1.1  christos     ;
   1140  1.1  christos 
   1141  1.1  christos OptionalStringData
   1142  1.1  christos     :                               {$$ = NULL;}
   1143  1.1  christos     | ','                           {$$ = NULL;}
   1144  1.1  christos     | ',' StringData                {$$ = $2;}
   1145  1.1  christos     ;
   1146  1.1  christos 
   1147  1.1  christos OptionalTranslationType_Last
   1148  1.1  christos     :                               {$$ = NULL;}
   1149  1.1  christos     | ','                           {$$ = NULL;}
   1150  1.1  christos     | ',' TranslationKeyword        {$$ = $2;}
   1151  1.1  christos     ;
   1152  1.1  christos 
   1153  1.1  christos OptionalType
   1154  1.1  christos     :                               {$$ = NULL;}
   1155  1.1  christos     | ','                           {$$ = NULL;}
   1156  1.1  christos     | ',' TypeKeyword               {$$ = $2;}
   1157  1.1  christos     ;
   1158  1.1  christos 
   1159  1.1  christos OptionalType_Last
   1160  1.1  christos     :                               {$$ = NULL;}
   1161  1.1  christos     | ','                           {$$ = NULL;}
   1162  1.1  christos     | ',' TypeKeyword               {$$ = $2;}
   1163  1.1  christos     ;
   1164  1.1  christos 
   1165  1.1  christos OptionalWireMode
   1166  1.1  christos     : ','                           {$$ = NULL;}
   1167  1.1  christos     | ',' WireModeKeyword           {$$ = $2;}
   1168  1.1  christos     ;
   1169  1.1  christos 
   1170  1.1  christos OptionalWordConstExpr
   1171  1.1  christos     : ','                           {$$ = NULL;}
   1172  1.1  christos     | ',' WordConstExpr             {$$ = $2;}
   1173  1.1  christos     ;
   1174  1.1  christos 
   1175  1.1  christos OptionalXferSize
   1176  1.1  christos     :                               {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
   1177  1.1  christos     | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
   1178  1.1  christos     | ',' XferSizeKeyword           {$$ = $2;}
   1179  1.1  christos     ;
   1180