Home | History | Annotate | Line # | Download | only in compiler
aslprimaries.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: 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.2  christos  * 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.2  christos     : PARSEOP_ACCESSAS
     56  1.1.1.2  christos         PARSEOP_OPEN_PAREN
     57      1.1  christos         AccessTypeKeyword
     58      1.1  christos         OptionalAccessAttribTerm
     59  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
     60  1.1.1.2  christos     | PARSEOP_ACCESSAS
     61  1.1.1.2  christos         PARSEOP_OPEN_PAREN
     62  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
     63      1.1  christos     ;
     64      1.1  christos 
     65      1.1  christos AcquireTerm
     66  1.1.1.2  christos     : PARSEOP_ACQUIRE
     67  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
     68      1.1  christos         SuperName
     69      1.1  christos         ',' WordConstExpr
     70  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
     71  1.1.1.2  christos     | PARSEOP_ACQUIRE
     72  1.1.1.2  christos         PARSEOP_OPEN_PAREN
     73  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
     74      1.1  christos     ;
     75      1.1  christos 
     76      1.1  christos AddTerm
     77  1.1.1.2  christos     : PARSEOP_ADD
     78  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
     83  1.1.1.2  christos     | PARSEOP_ADD
     84  1.1.1.2  christos         PARSEOP_OPEN_PAREN
     85  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
     86      1.1  christos     ;
     87      1.1  christos 
     88      1.1  christos AliasTerm
     89  1.1.1.2  christos     : PARSEOP_ALIAS
     90  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);}
     91      1.1  christos         NameString
     92      1.1  christos         NameStringItem
     93  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,
     94      1.1  christos                                         TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
     95  1.1.1.2  christos     | PARSEOP_ALIAS
     96  1.1.1.2  christos         PARSEOP_OPEN_PAREN
     97  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
     98      1.1  christos     ;
     99      1.1  christos 
    100      1.1  christos AndTerm
    101  1.1.1.2  christos     : PARSEOP_AND
    102  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    107  1.1.1.2  christos     | PARSEOP_AND
    108  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    109  1.1.1.2  christos         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.2  christos     : PARSEOP_BANKFIELD
    124  1.1.1.2  christos         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.2  christos         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.2  christos     | PARSEOP_BANKFIELD
    135  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    136  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN
    137  1.1.1.2  christos         '{' 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.2  christos     : PARSEOP_CASE
    161  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);}
    162      1.1  christos         DataObject
    163  1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
    164      1.1  christos             TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    165  1.1.1.2  christos     | PARSEOP_CASE
    166  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    167  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    168      1.1  christos     ;
    169      1.1  christos 
    170      1.1  christos ConcatTerm
    171  1.1.1.2  christos     : PARSEOP_CONCATENATE
    172  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    177  1.1.1.2  christos     | PARSEOP_CONCATENATE
    178  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    179  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    180      1.1  christos     ;
    181      1.1  christos 
    182      1.1  christos ConcatResTerm
    183  1.1.1.2  christos     : PARSEOP_CONCATENATERESTEMPLATE
    184  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (
    185  1.1.1.2  christos                                         PARSEOP_CONCATENATERESTEMPLATE);}
    186      1.1  christos         TermArg
    187      1.1  christos         TermArgItem
    188      1.1  christos         Target
    189  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    190  1.1.1.2  christos     | PARSEOP_CONCATENATERESTEMPLATE
    191  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    192  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    193  1.1.1.2  christos     ;
    194  1.1.1.2  christos 
    195  1.1.1.2  christos CondRefOfTerm
    196  1.1.1.2  christos     : PARSEOP_CONDREFOF
    197  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
    198  1.1.1.2  christos         CondRefOfSource
    199  1.1.1.2  christos         Target
    200  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    201  1.1.1.2  christos     | PARSEOP_CONDREFOF
    202  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    203  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    204      1.1  christos     ;
    205      1.1  christos 
    206      1.1  christos ConnectionTerm
    207  1.1.1.2  christos     : PARSEOP_CONNECTION
    208  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    209      1.1  christos         NameString
    210  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);}
    211  1.1.1.2  christos     | PARSEOP_CONNECTION
    212  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_CONNECTION);}
    213      1.1  christos         ResourceMacroTerm
    214  1.1.1.2  christos         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.2  christos     | PARSEOP_CONNECTION
    221  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    222  1.1.1.2  christos         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.2  christos     : PARSEOP_COPYOBJECT
    231  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
    232      1.1  christos         TermArg
    233  1.1.1.2  christos         ',' SimpleName
    234  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,
    235      1.1  christos                                         TrSetNodeFlags ($6, NODE_IS_TARGET));}
    236  1.1.1.2  christos     | PARSEOP_COPYOBJECT
    237  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    238  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    239      1.1  christos     ;
    240      1.1  christos 
    241      1.1  christos CreateBitFieldTerm
    242  1.1.1.2  christos     : PARSEOP_CREATEBITFIELD
    243  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
    248      1.1  christos                                         TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    249  1.1.1.2  christos     | PARSEOP_CREATEBITFIELD
    250  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    251  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    252      1.1  christos     ;
    253      1.1  christos 
    254      1.1  christos CreateByteFieldTerm
    255  1.1.1.2  christos     : PARSEOP_CREATEBYTEFIELD
    256  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
    261      1.1  christos                                         TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    262  1.1.1.2  christos     | PARSEOP_CREATEBYTEFIELD
    263  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    264  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    265      1.1  christos     ;
    266      1.1  christos 
    267      1.1  christos CreateDWordFieldTerm
    268  1.1.1.2  christos     : PARSEOP_CREATEDWORDFIELD
    269  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
    274      1.1  christos                                         TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    275  1.1.1.2  christos     | PARSEOP_CREATEDWORDFIELD
    276  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    277  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    278      1.1  christos     ;
    279      1.1  christos 
    280      1.1  christos CreateFieldTerm
    281  1.1.1.2  christos     : PARSEOP_CREATEFIELD
    282  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,
    288      1.1  christos                                         TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
    289  1.1.1.2  christos     | PARSEOP_CREATEFIELD
    290  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    291  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    292      1.1  christos     ;
    293      1.1  christos 
    294      1.1  christos CreateQWordFieldTerm
    295  1.1.1.2  christos     : PARSEOP_CREATEQWORDFIELD
    296  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
    301      1.1  christos                                         TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    302  1.1.1.2  christos     | PARSEOP_CREATEQWORDFIELD
    303  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    304  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    305      1.1  christos     ;
    306      1.1  christos 
    307      1.1  christos CreateWordFieldTerm
    308  1.1.1.2  christos     : PARSEOP_CREATEWORDFIELD
    309  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,
    314      1.1  christos                                         TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    315  1.1.1.2  christos     | PARSEOP_CREATEWORDFIELD
    316  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    317  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    318      1.1  christos     ;
    319      1.1  christos 
    320      1.1  christos DataRegionTerm
    321  1.1.1.2  christos     : PARSEOP_DATATABLEREGION
    322  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,4,
    328      1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
    329  1.1.1.2  christos     | PARSEOP_DATATABLEREGION
    330  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    331  1.1.1.2  christos         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.2  christos     : PARSEOP_DECREMENT
    340  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
    341      1.1  christos         SuperName
    342  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
    343  1.1.1.2  christos     | PARSEOP_DECREMENT
    344  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    345  1.1.1.2  christos         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.2  christos     : PARSEOP_DEREFOF
    357  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
    358  1.1.1.2  christos         DerefOfSource
    359  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
    360  1.1.1.2  christos     | PARSEOP_DEREFOF
    361  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    362  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    363      1.1  christos     ;
    364      1.1  christos 
    365      1.1  christos DeviceTerm
    366  1.1.1.2  christos     : PARSEOP_DEVICE
    367  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);}
    368      1.1  christos         NameString
    369  1.1.1.2  christos         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.2  christos     | PARSEOP_DEVICE
    373  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    374  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    375      1.1  christos     ;
    376      1.1  christos 
    377      1.1  christos DivideTerm
    378  1.1.1.2  christos     : PARSEOP_DIVIDE
    379  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
    385  1.1.1.2  christos     | PARSEOP_DIVIDE
    386  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    387  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    388      1.1  christos     ;
    389      1.1  christos 
    390      1.1  christos EISAIDTerm
    391  1.1.1.2  christos     : PARSEOP_EISAID
    392  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    393  1.1.1.2  christos         StringData
    394  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
    395  1.1.1.2  christos     | PARSEOP_EISAID
    396  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    397  1.1.1.2  christos         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.2  christos     | PARSEOP_ELSEIF
    416  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
    417      1.1  christos         TermArg                     {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
    418  1.1.1.2  christos         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.2  christos     | PARSEOP_ELSEIF
    424  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    425  1.1.1.2  christos         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.2  christos     : PARSEOP_EVENT
    433  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);}
    434      1.1  christos         NameString
    435  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,
    436      1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
    437  1.1.1.2  christos     | PARSEOP_EVENT
    438  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    439  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    440      1.1  christos     ;
    441      1.1  christos 
    442      1.1  christos ExternalTerm
    443  1.1.1.2  christos     : PARSEOP_EXTERNAL
    444  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
    450  1.1.1.2  christos     | PARSEOP_EXTERNAL
    451  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    452  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    453      1.1  christos     ;
    454      1.1  christos 
    455      1.1  christos FatalTerm
    456  1.1.1.2  christos     : PARSEOP_FATAL
    457  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
    462  1.1.1.2  christos     | PARSEOP_FATAL
    463  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    464  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    465      1.1  christos     ;
    466      1.1  christos 
    467      1.1  christos FieldTerm
    468  1.1.1.2  christos     : PARSEOP_FIELD
    469  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN '{'
    475      1.1  christos             FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
    476  1.1.1.2  christos     | PARSEOP_FIELD
    477  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    478  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN
    479  1.1.1.2  christos         '{' error '}'               {$$ = AslDoError(); yyclearin;}
    480      1.1  christos     ;
    481      1.1  christos 
    482      1.1  christos FindSetLeftBitTerm
    483  1.1.1.2  christos     : PARSEOP_FINDSETLEFTBIT
    484  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
    485      1.1  christos         TermArg
    486      1.1  christos         Target
    487  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    488  1.1.1.2  christos     | PARSEOP_FINDSETLEFTBIT
    489  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    490  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    491      1.1  christos     ;
    492      1.1  christos 
    493      1.1  christos FindSetRightBitTerm
    494  1.1.1.2  christos     : PARSEOP_FINDSETRIGHTBIT
    495  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
    496      1.1  christos         TermArg
    497      1.1  christos         Target
    498  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    499  1.1.1.2  christos     | PARSEOP_FINDSETRIGHTBIT
    500  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    501  1.1.1.2  christos         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.2  christos     : PARSEOP_FOR
    507  1.1.1.2  christos         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.2  christos                                             TrSetParent ($9,$<n>3);}                /* New parent is WHILE */
    512  1.1.1.2  christos         PARSEOP_CLOSE_PAREN
    513  1.1.1.2  christos         '{' 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.2  christos     : PARSEOP_FPRINTF
    525  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
    530  1.1.1.2  christos     | PARSEOP_FPRINTF
    531  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    532  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    533      1.1  christos     ;
    534      1.1  christos 
    535      1.1  christos FromBCDTerm
    536  1.1.1.2  christos     : PARSEOP_FROMBCD
    537  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
    538      1.1  christos         TermArg
    539      1.1  christos         Target
    540  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    541  1.1.1.2  christos     | PARSEOP_FROMBCD
    542  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    543  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    544      1.1  christos     ;
    545      1.1  christos 
    546      1.1  christos FunctionTerm
    547  1.1.1.2  christos     : PARSEOP_FUNCTION
    548  1.1.1.2  christos         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.2  christos         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.2  christos     | PARSEOP_FUNCTION
    559  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    560  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    561      1.1  christos     ;
    562      1.1  christos 
    563      1.1  christos IfTerm
    564  1.1.1.2  christos     : PARSEOP_IF
    565  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
    566      1.1  christos         TermArg
    567  1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
    568      1.1  christos             TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    569      1.1  christos 
    570  1.1.1.2  christos     | PARSEOP_IF
    571  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    572  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    573      1.1  christos     ;
    574      1.1  christos 
    575      1.1  christos IncludeTerm
    576  1.1.1.2  christos     : PARSEOP_INCLUDE
    577  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    578  1.1.1.2  christos         String
    579  1.1.1.2  christos         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.2  christos     : PARSEOP_INCREMENT
    590  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
    591      1.1  christos         SuperName
    592  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
    593  1.1.1.2  christos     | PARSEOP_INCREMENT
    594  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    595  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    596      1.1  christos     ;
    597      1.1  christos 
    598      1.1  christos IndexFieldTerm
    599  1.1.1.2  christos     : PARSEOP_INDEXFIELD
    600  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN '{'
    607      1.1  christos             FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
    608  1.1.1.2  christos     | PARSEOP_INDEXFIELD
    609  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    610  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN
    611  1.1.1.2  christos         '{' error '}'               {$$ = AslDoError(); yyclearin;}
    612      1.1  christos     ;
    613      1.1  christos 
    614      1.1  christos IndexTerm
    615  1.1.1.2  christos     : PARSEOP_INDEX
    616  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    621  1.1.1.2  christos     | PARSEOP_INDEX
    622  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    623  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    624      1.1  christos     ;
    625      1.1  christos 
    626      1.1  christos LAndTerm
    627  1.1.1.2  christos     : PARSEOP_LAND
    628  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
    629      1.1  christos         TermArg
    630      1.1  christos         TermArgItem
    631  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    632  1.1.1.2  christos     | PARSEOP_LAND
    633  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    634  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    635      1.1  christos     ;
    636      1.1  christos 
    637      1.1  christos LEqualTerm
    638  1.1.1.2  christos     : PARSEOP_LEQUAL
    639  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
    640      1.1  christos         TermArg
    641      1.1  christos         TermArgItem
    642  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    643  1.1.1.2  christos     | PARSEOP_LEQUAL
    644  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    645  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    646      1.1  christos     ;
    647      1.1  christos 
    648      1.1  christos LGreaterEqualTerm
    649  1.1.1.2  christos     : PARSEOP_LGREATEREQUAL
    650  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
    651      1.1  christos         TermArg
    652      1.1  christos         TermArgItem
    653  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
    654      1.1  christos                                         TrLinkChildren ($<n>3,2,$4,$5));}
    655  1.1.1.2  christos     | PARSEOP_LGREATEREQUAL
    656  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    657  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    658      1.1  christos     ;
    659      1.1  christos 
    660      1.1  christos LGreaterTerm
    661  1.1.1.2  christos     : PARSEOP_LGREATER
    662  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
    663      1.1  christos         TermArg
    664      1.1  christos         TermArgItem
    665  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    666  1.1.1.2  christos     | PARSEOP_LGREATER
    667  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    668  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    669      1.1  christos     ;
    670      1.1  christos 
    671      1.1  christos LLessEqualTerm
    672  1.1.1.2  christos     : PARSEOP_LLESSEQUAL
    673  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
    674      1.1  christos         TermArg
    675      1.1  christos         TermArgItem
    676  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
    677      1.1  christos                                         TrLinkChildren ($<n>3,2,$4,$5));}
    678  1.1.1.2  christos     | PARSEOP_LLESSEQUAL
    679  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    680  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    681      1.1  christos     ;
    682      1.1  christos 
    683      1.1  christos LLessTerm
    684  1.1.1.2  christos     : PARSEOP_LLESS
    685  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
    686      1.1  christos         TermArg
    687      1.1  christos         TermArgItem
    688  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    689  1.1.1.2  christos     | PARSEOP_LLESS
    690  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    691  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    692      1.1  christos     ;
    693      1.1  christos 
    694      1.1  christos LNotEqualTerm
    695  1.1.1.2  christos     : PARSEOP_LNOTEQUAL
    696  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
    697      1.1  christos         TermArg
    698      1.1  christos         TermArgItem
    699  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_LNOT, 1,
    700      1.1  christos                                         TrLinkChildren ($<n>3,2,$4,$5));}
    701  1.1.1.2  christos     | PARSEOP_LNOTEQUAL
    702  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    703  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    704      1.1  christos     ;
    705      1.1  christos 
    706      1.1  christos LNotTerm
    707  1.1.1.2  christos     : PARSEOP_LNOT
    708  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
    709      1.1  christos         TermArg
    710  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
    711  1.1.1.2  christos     | PARSEOP_LNOT
    712  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    713  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    714      1.1  christos     ;
    715      1.1  christos 
    716      1.1  christos LoadTableTerm
    717  1.1.1.2  christos     : PARSEOP_LOADTABLE
    718  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
    726  1.1.1.2  christos     | PARSEOP_LOADTABLE
    727  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    728  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    729      1.1  christos     ;
    730      1.1  christos 
    731      1.1  christos LoadTerm
    732  1.1.1.2  christos     : PARSEOP_LOAD
    733  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);}
    734      1.1  christos         NameString
    735      1.1  christos         RequiredTarget
    736  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    737  1.1.1.2  christos     | PARSEOP_LOAD
    738  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    739  1.1.1.2  christos         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.2  christos     : PARSEOP_LOR
    755  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
    756      1.1  christos         TermArg
    757      1.1  christos         TermArgItem
    758  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    759  1.1.1.2  christos     | PARSEOP_LOR
    760  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    761  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    762      1.1  christos     ;
    763      1.1  christos 
    764      1.1  christos MatchTerm
    765  1.1.1.2  christos     : PARSEOP_MATCH
    766  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
    774  1.1.1.2  christos     | PARSEOP_MATCH
    775  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    776  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    777      1.1  christos     ;
    778      1.1  christos 
    779      1.1  christos MethodTerm
    780  1.1.1.2  christos     : PARSEOP_METHOD
    781  1.1.1.2  christos         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.2  christos         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.2  christos     | PARSEOP_METHOD
    793  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    794  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    795      1.1  christos     ;
    796      1.1  christos 
    797      1.1  christos MidTerm
    798  1.1.1.2  christos     : PARSEOP_MID
    799  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
    805  1.1.1.2  christos     | PARSEOP_MID
    806  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    807  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    808      1.1  christos     ;
    809      1.1  christos 
    810      1.1  christos ModTerm
    811  1.1.1.2  christos     : PARSEOP_MOD
    812  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    817  1.1.1.2  christos     | PARSEOP_MOD
    818  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    819  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    820      1.1  christos     ;
    821      1.1  christos 
    822      1.1  christos MultiplyTerm
    823  1.1.1.2  christos     : PARSEOP_MULTIPLY
    824  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    829  1.1.1.2  christos     | PARSEOP_MULTIPLY
    830  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    831  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    832      1.1  christos     ;
    833      1.1  christos 
    834      1.1  christos MutexTerm
    835  1.1.1.2  christos     : PARSEOP_MUTEX
    836  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);}
    837      1.1  christos         NameString
    838      1.1  christos         ',' ByteConstExpr
    839  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,
    840      1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
    841  1.1.1.2  christos     | PARSEOP_MUTEX
    842  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    843  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    844      1.1  christos     ;
    845      1.1  christos 
    846      1.1  christos NameTerm
    847  1.1.1.2  christos     : PARSEOP_NAME
    848  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);}
    849      1.1  christos         NameString
    850      1.1  christos         ',' DataObject
    851  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,
    852      1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
    853  1.1.1.2  christos     | PARSEOP_NAME
    854  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    855  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    856      1.1  christos     ;
    857      1.1  christos 
    858      1.1  christos NAndTerm
    859  1.1.1.2  christos     : PARSEOP_NAND
    860  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    865  1.1.1.2  christos     | PARSEOP_NAND
    866  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    867  1.1.1.2  christos         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.2  christos     : PARSEOP_NOR
    876  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    881  1.1.1.2  christos     | PARSEOP_NOR
    882  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    883  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    884      1.1  christos     ;
    885      1.1  christos 
    886      1.1  christos NotifyTerm
    887  1.1.1.2  christos     : PARSEOP_NOTIFY
    888  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
    889      1.1  christos         SuperName
    890      1.1  christos         TermArgItem
    891  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    892  1.1.1.2  christos     | PARSEOP_NOTIFY
    893  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    894  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    895      1.1  christos     ;
    896      1.1  christos 
    897      1.1  christos NotTerm
    898  1.1.1.2  christos     : PARSEOP_NOT
    899  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
    900      1.1  christos         TermArg
    901      1.1  christos         Target
    902  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    903  1.1.1.2  christos     | PARSEOP_NOT
    904  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    905  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    906      1.1  christos     ;
    907      1.1  christos 
    908      1.1  christos ObjectTypeTerm
    909  1.1.1.2  christos     : PARSEOP_OBJECTTYPE
    910  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
    911  1.1.1.2  christos         ObjectTypeSource
    912  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
    913  1.1.1.2  christos     | PARSEOP_OBJECTTYPE
    914  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    915  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    916      1.1  christos     ;
    917      1.1  christos 
    918      1.1  christos OffsetTerm
    919  1.1.1.2  christos     : PARSEOP_OFFSET
    920  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    921      1.1  christos         AmlPackageLengthTerm
    922  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
    923  1.1.1.2  christos     | PARSEOP_OFFSET
    924  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    925  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    926      1.1  christos     ;
    927      1.1  christos 
    928      1.1  christos OpRegionTerm
    929  1.1.1.2  christos     : PARSEOP_OPERATIONREGION
    930  1.1.1.2  christos         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.2  christos         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.2  christos     | PARSEOP_OPERATIONREGION
    939  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    940  1.1.1.2  christos         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.2  christos     : PARSEOP_OR
    950  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    955  1.1.1.2  christos     | PARSEOP_OR
    956  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    957  1.1.1.2  christos         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.2  christos     : PARSEOP_POWERRESOURCE
    967  1.1.1.2  christos         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.2  christos         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.2  christos     | PARSEOP_POWERRESOURCE
    976  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    977  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    978      1.1  christos     ;
    979      1.1  christos 
    980      1.1  christos PrintfTerm
    981  1.1.1.2  christos     : PARSEOP_PRINTF
    982  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);}
    983      1.1  christos         StringData
    984      1.1  christos         PrintfArgList
    985  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    986  1.1.1.2  christos     | PARSEOP_PRINTF
    987  1.1.1.2  christos         PARSEOP_OPEN_PAREN
    988  1.1.1.2  christos         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.2  christos     : PARSEOP_PROCESSOR
   1000  1.1.1.2  christos         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.2  christos         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.2  christos     | PARSEOP_PROCESSOR
   1010  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1011  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1012      1.1  christos     ;
   1013      1.1  christos 
   1014      1.1  christos RawDataBufferTerm
   1015  1.1.1.2  christos     : PARSEOP_DATABUFFER
   1016  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);}
   1017      1.1  christos         OptionalWordConst
   1018  1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
   1019      1.1  christos             ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
   1020  1.1.1.2  christos     | PARSEOP_DATABUFFER
   1021  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1022  1.1.1.2  christos         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.2  christos     : PARSEOP_REFOF
   1031  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);}
   1032  1.1.1.2  christos         RefOfSource
   1033  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,
   1034      1.1  christos                                         TrSetNodeFlags ($4, NODE_IS_TARGET));}
   1035  1.1.1.2  christos     | PARSEOP_REFOF
   1036  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1037  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1038      1.1  christos     ;
   1039      1.1  christos 
   1040      1.1  christos ReleaseTerm
   1041  1.1.1.2  christos     : PARSEOP_RELEASE
   1042  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);}
   1043      1.1  christos         SuperName
   1044  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1045  1.1.1.2  christos     | PARSEOP_RELEASE
   1046  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1047  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1048      1.1  christos     ;
   1049      1.1  christos 
   1050      1.1  christos ResetTerm
   1051  1.1.1.2  christos     : PARSEOP_RESET
   1052  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);}
   1053      1.1  christos         SuperName
   1054  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1055  1.1.1.2  christos     | PARSEOP_RESET
   1056  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1057  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1058      1.1  christos     ;
   1059      1.1  christos 
   1060      1.1  christos ReturnTerm
   1061  1.1.1.2  christos     : PARSEOP_RETURN
   1062  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);}
   1063      1.1  christos         OptionalReturnArg
   1064  1.1.1.2  christos         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.2  christos     | PARSEOP_RETURN
   1070  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1071  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1072      1.1  christos     ;
   1073      1.1  christos 
   1074      1.1  christos ScopeTerm
   1075  1.1.1.2  christos     : PARSEOP_SCOPE
   1076  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);}
   1077      1.1  christos         NameString
   1078  1.1.1.2  christos         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.2  christos     | PARSEOP_SCOPE
   1082  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1083  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1084      1.1  christos     ;
   1085      1.1  christos 
   1086      1.1  christos ShiftLeftTerm
   1087  1.1.1.2  christos     : PARSEOP_SHIFTLEFT
   1088  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1093  1.1.1.2  christos     | PARSEOP_SHIFTLEFT
   1094  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1095  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1096      1.1  christos     ;
   1097      1.1  christos 
   1098      1.1  christos ShiftRightTerm
   1099  1.1.1.2  christos     : PARSEOP_SHIFTRIGHT
   1100  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1105  1.1.1.2  christos     | PARSEOP_SHIFTRIGHT
   1106  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1107  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1108      1.1  christos     ;
   1109      1.1  christos 
   1110      1.1  christos SignalTerm
   1111  1.1.1.2  christos     : PARSEOP_SIGNAL
   1112  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
   1113      1.1  christos         SuperName
   1114  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1115  1.1.1.2  christos     | PARSEOP_SIGNAL
   1116  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1117  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1118      1.1  christos     ;
   1119      1.1  christos 
   1120      1.1  christos SizeOfTerm
   1121  1.1.1.2  christos     : PARSEOP_SIZEOF
   1122  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
   1123      1.1  christos         SuperName
   1124  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1125  1.1.1.2  christos     | PARSEOP_SIZEOF
   1126  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1127  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1128      1.1  christos     ;
   1129      1.1  christos 
   1130      1.1  christos SleepTerm
   1131  1.1.1.2  christos     : PARSEOP_SLEEP
   1132  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);}
   1133      1.1  christos         TermArg
   1134  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1135  1.1.1.2  christos     | PARSEOP_SLEEP
   1136  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1137  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1138      1.1  christos     ;
   1139      1.1  christos 
   1140      1.1  christos StallTerm
   1141  1.1.1.2  christos     : PARSEOP_STALL
   1142  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);}
   1143      1.1  christos         TermArg
   1144  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1145  1.1.1.2  christos     | PARSEOP_STALL
   1146  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1147  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1148      1.1  christos     ;
   1149      1.1  christos 
   1150      1.1  christos StoreTerm
   1151  1.1.1.2  christos     : PARSEOP_STORE
   1152  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);}
   1153      1.1  christos         TermArg
   1154      1.1  christos         ',' SuperName
   1155  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,
   1156  1.1.1.2  christos                                             TrSetNodeFlags ($6, NODE_IS_TARGET));}
   1157  1.1.1.2  christos     | PARSEOP_STORE
   1158  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1159  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1160      1.1  christos     ;
   1161      1.1  christos 
   1162      1.1  christos SubtractTerm
   1163  1.1.1.2  christos     : PARSEOP_SUBTRACT
   1164  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1169  1.1.1.2  christos     | PARSEOP_SUBTRACT
   1170  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1171  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1172      1.1  christos     ;
   1173      1.1  christos 
   1174      1.1  christos SwitchTerm
   1175  1.1.1.2  christos     : PARSEOP_SWITCH
   1176  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);}
   1177      1.1  christos         TermArg
   1178  1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
   1179  1.1.1.2  christos             CaseDefaultTermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
   1180  1.1.1.2  christos     | PARSEOP_SWITCH
   1181  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1182  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1183      1.1  christos     ;
   1184      1.1  christos 
   1185      1.1  christos ThermalZoneTerm
   1186  1.1.1.2  christos     : PARSEOP_THERMALZONE
   1187  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
   1188      1.1  christos         NameString
   1189  1.1.1.2  christos         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.2  christos     | PARSEOP_THERMALZONE
   1193  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1194  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1195      1.1  christos     ;
   1196      1.1  christos 
   1197      1.1  christos TimerTerm
   1198  1.1.1.2  christos     : PARSEOP_TIMER
   1199  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);}
   1200  1.1.1.2  christos         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.2  christos     | PARSEOP_TIMER
   1204  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1205  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1206      1.1  christos     ;
   1207      1.1  christos 
   1208      1.1  christos ToBCDTerm
   1209  1.1.1.2  christos     : PARSEOP_TOBCD
   1210  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);}
   1211      1.1  christos         TermArg
   1212      1.1  christos         Target
   1213  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1214  1.1.1.2  christos     | PARSEOP_TOBCD
   1215  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1216  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1217      1.1  christos     ;
   1218      1.1  christos 
   1219      1.1  christos ToBufferTerm
   1220  1.1.1.2  christos     : PARSEOP_TOBUFFER
   1221  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
   1222      1.1  christos         TermArg
   1223      1.1  christos         Target
   1224  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1225  1.1.1.2  christos     | PARSEOP_TOBUFFER
   1226  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1227  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1228      1.1  christos     ;
   1229      1.1  christos 
   1230      1.1  christos ToDecimalStringTerm
   1231  1.1.1.2  christos     : PARSEOP_TODECIMALSTRING
   1232  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
   1233      1.1  christos         TermArg
   1234      1.1  christos         Target
   1235  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1236  1.1.1.2  christos     | PARSEOP_TODECIMALSTRING
   1237  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1238  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1239      1.1  christos     ;
   1240      1.1  christos 
   1241      1.1  christos ToHexStringTerm
   1242  1.1.1.2  christos     : PARSEOP_TOHEXSTRING
   1243  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
   1244      1.1  christos         TermArg
   1245      1.1  christos         Target
   1246  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1247  1.1.1.2  christos     | PARSEOP_TOHEXSTRING
   1248  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1249  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1250      1.1  christos     ;
   1251      1.1  christos 
   1252      1.1  christos ToIntegerTerm
   1253  1.1.1.2  christos     : PARSEOP_TOINTEGER
   1254  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
   1255      1.1  christos         TermArg
   1256      1.1  christos         Target
   1257  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1258  1.1.1.2  christos     | PARSEOP_TOINTEGER
   1259  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1260  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1261      1.1  christos     ;
   1262      1.1  christos 
   1263      1.1  christos ToPLDTerm
   1264  1.1.1.2  christos     : PARSEOP_TOPLD
   1265  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);}
   1266      1.1  christos         PldKeywordList
   1267  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1268  1.1.1.2  christos     | PARSEOP_TOPLD
   1269  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1270  1.1.1.2  christos         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.2  christos     : PARSEOP_TOSTRING
   1291  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1296  1.1.1.2  christos     | PARSEOP_TOSTRING
   1297  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1298  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1299      1.1  christos     ;
   1300      1.1  christos 
   1301      1.1  christos ToUUIDTerm
   1302  1.1.1.2  christos     : PARSEOP_TOUUID
   1303  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1304  1.1.1.2  christos         StringData
   1305  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
   1306  1.1.1.2  christos     | PARSEOP_TOUUID
   1307  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1308  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1309      1.1  christos     ;
   1310      1.1  christos 
   1311      1.1  christos UnicodeTerm
   1312  1.1.1.2  christos     : PARSEOP_UNICODE
   1313  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);}
   1314      1.1  christos         StringData
   1315  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,0,$4);}
   1316  1.1.1.2  christos     | PARSEOP_UNICODE
   1317  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1318  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1319      1.1  christos     ;
   1320      1.1  christos 
   1321      1.1  christos UnloadTerm
   1322  1.1.1.2  christos     : PARSEOP_UNLOAD
   1323  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
   1324      1.1  christos         SuperName
   1325  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1326  1.1.1.2  christos     | PARSEOP_UNLOAD
   1327  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1328  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1329      1.1  christos     ;
   1330      1.1  christos 
   1331      1.1  christos WaitTerm
   1332  1.1.1.2  christos     : PARSEOP_WAIT
   1333  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);}
   1334      1.1  christos         SuperName
   1335      1.1  christos         TermArgItem
   1336  1.1.1.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1337  1.1.1.2  christos     | PARSEOP_WAIT
   1338  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1339  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1340      1.1  christos     ;
   1341      1.1  christos 
   1342      1.1  christos XOrTerm
   1343  1.1.1.2  christos     : PARSEOP_XOR
   1344  1.1.1.2  christos         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.2  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1349  1.1.1.2  christos     | PARSEOP_XOR
   1350  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1351  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1352      1.1  christos     ;
   1353      1.1  christos 
   1354      1.1  christos WhileTerm
   1355  1.1.1.2  christos     : PARSEOP_WHILE
   1356  1.1.1.2  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
   1357      1.1  christos         TermArg
   1358  1.1.1.2  christos         PARSEOP_CLOSE_PAREN
   1359  1.1.1.2  christos             '{' TermList '}'        {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
   1360  1.1.1.2  christos     | PARSEOP_WHILE
   1361  1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1362  1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1363      1.1  christos     ;
   1364