Home | History | Annotate | Line # | Download | only in compiler
aslresources.y revision 1.1.1.2
      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.1.2  christos     | I2cSerialBusTermV2            {}
    396      1.1  christos     | InterruptTerm                 {}
    397      1.1  christos     | IOTerm                        {}
    398      1.1  christos     | IRQNoFlagsTerm                {}
    399      1.1  christos     | IRQTerm                       {}
    400      1.1  christos     | Memory24Term                  {}
    401      1.1  christos     | Memory32FixedTerm             {}
    402      1.1  christos     | Memory32Term                  {}
    403      1.1  christos     | QWordIOTerm                   {}
    404      1.1  christos     | QWordMemoryTerm               {}
    405      1.1  christos     | QWordSpaceTerm                {}
    406      1.1  christos     | RegisterTerm                  {}
    407      1.1  christos     | SpiSerialBusTerm              {}
    408  1.1.1.2  christos     | SpiSerialBusTermV2            {}
    409      1.1  christos     | StartDependentFnNoPriTerm     {}
    410      1.1  christos     | StartDependentFnTerm          {}
    411      1.1  christos     | UartSerialBusTerm             {}
    412  1.1.1.2  christos     | UartSerialBusTermV2           {}
    413      1.1  christos     | VendorLongTerm                {}
    414      1.1  christos     | VendorShortTerm               {}
    415      1.1  christos     | WordBusNumberTerm             {}
    416      1.1  christos     | WordIOTerm                    {}
    417      1.1  christos     | WordSpaceTerm                 {}
    418      1.1  christos     ;
    419      1.1  christos 
    420      1.1  christos DMATerm
    421      1.1  christos     : PARSEOP_DMA '('               {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);}
    422      1.1  christos         DMATypeKeyword
    423      1.1  christos         OptionalBusMasterKeyword
    424      1.1  christos         ',' XferTypeKeyword
    425      1.1  christos         OptionalNameString_Last
    426      1.1  christos         ')' '{'
    427      1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);}
    428      1.1  christos     | PARSEOP_DMA '('
    429      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    430      1.1  christos     ;
    431      1.1  christos 
    432      1.1  christos DWordIOTerm
    433      1.1  christos     : PARSEOP_DWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);}
    434      1.1  christos         OptionalResourceType_First
    435      1.1  christos         OptionalMinType
    436      1.1  christos         OptionalMaxType
    437      1.1  christos         OptionalDecodeType
    438      1.1  christos         OptionalRangeType
    439      1.1  christos         ',' DWordConstExpr
    440      1.1  christos         ',' DWordConstExpr
    441      1.1  christos         ',' DWordConstExpr
    442      1.1  christos         ',' DWordConstExpr
    443      1.1  christos         ',' DWordConstExpr
    444      1.1  christos         OptionalByteConstExpr
    445      1.1  christos         OptionalStringData
    446      1.1  christos         OptionalNameString
    447      1.1  christos         OptionalType
    448      1.1  christos         OptionalTranslationType_Last
    449      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
    450      1.1  christos     | PARSEOP_DWORDIO '('
    451      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    452      1.1  christos     ;
    453      1.1  christos 
    454      1.1  christos DWordMemoryTerm
    455      1.1  christos     : PARSEOP_DWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);}
    456      1.1  christos         OptionalResourceType_First
    457      1.1  christos         OptionalDecodeType
    458      1.1  christos         OptionalMinType
    459      1.1  christos         OptionalMaxType
    460      1.1  christos         OptionalMemType
    461      1.1  christos         ',' OptionalReadWriteKeyword
    462      1.1  christos         ',' DWordConstExpr
    463      1.1  christos         ',' DWordConstExpr
    464      1.1  christos         ',' DWordConstExpr
    465      1.1  christos         ',' DWordConstExpr
    466      1.1  christos         ',' DWordConstExpr
    467      1.1  christos         OptionalByteConstExpr
    468      1.1  christos         OptionalStringData
    469      1.1  christos         OptionalNameString
    470      1.1  christos         OptionalAddressRange
    471      1.1  christos         OptionalType_Last
    472      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
    473      1.1  christos     | PARSEOP_DWORDMEMORY '('
    474      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    475      1.1  christos     ;
    476      1.1  christos 
    477      1.1  christos DWordSpaceTerm
    478      1.1  christos     : PARSEOP_DWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);}
    479      1.1  christos         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
    480      1.1  christos         OptionalResourceType
    481      1.1  christos         OptionalDecodeType
    482      1.1  christos         OptionalMinType
    483      1.1  christos         OptionalMaxType
    484      1.1  christos         ',' ByteConstExpr
    485      1.1  christos         ',' DWordConstExpr
    486      1.1  christos         ',' DWordConstExpr
    487      1.1  christos         ',' DWordConstExpr
    488      1.1  christos         ',' DWordConstExpr
    489      1.1  christos         ',' DWordConstExpr
    490      1.1  christos         OptionalByteConstExpr
    491      1.1  christos         OptionalStringData
    492      1.1  christos         OptionalNameString_Last
    493      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
    494      1.1  christos     | PARSEOP_DWORDSPACE '('
    495      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    496      1.1  christos     ;
    497      1.1  christos 
    498      1.1  christos EndDependentFnTerm
    499      1.1  christos     : PARSEOP_ENDDEPENDENTFN '('
    500      1.1  christos         ')'                         {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);}
    501      1.1  christos     | PARSEOP_ENDDEPENDENTFN '('
    502      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    503      1.1  christos     ;
    504      1.1  christos 
    505      1.1  christos ExtendedIOTerm
    506      1.1  christos     : PARSEOP_EXTENDEDIO '('        {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);}
    507      1.1  christos         OptionalResourceType_First
    508      1.1  christos         OptionalMinType
    509      1.1  christos         OptionalMaxType
    510      1.1  christos         OptionalDecodeType
    511      1.1  christos         OptionalRangeType
    512      1.1  christos         ',' QWordConstExpr
    513      1.1  christos         ',' QWordConstExpr
    514      1.1  christos         ',' QWordConstExpr
    515      1.1  christos         ',' QWordConstExpr
    516      1.1  christos         ',' QWordConstExpr
    517      1.1  christos         OptionalQWordConstExpr
    518      1.1  christos         OptionalNameString
    519      1.1  christos         OptionalType
    520      1.1  christos         OptionalTranslationType_Last
    521      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);}
    522      1.1  christos     | PARSEOP_EXTENDEDIO '('
    523      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    524      1.1  christos     ;
    525      1.1  christos 
    526      1.1  christos ExtendedMemoryTerm
    527      1.1  christos     : PARSEOP_EXTENDEDMEMORY '('    {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);}
    528      1.1  christos         OptionalResourceType_First
    529      1.1  christos         OptionalDecodeType
    530      1.1  christos         OptionalMinType
    531      1.1  christos         OptionalMaxType
    532      1.1  christos         OptionalMemType
    533      1.1  christos         ',' OptionalReadWriteKeyword
    534      1.1  christos         ',' QWordConstExpr
    535      1.1  christos         ',' QWordConstExpr
    536      1.1  christos         ',' QWordConstExpr
    537      1.1  christos         ',' QWordConstExpr
    538      1.1  christos         ',' QWordConstExpr
    539      1.1  christos         OptionalQWordConstExpr
    540      1.1  christos         OptionalNameString
    541      1.1  christos         OptionalAddressRange
    542      1.1  christos         OptionalType_Last
    543      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);}
    544      1.1  christos     | PARSEOP_EXTENDEDMEMORY '('
    545      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    546      1.1  christos     ;
    547      1.1  christos 
    548      1.1  christos ExtendedSpaceTerm
    549      1.1  christos     : PARSEOP_EXTENDEDSPACE '('     {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);}
    550      1.1  christos         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
    551      1.1  christos         OptionalResourceType
    552      1.1  christos         OptionalDecodeType
    553      1.1  christos         OptionalMinType
    554      1.1  christos         OptionalMaxType
    555      1.1  christos         ',' ByteConstExpr
    556      1.1  christos         ',' QWordConstExpr
    557      1.1  christos         ',' QWordConstExpr
    558      1.1  christos         ',' QWordConstExpr
    559      1.1  christos         ',' QWordConstExpr
    560      1.1  christos         ',' QWordConstExpr
    561      1.1  christos         OptionalQWordConstExpr
    562      1.1  christos         OptionalNameString_Last
    563      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);}
    564      1.1  christos     | PARSEOP_EXTENDEDSPACE '('
    565      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    566      1.1  christos     ;
    567      1.1  christos 
    568      1.1  christos FixedDmaTerm
    569      1.1  christos     : PARSEOP_FIXEDDMA '('          {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);}
    570      1.1  christos         WordConstExpr               /* 04: DMA RequestLines */
    571      1.1  christos         ',' WordConstExpr           /* 06: DMA Channels */
    572      1.1  christos         OptionalXferSize            /* 07: DMA TransferSize */
    573      1.1  christos         OptionalNameString          /* 08: DescriptorName */
    574      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);}
    575      1.1  christos     | PARSEOP_FIXEDDMA '('
    576      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    577      1.1  christos     ;
    578      1.1  christos 
    579      1.1  christos FixedIOTerm
    580      1.1  christos     : PARSEOP_FIXEDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);}
    581      1.1  christos         WordConstExpr
    582      1.1  christos         ',' ByteConstExpr
    583      1.1  christos         OptionalNameString_Last
    584      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
    585      1.1  christos     | PARSEOP_FIXEDIO '('
    586      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    587      1.1  christos     ;
    588      1.1  christos 
    589      1.1  christos GpioIntTerm
    590      1.1  christos     : PARSEOP_GPIO_INT '('          {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);}
    591      1.1  christos         InterruptTypeKeyword        /* 04: InterruptType */
    592      1.1  christos         ',' InterruptLevel          /* 06: InterruptLevel */
    593      1.1  christos         OptionalShareType           /* 07: SharedType */
    594      1.1  christos         ',' PinConfigByte           /* 09: PinConfig */
    595      1.1  christos         OptionalWordConstExpr       /* 10: DebounceTimeout */
    596      1.1  christos         ',' StringData              /* 12: ResourceSource */
    597      1.1  christos         OptionalByteConstExpr       /* 13: ResourceSourceIndex */
    598      1.1  christos         OptionalResourceType        /* 14: ResourceType */
    599      1.1  christos         OptionalNameString          /* 15: DescriptorName */
    600      1.1  christos         OptionalBuffer_Last         /* 16: VendorData */
    601      1.1  christos         ')' '{'
    602      1.1  christos             DWordConstExpr '}'      {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);}
    603      1.1  christos     | PARSEOP_GPIO_INT '('
    604      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    605      1.1  christos     ;
    606      1.1  christos 
    607      1.1  christos GpioIoTerm
    608      1.1  christos     : PARSEOP_GPIO_IO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);}
    609      1.1  christos         OptionalShareType_First     /* 04: SharedType */
    610      1.1  christos         ',' PinConfigByte           /* 06: PinConfig */
    611      1.1  christos         OptionalWordConstExpr       /* 07: DebounceTimeout */
    612      1.1  christos         OptionalWordConstExpr       /* 08: DriveStrength */
    613      1.1  christos         OptionalIoRestriction       /* 09: IoRestriction */
    614      1.1  christos         ',' StringData              /* 11: ResourceSource */
    615      1.1  christos         OptionalByteConstExpr       /* 12: ResourceSourceIndex */
    616      1.1  christos         OptionalResourceType        /* 13: ResourceType */
    617      1.1  christos         OptionalNameString          /* 14: DescriptorName */
    618      1.1  christos         OptionalBuffer_Last         /* 15: VendorData */
    619      1.1  christos         ')' '{'
    620      1.1  christos             DWordList '}'           {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);}
    621      1.1  christos     | PARSEOP_GPIO_IO '('
    622      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    623      1.1  christos     ;
    624      1.1  christos 
    625      1.1  christos I2cSerialBusTerm
    626      1.1  christos     : PARSEOP_I2C_SERIALBUS '('     {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);}
    627      1.1  christos         WordConstExpr               /* 04: SlaveAddress */
    628      1.1  christos         OptionalSlaveMode           /* 05: SlaveMode */
    629      1.1  christos         ',' DWordConstExpr          /* 07: ConnectionSpeed */
    630      1.1  christos         OptionalAddressingMode      /* 08: AddressingMode */
    631      1.1  christos         ',' StringData              /* 10: ResourceSource */
    632      1.1  christos         OptionalByteConstExpr       /* 11: ResourceSourceIndex */
    633      1.1  christos         OptionalResourceType        /* 12: ResourceType */
    634      1.1  christos         OptionalNameString          /* 13: DescriptorName */
    635      1.1  christos         OptionalBuffer_Last         /* 14: VendorData */
    636  1.1.1.2  christos         ')'                         {$$ = TrLinkChildren ($<n>3,10,$4,$5,$7,$8,$10,$11,$12,$13,
    637  1.1.1.2  christos                                         TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$14);}
    638      1.1  christos     | PARSEOP_I2C_SERIALBUS '('
    639      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    640      1.1  christos     ;
    641      1.1  christos 
    642  1.1.1.2  christos I2cSerialBusTermV2
    643  1.1.1.2  christos     : PARSEOP_I2C_SERIALBUS_V2 '('  {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS_V2);}
    644  1.1.1.2  christos         WordConstExpr               /* 04: SlaveAddress */
    645  1.1.1.2  christos         OptionalSlaveMode           /* 05: SlaveMode */
    646  1.1.1.2  christos         ',' DWordConstExpr          /* 07: ConnectionSpeed */
    647  1.1.1.2  christos         OptionalAddressingMode      /* 08: AddressingMode */
    648  1.1.1.2  christos         ',' StringData              /* 10: ResourceSource */
    649  1.1.1.2  christos         OptionalByteConstExpr       /* 11: ResourceSourceIndex */
    650  1.1.1.2  christos         OptionalResourceType        /* 12: ResourceType */
    651  1.1.1.2  christos         OptionalNameString          /* 13: DescriptorName */
    652  1.1.1.2  christos         OptionalShareType           /* 14: Share */
    653  1.1.1.2  christos         OptionalBuffer_Last         /* 15: VendorData */
    654  1.1.1.2  christos         ')'                         {$$ = TrLinkChildren ($<n>3,10,$4,$5,$7,$8,$10,$11,$12,$13,
    655  1.1.1.2  christos                                         $14,$15);}
    656  1.1.1.2  christos     | PARSEOP_I2C_SERIALBUS_V2 '('
    657  1.1.1.2  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    658  1.1.1.2  christos     ;
    659  1.1.1.2  christos 
    660      1.1  christos InterruptTerm
    661      1.1  christos     : PARSEOP_INTERRUPT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);}
    662      1.1  christos         OptionalResourceType_First
    663      1.1  christos         ',' InterruptTypeKeyword
    664      1.1  christos         ',' InterruptLevel
    665      1.1  christos         OptionalShareType
    666      1.1  christos         OptionalByteConstExpr
    667      1.1  christos         OptionalStringData
    668      1.1  christos         OptionalNameString_Last
    669      1.1  christos         ')' '{'
    670      1.1  christos             DWordList '}'           {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);}
    671      1.1  christos     | PARSEOP_INTERRUPT '('
    672      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    673      1.1  christos     ;
    674      1.1  christos 
    675      1.1  christos IOTerm
    676      1.1  christos     : PARSEOP_IO '('                {$<n>$ = TrCreateLeafNode (PARSEOP_IO);}
    677      1.1  christos         IODecodeKeyword
    678      1.1  christos         ',' WordConstExpr
    679      1.1  christos         ',' WordConstExpr
    680      1.1  christos         ',' ByteConstExpr
    681      1.1  christos         ',' ByteConstExpr
    682      1.1  christos         OptionalNameString_Last
    683      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
    684      1.1  christos     | PARSEOP_IO '('
    685      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    686      1.1  christos     ;
    687      1.1  christos 
    688      1.1  christos IRQNoFlagsTerm
    689      1.1  christos     : PARSEOP_IRQNOFLAGS '('        {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);}
    690      1.1  christos         OptionalNameString_First
    691      1.1  christos         ')' '{'
    692      1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    693      1.1  christos     | PARSEOP_IRQNOFLAGS '('
    694      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    695      1.1  christos     ;
    696      1.1  christos 
    697      1.1  christos IRQTerm
    698      1.1  christos     : PARSEOP_IRQ '('               {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);}
    699      1.1  christos         InterruptTypeKeyword
    700      1.1  christos         ',' InterruptLevel
    701      1.1  christos         OptionalShareType
    702      1.1  christos         OptionalNameString_Last
    703      1.1  christos         ')' '{'
    704      1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);}
    705      1.1  christos     | PARSEOP_IRQ '('
    706      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    707      1.1  christos     ;
    708      1.1  christos 
    709      1.1  christos Memory24Term
    710      1.1  christos     : PARSEOP_MEMORY24 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);}
    711      1.1  christos         OptionalReadWriteKeyword
    712      1.1  christos         ',' WordConstExpr
    713      1.1  christos         ',' WordConstExpr
    714      1.1  christos         ',' WordConstExpr
    715      1.1  christos         ',' WordConstExpr
    716      1.1  christos         OptionalNameString_Last
    717      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
    718      1.1  christos     | PARSEOP_MEMORY24 '('
    719      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    720      1.1  christos     ;
    721      1.1  christos 
    722      1.1  christos Memory32FixedTerm
    723      1.1  christos     : PARSEOP_MEMORY32FIXED '('     {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);}
    724      1.1  christos         OptionalReadWriteKeyword
    725      1.1  christos         ',' DWordConstExpr
    726      1.1  christos         ',' DWordConstExpr
    727      1.1  christos         OptionalNameString_Last
    728      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);}
    729      1.1  christos     | PARSEOP_MEMORY32FIXED '('
    730      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    731      1.1  christos     ;
    732      1.1  christos 
    733      1.1  christos Memory32Term
    734      1.1  christos     : PARSEOP_MEMORY32 '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);}
    735      1.1  christos         OptionalReadWriteKeyword
    736      1.1  christos         ',' DWordConstExpr
    737      1.1  christos         ',' DWordConstExpr
    738      1.1  christos         ',' DWordConstExpr
    739      1.1  christos         ',' DWordConstExpr
    740      1.1  christos         OptionalNameString_Last
    741      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);}
    742      1.1  christos     | PARSEOP_MEMORY32 '('
    743      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    744      1.1  christos     ;
    745      1.1  christos 
    746      1.1  christos QWordIOTerm
    747      1.1  christos     : PARSEOP_QWORDIO '('           {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);}
    748      1.1  christos         OptionalResourceType_First
    749      1.1  christos         OptionalMinType
    750      1.1  christos         OptionalMaxType
    751      1.1  christos         OptionalDecodeType
    752      1.1  christos         OptionalRangeType
    753      1.1  christos         ',' QWordConstExpr
    754      1.1  christos         ',' QWordConstExpr
    755      1.1  christos         ',' QWordConstExpr
    756      1.1  christos         ',' QWordConstExpr
    757      1.1  christos         ',' QWordConstExpr
    758      1.1  christos         OptionalByteConstExpr
    759      1.1  christos         OptionalStringData
    760      1.1  christos         OptionalNameString
    761      1.1  christos         OptionalType
    762      1.1  christos         OptionalTranslationType_Last
    763      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
    764      1.1  christos     | PARSEOP_QWORDIO '('
    765      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    766      1.1  christos     ;
    767      1.1  christos 
    768      1.1  christos QWordMemoryTerm
    769      1.1  christos     : PARSEOP_QWORDMEMORY '('       {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);}
    770      1.1  christos         OptionalResourceType_First
    771      1.1  christos         OptionalDecodeType
    772      1.1  christos         OptionalMinType
    773      1.1  christos         OptionalMaxType
    774      1.1  christos         OptionalMemType
    775      1.1  christos         ',' OptionalReadWriteKeyword
    776      1.1  christos         ',' QWordConstExpr
    777      1.1  christos         ',' QWordConstExpr
    778      1.1  christos         ',' QWordConstExpr
    779      1.1  christos         ',' QWordConstExpr
    780      1.1  christos         ',' QWordConstExpr
    781      1.1  christos         OptionalByteConstExpr
    782      1.1  christos         OptionalStringData
    783      1.1  christos         OptionalNameString
    784      1.1  christos         OptionalAddressRange
    785      1.1  christos         OptionalType_Last
    786      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);}
    787      1.1  christos     | PARSEOP_QWORDMEMORY '('
    788      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    789      1.1  christos     ;
    790      1.1  christos 
    791      1.1  christos QWordSpaceTerm
    792      1.1  christos     : PARSEOP_QWORDSPACE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);}
    793      1.1  christos         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
    794      1.1  christos         OptionalResourceType
    795      1.1  christos         OptionalDecodeType
    796      1.1  christos         OptionalMinType
    797      1.1  christos         OptionalMaxType
    798      1.1  christos         ',' ByteConstExpr
    799      1.1  christos         ',' QWordConstExpr
    800      1.1  christos         ',' QWordConstExpr
    801      1.1  christos         ',' QWordConstExpr
    802      1.1  christos         ',' QWordConstExpr
    803      1.1  christos         ',' QWordConstExpr
    804      1.1  christos         OptionalByteConstExpr
    805      1.1  christos         OptionalStringData
    806      1.1  christos         OptionalNameString_Last
    807      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
    808      1.1  christos     | PARSEOP_QWORDSPACE '('
    809      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    810      1.1  christos     ;
    811      1.1  christos 
    812      1.1  christos RegisterTerm
    813      1.1  christos     : PARSEOP_REGISTER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);}
    814      1.1  christos         AddressSpaceKeyword
    815      1.1  christos         ',' ByteConstExpr
    816      1.1  christos         ',' ByteConstExpr
    817      1.1  christos         ',' QWordConstExpr
    818      1.1  christos         OptionalAccessSize
    819      1.1  christos         OptionalNameString_Last
    820      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);}
    821      1.1  christos     | PARSEOP_REGISTER '('
    822      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    823      1.1  christos     ;
    824      1.1  christos 
    825      1.1  christos SpiSerialBusTerm
    826      1.1  christos     : PARSEOP_SPI_SERIALBUS '('     {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);}
    827      1.1  christos         WordConstExpr               /* 04: DeviceSelection */
    828      1.1  christos         OptionalDevicePolarity      /* 05: DevicePolarity */
    829      1.1  christos         OptionalWireMode            /* 06: WireMode */
    830      1.1  christos         ',' ByteConstExpr           /* 08: DataBitLength */
    831      1.1  christos         OptionalSlaveMode           /* 09: SlaveMode */
    832      1.1  christos         ',' DWordConstExpr          /* 11: ConnectionSpeed */
    833      1.1  christos         ',' ClockPolarityKeyword    /* 13: ClockPolarity */
    834      1.1  christos         ',' ClockPhaseKeyword       /* 15: ClockPhase */
    835      1.1  christos         ',' StringData              /* 17: ResourceSource */
    836      1.1  christos         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
    837      1.1  christos         OptionalResourceType        /* 19: ResourceType */
    838      1.1  christos         OptionalNameString          /* 20: DescriptorName */
    839      1.1  christos         OptionalBuffer_Last         /* 21: VendorData */
    840  1.1.1.2  christos         ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
    841  1.1.1.2  christos                                         TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
    842      1.1  christos     | PARSEOP_SPI_SERIALBUS '('
    843      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    844      1.1  christos     ;
    845      1.1  christos 
    846  1.1.1.2  christos SpiSerialBusTermV2
    847  1.1.1.2  christos     : PARSEOP_SPI_SERIALBUS_V2 '('  {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS_V2);}
    848  1.1.1.2  christos         WordConstExpr               /* 04: DeviceSelection */
    849  1.1.1.2  christos         OptionalDevicePolarity      /* 05: DevicePolarity */
    850  1.1.1.2  christos         OptionalWireMode            /* 06: WireMode */
    851  1.1.1.2  christos         ',' ByteConstExpr           /* 08: DataBitLength */
    852  1.1.1.2  christos         OptionalSlaveMode           /* 09: SlaveMode */
    853  1.1.1.2  christos         ',' DWordConstExpr          /* 11: ConnectionSpeed */
    854  1.1.1.2  christos         ',' ClockPolarityKeyword    /* 13: ClockPolarity */
    855  1.1.1.2  christos         ',' ClockPhaseKeyword       /* 15: ClockPhase */
    856  1.1.1.2  christos         ',' StringData              /* 17: ResourceSource */
    857  1.1.1.2  christos         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
    858  1.1.1.2  christos         OptionalResourceType        /* 19: ResourceType */
    859  1.1.1.2  christos         OptionalNameString          /* 20: DescriptorName */
    860  1.1.1.2  christos         OptionalShareType           /* 21: Share */
    861  1.1.1.2  christos         OptionalBuffer_Last         /* 22: VendorData */
    862  1.1.1.2  christos         ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,
    863  1.1.1.2  christos                                         $21,$22);}
    864  1.1.1.2  christos     | PARSEOP_SPI_SERIALBUS_V2 '('
    865  1.1.1.2  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    866  1.1.1.2  christos     ;
    867  1.1.1.2  christos 
    868      1.1  christos StartDependentFnNoPriTerm
    869      1.1  christos     : PARSEOP_STARTDEPENDENTFN_NOPRI '('    {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);}
    870      1.1  christos         ')' '{'
    871      1.1  christos         ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,1,$6);}
    872      1.1  christos     | PARSEOP_STARTDEPENDENTFN_NOPRI '('
    873      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    874      1.1  christos     ;
    875      1.1  christos 
    876      1.1  christos StartDependentFnTerm
    877      1.1  christos     : PARSEOP_STARTDEPENDENTFN '('  {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);}
    878      1.1  christos         ByteConstExpr
    879      1.1  christos         ',' ByteConstExpr
    880      1.1  christos         ')' '{'
    881      1.1  christos         ResourceMacroList '}'       {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);}
    882      1.1  christos     | PARSEOP_STARTDEPENDENTFN '('
    883      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    884      1.1  christos     ;
    885      1.1  christos 
    886      1.1  christos UartSerialBusTerm
    887      1.1  christos     : PARSEOP_UART_SERIALBUS '('    {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);}
    888      1.1  christos         DWordConstExpr              /* 04: ConnectionSpeed */
    889      1.1  christos         OptionalBitsPerByte         /* 05: BitsPerByte */
    890      1.1  christos         OptionalStopBits            /* 06: StopBits */
    891      1.1  christos         ',' ByteConstExpr           /* 08: LinesInUse */
    892      1.1  christos         OptionalEndian              /* 09: Endianess */
    893      1.1  christos         OptionalParityType          /* 10: Parity */
    894      1.1  christos         OptionalFlowControl         /* 11: FlowControl */
    895      1.1  christos         ',' WordConstExpr           /* 13: Rx BufferSize */
    896      1.1  christos         ',' WordConstExpr           /* 15: Tx BufferSize */
    897      1.1  christos         ',' StringData              /* 17: ResourceSource */
    898      1.1  christos         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
    899      1.1  christos         OptionalResourceType        /* 19: ResourceType */
    900      1.1  christos         OptionalNameString          /* 20: DescriptorName */
    901      1.1  christos         OptionalBuffer_Last         /* 21: VendorData */
    902  1.1.1.2  christos         ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
    903  1.1.1.2  christos                                         TrCreateLeafNode (PARSEOP_DEFAULT_ARG),$21);}
    904      1.1  christos     | PARSEOP_UART_SERIALBUS '('
    905      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    906      1.1  christos     ;
    907      1.1  christos 
    908  1.1.1.2  christos UartSerialBusTermV2
    909  1.1.1.2  christos     : PARSEOP_UART_SERIALBUS_V2 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS_V2);}
    910  1.1.1.2  christos         DWordConstExpr              /* 04: ConnectionSpeed */
    911  1.1.1.2  christos         OptionalBitsPerByte         /* 05: BitsPerByte */
    912  1.1.1.2  christos         OptionalStopBits            /* 06: StopBits */
    913  1.1.1.2  christos         ',' ByteConstExpr           /* 08: LinesInUse */
    914  1.1.1.2  christos         OptionalEndian              /* 09: Endianess */
    915  1.1.1.2  christos         OptionalParityType          /* 10: Parity */
    916  1.1.1.2  christos         OptionalFlowControl         /* 11: FlowControl */
    917  1.1.1.2  christos         ',' WordConstExpr           /* 13: Rx BufferSize */
    918  1.1.1.2  christos         ',' WordConstExpr           /* 15: Tx BufferSize */
    919  1.1.1.2  christos         ',' StringData              /* 17: ResourceSource */
    920  1.1.1.2  christos         OptionalByteConstExpr       /* 18: ResourceSourceIndex */
    921  1.1.1.2  christos         OptionalResourceType        /* 19: ResourceType */
    922  1.1.1.2  christos         OptionalNameString          /* 20: DescriptorName */
    923  1.1.1.2  christos         OptionalShareType           /* 21: Share */
    924  1.1.1.2  christos         OptionalBuffer_Last         /* 22: VendorData */
    925  1.1.1.2  christos         ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,
    926  1.1.1.2  christos                                         $21,$22);}
    927  1.1.1.2  christos     | PARSEOP_UART_SERIALBUS_V2 '('
    928  1.1.1.2  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    929  1.1.1.2  christos     ;
    930  1.1.1.2  christos 
    931      1.1  christos VendorLongTerm
    932      1.1  christos     : PARSEOP_VENDORLONG '('        {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);}
    933      1.1  christos         OptionalNameString_First
    934      1.1  christos         ')' '{'
    935      1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    936      1.1  christos     | PARSEOP_VENDORLONG '('
    937      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    938      1.1  christos     ;
    939      1.1  christos 
    940      1.1  christos VendorShortTerm
    941      1.1  christos     : PARSEOP_VENDORSHORT '('       {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);}
    942      1.1  christos         OptionalNameString_First
    943      1.1  christos         ')' '{'
    944      1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    945      1.1  christos     | PARSEOP_VENDORSHORT '('
    946      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    947      1.1  christos     ;
    948      1.1  christos 
    949      1.1  christos WordBusNumberTerm
    950      1.1  christos     : PARSEOP_WORDBUSNUMBER '('     {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);}
    951      1.1  christos         OptionalResourceType_First
    952      1.1  christos         OptionalMinType
    953      1.1  christos         OptionalMaxType
    954      1.1  christos         OptionalDecodeType
    955      1.1  christos         ',' WordConstExpr
    956      1.1  christos         ',' WordConstExpr
    957      1.1  christos         ',' WordConstExpr
    958      1.1  christos         ',' WordConstExpr
    959      1.1  christos         ',' WordConstExpr
    960      1.1  christos         OptionalByteConstExpr
    961      1.1  christos         OptionalStringData
    962      1.1  christos         OptionalNameString_Last
    963      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);}
    964      1.1  christos     | PARSEOP_WORDBUSNUMBER '('
    965      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    966      1.1  christos     ;
    967      1.1  christos 
    968      1.1  christos WordIOTerm
    969      1.1  christos     : PARSEOP_WORDIO '('            {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);}
    970      1.1  christos         OptionalResourceType_First
    971      1.1  christos         OptionalMinType
    972      1.1  christos         OptionalMaxType
    973      1.1  christos         OptionalDecodeType
    974      1.1  christos         OptionalRangeType
    975      1.1  christos         ',' WordConstExpr
    976      1.1  christos         ',' WordConstExpr
    977      1.1  christos         ',' WordConstExpr
    978      1.1  christos         ',' WordConstExpr
    979      1.1  christos         ',' WordConstExpr
    980      1.1  christos         OptionalByteConstExpr
    981      1.1  christos         OptionalStringData
    982      1.1  christos         OptionalNameString
    983      1.1  christos         OptionalType
    984      1.1  christos         OptionalTranslationType_Last
    985      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);}
    986      1.1  christos     | PARSEOP_WORDIO '('
    987      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    988      1.1  christos     ;
    989      1.1  christos 
    990      1.1  christos WordSpaceTerm
    991      1.1  christos     : PARSEOP_WORDSPACE '('         {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);}
    992      1.1  christos         ByteConstExpr               {UtCheckIntegerRange ($4, 0xC0, 0xFF);}
    993      1.1  christos         OptionalResourceType
    994      1.1  christos         OptionalDecodeType
    995      1.1  christos         OptionalMinType
    996      1.1  christos         OptionalMaxType
    997      1.1  christos         ',' ByteConstExpr
    998      1.1  christos         ',' WordConstExpr
    999      1.1  christos         ',' WordConstExpr
   1000      1.1  christos         ',' WordConstExpr
   1001      1.1  christos         ',' WordConstExpr
   1002      1.1  christos         ',' WordConstExpr
   1003      1.1  christos         OptionalByteConstExpr
   1004      1.1  christos         OptionalStringData
   1005      1.1  christos         OptionalNameString_Last
   1006      1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);}
   1007      1.1  christos     | PARSEOP_WORDSPACE '('
   1008      1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1009      1.1  christos     ;
   1010      1.1  christos 
   1011      1.1  christos 
   1012      1.1  christos /******* Object References ***********************************************/
   1013      1.1  christos 
   1014      1.1  christos /* Allow IO, DMA, IRQ Resource macro names to also be used as identifiers */
   1015      1.1  christos 
   1016      1.1  christos NameString
   1017      1.1  christos     : NameSeg                       {}
   1018      1.1  christos     | PARSEOP_NAMESTRING            {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);}
   1019      1.1  christos     | PARSEOP_IO                    {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");}
   1020      1.1  christos     | PARSEOP_DMA                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");}
   1021      1.1  christos     | PARSEOP_IRQ                   {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");}
   1022      1.1  christos     ;
   1023      1.1  christos 
   1024      1.1  christos NameSeg
   1025      1.1  christos     : PARSEOP_NAMESEG               {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);}
   1026      1.1  christos     ;
   1027      1.1  christos 
   1028      1.1  christos 
   1029      1.1  christos /*******************************************************************************
   1030      1.1  christos  *
   1031      1.1  christos  * ASL Helper Terms
   1032      1.1  christos  *
   1033      1.1  christos  ******************************************************************************/
   1034      1.1  christos 
   1035      1.1  christos OptionalBusMasterKeyword
   1036      1.1  christos     : ','                                       {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
   1037      1.1  christos     | ',' PARSEOP_BUSMASTERTYPE_MASTER          {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);}
   1038      1.1  christos     | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER       {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);}
   1039      1.1  christos     ;
   1040      1.1  christos 
   1041      1.1  christos OptionalAccessAttribTerm
   1042      1.1  christos     :                               {$$ = NULL;}
   1043      1.1  christos     | ','                           {$$ = NULL;}
   1044      1.1  christos     | ',' ByteConstExpr             {$$ = $2;}
   1045      1.1  christos     | ',' AccessAttribKeyword       {$$ = $2;}
   1046      1.1  christos     ;
   1047      1.1  christos 
   1048      1.1  christos OptionalAccessSize
   1049      1.1  christos     :                               {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
   1050      1.1  christos     | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);}
   1051      1.1  christos     | ',' ByteConstExpr             {$$ = $2;}
   1052      1.1  christos     ;
   1053      1.1  christos 
   1054      1.1  christos OptionalAddressingMode
   1055      1.1  christos     : ','                           {$$ = NULL;}
   1056      1.1  christos     | ',' AddressingModeKeyword     {$$ = $2;}
   1057      1.1  christos     ;
   1058      1.1  christos 
   1059      1.1  christos OptionalAddressRange
   1060      1.1  christos     :                               {$$ = NULL;}
   1061      1.1  christos     | ','                           {$$ = NULL;}
   1062      1.1  christos     | ',' AddressKeyword            {$$ = $2;}
   1063      1.1  christos     ;
   1064      1.1  christos 
   1065      1.1  christos OptionalBitsPerByte
   1066      1.1  christos     : ','                           {$$ = NULL;}
   1067      1.1  christos     | ',' BitsPerByteKeyword        {$$ = $2;}
   1068      1.1  christos     ;
   1069      1.1  christos 
   1070      1.1  christos OptionalBuffer_Last
   1071      1.1  christos     :                               {$$ = NULL;}
   1072      1.1  christos     | ','                           {$$ = NULL;}
   1073      1.1  christos     | ',' RawDataBufferTerm         {$$ = $2;}
   1074      1.1  christos     ;
   1075      1.1  christos 
   1076      1.1  christos OptionalByteConstExpr
   1077      1.1  christos     :                               {$$ = NULL;}
   1078      1.1  christos     | ','                           {$$ = NULL;}
   1079      1.1  christos     | ',' ByteConstExpr             {$$ = $2;}
   1080      1.1  christos     ;
   1081      1.1  christos 
   1082      1.1  christos OptionalDecodeType
   1083      1.1  christos     : ','                           {$$ = NULL;}
   1084      1.1  christos     | ',' DecodeKeyword             {$$ = $2;}
   1085      1.1  christos     ;
   1086      1.1  christos 
   1087      1.1  christos OptionalDevicePolarity
   1088      1.1  christos     : ','                           {$$ = NULL;}
   1089      1.1  christos     | ',' DevicePolarityKeyword     {$$ = $2;}
   1090      1.1  christos     ;
   1091      1.1  christos 
   1092      1.1  christos OptionalDWordConstExpr
   1093      1.1  christos     :                               {$$ = NULL;}
   1094      1.1  christos     | ','                           {$$ = NULL;}
   1095      1.1  christos     | ',' DWordConstExpr            {$$ = $2;}
   1096      1.1  christos     ;
   1097      1.1  christos 
   1098      1.1  christos OptionalEndian
   1099      1.1  christos     : ','                           {$$ = NULL;}
   1100      1.1  christos     | ',' EndianKeyword             {$$ = $2;}
   1101      1.1  christos     ;
   1102      1.1  christos 
   1103      1.1  christos OptionalFlowControl
   1104      1.1  christos     : ','                           {$$ = NULL;}
   1105      1.1  christos     | ',' FlowControlKeyword        {$$ = $2;}
   1106      1.1  christos     ;
   1107      1.1  christos 
   1108      1.1  christos OptionalIoRestriction
   1109      1.1  christos     : ','                           {$$ = NULL;}
   1110      1.1  christos     | ',' IoRestrictionKeyword      {$$ = $2;}
   1111      1.1  christos     ;
   1112      1.1  christos 
   1113      1.1  christos OptionalListString
   1114      1.1  christos     :                               {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
   1115      1.1  christos     | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));}   /* Placeholder is a NULL string */
   1116      1.1  christos     | ',' TermArg                   {$$ = $2;}
   1117      1.1  christos     ;
   1118      1.1  christos 
   1119      1.1  christos OptionalMaxType
   1120      1.1  christos     : ','                           {$$ = NULL;}
   1121      1.1  christos     | ',' MaxKeyword                {$$ = $2;}
   1122      1.1  christos     ;
   1123      1.1  christos 
   1124      1.1  christos OptionalMemType
   1125      1.1  christos     : ','                           {$$ = NULL;}
   1126      1.1  christos     | ',' MemTypeKeyword            {$$ = $2;}
   1127      1.1  christos     ;
   1128      1.1  christos 
   1129      1.1  christos OptionalMinType
   1130      1.1  christos     : ','                           {$$ = NULL;}
   1131      1.1  christos     | ',' MinKeyword                {$$ = $2;}
   1132      1.1  christos     ;
   1133      1.1  christos 
   1134      1.1  christos OptionalNameString
   1135      1.1  christos     :                               {$$ = NULL;}
   1136      1.1  christos     | ','                           {$$ = NULL;}
   1137      1.1  christos     | ',' NameString                {$$ = $2;}
   1138      1.1  christos     ;
   1139      1.1  christos 
   1140      1.1  christos OptionalNameString_Last
   1141      1.1  christos     :                               {$$ = NULL;}
   1142      1.1  christos     | ','                           {$$ = NULL;}
   1143      1.1  christos     | ',' NameString                {$$ = $2;}
   1144      1.1  christos     ;
   1145      1.1  christos 
   1146      1.1  christos OptionalNameString_First
   1147      1.1  christos     :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}
   1148      1.1  christos     | NameString                    {$$ = $1;}
   1149      1.1  christos     ;
   1150      1.1  christos 
   1151      1.1  christos OptionalObjectTypeKeyword
   1152      1.1  christos     :                               {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);}
   1153      1.1  christos     | ',' ObjectTypeKeyword         {$$ = $2;}
   1154      1.1  christos     ;
   1155      1.1  christos 
   1156      1.1  christos OptionalParityType
   1157      1.1  christos     : ','                           {$$ = NULL;}
   1158      1.1  christos     | ',' ParityTypeKeyword         {$$ = $2;}
   1159      1.1  christos     ;
   1160      1.1  christos 
   1161      1.1  christos OptionalQWordConstExpr
   1162      1.1  christos     :                               {$$ = NULL;}
   1163      1.1  christos     | ','                           {$$ = NULL;}
   1164      1.1  christos     | ',' QWordConstExpr            {$$ = $2;}
   1165      1.1  christos     ;
   1166      1.1  christos 
   1167      1.1  christos OptionalRangeType
   1168      1.1  christos     : ','                           {$$ = NULL;}
   1169      1.1  christos     | ',' RangeTypeKeyword          {$$ = $2;}
   1170      1.1  christos     ;
   1171      1.1  christos 
   1172      1.1  christos OptionalReadWriteKeyword
   1173      1.1  christos     :                                   {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
   1174      1.1  christos     | PARSEOP_READWRITETYPE_BOTH        {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);}
   1175      1.1  christos     | PARSEOP_READWRITETYPE_READONLY    {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);}
   1176      1.1  christos     ;
   1177      1.1  christos 
   1178      1.1  christos OptionalResourceType_First
   1179      1.1  christos     :                               {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
   1180      1.1  christos     | ResourceTypeKeyword           {$$ = $1;}
   1181      1.1  christos     ;
   1182      1.1  christos 
   1183      1.1  christos OptionalResourceType
   1184      1.1  christos     :                               {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
   1185      1.1  christos     | ','                           {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);}
   1186      1.1  christos     | ',' ResourceTypeKeyword       {$$ = $2;}
   1187      1.1  christos     ;
   1188      1.1  christos 
   1189      1.1  christos OptionalSlaveMode
   1190      1.1  christos     : ','                           {$$ = NULL;}
   1191      1.1  christos     | ',' SlaveModeKeyword          {$$ = $2;}
   1192      1.1  christos     ;
   1193      1.1  christos 
   1194      1.1  christos OptionalShareType
   1195      1.1  christos     :                               {$$ = NULL;}
   1196      1.1  christos     | ','                           {$$ = NULL;}
   1197      1.1  christos     | ',' ShareTypeKeyword          {$$ = $2;}
   1198      1.1  christos     ;
   1199      1.1  christos 
   1200      1.1  christos OptionalShareType_First
   1201      1.1  christos     :                               {$$ = NULL;}
   1202      1.1  christos     | ShareTypeKeyword              {$$ = $1;}
   1203      1.1  christos     ;
   1204      1.1  christos 
   1205      1.1  christos OptionalStopBits
   1206      1.1  christos     : ','                           {$$ = NULL;}
   1207      1.1  christos     | ',' StopBitsKeyword           {$$ = $2;}
   1208      1.1  christos     ;
   1209      1.1  christos 
   1210      1.1  christos OptionalStringData
   1211      1.1  christos     :                               {$$ = NULL;}
   1212      1.1  christos     | ','                           {$$ = NULL;}
   1213      1.1  christos     | ',' StringData                {$$ = $2;}
   1214      1.1  christos     ;
   1215      1.1  christos 
   1216      1.1  christos OptionalTranslationType_Last
   1217      1.1  christos     :                               {$$ = NULL;}
   1218      1.1  christos     | ','                           {$$ = NULL;}
   1219      1.1  christos     | ',' TranslationKeyword        {$$ = $2;}
   1220      1.1  christos     ;
   1221      1.1  christos 
   1222      1.1  christos OptionalType
   1223      1.1  christos     :                               {$$ = NULL;}
   1224      1.1  christos     | ','                           {$$ = NULL;}
   1225      1.1  christos     | ',' TypeKeyword               {$$ = $2;}
   1226      1.1  christos     ;
   1227      1.1  christos 
   1228      1.1  christos OptionalType_Last
   1229      1.1  christos     :                               {$$ = NULL;}
   1230      1.1  christos     | ','                           {$$ = NULL;}
   1231      1.1  christos     | ',' TypeKeyword               {$$ = $2;}
   1232      1.1  christos     ;
   1233      1.1  christos 
   1234      1.1  christos OptionalWireMode
   1235      1.1  christos     : ','                           {$$ = NULL;}
   1236      1.1  christos     | ',' WireModeKeyword           {$$ = $2;}
   1237      1.1  christos     ;
   1238      1.1  christos 
   1239      1.1  christos OptionalWordConstExpr
   1240      1.1  christos     : ','                           {$$ = NULL;}
   1241      1.1  christos     | ',' WordConstExpr             {$$ = $2;}
   1242      1.1  christos     ;
   1243      1.1  christos 
   1244      1.1  christos OptionalXferSize
   1245      1.1  christos     :                               {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
   1246      1.1  christos     | ','                           {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);}
   1247      1.1  christos     | ',' XferSizeKeyword           {$$ = $2;}
   1248      1.1  christos     ;
   1249