Home | History | Annotate | Line # | Download | only in compiler
aslprimaries.y revision 1.1.1.1.6.1
      1          1.1  christos NoEcho('
      2          1.1  christos /******************************************************************************
      3          1.1  christos  *
      4          1.1  christos  * Module Name: aslprimaries.y - Rules for primary ASL operators
      5          1.1  christos  *
      6          1.1  christos  *****************************************************************************/
      7          1.1  christos 
      8          1.1  christos /*
      9  1.1.1.1.6.1    bouyer  * Copyright (C) 2000 - 2017, 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  *
     50          1.1  christos  * ASL Primary Terms
     51          1.1  christos  *
     52          1.1  christos  ******************************************************************************/
     53          1.1  christos 
     54          1.1  christos AccessAsTerm
     55  1.1.1.1.6.1    bouyer     : PARSEOP_ACCESSAS
     56  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
     57          1.1  christos         AccessTypeKeyword
     58          1.1  christos         OptionalAccessAttribTerm
     59  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
     60  1.1.1.1.6.1    bouyer     | PARSEOP_ACCESSAS
     61  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
     62  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
     63          1.1  christos     ;
     64          1.1  christos 
     65          1.1  christos AcquireTerm
     66  1.1.1.1.6.1    bouyer     : PARSEOP_ACQUIRE
     67  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
     68          1.1  christos         SuperName
     69          1.1  christos         ',' WordConstExpr
     70  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
     71  1.1.1.1.6.1    bouyer     | PARSEOP_ACQUIRE
     72  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
     73  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
     74          1.1  christos     ;
     75          1.1  christos 
     76          1.1  christos AddTerm
     77  1.1.1.1.6.1    bouyer     : PARSEOP_ADD
     78  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
     79          1.1  christos         TermArg
     80          1.1  christos         TermArgItem
     81          1.1  christos         Target
     82  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     83  1.1.1.1.6.1    bouyer     | PARSEOP_ADD
     84  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
     85  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
     86          1.1  christos     ;
     87          1.1  christos 
     88          1.1  christos AliasTerm
     89  1.1.1.1.6.1    bouyer     : PARSEOP_ALIAS
     90  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);}
     91          1.1  christos         NameString
     92          1.1  christos         NameStringItem
     93  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,
     94          1.1  christos                                         TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
     95  1.1.1.1.6.1    bouyer     | PARSEOP_ALIAS
     96  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
     97  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
     98          1.1  christos     ;
     99          1.1  christos 
    100          1.1  christos AndTerm
    101  1.1.1.1.6.1    bouyer     : PARSEOP_AND
    102  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
    103          1.1  christos         TermArg
    104          1.1  christos         TermArgItem
    105          1.1  christos         Target
    106  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    107  1.1.1.1.6.1    bouyer     | PARSEOP_AND
    108  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    109  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    110          1.1  christos     ;
    111          1.1  christos 
    112          1.1  christos ArgTerm
    113          1.1  christos     : PARSEOP_ARG0                  {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
    114          1.1  christos     | PARSEOP_ARG1                  {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
    115          1.1  christos     | PARSEOP_ARG2                  {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
    116          1.1  christos     | PARSEOP_ARG3                  {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
    117          1.1  christos     | PARSEOP_ARG4                  {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
    118          1.1  christos     | PARSEOP_ARG5                  {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
    119          1.1  christos     | PARSEOP_ARG6                  {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
    120          1.1  christos     ;
    121          1.1  christos 
    122          1.1  christos BankFieldTerm
    123  1.1.1.1.6.1    bouyer     : PARSEOP_BANKFIELD
    124  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
    125          1.1  christos         NameString
    126          1.1  christos         NameStringItem
    127          1.1  christos         TermArgItem
    128          1.1  christos         ',' AccessTypeKeyword
    129          1.1  christos         ',' LockRuleKeyword
    130          1.1  christos         ',' UpdateRuleKeyword
    131  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
    132          1.1  christos             FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,7,
    133          1.1  christos                                         $4,$5,$6,$8,$10,$12,$15);}
    134  1.1.1.1.6.1    bouyer     | PARSEOP_BANKFIELD
    135  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    136  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN
    137  1.1.1.1.6.1    bouyer         '{' error '}'               {$$ = AslDoError(); yyclearin;}
    138          1.1  christos     ;
    139          1.1  christos 
    140          1.1  christos BreakTerm
    141          1.1  christos     : PARSEOP_BREAK                 {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
    142          1.1  christos     ;
    143          1.1  christos 
    144          1.1  christos BreakPointTerm
    145          1.1  christos     : PARSEOP_BREAKPOINT            {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
    146          1.1  christos     ;
    147          1.1  christos 
    148          1.1  christos BufferTerm
    149          1.1  christos     : PARSEOP_BUFFER                {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);}
    150          1.1  christos         OptionalDataCount
    151          1.1  christos         '{' BufferTermData '}'      {$$ = TrLinkChildren ($<n>2,2,$3,$5);}
    152          1.1  christos     ;
    153          1.1  christos 
    154          1.1  christos BufferTermData
    155          1.1  christos     : ByteList                      {}
    156          1.1  christos     | StringData                    {}
    157          1.1  christos     ;
    158          1.1  christos 
    159          1.1  christos CaseTerm
    160  1.1.1.1.6.1    bouyer     : PARSEOP_CASE
    161  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);}
    162          1.1  christos         DataObject
    163  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
    164          1.1  christos             TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    165  1.1.1.1.6.1    bouyer     | PARSEOP_CASE
    166  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    167  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    168          1.1  christos     ;
    169          1.1  christos 
    170          1.1  christos ConcatTerm
    171  1.1.1.1.6.1    bouyer     : PARSEOP_CONCATENATE
    172  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
    173          1.1  christos         TermArg
    174          1.1  christos         TermArgItem
    175          1.1  christos         Target
    176  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    177  1.1.1.1.6.1    bouyer     | PARSEOP_CONCATENATE
    178  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    179  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    180          1.1  christos     ;
    181          1.1  christos 
    182          1.1  christos ConcatResTerm
    183  1.1.1.1.6.1    bouyer     : PARSEOP_CONCATENATERESTEMPLATE
    184  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (
    185  1.1.1.1.6.1    bouyer                                         PARSEOP_CONCATENATERESTEMPLATE);}
    186          1.1  christos         TermArg
    187          1.1  christos         TermArgItem
    188          1.1  christos         Target
    189  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    190  1.1.1.1.6.1    bouyer     | PARSEOP_CONCATENATERESTEMPLATE
    191  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    192  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    193  1.1.1.1.6.1    bouyer     ;
    194  1.1.1.1.6.1    bouyer 
    195  1.1.1.1.6.1    bouyer CondRefOfTerm
    196  1.1.1.1.6.1    bouyer     : PARSEOP_CONDREFOF
    197  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
    198  1.1.1.1.6.1    bouyer         CondRefOfSource
    199  1.1.1.1.6.1    bouyer         Target
    200  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    201  1.1.1.1.6.1    bouyer     | PARSEOP_CONDREFOF
    202  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    203  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    204          1.1  christos     ;
    205          1.1  christos 
    206          1.1  christos ConnectionTerm
    207  1.1.1.1.6.1    bouyer     : PARSEOP_CONNECTION
    208  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    209          1.1  christos         NameString
    210  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);}
    211  1.1.1.1.6.1    bouyer     | PARSEOP_CONNECTION
    212  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CONNECTION);}
    213          1.1  christos         ResourceMacroTerm
    214  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3, 1,
    215          1.1  christos                                         TrLinkChildren (
    216          1.1  christos                                             TrCreateLeafNode (PARSEOP_RESOURCETEMPLATE), 3,
    217          1.1  christos                                             TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
    218          1.1  christos                                             TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
    219          1.1  christos                                             $4));}
    220  1.1.1.1.6.1    bouyer     | PARSEOP_CONNECTION
    221  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    222  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    223          1.1  christos     ;
    224          1.1  christos 
    225          1.1  christos ContinueTerm
    226          1.1  christos     : PARSEOP_CONTINUE              {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
    227          1.1  christos     ;
    228          1.1  christos 
    229          1.1  christos CopyObjectTerm
    230  1.1.1.1.6.1    bouyer     : PARSEOP_COPYOBJECT
    231  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
    232          1.1  christos         TermArg
    233  1.1.1.1.6.1    bouyer         ',' SimpleName
    234  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,
    235          1.1  christos                                         TrSetNodeFlags ($6, NODE_IS_TARGET));}
    236  1.1.1.1.6.1    bouyer     | PARSEOP_COPYOBJECT
    237  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    238  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    239          1.1  christos     ;
    240          1.1  christos 
    241          1.1  christos CreateBitFieldTerm
    242  1.1.1.1.6.1    bouyer     : PARSEOP_CREATEBITFIELD
    243  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
    244          1.1  christos         TermArg
    245          1.1  christos         TermArgItem
    246          1.1  christos         NameStringItem
    247  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
    248          1.1  christos                                         TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    249  1.1.1.1.6.1    bouyer     | PARSEOP_CREATEBITFIELD
    250  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    251  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    252          1.1  christos     ;
    253          1.1  christos 
    254          1.1  christos CreateByteFieldTerm
    255  1.1.1.1.6.1    bouyer     : PARSEOP_CREATEBYTEFIELD
    256  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
    257          1.1  christos         TermArg
    258          1.1  christos         TermArgItem
    259          1.1  christos         NameStringItem
    260  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
    261          1.1  christos                                         TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    262  1.1.1.1.6.1    bouyer     | PARSEOP_CREATEBYTEFIELD
    263  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    264  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    265          1.1  christos     ;
    266          1.1  christos 
    267          1.1  christos CreateDWordFieldTerm
    268  1.1.1.1.6.1    bouyer     : PARSEOP_CREATEDWORDFIELD
    269  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
    270          1.1  christos         TermArg
    271          1.1  christos         TermArgItem
    272          1.1  christos         NameStringItem
    273  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
    274          1.1  christos                                         TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    275  1.1.1.1.6.1    bouyer     | PARSEOP_CREATEDWORDFIELD
    276  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    277  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    278          1.1  christos     ;
    279          1.1  christos 
    280          1.1  christos CreateFieldTerm
    281  1.1.1.1.6.1    bouyer     : PARSEOP_CREATEFIELD
    282  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
    283          1.1  christos         TermArg
    284          1.1  christos         TermArgItem
    285          1.1  christos         TermArgItem
    286          1.1  christos         NameStringItem
    287  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,
    288          1.1  christos                                         TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
    289  1.1.1.1.6.1    bouyer     | PARSEOP_CREATEFIELD
    290  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    291  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    292          1.1  christos     ;
    293          1.1  christos 
    294          1.1  christos CreateQWordFieldTerm
    295  1.1.1.1.6.1    bouyer     : PARSEOP_CREATEQWORDFIELD
    296  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
    297          1.1  christos         TermArg
    298          1.1  christos         TermArgItem
    299          1.1  christos         NameStringItem
    300  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
    301          1.1  christos                                         TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    302  1.1.1.1.6.1    bouyer     | PARSEOP_CREATEQWORDFIELD
    303  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    304  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    305          1.1  christos     ;
    306          1.1  christos 
    307          1.1  christos CreateWordFieldTerm
    308  1.1.1.1.6.1    bouyer     : PARSEOP_CREATEWORDFIELD
    309  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
    310          1.1  christos         TermArg
    311          1.1  christos         TermArgItem
    312          1.1  christos         NameStringItem
    313  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
    314          1.1  christos                                         TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    315  1.1.1.1.6.1    bouyer     | PARSEOP_CREATEWORDFIELD
    316  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    317  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    318          1.1  christos     ;
    319          1.1  christos 
    320          1.1  christos DataRegionTerm
    321  1.1.1.1.6.1    bouyer     : PARSEOP_DATATABLEREGION
    322  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
    323          1.1  christos         NameString
    324          1.1  christos         TermArgItem
    325          1.1  christos         TermArgItem
    326          1.1  christos         TermArgItem
    327  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,4,
    328          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
    329  1.1.1.1.6.1    bouyer     | PARSEOP_DATATABLEREGION
    330  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    331  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    332          1.1  christos     ;
    333          1.1  christos 
    334          1.1  christos DebugTerm
    335          1.1  christos     : PARSEOP_DEBUG                 {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
    336          1.1  christos     ;
    337          1.1  christos 
    338          1.1  christos DecTerm
    339  1.1.1.1.6.1    bouyer     : PARSEOP_DECREMENT
    340  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
    341          1.1  christos         SuperName
    342  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
    343  1.1.1.1.6.1    bouyer     | PARSEOP_DECREMENT
    344  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    345  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    346          1.1  christos     ;
    347          1.1  christos 
    348          1.1  christos DefaultTerm
    349          1.1  christos     : PARSEOP_DEFAULT '{'           {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
    350          1.1  christos         TermList '}'                {$$ = TrLinkChildren ($<n>3,1,$4);}
    351          1.1  christos     | PARSEOP_DEFAULT '{'
    352          1.1  christos         error '}'                   {$$ = AslDoError(); yyclearin;}
    353          1.1  christos     ;
    354          1.1  christos 
    355          1.1  christos DerefOfTerm
    356  1.1.1.1.6.1    bouyer     : PARSEOP_DEREFOF
    357  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
    358  1.1.1.1.6.1    bouyer         DerefOfSource
    359  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
    360  1.1.1.1.6.1    bouyer     | PARSEOP_DEREFOF
    361  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    362  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    363          1.1  christos     ;
    364          1.1  christos 
    365          1.1  christos DeviceTerm
    366  1.1.1.1.6.1    bouyer     : PARSEOP_DEVICE
    367  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);}
    368          1.1  christos         NameString
    369  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
    370          1.1  christos             TermList '}'            {$$ = TrLinkChildren ($<n>3,2,
    371          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
    372  1.1.1.1.6.1    bouyer     | PARSEOP_DEVICE
    373  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    374  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    375          1.1  christos     ;
    376          1.1  christos 
    377          1.1  christos DivideTerm
    378  1.1.1.1.6.1    bouyer     : PARSEOP_DIVIDE
    379  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
    380          1.1  christos         TermArg
    381          1.1  christos         TermArgItem
    382          1.1  christos         Target
    383          1.1  christos         Target
    384  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
    385  1.1.1.1.6.1    bouyer     | PARSEOP_DIVIDE
    386  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    387  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    388          1.1  christos     ;
    389          1.1  christos 
    390          1.1  christos EISAIDTerm
    391  1.1.1.1.6.1    bouyer     : PARSEOP_EISAID
    392  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    393  1.1.1.1.6.1    bouyer         StringData
    394  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
    395  1.1.1.1.6.1    bouyer     | PARSEOP_EISAID
    396  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    397  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    398          1.1  christos     ;
    399          1.1  christos 
    400          1.1  christos ElseIfTerm
    401          1.1  christos     : IfTerm ElseTerm               {$$ = TrLinkPeerNode ($1,$2);}
    402          1.1  christos     ;
    403          1.1  christos 
    404          1.1  christos ElseTerm
    405          1.1  christos     :                               {$$ = NULL;}
    406          1.1  christos     | PARSEOP_ELSE '{'              {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
    407          1.1  christos         TermList '}'                {$$ = TrLinkChildren ($<n>3,1,$4);}
    408          1.1  christos 
    409          1.1  christos     | PARSEOP_ELSE '{'
    410          1.1  christos         error '}'                   {$$ = AslDoError(); yyclearin;}
    411          1.1  christos 
    412          1.1  christos     | PARSEOP_ELSE
    413          1.1  christos         error                       {$$ = AslDoError(); yyclearin;}
    414          1.1  christos 
    415  1.1.1.1.6.1    bouyer     | PARSEOP_ELSEIF
    416  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
    417          1.1  christos         TermArg                     {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
    418  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
    419          1.1  christos             TermList '}'            {TrLinkChildren ($<n>5,2,$4,$8);}
    420          1.1  christos         ElseTerm                    {TrLinkPeerNode ($<n>5,$11);}
    421          1.1  christos                                     {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
    422          1.1  christos 
    423  1.1.1.1.6.1    bouyer     | PARSEOP_ELSEIF
    424  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    425  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    426          1.1  christos 
    427          1.1  christos     | PARSEOP_ELSEIF
    428          1.1  christos         error                       {$$ = AslDoError(); yyclearin;}
    429          1.1  christos     ;
    430          1.1  christos 
    431          1.1  christos EventTerm
    432  1.1.1.1.6.1    bouyer     : PARSEOP_EVENT
    433  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);}
    434          1.1  christos         NameString
    435  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,
    436          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
    437  1.1.1.1.6.1    bouyer     | PARSEOP_EVENT
    438  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    439  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    440          1.1  christos     ;
    441          1.1  christos 
    442          1.1  christos ExternalTerm
    443  1.1.1.1.6.1    bouyer     : PARSEOP_EXTERNAL
    444  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    445          1.1  christos         NameString
    446          1.1  christos         OptionalObjectTypeKeyword
    447          1.1  christos         OptionalParameterTypePackage
    448          1.1  christos         OptionalParameterTypesPackage
    449  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
    450  1.1.1.1.6.1    bouyer     | PARSEOP_EXTERNAL
    451  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    452  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    453          1.1  christos     ;
    454          1.1  christos 
    455          1.1  christos FatalTerm
    456  1.1.1.1.6.1    bouyer     : PARSEOP_FATAL
    457  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);}
    458          1.1  christos         ByteConstExpr
    459          1.1  christos         ',' DWordConstExpr
    460          1.1  christos         TermArgItem
    461  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
    462  1.1.1.1.6.1    bouyer     | PARSEOP_FATAL
    463  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    464  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    465          1.1  christos     ;
    466          1.1  christos 
    467          1.1  christos FieldTerm
    468  1.1.1.1.6.1    bouyer     : PARSEOP_FIELD
    469  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_FIELD);}
    470          1.1  christos         NameString
    471          1.1  christos         ',' AccessTypeKeyword
    472          1.1  christos         ',' LockRuleKeyword
    473          1.1  christos         ',' UpdateRuleKeyword
    474  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
    475          1.1  christos             FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
    476  1.1.1.1.6.1    bouyer     | PARSEOP_FIELD
    477  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    478  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN
    479  1.1.1.1.6.1    bouyer         '{' error '}'               {$$ = AslDoError(); yyclearin;}
    480          1.1  christos     ;
    481          1.1  christos 
    482          1.1  christos FindSetLeftBitTerm
    483  1.1.1.1.6.1    bouyer     : PARSEOP_FINDSETLEFTBIT
    484  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
    485          1.1  christos         TermArg
    486          1.1  christos         Target
    487  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    488  1.1.1.1.6.1    bouyer     | PARSEOP_FINDSETLEFTBIT
    489  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    490  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    491          1.1  christos     ;
    492          1.1  christos 
    493          1.1  christos FindSetRightBitTerm
    494  1.1.1.1.6.1    bouyer     : PARSEOP_FINDSETRIGHTBIT
    495  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
    496          1.1  christos         TermArg
    497          1.1  christos         Target
    498  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    499  1.1.1.1.6.1    bouyer     | PARSEOP_FINDSETRIGHTBIT
    500  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    501  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    502          1.1  christos     ;
    503          1.1  christos 
    504          1.1  christos     /* Convert a For() loop to a While() loop */
    505          1.1  christos ForTerm
    506  1.1.1.1.6.1    bouyer     : PARSEOP_FOR
    507  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
    508          1.1  christos         OptionalTermArg ','         {}
    509          1.1  christos         OptionalPredicate ','
    510          1.1  christos         OptionalTermArg             {$<n>$ = TrLinkPeerNode ($4,$<n>3);
    511  1.1.1.1.6.1    bouyer                                             TrSetParent ($9,$<n>3);}                /* New parent is WHILE */
    512  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN
    513  1.1.1.1.6.1    bouyer         '{' TermList '}'            {$<n>$ = TrLinkChildren ($<n>3,2,$7,$13);}
    514          1.1  christos                                     {$<n>$ = TrLinkPeerNode ($13,$9);
    515          1.1  christos                                         $$ = $<n>10;}
    516          1.1  christos     ;
    517          1.1  christos 
    518          1.1  christos OptionalPredicate
    519          1.1  christos     :                               {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, 1);}
    520          1.1  christos     | TermArg                       {$$ = $1;}
    521          1.1  christos     ;
    522          1.1  christos 
    523          1.1  christos FprintfTerm
    524  1.1.1.1.6.1    bouyer     : PARSEOP_FPRINTF
    525  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_FPRINTF);}
    526          1.1  christos         TermArg ','
    527          1.1  christos         StringData
    528          1.1  christos         PrintfArgList
    529  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
    530  1.1.1.1.6.1    bouyer     | PARSEOP_FPRINTF
    531  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    532  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    533          1.1  christos     ;
    534          1.1  christos 
    535          1.1  christos FromBCDTerm
    536  1.1.1.1.6.1    bouyer     : PARSEOP_FROMBCD
    537  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
    538          1.1  christos         TermArg
    539          1.1  christos         Target
    540  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    541  1.1.1.1.6.1    bouyer     | PARSEOP_FROMBCD
    542  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    543  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    544          1.1  christos     ;
    545          1.1  christos 
    546          1.1  christos FunctionTerm
    547  1.1.1.1.6.1    bouyer     : PARSEOP_FUNCTION
    548  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
    549          1.1  christos         NameString
    550          1.1  christos         OptionalParameterTypePackage
    551          1.1  christos         OptionalParameterTypesPackage
    552  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
    553          1.1  christos             TermList '}'            {$$ = TrLinkChildren ($<n>3,7,
    554          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
    555          1.1  christos                                         TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
    556          1.1  christos                                         TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
    557          1.1  christos                                         TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
    558  1.1.1.1.6.1    bouyer     | PARSEOP_FUNCTION
    559  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    560  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    561          1.1  christos     ;
    562          1.1  christos 
    563          1.1  christos IfTerm
    564  1.1.1.1.6.1    bouyer     : PARSEOP_IF
    565  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
    566          1.1  christos         TermArg
    567  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
    568          1.1  christos             TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    569          1.1  christos 
    570  1.1.1.1.6.1    bouyer     | PARSEOP_IF
    571  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    572  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    573          1.1  christos     ;
    574          1.1  christos 
    575          1.1  christos IncludeTerm
    576  1.1.1.1.6.1    bouyer     : PARSEOP_INCLUDE
    577  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    578  1.1.1.1.6.1    bouyer         String
    579  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrUpdateNode (PARSEOP_INCLUDE, $3);
    580          1.1  christos                                         FlOpenIncludeFile ($3);}
    581          1.1  christos     ;
    582          1.1  christos 
    583          1.1  christos IncludeEndTerm
    584          1.1  christos     : PARSEOP_INCLUDE_END           {$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);
    585          1.1  christos                                         TrSetCurrentFilename ($$);}
    586          1.1  christos     ;
    587          1.1  christos 
    588          1.1  christos IncTerm
    589  1.1.1.1.6.1    bouyer     : PARSEOP_INCREMENT
    590  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
    591          1.1  christos         SuperName
    592  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
    593  1.1.1.1.6.1    bouyer     | PARSEOP_INCREMENT
    594  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    595  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    596          1.1  christos     ;
    597          1.1  christos 
    598          1.1  christos IndexFieldTerm
    599  1.1.1.1.6.1    bouyer     : PARSEOP_INDEXFIELD
    600  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
    601          1.1  christos         NameString
    602          1.1  christos         NameStringItem
    603          1.1  christos         ',' AccessTypeKeyword
    604          1.1  christos         ',' LockRuleKeyword
    605          1.1  christos         ',' UpdateRuleKeyword
    606  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
    607          1.1  christos             FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
    608  1.1.1.1.6.1    bouyer     | PARSEOP_INDEXFIELD
    609  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    610  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN
    611  1.1.1.1.6.1    bouyer         '{' error '}'               {$$ = AslDoError(); yyclearin;}
    612          1.1  christos     ;
    613          1.1  christos 
    614          1.1  christos IndexTerm
    615  1.1.1.1.6.1    bouyer     : PARSEOP_INDEX
    616  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);}
    617          1.1  christos         TermArg
    618          1.1  christos         TermArgItem
    619          1.1  christos         Target
    620  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    621  1.1.1.1.6.1    bouyer     | PARSEOP_INDEX
    622  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    623  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    624          1.1  christos     ;
    625          1.1  christos 
    626          1.1  christos LAndTerm
    627  1.1.1.1.6.1    bouyer     : PARSEOP_LAND
    628  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
    629          1.1  christos         TermArg
    630          1.1  christos         TermArgItem
    631  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    632  1.1.1.1.6.1    bouyer     | PARSEOP_LAND
    633  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    634  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    635          1.1  christos     ;
    636          1.1  christos 
    637          1.1  christos LEqualTerm
    638  1.1.1.1.6.1    bouyer     : PARSEOP_LEQUAL
    639  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
    640          1.1  christos         TermArg
    641          1.1  christos         TermArgItem
    642  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    643  1.1.1.1.6.1    bouyer     | PARSEOP_LEQUAL
    644  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    645  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    646          1.1  christos     ;
    647          1.1  christos 
    648          1.1  christos LGreaterEqualTerm
    649  1.1.1.1.6.1    bouyer     : PARSEOP_LGREATEREQUAL
    650  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
    651          1.1  christos         TermArg
    652          1.1  christos         TermArgItem
    653  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
    654          1.1  christos                                         TrLinkChildren ($<n>3,2,$4,$5));}
    655  1.1.1.1.6.1    bouyer     | PARSEOP_LGREATEREQUAL
    656  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    657  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    658          1.1  christos     ;
    659          1.1  christos 
    660          1.1  christos LGreaterTerm
    661  1.1.1.1.6.1    bouyer     : PARSEOP_LGREATER
    662  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
    663          1.1  christos         TermArg
    664          1.1  christos         TermArgItem
    665  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    666  1.1.1.1.6.1    bouyer     | PARSEOP_LGREATER
    667  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    668  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    669          1.1  christos     ;
    670          1.1  christos 
    671          1.1  christos LLessEqualTerm
    672  1.1.1.1.6.1    bouyer     : PARSEOP_LLESSEQUAL
    673  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
    674          1.1  christos         TermArg
    675          1.1  christos         TermArgItem
    676  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
    677          1.1  christos                                         TrLinkChildren ($<n>3,2,$4,$5));}
    678  1.1.1.1.6.1    bouyer     | PARSEOP_LLESSEQUAL
    679  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    680  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    681          1.1  christos     ;
    682          1.1  christos 
    683          1.1  christos LLessTerm
    684  1.1.1.1.6.1    bouyer     : PARSEOP_LLESS
    685  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
    686          1.1  christos         TermArg
    687          1.1  christos         TermArgItem
    688  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    689  1.1.1.1.6.1    bouyer     | PARSEOP_LLESS
    690  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    691  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    692          1.1  christos     ;
    693          1.1  christos 
    694          1.1  christos LNotEqualTerm
    695  1.1.1.1.6.1    bouyer     : PARSEOP_LNOTEQUAL
    696  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
    697          1.1  christos         TermArg
    698          1.1  christos         TermArgItem
    699  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
    700          1.1  christos                                         TrLinkChildren ($<n>3,2,$4,$5));}
    701  1.1.1.1.6.1    bouyer     | PARSEOP_LNOTEQUAL
    702  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    703  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    704          1.1  christos     ;
    705          1.1  christos 
    706          1.1  christos LNotTerm
    707  1.1.1.1.6.1    bouyer     : PARSEOP_LNOT
    708  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
    709          1.1  christos         TermArg
    710  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
    711  1.1.1.1.6.1    bouyer     | PARSEOP_LNOT
    712  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    713  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    714          1.1  christos     ;
    715          1.1  christos 
    716          1.1  christos LoadTableTerm
    717  1.1.1.1.6.1    bouyer     : PARSEOP_LOADTABLE
    718  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
    719          1.1  christos         TermArg
    720          1.1  christos         TermArgItem
    721          1.1  christos         TermArgItem
    722          1.1  christos         OptionalListString
    723          1.1  christos         OptionalListString
    724          1.1  christos         OptionalReference
    725  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
    726  1.1.1.1.6.1    bouyer     | PARSEOP_LOADTABLE
    727  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    728  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    729          1.1  christos     ;
    730          1.1  christos 
    731          1.1  christos LoadTerm
    732  1.1.1.1.6.1    bouyer     : PARSEOP_LOAD
    733  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);}
    734          1.1  christos         NameString
    735          1.1  christos         RequiredTarget
    736  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    737  1.1.1.1.6.1    bouyer     | PARSEOP_LOAD
    738  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    739  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    740          1.1  christos     ;
    741          1.1  christos 
    742          1.1  christos LocalTerm
    743          1.1  christos     : PARSEOP_LOCAL0                {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
    744          1.1  christos     | PARSEOP_LOCAL1                {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
    745          1.1  christos     | PARSEOP_LOCAL2                {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
    746          1.1  christos     | PARSEOP_LOCAL3                {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
    747          1.1  christos     | PARSEOP_LOCAL4                {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
    748          1.1  christos     | PARSEOP_LOCAL5                {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
    749          1.1  christos     | PARSEOP_LOCAL6                {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
    750          1.1  christos     | PARSEOP_LOCAL7                {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
    751          1.1  christos     ;
    752          1.1  christos 
    753          1.1  christos LOrTerm
    754  1.1.1.1.6.1    bouyer     : PARSEOP_LOR
    755  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
    756          1.1  christos         TermArg
    757          1.1  christos         TermArgItem
    758  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    759  1.1.1.1.6.1    bouyer     | PARSEOP_LOR
    760  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    761  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    762          1.1  christos     ;
    763          1.1  christos 
    764          1.1  christos MatchTerm
    765  1.1.1.1.6.1    bouyer     : PARSEOP_MATCH
    766  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);}
    767          1.1  christos         TermArg
    768          1.1  christos         ',' MatchOpKeyword
    769          1.1  christos         TermArgItem
    770          1.1  christos         ',' MatchOpKeyword
    771          1.1  christos         TermArgItem
    772          1.1  christos         TermArgItem
    773  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
    774  1.1.1.1.6.1    bouyer     | PARSEOP_MATCH
    775  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    776  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    777          1.1  christos     ;
    778          1.1  christos 
    779          1.1  christos MethodTerm
    780  1.1.1.1.6.1    bouyer     : PARSEOP_METHOD
    781  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
    782          1.1  christos         NameString
    783          1.1  christos         OptionalByteConstExpr       {UtCheckIntegerRange ($5, 0, 7);}
    784          1.1  christos         OptionalSerializeRuleKeyword
    785          1.1  christos         OptionalByteConstExpr
    786          1.1  christos         OptionalParameterTypePackage
    787          1.1  christos         OptionalParameterTypesPackage
    788  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
    789          1.1  christos             TermList '}'            {$$ = TrLinkChildren ($<n>3,7,
    790          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
    791          1.1  christos                                         $5,$7,$8,$9,$10,$13);}
    792  1.1.1.1.6.1    bouyer     | PARSEOP_METHOD
    793  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    794  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    795          1.1  christos     ;
    796          1.1  christos 
    797          1.1  christos MidTerm
    798  1.1.1.1.6.1    bouyer     : PARSEOP_MID
    799  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_MID);}
    800          1.1  christos         TermArg
    801          1.1  christos         TermArgItem
    802          1.1  christos         TermArgItem
    803          1.1  christos         Target
    804  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
    805  1.1.1.1.6.1    bouyer     | PARSEOP_MID
    806  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    807  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    808          1.1  christos     ;
    809          1.1  christos 
    810          1.1  christos ModTerm
    811  1.1.1.1.6.1    bouyer     : PARSEOP_MOD
    812  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
    813          1.1  christos         TermArg
    814          1.1  christos         TermArgItem
    815          1.1  christos         Target
    816  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    817  1.1.1.1.6.1    bouyer     | PARSEOP_MOD
    818  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    819  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    820          1.1  christos     ;
    821          1.1  christos 
    822          1.1  christos MultiplyTerm
    823  1.1.1.1.6.1    bouyer     : PARSEOP_MULTIPLY
    824  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
    825          1.1  christos         TermArg
    826          1.1  christos         TermArgItem
    827          1.1  christos         Target
    828  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    829  1.1.1.1.6.1    bouyer     | PARSEOP_MULTIPLY
    830  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    831  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    832          1.1  christos     ;
    833          1.1  christos 
    834          1.1  christos MutexTerm
    835  1.1.1.1.6.1    bouyer     : PARSEOP_MUTEX
    836  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);}
    837          1.1  christos         NameString
    838          1.1  christos         ',' ByteConstExpr
    839  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,
    840          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
    841  1.1.1.1.6.1    bouyer     | PARSEOP_MUTEX
    842  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    843  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    844          1.1  christos     ;
    845          1.1  christos 
    846          1.1  christos NameTerm
    847  1.1.1.1.6.1    bouyer     : PARSEOP_NAME
    848  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);}
    849          1.1  christos         NameString
    850          1.1  christos         ',' DataObject
    851  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,
    852          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
    853  1.1.1.1.6.1    bouyer     | PARSEOP_NAME
    854  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    855  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    856          1.1  christos     ;
    857          1.1  christos 
    858          1.1  christos NAndTerm
    859  1.1.1.1.6.1    bouyer     : PARSEOP_NAND
    860  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_NAND);}
    861          1.1  christos         TermArg
    862          1.1  christos         TermArgItem
    863          1.1  christos         Target
    864  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    865  1.1.1.1.6.1    bouyer     | PARSEOP_NAND
    866  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    867  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    868          1.1  christos     ;
    869          1.1  christos 
    870          1.1  christos NoOpTerm
    871          1.1  christos     : PARSEOP_NOOP                  {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
    872          1.1  christos     ;
    873          1.1  christos 
    874          1.1  christos NOrTerm
    875  1.1.1.1.6.1    bouyer     : PARSEOP_NOR
    876  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_NOR);}
    877          1.1  christos         TermArg
    878          1.1  christos         TermArgItem
    879          1.1  christos         Target
    880  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    881  1.1.1.1.6.1    bouyer     | PARSEOP_NOR
    882  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    883  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    884          1.1  christos     ;
    885          1.1  christos 
    886          1.1  christos NotifyTerm
    887  1.1.1.1.6.1    bouyer     : PARSEOP_NOTIFY
    888  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
    889          1.1  christos         SuperName
    890          1.1  christos         TermArgItem
    891  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    892  1.1.1.1.6.1    bouyer     | PARSEOP_NOTIFY
    893  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    894  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    895          1.1  christos     ;
    896          1.1  christos 
    897          1.1  christos NotTerm
    898  1.1.1.1.6.1    bouyer     : PARSEOP_NOT
    899  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
    900          1.1  christos         TermArg
    901          1.1  christos         Target
    902  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    903  1.1.1.1.6.1    bouyer     | PARSEOP_NOT
    904  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    905  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    906          1.1  christos     ;
    907          1.1  christos 
    908          1.1  christos ObjectTypeTerm
    909  1.1.1.1.6.1    bouyer     : PARSEOP_OBJECTTYPE
    910  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
    911  1.1.1.1.6.1    bouyer         ObjectTypeSource
    912  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
    913  1.1.1.1.6.1    bouyer     | PARSEOP_OBJECTTYPE
    914  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    915  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    916          1.1  christos     ;
    917          1.1  christos 
    918          1.1  christos OffsetTerm
    919  1.1.1.1.6.1    bouyer     : PARSEOP_OFFSET
    920  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    921          1.1  christos         AmlPackageLengthTerm
    922  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
    923  1.1.1.1.6.1    bouyer     | PARSEOP_OFFSET
    924  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    925  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    926          1.1  christos     ;
    927          1.1  christos 
    928          1.1  christos OpRegionTerm
    929  1.1.1.1.6.1    bouyer     : PARSEOP_OPERATIONREGION
    930  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
    931          1.1  christos         NameString
    932          1.1  christos         ',' OpRegionSpaceIdTerm
    933          1.1  christos         TermArgItem
    934          1.1  christos         TermArgItem
    935  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,4,
    936          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
    937          1.1  christos                                         $6,$7,$8);}
    938  1.1.1.1.6.1    bouyer     | PARSEOP_OPERATIONREGION
    939  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    940  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    941          1.1  christos     ;
    942          1.1  christos 
    943          1.1  christos OpRegionSpaceIdTerm
    944          1.1  christos     : RegionSpaceKeyword            {}
    945          1.1  christos     | ByteConst                     {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
    946          1.1  christos     ;
    947          1.1  christos 
    948          1.1  christos OrTerm
    949  1.1.1.1.6.1    bouyer     : PARSEOP_OR
    950  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
    951          1.1  christos         TermArg
    952          1.1  christos         TermArgItem
    953          1.1  christos         Target
    954  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    955  1.1.1.1.6.1    bouyer     | PARSEOP_OR
    956  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    957  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    958          1.1  christos     ;
    959          1.1  christos 
    960          1.1  christos PackageTerm
    961          1.1  christos     : PARSEOP_PACKAGE               {$<n>$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
    962          1.1  christos         OptionalDataCount
    963          1.1  christos         '{' PackageList '}'         {$$ = TrLinkChildren ($<n>2,2,$3,$5);}
    964          1.1  christos 
    965          1.1  christos PowerResTerm
    966  1.1.1.1.6.1    bouyer     : PARSEOP_POWERRESOURCE
    967  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
    968          1.1  christos         NameString
    969          1.1  christos         ',' ByteConstExpr
    970          1.1  christos         ',' WordConstExpr
    971  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
    972          1.1  christos             TermList '}'            {$$ = TrLinkChildren ($<n>3,4,
    973          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
    974          1.1  christos                                         $6,$8,$11);}
    975  1.1.1.1.6.1    bouyer     | PARSEOP_POWERRESOURCE
    976  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    977  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    978          1.1  christos     ;
    979          1.1  christos 
    980          1.1  christos PrintfTerm
    981  1.1.1.1.6.1    bouyer     : PARSEOP_PRINTF
    982  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);}
    983          1.1  christos         StringData
    984          1.1  christos         PrintfArgList
    985  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    986  1.1.1.1.6.1    bouyer     | PARSEOP_PRINTF
    987  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
    988  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    989          1.1  christos     ;
    990          1.1  christos 
    991          1.1  christos PrintfArgList
    992          1.1  christos     :                               {$$ = NULL;}
    993          1.1  christos     | TermArg                       {$$ = $1;}
    994          1.1  christos     | PrintfArgList ','
    995          1.1  christos        TermArg                      {$$ = TrLinkPeerNode ($1, $3);}
    996          1.1  christos     ;
    997          1.1  christos 
    998          1.1  christos ProcessorTerm
    999  1.1.1.1.6.1    bouyer     : PARSEOP_PROCESSOR
   1000  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
   1001          1.1  christos         NameString
   1002          1.1  christos         ',' ByteConstExpr
   1003          1.1  christos         OptionalDWordConstExpr
   1004          1.1  christos         OptionalByteConstExpr
   1005  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
   1006          1.1  christos             TermList '}'            {$$ = TrLinkChildren ($<n>3,5,
   1007          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
   1008          1.1  christos                                         $6,$7,$8,$11);}
   1009  1.1.1.1.6.1    bouyer     | PARSEOP_PROCESSOR
   1010  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1011  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1012          1.1  christos     ;
   1013          1.1  christos 
   1014          1.1  christos RawDataBufferTerm
   1015  1.1.1.1.6.1    bouyer     : PARSEOP_DATABUFFER
   1016  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);}
   1017          1.1  christos         OptionalWordConst
   1018  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
   1019          1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
   1020  1.1.1.1.6.1    bouyer     | PARSEOP_DATABUFFER
   1021  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1022  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1023          1.1  christos     ;
   1024          1.1  christos 
   1025          1.1  christos /*
   1026          1.1  christos  * In RefOf, the node isn't really a target, but we can't keep track of it after
   1027          1.1  christos  * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
   1028          1.1  christos  */
   1029          1.1  christos RefOfTerm
   1030  1.1.1.1.6.1    bouyer     : PARSEOP_REFOF
   1031  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);}
   1032  1.1.1.1.6.1    bouyer         RefOfSource
   1033  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,
   1034          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_TARGET));}
   1035  1.1.1.1.6.1    bouyer     | PARSEOP_REFOF
   1036  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1037  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1038          1.1  christos     ;
   1039          1.1  christos 
   1040          1.1  christos ReleaseTerm
   1041  1.1.1.1.6.1    bouyer     : PARSEOP_RELEASE
   1042  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);}
   1043          1.1  christos         SuperName
   1044  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1045  1.1.1.1.6.1    bouyer     | PARSEOP_RELEASE
   1046  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1047  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1048          1.1  christos     ;
   1049          1.1  christos 
   1050          1.1  christos ResetTerm
   1051  1.1.1.1.6.1    bouyer     : PARSEOP_RESET
   1052  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);}
   1053          1.1  christos         SuperName
   1054  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1055  1.1.1.1.6.1    bouyer     | PARSEOP_RESET
   1056  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1057  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1058          1.1  christos     ;
   1059          1.1  christos 
   1060          1.1  christos ReturnTerm
   1061  1.1.1.1.6.1    bouyer     : PARSEOP_RETURN
   1062  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);}
   1063          1.1  christos         OptionalReturnArg
   1064  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1065          1.1  christos     | PARSEOP_RETURN                {$$ = TrLinkChildren (
   1066          1.1  christos                                         TrCreateLeafNode (PARSEOP_RETURN),1,
   1067          1.1  christos                                         TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO),
   1068          1.1  christos                                             NODE_IS_NULL_RETURN));}
   1069  1.1.1.1.6.1    bouyer     | PARSEOP_RETURN
   1070  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1071  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1072          1.1  christos     ;
   1073          1.1  christos 
   1074          1.1  christos ScopeTerm
   1075  1.1.1.1.6.1    bouyer     : PARSEOP_SCOPE
   1076  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);}
   1077          1.1  christos         NameString
   1078  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
   1079          1.1  christos             TermList '}'            {$$ = TrLinkChildren ($<n>3,2,
   1080          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
   1081  1.1.1.1.6.1    bouyer     | PARSEOP_SCOPE
   1082  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1083  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1084          1.1  christos     ;
   1085          1.1  christos 
   1086          1.1  christos ShiftLeftTerm
   1087  1.1.1.1.6.1    bouyer     : PARSEOP_SHIFTLEFT
   1088  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
   1089          1.1  christos         TermArg
   1090          1.1  christos         TermArgItem
   1091          1.1  christos         Target
   1092  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1093  1.1.1.1.6.1    bouyer     | PARSEOP_SHIFTLEFT
   1094  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1095  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1096          1.1  christos     ;
   1097          1.1  christos 
   1098          1.1  christos ShiftRightTerm
   1099  1.1.1.1.6.1    bouyer     : PARSEOP_SHIFTRIGHT
   1100  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
   1101          1.1  christos         TermArg
   1102          1.1  christos         TermArgItem
   1103          1.1  christos         Target
   1104  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1105  1.1.1.1.6.1    bouyer     | PARSEOP_SHIFTRIGHT
   1106  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1107  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1108          1.1  christos     ;
   1109          1.1  christos 
   1110          1.1  christos SignalTerm
   1111  1.1.1.1.6.1    bouyer     : PARSEOP_SIGNAL
   1112  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
   1113          1.1  christos         SuperName
   1114  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1115  1.1.1.1.6.1    bouyer     | PARSEOP_SIGNAL
   1116  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1117  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1118          1.1  christos     ;
   1119          1.1  christos 
   1120          1.1  christos SizeOfTerm
   1121  1.1.1.1.6.1    bouyer     : PARSEOP_SIZEOF
   1122  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
   1123          1.1  christos         SuperName
   1124  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1125  1.1.1.1.6.1    bouyer     | PARSEOP_SIZEOF
   1126  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1127  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1128          1.1  christos     ;
   1129          1.1  christos 
   1130          1.1  christos SleepTerm
   1131  1.1.1.1.6.1    bouyer     : PARSEOP_SLEEP
   1132  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);}
   1133          1.1  christos         TermArg
   1134  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1135  1.1.1.1.6.1    bouyer     | PARSEOP_SLEEP
   1136  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1137  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1138          1.1  christos     ;
   1139          1.1  christos 
   1140          1.1  christos StallTerm
   1141  1.1.1.1.6.1    bouyer     : PARSEOP_STALL
   1142  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);}
   1143          1.1  christos         TermArg
   1144  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1145  1.1.1.1.6.1    bouyer     | PARSEOP_STALL
   1146  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1147  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1148          1.1  christos     ;
   1149          1.1  christos 
   1150          1.1  christos StoreTerm
   1151  1.1.1.1.6.1    bouyer     : PARSEOP_STORE
   1152  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);}
   1153          1.1  christos         TermArg
   1154          1.1  christos         ',' SuperName
   1155  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,
   1156  1.1.1.1.6.1    bouyer                                             TrSetNodeFlags ($6, NODE_IS_TARGET));}
   1157  1.1.1.1.6.1    bouyer     | PARSEOP_STORE
   1158  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1159  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1160          1.1  christos     ;
   1161          1.1  christos 
   1162          1.1  christos SubtractTerm
   1163  1.1.1.1.6.1    bouyer     : PARSEOP_SUBTRACT
   1164  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
   1165          1.1  christos         TermArg
   1166          1.1  christos         TermArgItem
   1167          1.1  christos         Target
   1168  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1169  1.1.1.1.6.1    bouyer     | PARSEOP_SUBTRACT
   1170  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1171  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1172          1.1  christos     ;
   1173          1.1  christos 
   1174          1.1  christos SwitchTerm
   1175  1.1.1.1.6.1    bouyer     : PARSEOP_SWITCH
   1176  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);}
   1177          1.1  christos         TermArg
   1178  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
   1179  1.1.1.1.6.1    bouyer             CaseDefaultTermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
   1180  1.1.1.1.6.1    bouyer     | PARSEOP_SWITCH
   1181  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1182  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1183          1.1  christos     ;
   1184          1.1  christos 
   1185          1.1  christos ThermalZoneTerm
   1186  1.1.1.1.6.1    bouyer     : PARSEOP_THERMALZONE
   1187  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
   1188          1.1  christos         NameString
   1189  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN '{'
   1190          1.1  christos             TermList '}'            {$$ = TrLinkChildren ($<n>3,2,
   1191          1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
   1192  1.1.1.1.6.1    bouyer     | PARSEOP_THERMALZONE
   1193  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1194  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1195          1.1  christos     ;
   1196          1.1  christos 
   1197          1.1  christos TimerTerm
   1198  1.1.1.1.6.1    bouyer     : PARSEOP_TIMER
   1199  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);}
   1200  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,0);}
   1201          1.1  christos     | PARSEOP_TIMER                 {$$ = TrLinkChildren (
   1202          1.1  christos                                         TrCreateLeafNode (PARSEOP_TIMER),0);}
   1203  1.1.1.1.6.1    bouyer     | PARSEOP_TIMER
   1204  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1205  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1206          1.1  christos     ;
   1207          1.1  christos 
   1208          1.1  christos ToBCDTerm
   1209  1.1.1.1.6.1    bouyer     : PARSEOP_TOBCD
   1210  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);}
   1211          1.1  christos         TermArg
   1212          1.1  christos         Target
   1213  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1214  1.1.1.1.6.1    bouyer     | PARSEOP_TOBCD
   1215  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1216  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1217          1.1  christos     ;
   1218          1.1  christos 
   1219          1.1  christos ToBufferTerm
   1220  1.1.1.1.6.1    bouyer     : PARSEOP_TOBUFFER
   1221  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
   1222          1.1  christos         TermArg
   1223          1.1  christos         Target
   1224  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1225  1.1.1.1.6.1    bouyer     | PARSEOP_TOBUFFER
   1226  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1227  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1228          1.1  christos     ;
   1229          1.1  christos 
   1230          1.1  christos ToDecimalStringTerm
   1231  1.1.1.1.6.1    bouyer     : PARSEOP_TODECIMALSTRING
   1232  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
   1233          1.1  christos         TermArg
   1234          1.1  christos         Target
   1235  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1236  1.1.1.1.6.1    bouyer     | PARSEOP_TODECIMALSTRING
   1237  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1238  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1239          1.1  christos     ;
   1240          1.1  christos 
   1241          1.1  christos ToHexStringTerm
   1242  1.1.1.1.6.1    bouyer     : PARSEOP_TOHEXSTRING
   1243  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
   1244          1.1  christos         TermArg
   1245          1.1  christos         Target
   1246  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1247  1.1.1.1.6.1    bouyer     | PARSEOP_TOHEXSTRING
   1248  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1249  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1250          1.1  christos     ;
   1251          1.1  christos 
   1252          1.1  christos ToIntegerTerm
   1253  1.1.1.1.6.1    bouyer     : PARSEOP_TOINTEGER
   1254  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
   1255          1.1  christos         TermArg
   1256          1.1  christos         Target
   1257  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1258  1.1.1.1.6.1    bouyer     | PARSEOP_TOINTEGER
   1259  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1260  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1261          1.1  christos     ;
   1262          1.1  christos 
   1263          1.1  christos ToPLDTerm
   1264  1.1.1.1.6.1    bouyer     : PARSEOP_TOPLD
   1265  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);}
   1266          1.1  christos         PldKeywordList
   1267  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1268  1.1.1.1.6.1    bouyer     | PARSEOP_TOPLD
   1269  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1270  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1271          1.1  christos     ;
   1272          1.1  christos 
   1273          1.1  christos PldKeywordList
   1274          1.1  christos     :                               {$$ = NULL;}
   1275          1.1  christos     | PldKeyword
   1276          1.1  christos         PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkChildren ($1,1,$3);}
   1277          1.1  christos     | PldKeyword
   1278          1.1  christos         PARSEOP_EXP_EQUALS String   {$$ = TrLinkChildren ($1,1,$3);}
   1279          1.1  christos     | PldKeywordList ','            /* Allows a trailing comma at list end */
   1280          1.1  christos     | PldKeywordList ','
   1281          1.1  christos         PldKeyword
   1282          1.1  christos         PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
   1283          1.1  christos     | PldKeywordList ','
   1284          1.1  christos         PldKeyword
   1285          1.1  christos         PARSEOP_EXP_EQUALS String   {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
   1286          1.1  christos     ;
   1287          1.1  christos 
   1288          1.1  christos 
   1289          1.1  christos ToStringTerm
   1290  1.1.1.1.6.1    bouyer     : PARSEOP_TOSTRING
   1291  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
   1292          1.1  christos         TermArg
   1293          1.1  christos         OptionalCount
   1294          1.1  christos         Target
   1295  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1296  1.1.1.1.6.1    bouyer     | PARSEOP_TOSTRING
   1297  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1298  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1299          1.1  christos     ;
   1300          1.1  christos 
   1301          1.1  christos ToUUIDTerm
   1302  1.1.1.1.6.1    bouyer     : PARSEOP_TOUUID
   1303  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1304  1.1.1.1.6.1    bouyer         StringData
   1305  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
   1306  1.1.1.1.6.1    bouyer     | PARSEOP_TOUUID
   1307  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1308  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1309          1.1  christos     ;
   1310          1.1  christos 
   1311          1.1  christos UnicodeTerm
   1312  1.1.1.1.6.1    bouyer     : PARSEOP_UNICODE
   1313  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);}
   1314          1.1  christos         StringData
   1315  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,0,$4);}
   1316  1.1.1.1.6.1    bouyer     | PARSEOP_UNICODE
   1317  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1318  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1319          1.1  christos     ;
   1320          1.1  christos 
   1321          1.1  christos UnloadTerm
   1322  1.1.1.1.6.1    bouyer     : PARSEOP_UNLOAD
   1323  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
   1324          1.1  christos         SuperName
   1325  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1326  1.1.1.1.6.1    bouyer     | PARSEOP_UNLOAD
   1327  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1328  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1329          1.1  christos     ;
   1330          1.1  christos 
   1331          1.1  christos WaitTerm
   1332  1.1.1.1.6.1    bouyer     : PARSEOP_WAIT
   1333  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);}
   1334          1.1  christos         SuperName
   1335          1.1  christos         TermArgItem
   1336  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1337  1.1.1.1.6.1    bouyer     | PARSEOP_WAIT
   1338  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1339  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1340          1.1  christos     ;
   1341          1.1  christos 
   1342          1.1  christos XOrTerm
   1343  1.1.1.1.6.1    bouyer     : PARSEOP_XOR
   1344  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
   1345          1.1  christos         TermArg
   1346          1.1  christos         TermArgItem
   1347          1.1  christos         Target
   1348  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1349  1.1.1.1.6.1    bouyer     | PARSEOP_XOR
   1350  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1351  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1352          1.1  christos     ;
   1353          1.1  christos 
   1354          1.1  christos WhileTerm
   1355  1.1.1.1.6.1    bouyer     : PARSEOP_WHILE
   1356  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
   1357          1.1  christos         TermArg
   1358  1.1.1.1.6.1    bouyer         PARSEOP_CLOSE_PAREN
   1359  1.1.1.1.6.1    bouyer             '{' TermList '}'        {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
   1360  1.1.1.1.6.1    bouyer     | PARSEOP_WHILE
   1361  1.1.1.1.6.1    bouyer         PARSEOP_OPEN_PAREN
   1362  1.1.1.1.6.1    bouyer         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1363          1.1  christos     ;
   1364