Home | History | Annotate | Line # | Download | only in compiler
aslrules.y revision 1.1.1.1.2.2
      1          1.1  christos NoEcho('
      2          1.1  christos /******************************************************************************
      3          1.1  christos  *
      4  1.1.1.1.2.2     skrll  * Module Name: aslrules.y - Main Bison/Yacc production rules
      5          1.1  christos  *
      6          1.1  christos  *****************************************************************************/
      7          1.1  christos 
      8          1.1  christos /*
      9  1.1.1.1.2.2     skrll  * Copyright (C) 2000 - 2016, Intel Corp.
     10          1.1  christos  * All rights reserved.
     11          1.1  christos  *
     12          1.1  christos  * Redistribution and use in source and binary forms, with or without
     13          1.1  christos  * modification, are permitted provided that the following conditions
     14          1.1  christos  * are met:
     15          1.1  christos  * 1. Redistributions of source code must retain the above copyright
     16          1.1  christos  *    notice, this list of conditions, and the following disclaimer,
     17          1.1  christos  *    without modification.
     18          1.1  christos  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
     19          1.1  christos  *    substantially similar to the "NO WARRANTY" disclaimer below
     20          1.1  christos  *    ("Disclaimer") and any redistribution must be conditioned upon
     21          1.1  christos  *    including a substantially similar Disclaimer requirement for further
     22          1.1  christos  *    binary redistribution.
     23          1.1  christos  * 3. Neither the names of the above-listed copyright holders nor the names
     24          1.1  christos  *    of any contributors may be used to endorse or promote products derived
     25          1.1  christos  *    from this software without specific prior written permission.
     26          1.1  christos  *
     27          1.1  christos  * Alternatively, this software may be distributed under the terms of the
     28          1.1  christos  * GNU General Public License ("GPL") version 2 as published by the Free
     29          1.1  christos  * Software Foundation.
     30          1.1  christos  *
     31          1.1  christos  * NO WARRANTY
     32          1.1  christos  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     33          1.1  christos  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     34          1.1  christos  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
     35          1.1  christos  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     36          1.1  christos  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     37          1.1  christos  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     38          1.1  christos  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     39          1.1  christos  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
     40          1.1  christos  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
     41          1.1  christos  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     42          1.1  christos  * POSSIBILITY OF SUCH DAMAGES.
     43          1.1  christos  */
     44          1.1  christos 
     45          1.1  christos ')
     46          1.1  christos 
     47          1.1  christos /*******************************************************************************
     48          1.1  christos  *
     49  1.1.1.1.2.2     skrll  * ASL Root and Secondary Terms
     50          1.1  christos  *
     51          1.1  christos  ******************************************************************************/
     52          1.1  christos 
     53          1.1  christos /*
     54  1.1.1.1.2.2     skrll  * Root term. Allow multiple #line directives before the definition block
     55          1.1  christos  * to handle output from preprocessors
     56          1.1  christos  */
     57  1.1.1.1.2.2     skrll AslCode
     58  1.1.1.1.2.2     skrll     : DefinitionBlockList           {$<n>$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_ASL_CODE),1, $1);}
     59          1.1  christos     | error                         {YYABORT; $$ = NULL;}
     60          1.1  christos     ;
     61          1.1  christos 
     62          1.1  christos 
     63          1.1  christos /*
     64          1.1  christos  * Note concerning support for "module-level code".
     65          1.1  christos  *
     66          1.1  christos  * ACPI 1.0 allowed Type1 and Type2 executable opcodes outside of control
     67          1.1  christos  * methods (the so-called module-level code.) This support was explicitly
     68          1.1  christos  * removed in ACPI 2.0, but this type of code continues to be created by
     69          1.1  christos  * BIOS vendors. In order to support the disassembly and recompilation of
     70          1.1  christos  * such code (and the porting of ASL code to iASL), iASL supports this
     71          1.1  christos  * code in violation of the current ACPI specification.
     72          1.1  christos  *
     73          1.1  christos  * The grammar change to support module-level code is to revert the
     74          1.1  christos  * {ObjectList} portion of the DefinitionBlockTerm in ACPI 2.0 to the
     75          1.1  christos  * original use of {TermList} instead (see below.) This allows the use
     76          1.1  christos  * of Type1 and Type2 opcodes at module level.
     77          1.1  christos  */
     78          1.1  christos DefinitionBlockTerm
     79  1.1.1.1.2.2     skrll     : PARSEOP_DEFINITION_BLOCK '('  {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITION_BLOCK);}
     80          1.1  christos         String ','
     81          1.1  christos         String ','
     82          1.1  christos         ByteConst ','
     83          1.1  christos         String ','
     84          1.1  christos         String ','
     85          1.1  christos         DWordConst
     86          1.1  christos         ')'                         {TrSetEndLineNumber ($<n>3);}
     87          1.1  christos             '{' TermList '}'        {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);}
     88          1.1  christos     ;
     89          1.1  christos 
     90  1.1.1.1.2.2     skrll DefinitionBlockList
     91  1.1.1.1.2.2     skrll     : DefinitionBlockTerm
     92  1.1.1.1.2.2     skrll     | DefinitionBlockTerm
     93  1.1.1.1.2.2     skrll         DefinitionBlockList         {$$ = TrLinkPeerNodes (2, $1,$2);}
     94  1.1.1.1.2.1     skrll     ;
     95  1.1.1.1.2.1     skrll 
     96  1.1.1.1.2.2     skrll SuperName
     97  1.1.1.1.2.2     skrll     : NameString                    {}
     98  1.1.1.1.2.2     skrll     | ArgTerm                       {}
     99  1.1.1.1.2.2     skrll     | LocalTerm                     {}
    100  1.1.1.1.2.2     skrll     | DebugTerm                     {}
    101  1.1.1.1.2.2     skrll     | Type6Opcode                   {}
    102  1.1.1.1.2.1     skrll 
    103  1.1.1.1.2.2     skrll Target
    104  1.1.1.1.2.2     skrll     :                               {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
    105  1.1.1.1.2.2     skrll     | ','                           {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */
    106  1.1.1.1.2.2     skrll     | ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
    107          1.1  christos     ;
    108          1.1  christos 
    109  1.1.1.1.2.2     skrll TermArg
    110  1.1.1.1.2.2     skrll     : Type2Opcode                   {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
    111  1.1.1.1.2.2     skrll     | DataObject                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
    112  1.1.1.1.2.2     skrll     | NameString                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
    113  1.1.1.1.2.2     skrll     | ArgTerm                       {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
    114  1.1.1.1.2.2     skrll     | LocalTerm                     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
    115          1.1  christos     ;
    116          1.1  christos 
    117  1.1.1.1.2.2     skrll /*
    118  1.1.1.1.2.2     skrll  NOTE: Removed from TermArg due to reduce/reduce conflicts:
    119  1.1.1.1.2.2     skrll     | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
    120  1.1.1.1.2.2     skrll     | Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
    121  1.1.1.1.2.2     skrll     | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
    122  1.1.1.1.2.2     skrll     | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}
    123          1.1  christos 
    124  1.1.1.1.2.2     skrll */
    125          1.1  christos 
    126  1.1.1.1.2.2     skrll MethodInvocationTerm
    127  1.1.1.1.2.2     skrll     : NameString '('                {TrUpdateNode (PARSEOP_METHODCALL, $1);}
    128  1.1.1.1.2.2     skrll         ArgList ')'                 {$$ = TrLinkChildNode ($1,$4);}
    129          1.1  christos     ;
    130          1.1  christos 
    131  1.1.1.1.2.2     skrll /* OptionalCount must appear before ByteList or an incorrect reduction will result */
    132          1.1  christos 
    133  1.1.1.1.2.2     skrll OptionalCount
    134  1.1.1.1.2.2     skrll     :                               {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
    135  1.1.1.1.2.2     skrll     | ','                           {$$ = TrCreateLeafNode (PARSEOP_ONES);}       /* Placeholder is a OnesOp object */
    136  1.1.1.1.2.2     skrll     | ',' TermArg                   {$$ = $2;}
    137          1.1  christos     ;
    138          1.1  christos 
    139  1.1.1.1.2.2     skrll VarPackageLengthTerm
    140  1.1.1.1.2.2     skrll     :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
    141  1.1.1.1.2.2     skrll     | TermArg                       {$$ = $1;}
    142          1.1  christos     ;
    143          1.1  christos 
    144          1.1  christos 
    145  1.1.1.1.2.2     skrll /******* List Terms **************************************************/
    146          1.1  christos 
    147  1.1.1.1.2.2     skrll ArgList
    148  1.1.1.1.2.2     skrll     :                               {$$ = NULL;}
    149  1.1.1.1.2.2     skrll     | TermArg
    150  1.1.1.1.2.2     skrll     | ArgList ','                   /* Allows a trailing comma at list end */
    151  1.1.1.1.2.2     skrll     | ArgList ','
    152  1.1.1.1.2.2     skrll         TermArg                     {$$ = TrLinkPeerNode ($1,$3);}
    153          1.1  christos     ;
    154          1.1  christos 
    155  1.1.1.1.2.2     skrll ByteList
    156  1.1.1.1.2.2     skrll     :                               {$$ = NULL;}
    157  1.1.1.1.2.2     skrll     | ByteConstExpr
    158  1.1.1.1.2.2     skrll     | ByteList ','                  /* Allows a trailing comma at list end */
    159  1.1.1.1.2.2     skrll     | ByteList ','
    160  1.1.1.1.2.2     skrll         ByteConstExpr               {$$ = TrLinkPeerNode ($1,$3);}
    161          1.1  christos     ;
    162          1.1  christos 
    163  1.1.1.1.2.2     skrll DWordList
    164  1.1.1.1.2.2     skrll     :                               {$$ = NULL;}
    165  1.1.1.1.2.2     skrll     | DWordConstExpr
    166  1.1.1.1.2.2     skrll     | DWordList ','                 /* Allows a trailing comma at list end */
    167  1.1.1.1.2.2     skrll     | DWordList ','
    168  1.1.1.1.2.2     skrll         DWordConstExpr              {$$ = TrLinkPeerNode ($1,$3);}
    169          1.1  christos     ;
    170          1.1  christos 
    171  1.1.1.1.2.2     skrll FieldUnitList
    172          1.1  christos     :                               {$$ = NULL;}
    173  1.1.1.1.2.2     skrll     | FieldUnit
    174  1.1.1.1.2.2     skrll     | FieldUnitList ','             /* Allows a trailing comma at list end */
    175  1.1.1.1.2.2     skrll     | FieldUnitList ','
    176  1.1.1.1.2.2     skrll         FieldUnit                   {$$ = TrLinkPeerNode ($1,$3);}
    177          1.1  christos     ;
    178          1.1  christos 
    179  1.1.1.1.2.2     skrll FieldUnit
    180  1.1.1.1.2.2     skrll     : FieldUnitEntry                {}
    181  1.1.1.1.2.2     skrll     | OffsetTerm                    {}
    182  1.1.1.1.2.2     skrll     | AccessAsTerm                  {}
    183  1.1.1.1.2.2     skrll     | ConnectionTerm                {}
    184  1.1.1.1.2.2     skrll     ;
    185          1.1  christos 
    186  1.1.1.1.2.2     skrll FieldUnitEntry
    187  1.1.1.1.2.2     skrll     : ',' AmlPackageLengthTerm      {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}
    188  1.1.1.1.2.2     skrll     | NameSeg ','
    189  1.1.1.1.2.2     skrll         AmlPackageLengthTerm        {$$ = TrLinkChildNode ($1,$3);}
    190  1.1.1.1.2.2     skrll     ;
    191          1.1  christos 
    192  1.1.1.1.2.2     skrll ObjectList
    193  1.1.1.1.2.2     skrll     :                               {$$ = NULL;}
    194  1.1.1.1.2.2     skrll     | ObjectList Object             {$$ = TrLinkPeerNode ($1,$2);}
    195  1.1.1.1.2.2     skrll     | error                         {$$ = AslDoError(); yyclearin;}
    196          1.1  christos     ;
    197          1.1  christos 
    198  1.1.1.1.2.2     skrll Object
    199  1.1.1.1.2.2     skrll     : CompilerDirective             {}
    200  1.1.1.1.2.2     skrll     | NamedObject                   {}
    201  1.1.1.1.2.2     skrll     | NameSpaceModifier             {}
    202          1.1  christos     ;
    203          1.1  christos 
    204  1.1.1.1.2.2     skrll PackageList
    205  1.1.1.1.2.2     skrll     :                               {$$ = NULL;}
    206  1.1.1.1.2.2     skrll     | PackageElement
    207  1.1.1.1.2.2     skrll     | PackageList ','               /* Allows a trailing comma at list end */
    208  1.1.1.1.2.2     skrll     | PackageList ','
    209  1.1.1.1.2.2     skrll         PackageElement              {$$ = TrLinkPeerNode ($1,$3);}
    210          1.1  christos     ;
    211          1.1  christos 
    212  1.1.1.1.2.2     skrll PackageElement
    213  1.1.1.1.2.2     skrll     : DataObject                    {}
    214  1.1.1.1.2.2     skrll     | NameString                    {}
    215          1.1  christos     ;
    216          1.1  christos 
    217  1.1.1.1.2.2     skrll     /* Rules for specifying the type of one method argument or return value */
    218          1.1  christos 
    219          1.1  christos ParameterTypePackage
    220          1.1  christos     :                               {$$ = NULL;}
    221          1.1  christos     | ObjectTypeKeyword             {$$ = $1;}
    222          1.1  christos     | ParameterTypePackage ','
    223          1.1  christos         ObjectTypeKeyword           {$$ = TrLinkPeerNodes (2,$1,$3);}
    224          1.1  christos     ;
    225          1.1  christos 
    226          1.1  christos ParameterTypePackageList
    227          1.1  christos     :                               {$$ = NULL;}
    228          1.1  christos     | ObjectTypeKeyword             {$$ = $1;}
    229          1.1  christos     | '{' ParameterTypePackage '}'  {$$ = $2;}
    230          1.1  christos     ;
    231          1.1  christos 
    232          1.1  christos OptionalParameterTypePackage
    233          1.1  christos     :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
    234          1.1  christos     | ',' ParameterTypePackageList  {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
    235          1.1  christos     ;
    236          1.1  christos 
    237  1.1.1.1.2.2     skrll     /* Rules for specifying the types for method arguments */
    238          1.1  christos 
    239          1.1  christos ParameterTypesPackage
    240          1.1  christos     : ParameterTypePackageList      {$$ = $1;}
    241          1.1  christos     | ParameterTypesPackage ','
    242          1.1  christos         ParameterTypePackageList    {$$ = TrLinkPeerNodes (2,$1,$3);}
    243          1.1  christos     ;
    244          1.1  christos 
    245          1.1  christos ParameterTypesPackageList
    246          1.1  christos     :                               {$$ = NULL;}
    247          1.1  christos     | ObjectTypeKeyword             {$$ = $1;}
    248          1.1  christos     | '{' ParameterTypesPackage '}' {$$ = $2;}
    249          1.1  christos     ;
    250          1.1  christos 
    251          1.1  christos OptionalParameterTypesPackage
    252          1.1  christos     :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}
    253          1.1  christos     | ',' ParameterTypesPackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}
    254          1.1  christos     ;
    255          1.1  christos 
    256  1.1.1.1.2.2     skrll     /* ACPI 3.0 -- allow semicolons between terms */
    257          1.1  christos 
    258  1.1.1.1.2.2     skrll TermList
    259  1.1.1.1.2.2     skrll     :                               {$$ = NULL;}
    260  1.1.1.1.2.2     skrll     | TermList Term                 {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
    261  1.1.1.1.2.2     skrll     | TermList Term ';'             {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);}
    262  1.1.1.1.2.2     skrll     | TermList ';' Term             {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
    263  1.1.1.1.2.2     skrll     | TermList ';' Term ';'         {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);}
    264          1.1  christos     ;
    265          1.1  christos 
    266  1.1.1.1.2.2     skrll Term
    267  1.1.1.1.2.2     skrll     : Object                        {}
    268  1.1.1.1.2.2     skrll     | Type1Opcode                   {}
    269  1.1.1.1.2.2     skrll     | Type2Opcode                   {}
    270  1.1.1.1.2.2     skrll     | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
    271  1.1.1.1.2.2     skrll     | Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
    272  1.1.1.1.2.2     skrll     | Type2BufferOpcode             {}
    273  1.1.1.1.2.2     skrll     | Type2BufferOrStringOpcode     {}
    274  1.1.1.1.2.2     skrll     | error                         {$$ = AslDoError(); yyclearin;}
    275          1.1  christos     ;
    276          1.1  christos 
    277          1.1  christos /*
    278  1.1.1.1.2.2     skrll  * Case-Default list; allow only one Default term and unlimited Case terms
    279          1.1  christos  */
    280  1.1.1.1.2.2     skrll CaseDefaultTermList
    281  1.1.1.1.2.2     skrll     :                               {$$ = NULL;}
    282  1.1.1.1.2.2     skrll     | CaseTerm  {}
    283  1.1.1.1.2.2     skrll     | DefaultTerm   {}
    284  1.1.1.1.2.2     skrll     | CaseDefaultTermList
    285  1.1.1.1.2.2     skrll         CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
    286  1.1.1.1.2.2     skrll     | CaseDefaultTermList
    287  1.1.1.1.2.2     skrll         DefaultTerm                 {$$ = TrLinkPeerNode ($1,$2);}
    288          1.1  christos 
    289  1.1.1.1.2.2     skrll /* Original - attempts to force zero or one default term within the switch */
    290  1.1.1.1.2.2     skrll 
    291  1.1.1.1.2.2     skrll /*
    292  1.1.1.1.2.2     skrll CaseDefaultTermList
    293  1.1.1.1.2.2     skrll     :                               {$$ = NULL;}
    294  1.1.1.1.2.2     skrll     | CaseTermList
    295  1.1.1.1.2.2     skrll         DefaultTerm
    296  1.1.1.1.2.2     skrll         CaseTermList                {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));}
    297  1.1.1.1.2.2     skrll     | CaseTermList
    298  1.1.1.1.2.2     skrll         CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
    299  1.1.1.1.2.2     skrll     ;
    300  1.1.1.1.2.2     skrll 
    301  1.1.1.1.2.2     skrll CaseTermList
    302  1.1.1.1.2.2     skrll     :                               {$$ = NULL;}
    303  1.1.1.1.2.2     skrll     | CaseTerm                      {}
    304  1.1.1.1.2.2     skrll     | CaseTermList
    305  1.1.1.1.2.2     skrll         CaseTerm                    {$$ = TrLinkPeerNode ($1,$2);}
    306  1.1.1.1.2.2     skrll     ;
    307  1.1.1.1.2.2     skrll */
    308  1.1.1.1.2.2     skrll 
    309  1.1.1.1.2.2     skrll 
    310  1.1.1.1.2.2     skrll /*******************************************************************************
    311  1.1.1.1.2.2     skrll  *
    312  1.1.1.1.2.2     skrll  * ASL Data and Constant Terms
    313  1.1.1.1.2.2     skrll  *
    314  1.1.1.1.2.2     skrll  ******************************************************************************/
    315  1.1.1.1.2.2     skrll 
    316  1.1.1.1.2.2     skrll DataObject
    317  1.1.1.1.2.2     skrll     : BufferData                    {}
    318  1.1.1.1.2.2     skrll     | PackageData                   {}
    319  1.1.1.1.2.2     skrll     | IntegerData                   {}
    320  1.1.1.1.2.2     skrll     | StringData                    {}
    321  1.1.1.1.2.2     skrll     ;
    322  1.1.1.1.2.2     skrll 
    323  1.1.1.1.2.2     skrll BufferData
    324  1.1.1.1.2.2     skrll     : Type5Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
    325  1.1.1.1.2.2     skrll     | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
    326  1.1.1.1.2.2     skrll     | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
    327  1.1.1.1.2.2     skrll     | BufferTerm                    {}
    328  1.1.1.1.2.2     skrll     ;
    329  1.1.1.1.2.2     skrll 
    330  1.1.1.1.2.2     skrll PackageData
    331  1.1.1.1.2.2     skrll     : PackageTerm                   {}
    332  1.1.1.1.2.2     skrll     ;
    333  1.1.1.1.2.2     skrll 
    334  1.1.1.1.2.2     skrll IntegerData
    335  1.1.1.1.2.2     skrll     : Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
    336  1.1.1.1.2.2     skrll     | Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
    337  1.1.1.1.2.2     skrll     | Integer                       {}
    338  1.1.1.1.2.2     skrll     | ConstTerm                     {}
    339  1.1.1.1.2.2     skrll     ;
    340  1.1.1.1.2.2     skrll 
    341  1.1.1.1.2.2     skrll StringData
    342  1.1.1.1.2.2     skrll     : Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
    343  1.1.1.1.2.2     skrll     | String                        {}
    344  1.1.1.1.2.2     skrll     ;
    345  1.1.1.1.2.2     skrll 
    346  1.1.1.1.2.2     skrll ByteConst
    347  1.1.1.1.2.2     skrll     : Integer                       {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
    348  1.1.1.1.2.2     skrll     ;
    349  1.1.1.1.2.2     skrll 
    350  1.1.1.1.2.2     skrll WordConst
    351  1.1.1.1.2.2     skrll     : Integer                       {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
    352  1.1.1.1.2.2     skrll     ;
    353  1.1.1.1.2.2     skrll 
    354  1.1.1.1.2.2     skrll DWordConst
    355  1.1.1.1.2.2     skrll     : Integer                       {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
    356  1.1.1.1.2.2     skrll     ;
    357  1.1.1.1.2.2     skrll 
    358  1.1.1.1.2.2     skrll QWordConst
    359  1.1.1.1.2.2     skrll     : Integer                       {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
    360  1.1.1.1.2.2     skrll     ;
    361  1.1.1.1.2.2     skrll 
    362  1.1.1.1.2.2     skrll /*
    363  1.1.1.1.2.2     skrll  * The NODE_COMPILE_TIME_CONST flag in the following constant expressions
    364  1.1.1.1.2.2     skrll  * enables compile-time constant folding to reduce the Type3Opcodes/Type2IntegerOpcodes
    365  1.1.1.1.2.2     skrll  * to simple integers. It is an error if these types of expressions cannot be
    366  1.1.1.1.2.2     skrll  * reduced, since the AML grammar for ****ConstExpr requires a simple constant.
    367  1.1.1.1.2.2     skrll  * Note: The required byte length of the constant is passed through to the
    368  1.1.1.1.2.2     skrll  * constant folding code in the node AmlLength field.
    369  1.1.1.1.2.2     skrll  */
    370  1.1.1.1.2.2     skrll ByteConstExpr
    371  1.1.1.1.2.2     skrll     : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);}
    372  1.1.1.1.2.2     skrll     | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);}
    373  1.1.1.1.2.2     skrll     | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);}
    374  1.1.1.1.2.2     skrll     | ByteConst                     {}
    375  1.1.1.1.2.2     skrll     ;
    376  1.1.1.1.2.2     skrll 
    377  1.1.1.1.2.2     skrll WordConstExpr
    378  1.1.1.1.2.2     skrll     : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);}
    379  1.1.1.1.2.2     skrll     | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);}
    380  1.1.1.1.2.2     skrll     | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);}
    381  1.1.1.1.2.2     skrll     | WordConst                     {}
    382  1.1.1.1.2.2     skrll     ;
    383  1.1.1.1.2.2     skrll 
    384  1.1.1.1.2.2     skrll DWordConstExpr
    385  1.1.1.1.2.2     skrll     : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);}
    386  1.1.1.1.2.2     skrll     | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);}
    387  1.1.1.1.2.2     skrll     | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);}
    388  1.1.1.1.2.2     skrll     | DWordConst                    {}
    389  1.1.1.1.2.2     skrll     ;
    390  1.1.1.1.2.2     skrll 
    391  1.1.1.1.2.2     skrll QWordConstExpr
    392  1.1.1.1.2.2     skrll     : Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);}
    393  1.1.1.1.2.2     skrll     | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);}
    394  1.1.1.1.2.2     skrll     | ConstExprTerm                 {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);}
    395  1.1.1.1.2.2     skrll     | QWordConst                    {}
    396  1.1.1.1.2.2     skrll     ;
    397  1.1.1.1.2.2     skrll 
    398  1.1.1.1.2.2     skrll ConstTerm
    399  1.1.1.1.2.2     skrll     : ConstExprTerm                 {}
    400  1.1.1.1.2.2     skrll     | PARSEOP_REVISION              {$$ = TrCreateLeafNode (PARSEOP_REVISION);}
    401  1.1.1.1.2.2     skrll     ;
    402  1.1.1.1.2.2     skrll 
    403  1.1.1.1.2.2     skrll ConstExprTerm
    404  1.1.1.1.2.2     skrll     : PARSEOP_ZERO                  {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);}
    405  1.1.1.1.2.2     skrll     | PARSEOP_ONE                   {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);}
    406  1.1.1.1.2.2     skrll     | PARSEOP_ONES                  {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_UINT64_MAX);}
    407  1.1.1.1.2.2     skrll     | PARSEOP___DATE__              {$$ = TrCreateConstantLeafNode (PARSEOP___DATE__);}
    408  1.1.1.1.2.2     skrll     | PARSEOP___FILE__              {$$ = TrCreateConstantLeafNode (PARSEOP___FILE__);}
    409  1.1.1.1.2.2     skrll     | PARSEOP___LINE__              {$$ = TrCreateConstantLeafNode (PARSEOP___LINE__);}
    410  1.1.1.1.2.2     skrll     | PARSEOP___PATH__              {$$ = TrCreateConstantLeafNode (PARSEOP___PATH__);}
    411  1.1.1.1.2.2     skrll     ;
    412  1.1.1.1.2.2     skrll 
    413  1.1.1.1.2.2     skrll Integer
    414  1.1.1.1.2.2     skrll     : PARSEOP_INTEGER               {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);}
    415  1.1.1.1.2.2     skrll     ;
    416  1.1.1.1.2.2     skrll 
    417  1.1.1.1.2.2     skrll String
    418  1.1.1.1.2.2     skrll     : PARSEOP_STRING_LITERAL        {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);}
    419  1.1.1.1.2.2     skrll     ;
    420  1.1.1.1.2.2     skrll 
    421  1.1.1.1.2.2     skrll 
    422  1.1.1.1.2.2     skrll /*******************************************************************************
    423  1.1.1.1.2.2     skrll  *
    424  1.1.1.1.2.2     skrll  * ASL Opcode Terms
    425  1.1.1.1.2.2     skrll  *
    426  1.1.1.1.2.2     skrll  ******************************************************************************/
    427  1.1.1.1.2.2     skrll 
    428  1.1.1.1.2.2     skrll CompilerDirective
    429  1.1.1.1.2.2     skrll     : IncludeTerm                   {}
    430  1.1.1.1.2.2     skrll     | IncludeEndTerm                {}
    431  1.1.1.1.2.2     skrll     | ExternalTerm                  {}
    432  1.1.1.1.2.2     skrll     ;
    433  1.1.1.1.2.2     skrll 
    434  1.1.1.1.2.2     skrll NamedObject
    435  1.1.1.1.2.2     skrll     : BankFieldTerm                 {}
    436  1.1.1.1.2.2     skrll     | CreateBitFieldTerm            {}
    437  1.1.1.1.2.2     skrll     | CreateByteFieldTerm           {}
    438  1.1.1.1.2.2     skrll     | CreateDWordFieldTerm          {}
    439  1.1.1.1.2.2     skrll     | CreateFieldTerm               {}
    440  1.1.1.1.2.2     skrll     | CreateQWordFieldTerm          {}
    441  1.1.1.1.2.2     skrll     | CreateWordFieldTerm           {}
    442  1.1.1.1.2.2     skrll     | DataRegionTerm                {}
    443  1.1.1.1.2.2     skrll     | DeviceTerm                    {}
    444  1.1.1.1.2.2     skrll     | EventTerm                     {}
    445  1.1.1.1.2.2     skrll     | FieldTerm                     {}
    446  1.1.1.1.2.2     skrll     | FunctionTerm                  {}
    447  1.1.1.1.2.2     skrll     | IndexFieldTerm                {}
    448  1.1.1.1.2.2     skrll     | MethodTerm                    {}
    449  1.1.1.1.2.2     skrll     | MutexTerm                     {}
    450  1.1.1.1.2.2     skrll     | OpRegionTerm                  {}
    451  1.1.1.1.2.2     skrll     | PowerResTerm                  {}
    452  1.1.1.1.2.2     skrll     | ProcessorTerm                 {}
    453  1.1.1.1.2.2     skrll     | ThermalZoneTerm               {}
    454  1.1.1.1.2.2     skrll     ;
    455  1.1.1.1.2.2     skrll 
    456  1.1.1.1.2.2     skrll NameSpaceModifier
    457  1.1.1.1.2.2     skrll     : AliasTerm                     {}
    458  1.1.1.1.2.2     skrll     | NameTerm                      {}
    459  1.1.1.1.2.2     skrll     | ScopeTerm                     {}
    460  1.1.1.1.2.2     skrll     ;
    461  1.1.1.1.2.2     skrll 
    462  1.1.1.1.2.2     skrll /* For ObjectType: SuperName except for MethodInvocationTerm */
    463  1.1.1.1.2.2     skrll 
    464  1.1.1.1.2.2     skrll ObjectTypeName
    465  1.1.1.1.2.2     skrll     : NameString                    {}
    466  1.1.1.1.2.2     skrll     | ArgTerm                       {}
    467  1.1.1.1.2.2     skrll     | LocalTerm                     {}
    468  1.1.1.1.2.2     skrll     | DebugTerm                     {}
    469  1.1.1.1.2.2     skrll     | RefOfTerm                     {}
    470  1.1.1.1.2.2     skrll     | DerefOfTerm                   {}
    471  1.1.1.1.2.2     skrll     | IndexTerm                     {}
    472  1.1.1.1.2.2     skrll 
    473  1.1.1.1.2.2     skrll /*    | MethodInvocationTerm          {} */  /* Caused reduce/reduce with Type6Opcode->MethodInvocationTerm */
    474  1.1.1.1.2.2     skrll     ;
    475  1.1.1.1.2.2     skrll 
    476  1.1.1.1.2.2     skrll RequiredTarget
    477  1.1.1.1.2.2     skrll     : ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}
    478  1.1.1.1.2.2     skrll     ;
    479  1.1.1.1.2.2     skrll 
    480  1.1.1.1.2.2     skrll SimpleTarget
    481  1.1.1.1.2.2     skrll     : NameString                    {}
    482  1.1.1.1.2.2     skrll     | LocalTerm                     {}
    483  1.1.1.1.2.2     skrll     | ArgTerm                       {}
    484  1.1.1.1.2.2     skrll     ;
    485  1.1.1.1.2.2     skrll 
    486  1.1.1.1.2.2     skrll /* Opcode types */
    487  1.1.1.1.2.2     skrll 
    488  1.1.1.1.2.2     skrll Type1Opcode
    489  1.1.1.1.2.2     skrll     : BreakTerm                     {}
    490  1.1.1.1.2.2     skrll     | BreakPointTerm                {}
    491  1.1.1.1.2.2     skrll     | ContinueTerm                  {}
    492  1.1.1.1.2.2     skrll     | FatalTerm                     {}
    493  1.1.1.1.2.2     skrll     | ElseIfTerm                    {}
    494  1.1.1.1.2.2     skrll     | LoadTerm                      {}
    495  1.1.1.1.2.2     skrll     | NoOpTerm                      {}
    496  1.1.1.1.2.2     skrll     | NotifyTerm                    {}
    497  1.1.1.1.2.2     skrll     | ReleaseTerm                   {}
    498  1.1.1.1.2.2     skrll     | ResetTerm                     {}
    499  1.1.1.1.2.2     skrll     | ReturnTerm                    {}
    500  1.1.1.1.2.2     skrll     | SignalTerm                    {}
    501  1.1.1.1.2.2     skrll     | SleepTerm                     {}
    502  1.1.1.1.2.2     skrll     | StallTerm                     {}
    503  1.1.1.1.2.2     skrll     | SwitchTerm                    {}
    504  1.1.1.1.2.2     skrll     | UnloadTerm                    {}
    505  1.1.1.1.2.2     skrll     | WhileTerm                     {}
    506  1.1.1.1.2.2     skrll     ;
    507  1.1.1.1.2.2     skrll 
    508  1.1.1.1.2.2     skrll Type2Opcode
    509  1.1.1.1.2.2     skrll     : AcquireTerm                   {}
    510  1.1.1.1.2.2     skrll     | CondRefOfTerm                 {}
    511  1.1.1.1.2.2     skrll     | CopyObjectTerm                {}
    512  1.1.1.1.2.2     skrll     | DerefOfTerm                   {}
    513  1.1.1.1.2.2     skrll     | ObjectTypeTerm                {}
    514  1.1.1.1.2.2     skrll     | RefOfTerm                     {}
    515  1.1.1.1.2.2     skrll     | SizeOfTerm                    {}
    516  1.1.1.1.2.2     skrll     | StoreTerm                     {}
    517  1.1.1.1.2.2     skrll     | EqualsTerm                    {}
    518  1.1.1.1.2.2     skrll     | TimerTerm                     {}
    519  1.1.1.1.2.2     skrll     | WaitTerm                      {}
    520  1.1.1.1.2.2     skrll     | MethodInvocationTerm          {}
    521  1.1.1.1.2.2     skrll     ;
    522  1.1.1.1.2.2     skrll 
    523  1.1.1.1.2.2     skrll /*
    524  1.1.1.1.2.2     skrll  * Type 3/4/5 opcodes
    525  1.1.1.1.2.2     skrll  */
    526  1.1.1.1.2.2     skrll Type2IntegerOpcode                  /* "Type3" opcodes */
    527  1.1.1.1.2.2     skrll     : Expression                    {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
    528  1.1.1.1.2.2     skrll     | AddTerm                       {}
    529  1.1.1.1.2.2     skrll     | AndTerm                       {}
    530          1.1  christos     | DecTerm                       {}
    531          1.1  christos     | DivideTerm                    {}
    532          1.1  christos     | FindSetLeftBitTerm            {}
    533          1.1  christos     | FindSetRightBitTerm           {}
    534          1.1  christos     | FromBCDTerm                   {}
    535          1.1  christos     | IncTerm                       {}
    536          1.1  christos     | IndexTerm                     {}
    537          1.1  christos     | LAndTerm                      {}
    538          1.1  christos     | LEqualTerm                    {}
    539          1.1  christos     | LGreaterTerm                  {}
    540          1.1  christos     | LGreaterEqualTerm             {}
    541          1.1  christos     | LLessTerm                     {}
    542          1.1  christos     | LLessEqualTerm                {}
    543          1.1  christos     | LNotTerm                      {}
    544          1.1  christos     | LNotEqualTerm                 {}
    545          1.1  christos     | LoadTableTerm                 {}
    546          1.1  christos     | LOrTerm                       {}
    547          1.1  christos     | MatchTerm                     {}
    548          1.1  christos     | ModTerm                       {}
    549          1.1  christos     | MultiplyTerm                  {}
    550          1.1  christos     | NAndTerm                      {}
    551          1.1  christos     | NOrTerm                       {}
    552          1.1  christos     | NotTerm                       {}
    553          1.1  christos     | OrTerm                        {}
    554          1.1  christos     | ShiftLeftTerm                 {}
    555          1.1  christos     | ShiftRightTerm                {}
    556          1.1  christos     | SubtractTerm                  {}
    557          1.1  christos     | ToBCDTerm                     {}
    558          1.1  christos     | ToIntegerTerm                 {}
    559          1.1  christos     | XOrTerm                       {}
    560          1.1  christos     ;
    561          1.1  christos 
    562          1.1  christos Type2StringOpcode                   /* "Type4" Opcodes */
    563          1.1  christos     : ToDecimalStringTerm           {}
    564          1.1  christos     | ToHexStringTerm               {}
    565          1.1  christos     | ToStringTerm                  {}
    566          1.1  christos     ;
    567          1.1  christos 
    568          1.1  christos Type2BufferOpcode                   /* "Type5" Opcodes */
    569          1.1  christos     : ToBufferTerm                  {}
    570          1.1  christos     | ConcatResTerm                 {}
    571          1.1  christos     ;
    572          1.1  christos 
    573          1.1  christos Type2BufferOrStringOpcode
    574  1.1.1.1.2.1     skrll     : ConcatTerm                    {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}
    575  1.1.1.1.2.1     skrll     | PrintfTerm                    {}
    576  1.1.1.1.2.1     skrll     | FprintfTerm                   {}
    577          1.1  christos     | MidTerm                       {}
    578          1.1  christos     ;
    579          1.1  christos 
    580          1.1  christos /*
    581          1.1  christos  * A type 3 opcode evaluates to an Integer and cannot have a destination operand
    582          1.1  christos  */
    583          1.1  christos Type3Opcode
    584          1.1  christos     : EISAIDTerm                    {}
    585          1.1  christos     ;
    586          1.1  christos 
    587          1.1  christos /* Obsolete
    588          1.1  christos Type4Opcode
    589          1.1  christos     : ConcatTerm                    {}
    590          1.1  christos     | ToDecimalStringTerm           {}
    591          1.1  christos     | ToHexStringTerm               {}
    592          1.1  christos     | MidTerm                       {}
    593          1.1  christos     | ToStringTerm                  {}
    594          1.1  christos     ;
    595          1.1  christos */
    596          1.1  christos 
    597          1.1  christos Type5Opcode
    598          1.1  christos     : ResourceTemplateTerm          {}
    599          1.1  christos     | UnicodeTerm                   {}
    600  1.1.1.1.2.1     skrll     | ToPLDTerm                     {}
    601          1.1  christos     | ToUUIDTerm                    {}
    602          1.1  christos     ;
    603          1.1  christos 
    604          1.1  christos Type6Opcode
    605          1.1  christos     : RefOfTerm                     {}
    606          1.1  christos     | DerefOfTerm                   {}
    607          1.1  christos     | IndexTerm                     {}
    608  1.1.1.1.2.2     skrll     | IndexExpTerm                  {}
    609  1.1.1.1.2.1     skrll     | MethodInvocationTerm          {}
    610          1.1  christos     ;
    611          1.1  christos 
    612          1.1  christos 
    613  1.1.1.1.2.2     skrll /*******************************************************************************
    614  1.1.1.1.2.2     skrll  *
    615  1.1.1.1.2.2     skrll  * ASL Primary Terms
    616  1.1.1.1.2.2     skrll  *
    617  1.1.1.1.2.2     skrll  ******************************************************************************/
    618  1.1.1.1.2.2     skrll 
    619  1.1.1.1.2.2     skrll AccessAsTerm
    620  1.1.1.1.2.2     skrll     : PARSEOP_ACCESSAS '('
    621  1.1.1.1.2.2     skrll         AccessTypeKeyword
    622  1.1.1.1.2.2     skrll         OptionalAccessAttribTerm
    623  1.1.1.1.2.2     skrll         ')'                         {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}
    624  1.1.1.1.2.2     skrll     | PARSEOP_ACCESSAS '('
    625  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    626          1.1  christos     ;
    627          1.1  christos 
    628  1.1.1.1.2.2     skrll AcquireTerm
    629  1.1.1.1.2.2     skrll     : PARSEOP_ACQUIRE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);}
    630  1.1.1.1.2.2     skrll         SuperName
    631  1.1.1.1.2.2     skrll         ',' WordConstExpr
    632  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$6);}
    633  1.1.1.1.2.2     skrll     | PARSEOP_ACQUIRE '('
    634  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    635  1.1.1.1.2.2     skrll     ;
    636  1.1.1.1.2.2     skrll 
    637  1.1.1.1.2.2     skrll AddTerm
    638  1.1.1.1.2.2     skrll     : PARSEOP_ADD '('               {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);}
    639  1.1.1.1.2.2     skrll         TermArg
    640  1.1.1.1.2.2     skrll         TermArgItem
    641  1.1.1.1.2.2     skrll         Target
    642  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    643  1.1.1.1.2.2     skrll     | PARSEOP_ADD '('
    644          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    645          1.1  christos     ;
    646          1.1  christos 
    647  1.1.1.1.2.2     skrll AliasTerm
    648  1.1.1.1.2.2     skrll     : PARSEOP_ALIAS '('             {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);}
    649  1.1.1.1.2.2     skrll         NameString
    650  1.1.1.1.2.2     skrll         NameStringItem
    651  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,
    652  1.1.1.1.2.2     skrll                                         TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));}
    653  1.1.1.1.2.2     skrll     | PARSEOP_ALIAS '('
    654  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    655  1.1.1.1.2.2     skrll     ;
    656          1.1  christos 
    657  1.1.1.1.2.2     skrll AndTerm
    658  1.1.1.1.2.2     skrll     : PARSEOP_AND '('               {$<n>$ = TrCreateLeafNode (PARSEOP_AND);}
    659  1.1.1.1.2.2     skrll         TermArg
    660  1.1.1.1.2.2     skrll         TermArgItem
    661  1.1.1.1.2.2     skrll         Target
    662  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    663  1.1.1.1.2.2     skrll     | PARSEOP_AND '('
    664  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    665  1.1.1.1.2.2     skrll     ;
    666          1.1  christos 
    667  1.1.1.1.2.2     skrll ArgTerm
    668  1.1.1.1.2.2     skrll     : PARSEOP_ARG0                  {$$ = TrCreateLeafNode (PARSEOP_ARG0);}
    669  1.1.1.1.2.2     skrll     | PARSEOP_ARG1                  {$$ = TrCreateLeafNode (PARSEOP_ARG1);}
    670  1.1.1.1.2.2     skrll     | PARSEOP_ARG2                  {$$ = TrCreateLeafNode (PARSEOP_ARG2);}
    671  1.1.1.1.2.2     skrll     | PARSEOP_ARG3                  {$$ = TrCreateLeafNode (PARSEOP_ARG3);}
    672  1.1.1.1.2.2     skrll     | PARSEOP_ARG4                  {$$ = TrCreateLeafNode (PARSEOP_ARG4);}
    673  1.1.1.1.2.2     skrll     | PARSEOP_ARG5                  {$$ = TrCreateLeafNode (PARSEOP_ARG5);}
    674  1.1.1.1.2.2     skrll     | PARSEOP_ARG6                  {$$ = TrCreateLeafNode (PARSEOP_ARG6);}
    675  1.1.1.1.2.2     skrll     ;
    676          1.1  christos 
    677          1.1  christos BankFieldTerm
    678          1.1  christos     : PARSEOP_BANKFIELD '('         {$<n>$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}
    679          1.1  christos         NameString
    680          1.1  christos         NameStringItem
    681          1.1  christos         TermArgItem
    682          1.1  christos         ',' AccessTypeKeyword
    683          1.1  christos         ',' LockRuleKeyword
    684          1.1  christos         ',' UpdateRuleKeyword
    685          1.1  christos         ')' '{'
    686          1.1  christos             FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);}
    687          1.1  christos     | PARSEOP_BANKFIELD '('
    688          1.1  christos         error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
    689          1.1  christos     ;
    690          1.1  christos 
    691  1.1.1.1.2.2     skrll BreakTerm
    692  1.1.1.1.2.2     skrll     : PARSEOP_BREAK                 {$$ = TrCreateNode (PARSEOP_BREAK, 0);}
    693          1.1  christos     ;
    694          1.1  christos 
    695  1.1.1.1.2.2     skrll BreakPointTerm
    696  1.1.1.1.2.2     skrll     : PARSEOP_BREAKPOINT            {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);}
    697          1.1  christos     ;
    698          1.1  christos 
    699  1.1.1.1.2.2     skrll BufferTerm
    700  1.1.1.1.2.2     skrll     : PARSEOP_BUFFER '('            {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);}
    701  1.1.1.1.2.2     skrll         OptionalTermArg
    702  1.1.1.1.2.2     skrll         ')' '{'
    703  1.1.1.1.2.2     skrll             BufferTermData '}'      {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    704  1.1.1.1.2.2     skrll     | PARSEOP_BUFFER '('
    705  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    706          1.1  christos     ;
    707          1.1  christos 
    708  1.1.1.1.2.2     skrll BufferTermData
    709  1.1.1.1.2.2     skrll     : ByteList                      {}
    710  1.1.1.1.2.2     skrll     | StringData                    {}
    711  1.1.1.1.2.2     skrll     ;
    712  1.1.1.1.2.2     skrll 
    713  1.1.1.1.2.2     skrll CaseTerm
    714  1.1.1.1.2.2     skrll     : PARSEOP_CASE '('              {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);}
    715  1.1.1.1.2.2     skrll         DataObject
    716  1.1.1.1.2.2     skrll         ')' '{'
    717  1.1.1.1.2.2     skrll             TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
    718  1.1.1.1.2.2     skrll     | PARSEOP_CASE '('
    719          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    720          1.1  christos     ;
    721          1.1  christos 
    722  1.1.1.1.2.2     skrll ConcatTerm
    723  1.1.1.1.2.2     skrll     : PARSEOP_CONCATENATE '('       {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);}
    724  1.1.1.1.2.2     skrll         TermArg
    725  1.1.1.1.2.2     skrll         TermArgItem
    726  1.1.1.1.2.2     skrll         Target
    727  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    728  1.1.1.1.2.2     skrll     | PARSEOP_CONCATENATE '('
    729  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    730  1.1.1.1.2.2     skrll     ;
    731  1.1.1.1.2.2     skrll 
    732  1.1.1.1.2.2     skrll ConcatResTerm
    733  1.1.1.1.2.2     skrll     : PARSEOP_CONCATENATERESTEMPLATE '('    {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);}
    734  1.1.1.1.2.2     skrll         TermArg
    735  1.1.1.1.2.2     skrll         TermArgItem
    736  1.1.1.1.2.2     skrll         Target
    737  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
    738  1.1.1.1.2.2     skrll     | PARSEOP_CONCATENATERESTEMPLATE '('
    739          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    740          1.1  christos     ;
    741          1.1  christos 
    742          1.1  christos ConnectionTerm
    743          1.1  christos     : PARSEOP_CONNECTION '('
    744          1.1  christos         NameString
    745          1.1  christos         ')'                         {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);}
    746          1.1  christos     | PARSEOP_CONNECTION '('        {$<n>$ = TrCreateLeafNode (PARSEOP_CONNECTION);}
    747          1.1  christos         ResourceMacroTerm
    748          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3, 1,
    749          1.1  christos                                             TrLinkChildren (TrCreateLeafNode (PARSEOP_RESOURCETEMPLATE), 3,
    750          1.1  christos                                                 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
    751          1.1  christos                                                 TrCreateLeafNode (PARSEOP_DEFAULT_ARG),
    752          1.1  christos                                                 $4));}
    753          1.1  christos     | PARSEOP_CONNECTION '('
    754          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    755          1.1  christos     ;
    756          1.1  christos 
    757  1.1.1.1.2.2     skrll CondRefOfTerm
    758  1.1.1.1.2.2     skrll     : PARSEOP_CONDREFOF '('         {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);}
    759  1.1.1.1.2.2     skrll         SuperName
    760  1.1.1.1.2.2     skrll         Target
    761  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    762  1.1.1.1.2.2     skrll     | PARSEOP_CONDREFOF '('
    763  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    764  1.1.1.1.2.2     skrll     ;
    765  1.1.1.1.2.2     skrll 
    766  1.1.1.1.2.2     skrll ContinueTerm
    767  1.1.1.1.2.2     skrll     : PARSEOP_CONTINUE              {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);}
    768  1.1.1.1.2.2     skrll     ;
    769  1.1.1.1.2.2     skrll 
    770  1.1.1.1.2.2     skrll CopyObjectTerm
    771  1.1.1.1.2.2     skrll     : PARSEOP_COPYOBJECT '('        {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);}
    772  1.1.1.1.2.2     skrll         TermArg
    773  1.1.1.1.2.2     skrll         ',' SimpleTarget
    774  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
    775  1.1.1.1.2.2     skrll     | PARSEOP_COPYOBJECT '('
    776  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    777  1.1.1.1.2.2     skrll     ;
    778  1.1.1.1.2.2     skrll 
    779          1.1  christos CreateBitFieldTerm
    780          1.1  christos     : PARSEOP_CREATEBITFIELD '('    {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}
    781          1.1  christos         TermArg
    782          1.1  christos         TermArgItem
    783          1.1  christos         NameStringItem
    784          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    785          1.1  christos     | PARSEOP_CREATEBITFIELD '('
    786          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    787          1.1  christos     ;
    788          1.1  christos 
    789          1.1  christos CreateByteFieldTerm
    790          1.1  christos     : PARSEOP_CREATEBYTEFIELD '('   {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}
    791          1.1  christos         TermArg
    792          1.1  christos         TermArgItem
    793          1.1  christos         NameStringItem
    794          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    795          1.1  christos     | PARSEOP_CREATEBYTEFIELD '('
    796          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    797          1.1  christos     ;
    798          1.1  christos 
    799          1.1  christos CreateDWordFieldTerm
    800          1.1  christos     : PARSEOP_CREATEDWORDFIELD '('  {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}
    801          1.1  christos         TermArg
    802          1.1  christos         TermArgItem
    803          1.1  christos         NameStringItem
    804          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    805          1.1  christos     | PARSEOP_CREATEDWORDFIELD '('
    806          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    807          1.1  christos     ;
    808          1.1  christos 
    809          1.1  christos CreateFieldTerm
    810          1.1  christos     : PARSEOP_CREATEFIELD '('       {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}
    811          1.1  christos         TermArg
    812          1.1  christos         TermArgItem
    813          1.1  christos         TermArgItem
    814          1.1  christos         NameStringItem
    815          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}
    816          1.1  christos     | PARSEOP_CREATEFIELD '('
    817          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    818          1.1  christos     ;
    819          1.1  christos 
    820          1.1  christos CreateQWordFieldTerm
    821          1.1  christos     : PARSEOP_CREATEQWORDFIELD '('  {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);}
    822          1.1  christos         TermArg
    823          1.1  christos         TermArgItem
    824          1.1  christos         NameStringItem
    825          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    826          1.1  christos     | PARSEOP_CREATEQWORDFIELD '('
    827          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    828          1.1  christos     ;
    829          1.1  christos 
    830          1.1  christos CreateWordFieldTerm
    831          1.1  christos     : PARSEOP_CREATEWORDFIELD '('   {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);}
    832          1.1  christos         TermArg
    833          1.1  christos         TermArgItem
    834          1.1  christos         NameStringItem
    835          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}
    836          1.1  christos     | PARSEOP_CREATEWORDFIELD '('
    837          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    838          1.1  christos     ;
    839          1.1  christos 
    840          1.1  christos DataRegionTerm
    841          1.1  christos     : PARSEOP_DATATABLEREGION '('   {$<n>$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);}
    842          1.1  christos         NameString
    843          1.1  christos         TermArgItem
    844          1.1  christos         TermArgItem
    845          1.1  christos         TermArgItem
    846          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);}
    847          1.1  christos     | PARSEOP_DATATABLEREGION '('
    848          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    849          1.1  christos     ;
    850          1.1  christos 
    851  1.1.1.1.2.2     skrll DebugTerm
    852  1.1.1.1.2.2     skrll     : PARSEOP_DEBUG                 {$$ = TrCreateLeafNode (PARSEOP_DEBUG);}
    853  1.1.1.1.2.2     skrll     ;
    854  1.1.1.1.2.2     skrll 
    855  1.1.1.1.2.2     skrll DecTerm
    856  1.1.1.1.2.2     skrll     : PARSEOP_DECREMENT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);}
    857  1.1.1.1.2.2     skrll         SuperName
    858  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
    859  1.1.1.1.2.2     skrll     | PARSEOP_DECREMENT '('
    860  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    861  1.1.1.1.2.2     skrll     ;
    862  1.1.1.1.2.2     skrll 
    863  1.1.1.1.2.2     skrll DefaultTerm
    864  1.1.1.1.2.2     skrll     : PARSEOP_DEFAULT '{'           {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);}
    865  1.1.1.1.2.2     skrll         TermList '}'                {$$ = TrLinkChildren ($<n>3,1,$4);}
    866  1.1.1.1.2.2     skrll     | PARSEOP_DEFAULT '{'
    867  1.1.1.1.2.2     skrll         error '}'                   {$$ = AslDoError(); yyclearin;}
    868  1.1.1.1.2.2     skrll     ;
    869  1.1.1.1.2.2     skrll 
    870  1.1.1.1.2.2     skrll DerefOfTerm
    871  1.1.1.1.2.2     skrll     : PARSEOP_DEREFOF '('           {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);}
    872  1.1.1.1.2.2     skrll         TermArg
    873  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
    874  1.1.1.1.2.2     skrll     | PARSEOP_DEREFOF '('
    875  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    876  1.1.1.1.2.2     skrll     ;
    877  1.1.1.1.2.2     skrll 
    878          1.1  christos DeviceTerm
    879          1.1  christos     : PARSEOP_DEVICE '('            {$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);}
    880          1.1  christos         NameString
    881          1.1  christos         ')' '{'
    882          1.1  christos             ObjectList '}'          {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
    883          1.1  christos     | PARSEOP_DEVICE '('
    884          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    885          1.1  christos     ;
    886          1.1  christos 
    887  1.1.1.1.2.2     skrll DivideTerm
    888  1.1.1.1.2.2     skrll     : PARSEOP_DIVIDE '('            {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);}
    889  1.1.1.1.2.2     skrll         TermArg
    890  1.1.1.1.2.2     skrll         TermArgItem
    891  1.1.1.1.2.2     skrll         Target
    892  1.1.1.1.2.2     skrll         Target
    893  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
    894  1.1.1.1.2.2     skrll     | PARSEOP_DIVIDE '('
    895  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    896  1.1.1.1.2.2     skrll     ;
    897  1.1.1.1.2.2     skrll 
    898  1.1.1.1.2.2     skrll EISAIDTerm
    899  1.1.1.1.2.2     skrll     : PARSEOP_EISAID '('
    900  1.1.1.1.2.2     skrll         StringData ')'              {$$ = TrUpdateNode (PARSEOP_EISAID, $3);}
    901  1.1.1.1.2.2     skrll     | PARSEOP_EISAID '('
    902  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    903  1.1.1.1.2.2     skrll     ;
    904  1.1.1.1.2.2     skrll 
    905  1.1.1.1.2.2     skrll ElseIfTerm
    906  1.1.1.1.2.2     skrll     : IfTerm ElseTerm               {$$ = TrLinkPeerNode ($1,$2);}
    907  1.1.1.1.2.2     skrll     ;
    908  1.1.1.1.2.2     skrll 
    909  1.1.1.1.2.2     skrll ElseTerm
    910  1.1.1.1.2.2     skrll     :                               {$$ = NULL;}
    911  1.1.1.1.2.2     skrll     | PARSEOP_ELSE '{'              {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
    912  1.1.1.1.2.2     skrll         TermList '}'                {$$ = TrLinkChildren ($<n>3,1,$4);}
    913  1.1.1.1.2.2     skrll 
    914  1.1.1.1.2.2     skrll     | PARSEOP_ELSE '{'
    915  1.1.1.1.2.2     skrll         error '}'                   {$$ = AslDoError(); yyclearin;}
    916  1.1.1.1.2.2     skrll 
    917  1.1.1.1.2.2     skrll     | PARSEOP_ELSE
    918  1.1.1.1.2.2     skrll         error                       {$$ = AslDoError(); yyclearin;}
    919  1.1.1.1.2.2     skrll 
    920  1.1.1.1.2.2     skrll     | PARSEOP_ELSEIF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);}
    921  1.1.1.1.2.2     skrll         TermArg                     {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
    922  1.1.1.1.2.2     skrll         ')' '{'
    923  1.1.1.1.2.2     skrll             TermList '}'            {TrLinkChildren ($<n>5,2,$4,$8);}
    924  1.1.1.1.2.2     skrll         ElseTerm                    {TrLinkPeerNode ($<n>5,$11);}
    925  1.1.1.1.2.2     skrll                                     {$$ = TrLinkChildren ($<n>3,1,$<n>5);}
    926  1.1.1.1.2.2     skrll 
    927  1.1.1.1.2.2     skrll     | PARSEOP_ELSEIF '('
    928  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    929  1.1.1.1.2.2     skrll 
    930  1.1.1.1.2.2     skrll     | PARSEOP_ELSEIF
    931  1.1.1.1.2.2     skrll         error                       {$$ = AslDoError(); yyclearin;}
    932  1.1.1.1.2.2     skrll     ;
    933  1.1.1.1.2.2     skrll 
    934          1.1  christos EventTerm
    935          1.1  christos     : PARSEOP_EVENT '('             {$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);}
    936          1.1  christos         NameString
    937          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));}
    938          1.1  christos     | PARSEOP_EVENT '('
    939          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    940          1.1  christos     ;
    941          1.1  christos 
    942  1.1.1.1.2.2     skrll ExternalTerm
    943  1.1.1.1.2.2     skrll     : PARSEOP_EXTERNAL '('
    944  1.1.1.1.2.2     skrll         NameString
    945  1.1.1.1.2.2     skrll         OptionalObjectTypeKeyword
    946  1.1.1.1.2.2     skrll         OptionalParameterTypePackage
    947  1.1.1.1.2.2     skrll         OptionalParameterTypesPackage
    948  1.1.1.1.2.2     skrll         ')'                         {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
    949  1.1.1.1.2.2     skrll     | PARSEOP_EXTERNAL '('
    950  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    951  1.1.1.1.2.2     skrll     ;
    952  1.1.1.1.2.2     skrll 
    953  1.1.1.1.2.2     skrll FatalTerm
    954  1.1.1.1.2.2     skrll     : PARSEOP_FATAL '('             {$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);}
    955  1.1.1.1.2.2     skrll         ByteConstExpr
    956  1.1.1.1.2.2     skrll         ',' DWordConstExpr
    957  1.1.1.1.2.2     skrll         TermArgItem
    958  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
    959  1.1.1.1.2.2     skrll     | PARSEOP_FATAL '('
    960  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
    961  1.1.1.1.2.2     skrll     ;
    962  1.1.1.1.2.2     skrll 
    963          1.1  christos FieldTerm
    964          1.1  christos     : PARSEOP_FIELD '('             {$<n>$ = TrCreateLeafNode (PARSEOP_FIELD);}
    965          1.1  christos         NameString
    966          1.1  christos         ',' AccessTypeKeyword
    967          1.1  christos         ',' LockRuleKeyword
    968          1.1  christos         ',' UpdateRuleKeyword
    969          1.1  christos         ')' '{'
    970          1.1  christos             FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);}
    971          1.1  christos     | PARSEOP_FIELD '('
    972          1.1  christos         error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
    973          1.1  christos     ;
    974          1.1  christos 
    975  1.1.1.1.2.2     skrll FindSetLeftBitTerm
    976  1.1.1.1.2.2     skrll     : PARSEOP_FINDSETLEFTBIT '('    {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);}
    977  1.1.1.1.2.2     skrll         TermArg
    978  1.1.1.1.2.2     skrll         Target
    979  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    980  1.1.1.1.2.2     skrll     | PARSEOP_FINDSETLEFTBIT '('
    981          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    982          1.1  christos     ;
    983          1.1  christos 
    984  1.1.1.1.2.2     skrll FindSetRightBitTerm
    985  1.1.1.1.2.2     skrll     : PARSEOP_FINDSETRIGHTBIT '('   {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);}
    986  1.1.1.1.2.2     skrll         TermArg
    987  1.1.1.1.2.2     skrll         Target
    988  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
    989  1.1.1.1.2.2     skrll     | PARSEOP_FINDSETRIGHTBIT '('
    990          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
    991          1.1  christos     ;
    992          1.1  christos 
    993  1.1.1.1.2.2     skrll FprintfTerm
    994  1.1.1.1.2.2     skrll     : PARSEOP_FPRINTF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_FPRINTF);}
    995  1.1.1.1.2.2     skrll         TermArg ','
    996  1.1.1.1.2.2     skrll         StringData
    997  1.1.1.1.2.2     skrll         PrintfArgList
    998  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);}
    999  1.1.1.1.2.2     skrll     | PARSEOP_FPRINTF '('
   1000          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1001          1.1  christos     ;
   1002          1.1  christos 
   1003  1.1.1.1.2.2     skrll FromBCDTerm
   1004  1.1.1.1.2.2     skrll     : PARSEOP_FROMBCD '('           {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);}
   1005  1.1.1.1.2.2     skrll         TermArg
   1006  1.1.1.1.2.2     skrll         Target
   1007  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1008  1.1.1.1.2.2     skrll     | PARSEOP_FROMBCD '('
   1009          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1010          1.1  christos     ;
   1011          1.1  christos 
   1012  1.1.1.1.2.2     skrll FunctionTerm
   1013  1.1.1.1.2.2     skrll     : PARSEOP_FUNCTION '('          {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
   1014          1.1  christos         NameString
   1015  1.1.1.1.2.2     skrll         OptionalParameterTypePackage
   1016  1.1.1.1.2.2     skrll         OptionalParameterTypesPackage
   1017          1.1  christos         ')' '{'
   1018  1.1.1.1.2.2     skrll             TermList '}'            {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),
   1019  1.1.1.1.2.2     skrll                                         TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),
   1020  1.1.1.1.2.2     skrll                                         TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL),
   1021  1.1.1.1.2.2     skrll                                         TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);}
   1022  1.1.1.1.2.2     skrll     | PARSEOP_FUNCTION '('
   1023          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1024          1.1  christos     ;
   1025          1.1  christos 
   1026  1.1.1.1.2.2     skrll IfTerm
   1027  1.1.1.1.2.2     skrll     : PARSEOP_IF '('                {$<n>$ = TrCreateLeafNode (PARSEOP_IF);}
   1028  1.1.1.1.2.2     skrll         TermArg
   1029          1.1  christos         ')' '{'
   1030  1.1.1.1.2.2     skrll             TermList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
   1031          1.1  christos 
   1032  1.1.1.1.2.2     skrll     | PARSEOP_IF '('
   1033          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1034          1.1  christos     ;
   1035          1.1  christos 
   1036  1.1.1.1.2.2     skrll IncludeTerm
   1037  1.1.1.1.2.2     skrll     : PARSEOP_INCLUDE '('
   1038  1.1.1.1.2.2     skrll         String  ')'                 {$$ = TrUpdateNode (PARSEOP_INCLUDE, $3);
   1039  1.1.1.1.2.2     skrll                                         FlOpenIncludeFile ($3);}
   1040  1.1.1.1.2.2     skrll     ;
   1041          1.1  christos 
   1042  1.1.1.1.2.2     skrll IncludeEndTerm
   1043  1.1.1.1.2.2     skrll     : PARSEOP_INCLUDE_END           {$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE_END); TrSetCurrentFilename ($$);}
   1044  1.1.1.1.2.2     skrll     ;
   1045          1.1  christos 
   1046  1.1.1.1.2.2     skrll IncTerm
   1047  1.1.1.1.2.2     skrll     : PARSEOP_INCREMENT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);}
   1048  1.1.1.1.2.2     skrll         SuperName
   1049  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1050  1.1.1.1.2.2     skrll     | PARSEOP_INCREMENT '('
   1051  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1052  1.1.1.1.2.2     skrll     ;
   1053          1.1  christos 
   1054  1.1.1.1.2.2     skrll IndexFieldTerm
   1055  1.1.1.1.2.2     skrll     : PARSEOP_INDEXFIELD '('        {$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);}
   1056          1.1  christos         NameString
   1057          1.1  christos         NameStringItem
   1058  1.1.1.1.2.2     skrll         ',' AccessTypeKeyword
   1059  1.1.1.1.2.2     skrll         ',' LockRuleKeyword
   1060  1.1.1.1.2.2     skrll         ',' UpdateRuleKeyword
   1061  1.1.1.1.2.2     skrll         ')' '{'
   1062  1.1.1.1.2.2     skrll             FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);}
   1063  1.1.1.1.2.2     skrll     | PARSEOP_INDEXFIELD '('
   1064  1.1.1.1.2.2     skrll         error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}
   1065          1.1  christos     ;
   1066          1.1  christos 
   1067  1.1.1.1.2.2     skrll IndexTerm
   1068  1.1.1.1.2.2     skrll     : PARSEOP_INDEX '('             {$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);}
   1069  1.1.1.1.2.2     skrll         TermArg
   1070  1.1.1.1.2.2     skrll         TermArgItem
   1071  1.1.1.1.2.2     skrll         Target
   1072  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1073  1.1.1.1.2.2     skrll     | PARSEOP_INDEX '('
   1074          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1075          1.1  christos     ;
   1076          1.1  christos 
   1077  1.1.1.1.2.2     skrll LAndTerm
   1078  1.1.1.1.2.2     skrll     : PARSEOP_LAND '('              {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);}
   1079  1.1.1.1.2.2     skrll         TermArg
   1080  1.1.1.1.2.2     skrll         TermArgItem
   1081  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1082  1.1.1.1.2.2     skrll     | PARSEOP_LAND '('
   1083          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1084          1.1  christos     ;
   1085          1.1  christos 
   1086  1.1.1.1.2.2     skrll LEqualTerm
   1087  1.1.1.1.2.2     skrll     : PARSEOP_LEQUAL '('            {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
   1088  1.1.1.1.2.2     skrll         TermArg
   1089  1.1.1.1.2.2     skrll         TermArgItem
   1090  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1091  1.1.1.1.2.2     skrll     | PARSEOP_LEQUAL '('
   1092  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1093          1.1  christos     ;
   1094          1.1  christos 
   1095  1.1.1.1.2.2     skrll LGreaterEqualTerm
   1096  1.1.1.1.2.2     skrll     : PARSEOP_LGREATEREQUAL '('     {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
   1097  1.1.1.1.2.2     skrll         TermArg
   1098  1.1.1.1.2.2     skrll         TermArgItem
   1099  1.1.1.1.2.2     skrll         ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
   1100  1.1.1.1.2.2     skrll     | PARSEOP_LGREATEREQUAL '('
   1101  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1102          1.1  christos     ;
   1103          1.1  christos 
   1104  1.1.1.1.2.2     skrll LGreaterTerm
   1105  1.1.1.1.2.2     skrll     : PARSEOP_LGREATER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
   1106  1.1.1.1.2.2     skrll         TermArg
   1107  1.1.1.1.2.2     skrll         TermArgItem
   1108  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1109  1.1.1.1.2.2     skrll     | PARSEOP_LGREATER '('
   1110  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1111          1.1  christos     ;
   1112          1.1  christos 
   1113  1.1.1.1.2.2     skrll LLessEqualTerm
   1114  1.1.1.1.2.2     skrll     : PARSEOP_LLESSEQUAL '('        {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);}
   1115  1.1.1.1.2.2     skrll         TermArg
   1116          1.1  christos         TermArgItem
   1117  1.1.1.1.2.2     skrll         ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
   1118  1.1.1.1.2.2     skrll     | PARSEOP_LLESSEQUAL '('
   1119          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1120          1.1  christos     ;
   1121          1.1  christos 
   1122  1.1.1.1.2.2     skrll LLessTerm
   1123  1.1.1.1.2.2     skrll     : PARSEOP_LLESS '('             {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);}
   1124  1.1.1.1.2.2     skrll         TermArg
   1125  1.1.1.1.2.2     skrll         TermArgItem
   1126  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1127  1.1.1.1.2.2     skrll     | PARSEOP_LLESS '('
   1128  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1129          1.1  christos     ;
   1130          1.1  christos 
   1131  1.1.1.1.2.2     skrll LNotEqualTerm
   1132  1.1.1.1.2.2     skrll     : PARSEOP_LNOTEQUAL '('         {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);}
   1133          1.1  christos         TermArg
   1134  1.1.1.1.2.2     skrll         TermArgItem
   1135  1.1.1.1.2.2     skrll         ')'                         {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));}
   1136  1.1.1.1.2.2     skrll     | PARSEOP_LNOTEQUAL '('
   1137          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1138          1.1  christos     ;
   1139          1.1  christos 
   1140  1.1.1.1.2.2     skrll LNotTerm
   1141  1.1.1.1.2.2     skrll     : PARSEOP_LNOT '('              {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);}
   1142  1.1.1.1.2.2     skrll         TermArg
   1143  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1144  1.1.1.1.2.2     skrll     | PARSEOP_LNOT '('
   1145          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1146  1.1.1.1.2.2     skrll     ;
   1147          1.1  christos 
   1148  1.1.1.1.2.2     skrll LoadTableTerm
   1149  1.1.1.1.2.2     skrll     : PARSEOP_LOADTABLE '('         {$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);}
   1150  1.1.1.1.2.2     skrll         TermArg
   1151  1.1.1.1.2.2     skrll         TermArgItem
   1152  1.1.1.1.2.2     skrll         TermArgItem
   1153  1.1.1.1.2.2     skrll         OptionalListString
   1154  1.1.1.1.2.2     skrll         OptionalListString
   1155  1.1.1.1.2.2     skrll         OptionalReference
   1156  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
   1157  1.1.1.1.2.2     skrll     | PARSEOP_LOADTABLE '('
   1158  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1159          1.1  christos     ;
   1160          1.1  christos 
   1161          1.1  christos LoadTerm
   1162          1.1  christos     : PARSEOP_LOAD '('              {$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);}
   1163          1.1  christos         NameString
   1164          1.1  christos         RequiredTarget
   1165          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1166          1.1  christos     | PARSEOP_LOAD '('
   1167          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1168          1.1  christos     ;
   1169          1.1  christos 
   1170  1.1.1.1.2.2     skrll LocalTerm
   1171  1.1.1.1.2.2     skrll     : PARSEOP_LOCAL0                {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);}
   1172  1.1.1.1.2.2     skrll     | PARSEOP_LOCAL1                {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);}
   1173  1.1.1.1.2.2     skrll     | PARSEOP_LOCAL2                {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);}
   1174  1.1.1.1.2.2     skrll     | PARSEOP_LOCAL3                {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);}
   1175  1.1.1.1.2.2     skrll     | PARSEOP_LOCAL4                {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);}
   1176  1.1.1.1.2.2     skrll     | PARSEOP_LOCAL5                {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);}
   1177  1.1.1.1.2.2     skrll     | PARSEOP_LOCAL6                {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);}
   1178  1.1.1.1.2.2     skrll     | PARSEOP_LOCAL7                {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);}
   1179          1.1  christos     ;
   1180          1.1  christos 
   1181  1.1.1.1.2.2     skrll LOrTerm
   1182  1.1.1.1.2.2     skrll     : PARSEOP_LOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);}
   1183  1.1.1.1.2.2     skrll         TermArg
   1184          1.1  christos         TermArgItem
   1185          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1186  1.1.1.1.2.2     skrll     | PARSEOP_LOR '('
   1187          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1188          1.1  christos     ;
   1189          1.1  christos 
   1190  1.1.1.1.2.2     skrll MatchTerm
   1191  1.1.1.1.2.2     skrll     : PARSEOP_MATCH '('             {$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);}
   1192          1.1  christos         TermArg
   1193  1.1.1.1.2.2     skrll         ',' MatchOpKeyword
   1194  1.1.1.1.2.2     skrll         TermArgItem
   1195  1.1.1.1.2.2     skrll         ',' MatchOpKeyword
   1196  1.1.1.1.2.2     skrll         TermArgItem
   1197  1.1.1.1.2.2     skrll         TermArgItem
   1198  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
   1199  1.1.1.1.2.2     skrll     | PARSEOP_MATCH '('
   1200          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1201          1.1  christos     ;
   1202          1.1  christos 
   1203  1.1.1.1.2.2     skrll MethodTerm
   1204  1.1.1.1.2.2     skrll     : PARSEOP_METHOD  '('           {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);}
   1205  1.1.1.1.2.2     skrll         NameString
   1206  1.1.1.1.2.2     skrll         OptionalByteConstExpr       {UtCheckIntegerRange ($5, 0, 7);}
   1207  1.1.1.1.2.2     skrll         OptionalSerializeRuleKeyword
   1208  1.1.1.1.2.2     skrll         OptionalByteConstExpr
   1209  1.1.1.1.2.2     skrll         OptionalParameterTypePackage
   1210  1.1.1.1.2.2     skrll         OptionalParameterTypesPackage
   1211          1.1  christos         ')' '{'
   1212  1.1.1.1.2.2     skrll             TermList '}'            {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);}
   1213  1.1.1.1.2.2     skrll     | PARSEOP_METHOD '('
   1214          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1215          1.1  christos     ;
   1216          1.1  christos 
   1217  1.1.1.1.2.2     skrll MidTerm
   1218  1.1.1.1.2.2     skrll     : PARSEOP_MID '('               {$<n>$ = TrCreateLeafNode (PARSEOP_MID);}
   1219          1.1  christos         TermArg
   1220          1.1  christos         TermArgItem
   1221          1.1  christos         TermArgItem
   1222          1.1  christos         Target
   1223  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);}
   1224  1.1.1.1.2.2     skrll     | PARSEOP_MID '('
   1225          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1226          1.1  christos     ;
   1227          1.1  christos 
   1228  1.1.1.1.2.2     skrll ModTerm
   1229  1.1.1.1.2.2     skrll     : PARSEOP_MOD '('               {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);}
   1230          1.1  christos         TermArg
   1231          1.1  christos         TermArgItem
   1232          1.1  christos         Target
   1233          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1234  1.1.1.1.2.2     skrll     | PARSEOP_MOD '('
   1235          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1236          1.1  christos     ;
   1237          1.1  christos 
   1238  1.1.1.1.2.2     skrll MultiplyTerm
   1239  1.1.1.1.2.2     skrll     : PARSEOP_MULTIPLY '('          {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);}
   1240          1.1  christos         TermArg
   1241          1.1  christos         TermArgItem
   1242          1.1  christos         Target
   1243          1.1  christos         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1244  1.1.1.1.2.2     skrll     | PARSEOP_MULTIPLY '('
   1245          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1246          1.1  christos     ;
   1247          1.1  christos 
   1248  1.1.1.1.2.2     skrll MutexTerm
   1249  1.1.1.1.2.2     skrll     : PARSEOP_MUTEX '('             {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);}
   1250  1.1.1.1.2.2     skrll         NameString
   1251  1.1.1.1.2.2     skrll         ',' ByteConstExpr
   1252  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
   1253  1.1.1.1.2.2     skrll     | PARSEOP_MUTEX '('
   1254          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1255          1.1  christos     ;
   1256          1.1  christos 
   1257  1.1.1.1.2.2     skrll NameTerm
   1258  1.1.1.1.2.2     skrll     : PARSEOP_NAME '('              {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);}
   1259  1.1.1.1.2.2     skrll         NameString
   1260  1.1.1.1.2.2     skrll         ',' DataObject
   1261  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);}
   1262  1.1.1.1.2.2     skrll     | PARSEOP_NAME '('
   1263          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1264          1.1  christos     ;
   1265          1.1  christos 
   1266  1.1.1.1.2.2     skrll NAndTerm
   1267  1.1.1.1.2.2     skrll     : PARSEOP_NAND '('              {$<n>$ = TrCreateLeafNode (PARSEOP_NAND);}
   1268          1.1  christos         TermArg
   1269          1.1  christos         TermArgItem
   1270          1.1  christos         Target
   1271  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1272  1.1.1.1.2.2     skrll     | PARSEOP_NAND '('
   1273          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1274          1.1  christos     ;
   1275          1.1  christos 
   1276  1.1.1.1.2.2     skrll NoOpTerm
   1277  1.1.1.1.2.2     skrll     : PARSEOP_NOOP                  {$$ = TrCreateNode (PARSEOP_NOOP, 0);}
   1278          1.1  christos     ;
   1279          1.1  christos 
   1280  1.1.1.1.2.2     skrll NOrTerm
   1281  1.1.1.1.2.2     skrll     : PARSEOP_NOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_NOR);}
   1282          1.1  christos         TermArg
   1283  1.1.1.1.2.2     skrll         TermArgItem
   1284          1.1  christos         Target
   1285  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1286  1.1.1.1.2.2     skrll     | PARSEOP_NOR '('
   1287          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1288          1.1  christos     ;
   1289          1.1  christos 
   1290  1.1.1.1.2.2     skrll NotifyTerm
   1291  1.1.1.1.2.2     skrll     : PARSEOP_NOTIFY '('            {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);}
   1292          1.1  christos         SuperName
   1293          1.1  christos         TermArgItem
   1294  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1295  1.1.1.1.2.2     skrll     | PARSEOP_NOTIFY '('
   1296  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1297          1.1  christos     ;
   1298          1.1  christos 
   1299  1.1.1.1.2.2     skrll NotTerm
   1300  1.1.1.1.2.2     skrll     : PARSEOP_NOT '('               {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);}
   1301  1.1.1.1.2.2     skrll         TermArg
   1302  1.1.1.1.2.2     skrll         Target
   1303  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1304  1.1.1.1.2.2     skrll     | PARSEOP_NOT '('
   1305          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1306          1.1  christos     ;
   1307          1.1  christos 
   1308  1.1.1.1.2.2     skrll ObjectTypeTerm
   1309  1.1.1.1.2.2     skrll     : PARSEOP_OBJECTTYPE '('        {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);}
   1310  1.1.1.1.2.2     skrll         ObjectTypeName
   1311  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1312  1.1.1.1.2.2     skrll     | PARSEOP_OBJECTTYPE '('
   1313  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1314          1.1  christos     ;
   1315          1.1  christos 
   1316  1.1.1.1.2.2     skrll OffsetTerm
   1317  1.1.1.1.2.2     skrll     : PARSEOP_OFFSET '('
   1318  1.1.1.1.2.2     skrll         AmlPackageLengthTerm
   1319  1.1.1.1.2.2     skrll         ')'                         {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}
   1320  1.1.1.1.2.2     skrll     | PARSEOP_OFFSET '('
   1321  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1322          1.1  christos     ;
   1323          1.1  christos 
   1324  1.1.1.1.2.2     skrll OpRegionTerm
   1325  1.1.1.1.2.2     skrll     : PARSEOP_OPERATIONREGION '('   {$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);}
   1326  1.1.1.1.2.2     skrll         NameString
   1327  1.1.1.1.2.2     skrll         ',' OpRegionSpaceIdTerm
   1328  1.1.1.1.2.2     skrll         TermArgItem
   1329  1.1.1.1.2.2     skrll         TermArgItem
   1330  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);}
   1331  1.1.1.1.2.2     skrll     | PARSEOP_OPERATIONREGION '('
   1332          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1333          1.1  christos     ;
   1334          1.1  christos 
   1335  1.1.1.1.2.2     skrll OpRegionSpaceIdTerm
   1336  1.1.1.1.2.2     skrll     : RegionSpaceKeyword            {}
   1337  1.1.1.1.2.2     skrll     | ByteConst                     {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
   1338  1.1.1.1.2.2     skrll     ;
   1339  1.1.1.1.2.2     skrll 
   1340  1.1.1.1.2.2     skrll OrTerm
   1341  1.1.1.1.2.2     skrll     : PARSEOP_OR '('                {$<n>$ = TrCreateLeafNode (PARSEOP_OR);}
   1342  1.1.1.1.2.2     skrll         TermArg
   1343  1.1.1.1.2.2     skrll         TermArgItem
   1344  1.1.1.1.2.2     skrll         Target
   1345  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1346  1.1.1.1.2.2     skrll     | PARSEOP_OR '('
   1347  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1348          1.1  christos     ;
   1349          1.1  christos 
   1350          1.1  christos PackageTerm
   1351          1.1  christos     : PARSEOP_PACKAGE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);}
   1352          1.1  christos         VarPackageLengthTerm
   1353          1.1  christos         ')' '{'
   1354          1.1  christos             PackageList '}'         {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
   1355          1.1  christos     | PARSEOP_PACKAGE '('
   1356          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1357          1.1  christos     ;
   1358          1.1  christos 
   1359  1.1.1.1.2.2     skrll PowerResTerm
   1360  1.1.1.1.2.2     skrll     : PARSEOP_POWERRESOURCE '('     {$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);}
   1361  1.1.1.1.2.2     skrll         NameString
   1362  1.1.1.1.2.2     skrll         ',' ByteConstExpr
   1363  1.1.1.1.2.2     skrll         ',' WordConstExpr
   1364  1.1.1.1.2.2     skrll         ')' '{'
   1365  1.1.1.1.2.2     skrll             ObjectList '}'          {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);}
   1366  1.1.1.1.2.2     skrll     | PARSEOP_POWERRESOURCE '('
   1367          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1368          1.1  christos     ;
   1369          1.1  christos 
   1370  1.1.1.1.2.2     skrll PrintfTerm
   1371  1.1.1.1.2.2     skrll     : PARSEOP_PRINTF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);}
   1372          1.1  christos         StringData
   1373  1.1.1.1.2.2     skrll         PrintfArgList
   1374  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1375  1.1.1.1.2.2     skrll     | PARSEOP_PRINTF '('
   1376          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1377          1.1  christos     ;
   1378          1.1  christos 
   1379  1.1.1.1.2.2     skrll PrintfArgList
   1380          1.1  christos     :                               {$$ = NULL;}
   1381  1.1.1.1.2.2     skrll     | TermArg                       {$$ = $1;}
   1382  1.1.1.1.2.2     skrll     | PrintfArgList ','
   1383  1.1.1.1.2.2     skrll        TermArg                      {$$ = TrLinkPeerNode ($1, $3);}
   1384          1.1  christos     ;
   1385          1.1  christos 
   1386  1.1.1.1.2.2     skrll ProcessorTerm
   1387  1.1.1.1.2.2     skrll     : PARSEOP_PROCESSOR '('         {$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);}
   1388  1.1.1.1.2.2     skrll         NameString
   1389  1.1.1.1.2.2     skrll         ',' ByteConstExpr
   1390  1.1.1.1.2.2     skrll         OptionalDWordConstExpr
   1391  1.1.1.1.2.2     skrll         OptionalByteConstExpr
   1392          1.1  christos         ')' '{'
   1393  1.1.1.1.2.2     skrll             ObjectList '}'          {$$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);}
   1394  1.1.1.1.2.2     skrll     | PARSEOP_PROCESSOR '('
   1395          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1396          1.1  christos     ;
   1397          1.1  christos 
   1398  1.1.1.1.2.2     skrll RawDataBufferTerm
   1399  1.1.1.1.2.2     skrll     : PARSEOP_DATABUFFER  '('       {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);}
   1400  1.1.1.1.2.2     skrll         OptionalWordConst
   1401  1.1.1.1.2.2     skrll         ')' '{'
   1402  1.1.1.1.2.2     skrll             ByteList '}'            {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
   1403  1.1.1.1.2.2     skrll     | PARSEOP_DATABUFFER '('
   1404          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1405          1.1  christos     ;
   1406          1.1  christos 
   1407  1.1.1.1.2.2     skrll /*
   1408  1.1.1.1.2.2     skrll  * In RefOf, the node isn't really a target, but we can't keep track of it after
   1409  1.1.1.1.2.2     skrll  * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
   1410  1.1.1.1.2.2     skrll  */
   1411  1.1.1.1.2.2     skrll RefOfTerm
   1412  1.1.1.1.2.2     skrll     : PARSEOP_REFOF '('             {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);}
   1413  1.1.1.1.2.2     skrll         SuperName
   1414  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));}
   1415  1.1.1.1.2.2     skrll     | PARSEOP_REFOF '('
   1416          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1417          1.1  christos     ;
   1418          1.1  christos 
   1419  1.1.1.1.2.2     skrll ReleaseTerm
   1420  1.1.1.1.2.2     skrll     : PARSEOP_RELEASE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);}
   1421  1.1.1.1.2.2     skrll         SuperName
   1422  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1423  1.1.1.1.2.2     skrll     | PARSEOP_RELEASE '('
   1424          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1425          1.1  christos     ;
   1426          1.1  christos 
   1427  1.1.1.1.2.2     skrll ResetTerm
   1428  1.1.1.1.2.2     skrll     : PARSEOP_RESET '('             {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);}
   1429  1.1.1.1.2.2     skrll         SuperName
   1430  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1431  1.1.1.1.2.2     skrll     | PARSEOP_RESET '('
   1432          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1433          1.1  christos     ;
   1434          1.1  christos 
   1435  1.1.1.1.2.2     skrll ReturnTerm
   1436  1.1.1.1.2.2     skrll     : PARSEOP_RETURN '('            {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);}
   1437  1.1.1.1.2.2     skrll         OptionalReturnArg
   1438  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1439  1.1.1.1.2.2     skrll     | PARSEOP_RETURN                {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN));}
   1440  1.1.1.1.2.2     skrll     | PARSEOP_RETURN '('
   1441          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1442          1.1  christos     ;
   1443          1.1  christos 
   1444  1.1.1.1.2.2     skrll ScopeTerm
   1445  1.1.1.1.2.2     skrll     : PARSEOP_SCOPE '('             {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);}
   1446  1.1.1.1.2.2     skrll         NameString
   1447          1.1  christos         ')' '{'
   1448  1.1.1.1.2.2     skrll             ObjectList '}'          {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
   1449  1.1.1.1.2.2     skrll     | PARSEOP_SCOPE '('
   1450          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1451          1.1  christos     ;
   1452          1.1  christos 
   1453  1.1.1.1.2.2     skrll ShiftLeftTerm
   1454  1.1.1.1.2.2     skrll     : PARSEOP_SHIFTLEFT '('         {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);}
   1455  1.1.1.1.2.2     skrll         TermArg
   1456  1.1.1.1.2.2     skrll         TermArgItem
   1457  1.1.1.1.2.2     skrll         Target
   1458  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1459  1.1.1.1.2.2     skrll     | PARSEOP_SHIFTLEFT '('
   1460          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1461          1.1  christos     ;
   1462          1.1  christos 
   1463  1.1.1.1.2.2     skrll ShiftRightTerm
   1464  1.1.1.1.2.2     skrll     : PARSEOP_SHIFTRIGHT '('        {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);}
   1465  1.1.1.1.2.2     skrll         TermArg
   1466  1.1.1.1.2.2     skrll         TermArgItem
   1467  1.1.1.1.2.2     skrll         Target
   1468  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1469  1.1.1.1.2.2     skrll     | PARSEOP_SHIFTRIGHT '('
   1470          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1471          1.1  christos     ;
   1472          1.1  christos 
   1473  1.1.1.1.2.2     skrll SignalTerm
   1474  1.1.1.1.2.2     skrll     : PARSEOP_SIGNAL '('            {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);}
   1475  1.1.1.1.2.2     skrll         SuperName
   1476  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1477  1.1.1.1.2.2     skrll     | PARSEOP_SIGNAL '('
   1478          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1479          1.1  christos     ;
   1480          1.1  christos 
   1481  1.1.1.1.2.2     skrll SizeOfTerm
   1482  1.1.1.1.2.2     skrll     : PARSEOP_SIZEOF '('            {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);}
   1483  1.1.1.1.2.2     skrll         SuperName
   1484  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1485  1.1.1.1.2.2     skrll     | PARSEOP_SIZEOF '('
   1486          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1487          1.1  christos     ;
   1488          1.1  christos 
   1489  1.1.1.1.2.2     skrll SleepTerm
   1490  1.1.1.1.2.2     skrll     : PARSEOP_SLEEP '('             {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);}
   1491  1.1.1.1.2.2     skrll         TermArg
   1492  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1493  1.1.1.1.2.2     skrll     | PARSEOP_SLEEP '('
   1494          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1495          1.1  christos     ;
   1496          1.1  christos 
   1497  1.1.1.1.2.2     skrll StallTerm
   1498  1.1.1.1.2.2     skrll     : PARSEOP_STALL '('             {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);}
   1499  1.1.1.1.2.2     skrll         TermArg
   1500  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1501  1.1.1.1.2.2     skrll     | PARSEOP_STALL '('
   1502          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1503          1.1  christos     ;
   1504          1.1  christos 
   1505  1.1.1.1.2.2     skrll StoreTerm
   1506  1.1.1.1.2.2     skrll     : PARSEOP_STORE '('             {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);}
   1507  1.1.1.1.2.2     skrll         TermArg
   1508  1.1.1.1.2.2     skrll         ',' SuperName
   1509  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));}
   1510  1.1.1.1.2.2     skrll     | PARSEOP_STORE '('
   1511          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1512          1.1  christos     ;
   1513          1.1  christos 
   1514  1.1.1.1.2.2     skrll SubtractTerm
   1515  1.1.1.1.2.2     skrll     : PARSEOP_SUBTRACT '('          {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);}
   1516  1.1.1.1.2.2     skrll         TermArg
   1517  1.1.1.1.2.2     skrll         TermArgItem
   1518  1.1.1.1.2.2     skrll         Target
   1519  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1520  1.1.1.1.2.2     skrll     | PARSEOP_SUBTRACT '('
   1521  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1522  1.1.1.1.2.2     skrll     ;
   1523  1.1.1.1.2.2     skrll SwitchTerm
   1524  1.1.1.1.2.2     skrll     : PARSEOP_SWITCH '('            {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);}
   1525  1.1.1.1.2.2     skrll         TermArg
   1526  1.1.1.1.2.2     skrll         ')' '{'
   1527  1.1.1.1.2.2     skrll             CaseDefaultTermList '}'
   1528  1.1.1.1.2.2     skrll                                     {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
   1529  1.1.1.1.2.2     skrll     | PARSEOP_SWITCH '('
   1530          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1531          1.1  christos     ;
   1532          1.1  christos 
   1533  1.1.1.1.2.2     skrll ThermalZoneTerm
   1534  1.1.1.1.2.2     skrll     : PARSEOP_THERMALZONE '('       {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);}
   1535  1.1.1.1.2.2     skrll         NameString
   1536  1.1.1.1.2.2     skrll         ')' '{'
   1537  1.1.1.1.2.2     skrll             ObjectList '}'          {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);}
   1538  1.1.1.1.2.2     skrll     | PARSEOP_THERMALZONE '('
   1539          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1540          1.1  christos     ;
   1541          1.1  christos 
   1542  1.1.1.1.2.2     skrll TimerTerm
   1543  1.1.1.1.2.2     skrll     : PARSEOP_TIMER '('             {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);}
   1544  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,0);}
   1545  1.1.1.1.2.2     skrll     | PARSEOP_TIMER                 {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);}
   1546  1.1.1.1.2.2     skrll     | PARSEOP_TIMER '('
   1547          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1548          1.1  christos     ;
   1549          1.1  christos 
   1550  1.1.1.1.2.2     skrll ToBCDTerm
   1551  1.1.1.1.2.2     skrll     : PARSEOP_TOBCD '('             {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);}
   1552  1.1.1.1.2.2     skrll         TermArg
   1553  1.1.1.1.2.2     skrll         Target
   1554  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1555  1.1.1.1.2.2     skrll     | PARSEOP_TOBCD '('
   1556          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1557          1.1  christos     ;
   1558          1.1  christos 
   1559  1.1.1.1.2.2     skrll ToBufferTerm
   1560  1.1.1.1.2.2     skrll     : PARSEOP_TOBUFFER '('          {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);}
   1561  1.1.1.1.2.2     skrll         TermArg
   1562  1.1.1.1.2.2     skrll         Target
   1563  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1564  1.1.1.1.2.2     skrll     | PARSEOP_TOBUFFER '('
   1565          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1566          1.1  christos     ;
   1567          1.1  christos 
   1568  1.1.1.1.2.2     skrll ToDecimalStringTerm
   1569  1.1.1.1.2.2     skrll     : PARSEOP_TODECIMALSTRING '('   {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);}
   1570  1.1.1.1.2.2     skrll         TermArg
   1571  1.1.1.1.2.2     skrll         Target
   1572  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1573  1.1.1.1.2.2     skrll     | PARSEOP_TODECIMALSTRING '('
   1574          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1575          1.1  christos     ;
   1576          1.1  christos 
   1577  1.1.1.1.2.2     skrll ToHexStringTerm
   1578  1.1.1.1.2.2     skrll     : PARSEOP_TOHEXSTRING '('       {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);}
   1579  1.1.1.1.2.2     skrll         TermArg
   1580  1.1.1.1.2.2     skrll         Target
   1581  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1582  1.1.1.1.2.2     skrll     | PARSEOP_TOHEXSTRING '('
   1583          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1584          1.1  christos     ;
   1585          1.1  christos 
   1586  1.1.1.1.2.2     skrll ToIntegerTerm
   1587  1.1.1.1.2.2     skrll     : PARSEOP_TOINTEGER '('         {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);}
   1588  1.1.1.1.2.2     skrll         TermArg
   1589  1.1.1.1.2.2     skrll         Target
   1590  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1591  1.1.1.1.2.2     skrll     | PARSEOP_TOINTEGER '('
   1592          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1593          1.1  christos     ;
   1594          1.1  christos 
   1595  1.1.1.1.2.2     skrll ToPLDTerm
   1596  1.1.1.1.2.2     skrll     : PARSEOP_TOPLD '('             {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);}
   1597  1.1.1.1.2.2     skrll         PldKeywordList
   1598  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1599  1.1.1.1.2.2     skrll     | PARSEOP_TOPLD '('
   1600          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1601          1.1  christos     ;
   1602          1.1  christos 
   1603  1.1.1.1.2.2     skrll PldKeywordList
   1604  1.1.1.1.2.2     skrll     :                               {$$ = NULL;}
   1605  1.1.1.1.2.2     skrll     | PldKeyword
   1606  1.1.1.1.2.2     skrll         PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkChildren ($1,1,$3);}
   1607  1.1.1.1.2.2     skrll     | PldKeyword
   1608  1.1.1.1.2.2     skrll         PARSEOP_EXP_EQUALS String   {$$ = TrLinkChildren ($1,1,$3);}
   1609  1.1.1.1.2.2     skrll     | PldKeywordList ','            /* Allows a trailing comma at list end */
   1610  1.1.1.1.2.2     skrll     | PldKeywordList ','
   1611  1.1.1.1.2.2     skrll         PldKeyword
   1612  1.1.1.1.2.2     skrll         PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
   1613  1.1.1.1.2.2     skrll     | PldKeywordList ','
   1614  1.1.1.1.2.2     skrll         PldKeyword
   1615  1.1.1.1.2.2     skrll         PARSEOP_EXP_EQUALS String   {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));}
   1616          1.1  christos     ;
   1617          1.1  christos 
   1618  1.1.1.1.2.2     skrll 
   1619  1.1.1.1.2.2     skrll ToStringTerm
   1620  1.1.1.1.2.2     skrll     : PARSEOP_TOSTRING '('          {$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);}
   1621  1.1.1.1.2.2     skrll         TermArg
   1622  1.1.1.1.2.2     skrll         OptionalCount
   1623  1.1.1.1.2.2     skrll         Target
   1624  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1625  1.1.1.1.2.2     skrll     | PARSEOP_TOSTRING '('
   1626          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1627          1.1  christos     ;
   1628          1.1  christos 
   1629  1.1.1.1.2.2     skrll ToUUIDTerm
   1630  1.1.1.1.2.2     skrll     : PARSEOP_TOUUID '('
   1631  1.1.1.1.2.2     skrll         StringData ')'              {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);}
   1632  1.1.1.1.2.2     skrll     | PARSEOP_TOUUID '('
   1633          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1634          1.1  christos     ;
   1635          1.1  christos 
   1636  1.1.1.1.2.2     skrll UnicodeTerm
   1637  1.1.1.1.2.2     skrll     : PARSEOP_UNICODE '('           {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);}
   1638  1.1.1.1.2.2     skrll         StringData
   1639  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,0,$4);}
   1640  1.1.1.1.2.2     skrll     | PARSEOP_UNICODE '('
   1641          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1642          1.1  christos     ;
   1643          1.1  christos 
   1644  1.1.1.1.2.2     skrll UnloadTerm
   1645  1.1.1.1.2.2     skrll     : PARSEOP_UNLOAD '('            {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);}
   1646  1.1.1.1.2.2     skrll         SuperName
   1647  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,1,$4);}
   1648  1.1.1.1.2.2     skrll     | PARSEOP_UNLOAD '('
   1649          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1650          1.1  christos     ;
   1651          1.1  christos 
   1652  1.1.1.1.2.2     skrll WaitTerm
   1653  1.1.1.1.2.2     skrll     : PARSEOP_WAIT '('              {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);}
   1654  1.1.1.1.2.2     skrll         SuperName
   1655  1.1.1.1.2.2     skrll         TermArgItem
   1656  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,2,$4,$5);}
   1657  1.1.1.1.2.2     skrll     | PARSEOP_WAIT '('
   1658          1.1  christos         error ')'                   {$$ = AslDoError(); yyclearin;}
   1659          1.1  christos     ;
   1660          1.1  christos 
   1661  1.1.1.1.2.2     skrll XOrTerm
   1662  1.1.1.1.2.2     skrll     : PARSEOP_XOR '('               {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);}
   1663  1.1.1.1.2.2     skrll         TermArg
   1664  1.1.1.1.2.2     skrll         TermArgItem
   1665  1.1.1.1.2.2     skrll         Target
   1666  1.1.1.1.2.2     skrll         ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);}
   1667  1.1.1.1.2.2     skrll     | PARSEOP_XOR '('
   1668  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1669          1.1  christos     ;
   1670          1.1  christos 
   1671  1.1.1.1.2.2     skrll WhileTerm
   1672  1.1.1.1.2.2     skrll     : PARSEOP_WHILE '('             {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);}
   1673  1.1.1.1.2.2     skrll         TermArg
   1674  1.1.1.1.2.2     skrll         ')' '{' TermList '}'
   1675  1.1.1.1.2.2     skrll                                     {$$ = TrLinkChildren ($<n>3,2,$4,$7);}
   1676  1.1.1.1.2.2     skrll     | PARSEOP_WHILE '('
   1677  1.1.1.1.2.2     skrll         error ')'                   {$$ = AslDoError(); yyclearin;}
   1678          1.1  christos     ;
   1679          1.1  christos 
   1680          1.1  christos 
   1681  1.1.1.1.2.2     skrll /*******************************************************************************
   1682  1.1.1.1.2.2     skrll  *
   1683  1.1.1.1.2.2     skrll  * ASL Helper Terms
   1684  1.1.1.1.2.2     skrll  *
   1685  1.1.1.1.2.2     skrll  ******************************************************************************/
   1686          1.1  christos 
   1687          1.1  christos AmlPackageLengthTerm
   1688          1.1  christos     : Integer                       {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);}
   1689          1.1  christos     ;
   1690          1.1  christos 
   1691          1.1  christos NameStringItem
   1692          1.1  christos     : ',' NameString                {$$ = $2;}
   1693          1.1  christos     | ',' error                     {$$ = AslDoError (); yyclearin;}
   1694          1.1  christos     ;
   1695          1.1  christos 
   1696          1.1  christos TermArgItem
   1697          1.1  christos     : ',' TermArg                   {$$ = $2;}
   1698          1.1  christos     | ',' error                     {$$ = AslDoError (); yyclearin;}
   1699          1.1  christos     ;
   1700          1.1  christos 
   1701          1.1  christos OptionalReference
   1702          1.1  christos     :                               {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
   1703          1.1  christos     | ','                           {$$ = TrCreateLeafNode (PARSEOP_ZERO);}       /* Placeholder is a ZeroOp object */
   1704          1.1  christos     | ',' TermArg                   {$$ = $2;}
   1705          1.1  christos     ;
   1706          1.1  christos 
   1707          1.1  christos OptionalReturnArg
   1708          1.1  christos     :                               {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN);}       /* Placeholder is a ZeroOp object */
   1709          1.1  christos     | TermArg                       {$$ = $1;}
   1710          1.1  christos     ;
   1711          1.1  christos 
   1712          1.1  christos OptionalSerializeRuleKeyword
   1713          1.1  christos     :                               {$$ = NULL;}
   1714          1.1  christos     | ','                           {$$ = NULL;}
   1715          1.1  christos     | ',' SerializeRuleKeyword      {$$ = $2;}
   1716          1.1  christos     ;
   1717          1.1  christos 
   1718          1.1  christos OptionalTermArg
   1719          1.1  christos     :                               {$$ = NULL;}
   1720          1.1  christos     | TermArg                       {$$ = $1;}
   1721          1.1  christos     ;
   1722          1.1  christos 
   1723          1.1  christos OptionalWordConst
   1724          1.1  christos     :                               {$$ = NULL;}
   1725          1.1  christos     | WordConst                     {$$ = $1;}
   1726          1.1  christos     ;
   1727