Home | History | Annotate | Line # | Download | only in compiler
      1       1.1  christos NoEcho('
      2       1.1  christos /******************************************************************************
      3       1.1  christos  *
      4       1.1  christos  * Module Name: aslprimaries.y - Rules for primary ASL operators
      5   1.1.1.3  christos  *                             - Keep this file synched with the
      6   1.1.1.3  christos  *                               CvParseOpBlockType function in cvcompiler.c
      7       1.1  christos  *
      8       1.1  christos  *****************************************************************************/
      9       1.1  christos 
     10  1.1.1.13  christos /******************************************************************************
     11  1.1.1.13  christos  *
     12  1.1.1.13  christos  * 1. Copyright Notice
     13  1.1.1.13  christos  *
     14  1.1.1.14  christos  * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp.
     15       1.1  christos  * All rights reserved.
     16       1.1  christos  *
     17  1.1.1.13  christos  * 2. License
     18  1.1.1.13  christos  *
     19  1.1.1.13  christos  * 2.1. This is your license from Intel Corp. under its intellectual property
     20  1.1.1.13  christos  * rights. You may have additional license terms from the party that provided
     21  1.1.1.13  christos  * you this software, covering your right to use that party's intellectual
     22  1.1.1.13  christos  * property rights.
     23  1.1.1.13  christos  *
     24  1.1.1.13  christos  * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a
     25  1.1.1.13  christos  * copy of the source code appearing in this file ("Covered Code") an
     26  1.1.1.13  christos  * irrevocable, perpetual, worldwide license under Intel's copyrights in the
     27  1.1.1.13  christos  * base code distributed originally by Intel ("Original Intel Code") to copy,
     28  1.1.1.13  christos  * make derivatives, distribute, use and display any portion of the Covered
     29  1.1.1.13  christos  * Code in any form, with the right to sublicense such rights; and
     30  1.1.1.13  christos  *
     31  1.1.1.13  christos  * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent
     32  1.1.1.13  christos  * license (with the right to sublicense), under only those claims of Intel
     33  1.1.1.13  christos  * patents that are infringed by the Original Intel Code, to make, use, sell,
     34  1.1.1.13  christos  * offer to sell, and import the Covered Code and derivative works thereof
     35  1.1.1.13  christos  * solely to the minimum extent necessary to exercise the above copyright
     36  1.1.1.13  christos  * license, and in no event shall the patent license extend to any additions
     37  1.1.1.13  christos  * to or modifications of the Original Intel Code. No other license or right
     38  1.1.1.13  christos  * is granted directly or by implication, estoppel or otherwise;
     39  1.1.1.13  christos  *
     40  1.1.1.13  christos  * The above copyright and patent license is granted only if the following
     41  1.1.1.13  christos  * conditions are met:
     42  1.1.1.13  christos  *
     43  1.1.1.13  christos  * 3. Conditions
     44  1.1.1.13  christos  *
     45  1.1.1.13  christos  * 3.1. Redistribution of Source with Rights to Further Distribute Source.
     46  1.1.1.13  christos  * Redistribution of source code of any substantial portion of the Covered
     47  1.1.1.13  christos  * Code or modification with rights to further distribute source must include
     48  1.1.1.13  christos  * the above Copyright Notice, the above License, this list of Conditions,
     49  1.1.1.13  christos  * and the following Disclaimer and Export Compliance provision. In addition,
     50  1.1.1.13  christos  * Licensee must cause all Covered Code to which Licensee contributes to
     51  1.1.1.13  christos  * contain a file documenting the changes Licensee made to create that Covered
     52  1.1.1.13  christos  * Code and the date of any change. Licensee must include in that file the
     53  1.1.1.13  christos  * documentation of any changes made by any predecessor Licensee. Licensee
     54  1.1.1.13  christos  * must include a prominent statement that the modification is derived,
     55  1.1.1.13  christos  * directly or indirectly, from Original Intel Code.
     56  1.1.1.13  christos  *
     57  1.1.1.13  christos  * 3.2. Redistribution of Source with no Rights to Further Distribute Source.
     58  1.1.1.13  christos  * Redistribution of source code of any substantial portion of the Covered
     59  1.1.1.13  christos  * Code or modification without rights to further distribute source must
     60  1.1.1.13  christos  * include the following Disclaimer and Export Compliance provision in the
     61  1.1.1.13  christos  * documentation and/or other materials provided with distribution. In
     62  1.1.1.13  christos  * addition, Licensee may not authorize further sublicense of source of any
     63  1.1.1.13  christos  * portion of the Covered Code, and must include terms to the effect that the
     64  1.1.1.13  christos  * license from Licensee to its licensee is limited to the intellectual
     65  1.1.1.13  christos  * property embodied in the software Licensee provides to its licensee, and
     66  1.1.1.13  christos  * not to intellectual property embodied in modifications its licensee may
     67  1.1.1.13  christos  * make.
     68  1.1.1.13  christos  *
     69  1.1.1.13  christos  * 3.3. Redistribution of Executable. Redistribution in executable form of any
     70  1.1.1.13  christos  * substantial portion of the Covered Code or modification must reproduce the
     71  1.1.1.13  christos  * above Copyright Notice, and the following Disclaimer and Export Compliance
     72  1.1.1.13  christos  * provision in the documentation and/or other materials provided with the
     73  1.1.1.13  christos  * distribution.
     74  1.1.1.13  christos  *
     75  1.1.1.13  christos  * 3.4. Intel retains all right, title, and interest in and to the Original
     76  1.1.1.13  christos  * Intel Code.
     77  1.1.1.13  christos  *
     78  1.1.1.13  christos  * 3.5. Neither the name Intel nor any other trademark owned or controlled by
     79  1.1.1.13  christos  * Intel shall be used in advertising or otherwise to promote the sale, use or
     80  1.1.1.13  christos  * other dealings in products derived from or relating to the Covered Code
     81  1.1.1.13  christos  * without prior written authorization from Intel.
     82  1.1.1.13  christos  *
     83  1.1.1.13  christos  * 4. Disclaimer and Export Compliance
     84  1.1.1.13  christos  *
     85  1.1.1.13  christos  * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED
     86  1.1.1.13  christos  * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE
     87  1.1.1.13  christos  * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE,
     88  1.1.1.13  christos  * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY
     89  1.1.1.13  christos  * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY
     90  1.1.1.13  christos  * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A
     91  1.1.1.13  christos  * PARTICULAR PURPOSE.
     92  1.1.1.13  christos  *
     93  1.1.1.13  christos  * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES
     94  1.1.1.13  christos  * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR
     95  1.1.1.13  christos  * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT,
     96  1.1.1.13  christos  * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY
     97  1.1.1.13  christos  * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL
     98  1.1.1.13  christos  * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS
     99  1.1.1.13  christos  * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY
    100  1.1.1.13  christos  * LIMITED REMEDY.
    101  1.1.1.13  christos  *
    102  1.1.1.13  christos  * 4.3. Licensee shall not export, either directly or indirectly, any of this
    103  1.1.1.13  christos  * software or system incorporating such software without first obtaining any
    104  1.1.1.13  christos  * required license or other approval from the U. S. Department of Commerce or
    105  1.1.1.13  christos  * any other agency or department of the United States Government. In the
    106  1.1.1.13  christos  * event Licensee exports any such software from the United States or
    107  1.1.1.13  christos  * re-exports any such software from a foreign destination, Licensee shall
    108  1.1.1.13  christos  * ensure that the distribution and export/re-export of the software is in
    109  1.1.1.13  christos  * compliance with all laws, regulations, orders, or other restrictions of the
    110  1.1.1.13  christos  * U.S. Export Administration Regulations. Licensee agrees that neither it nor
    111  1.1.1.13  christos  * any of its subsidiaries will export/re-export any technical data, process,
    112  1.1.1.13  christos  * software, or service, directly or indirectly, to any country for which the
    113  1.1.1.13  christos  * United States government or any agency thereof requires an export license,
    114  1.1.1.13  christos  * other governmental approval, or letter of assurance, without first obtaining
    115  1.1.1.13  christos  * such license, approval or letter.
    116  1.1.1.13  christos  *
    117  1.1.1.13  christos  *****************************************************************************
    118  1.1.1.13  christos  *
    119  1.1.1.13  christos  * Alternatively, you may choose to be licensed under the terms of the
    120  1.1.1.13  christos  * following license:
    121  1.1.1.13  christos  *
    122       1.1  christos  * Redistribution and use in source and binary forms, with or without
    123       1.1  christos  * modification, are permitted provided that the following conditions
    124       1.1  christos  * are met:
    125       1.1  christos  * 1. Redistributions of source code must retain the above copyright
    126       1.1  christos  *    notice, this list of conditions, and the following disclaimer,
    127       1.1  christos  *    without modification.
    128       1.1  christos  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
    129       1.1  christos  *    substantially similar to the "NO WARRANTY" disclaimer below
    130       1.1  christos  *    ("Disclaimer") and any redistribution must be conditioned upon
    131       1.1  christos  *    including a substantially similar Disclaimer requirement for further
    132       1.1  christos  *    binary redistribution.
    133       1.1  christos  * 3. Neither the names of the above-listed copyright holders nor the names
    134       1.1  christos  *    of any contributors may be used to endorse or promote products derived
    135       1.1  christos  *    from this software without specific prior written permission.
    136       1.1  christos  *
    137       1.1  christos  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    138       1.1  christos  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    139  1.1.1.10  christos  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    140       1.1  christos  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    141  1.1.1.13  christos  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    142  1.1.1.13  christos  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    143  1.1.1.13  christos  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    144  1.1.1.13  christos  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    145  1.1.1.13  christos  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    146  1.1.1.13  christos  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    147  1.1.1.13  christos  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    148  1.1.1.13  christos  *
    149  1.1.1.13  christos  * Alternatively, you may choose to be licensed under the terms of the
    150  1.1.1.13  christos  * GNU General Public License ("GPL") version 2 as published by the Free
    151  1.1.1.13  christos  * Software Foundation.
    152  1.1.1.13  christos  *
    153  1.1.1.13  christos  *****************************************************************************/
    154       1.1  christos 
    155       1.1  christos ')
    156       1.1  christos 
    157       1.1  christos 
    158       1.1  christos /*******************************************************************************
    159       1.1  christos  *
    160       1.1  christos  * ASL Primary Terms
    161       1.1  christos  *
    162       1.1  christos  ******************************************************************************/
    163       1.1  christos 
    164       1.1  christos AccessAsTerm
    165   1.1.1.2  christos     : PARSEOP_ACCESSAS
    166   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    167       1.1  christos         AccessTypeKeyword
    168       1.1  christos         OptionalAccessAttribTerm
    169   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_ACCESSAS,2,$3,$4);}
    170   1.1.1.2  christos     | PARSEOP_ACCESSAS
    171   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    172   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    173       1.1  christos     ;
    174       1.1  christos 
    175       1.1  christos AcquireTerm
    176   1.1.1.2  christos     : PARSEOP_ACQUIRE
    177   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp(PARSEOP_ACQUIRE);}
    178       1.1  christos         SuperName
    179       1.1  christos         ',' WordConstExpr
    180   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$6);}
    181   1.1.1.2  christos     | PARSEOP_ACQUIRE
    182   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    183   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    184       1.1  christos     ;
    185       1.1  christos 
    186       1.1  christos AddTerm
    187   1.1.1.2  christos     : PARSEOP_ADD
    188   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_ADD);}
    189       1.1  christos         TermArg
    190       1.1  christos         TermArgItem
    191       1.1  christos         Target
    192   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
    193   1.1.1.2  christos     | PARSEOP_ADD
    194   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    195   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    196       1.1  christos     ;
    197       1.1  christos 
    198       1.1  christos AliasTerm
    199   1.1.1.2  christos     : PARSEOP_ALIAS
    200   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_ALIAS);}
    201       1.1  christos         NameString
    202       1.1  christos         NameStringItem
    203   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,
    204   1.1.1.4  christos                                         TrSetOpFlags ($5, OP_IS_NAME_DECLARATION));}
    205   1.1.1.2  christos     | PARSEOP_ALIAS
    206   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    207   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    208       1.1  christos     ;
    209       1.1  christos 
    210       1.1  christos AndTerm
    211   1.1.1.2  christos     : PARSEOP_AND
    212   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_AND);}
    213       1.1  christos         TermArg
    214       1.1  christos         TermArgItem
    215       1.1  christos         Target
    216   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
    217   1.1.1.2  christos     | PARSEOP_AND
    218   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    219   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    220       1.1  christos     ;
    221       1.1  christos 
    222       1.1  christos ArgTerm
    223   1.1.1.4  christos     : PARSEOP_ARG0                  {$$ = TrCreateLeafOp (PARSEOP_ARG0);}
    224   1.1.1.4  christos     | PARSEOP_ARG1                  {$$ = TrCreateLeafOp (PARSEOP_ARG1);}
    225   1.1.1.4  christos     | PARSEOP_ARG2                  {$$ = TrCreateLeafOp (PARSEOP_ARG2);}
    226   1.1.1.4  christos     | PARSEOP_ARG3                  {$$ = TrCreateLeafOp (PARSEOP_ARG3);}
    227   1.1.1.4  christos     | PARSEOP_ARG4                  {$$ = TrCreateLeafOp (PARSEOP_ARG4);}
    228   1.1.1.4  christos     | PARSEOP_ARG5                  {$$ = TrCreateLeafOp (PARSEOP_ARG5);}
    229   1.1.1.4  christos     | PARSEOP_ARG6                  {$$ = TrCreateLeafOp (PARSEOP_ARG6);}
    230       1.1  christos     ;
    231       1.1  christos 
    232       1.1  christos BankFieldTerm
    233   1.1.1.2  christos     : PARSEOP_BANKFIELD
    234   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_BANKFIELD);}
    235       1.1  christos         NameString
    236       1.1  christos         NameStringItem
    237       1.1  christos         TermArgItem
    238   1.1.1.6  christos         OptionalAccessTypeKeyword
    239   1.1.1.6  christos         OptionalLockRuleKeyword
    240   1.1.1.6  christos         OptionalUpdateRuleKeyword
    241   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
    242   1.1.1.4  christos             FieldUnitList '}'       {$$ = TrLinkOpChildren ($<n>3,7,
    243   1.1.1.6  christos                                         $4,$5,$6,$7,$8,$9,$12);}
    244   1.1.1.2  christos     | PARSEOP_BANKFIELD
    245   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    246   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN
    247   1.1.1.2  christos         '{' error '}'               {$$ = AslDoError(); yyclearin;}
    248       1.1  christos     ;
    249       1.1  christos 
    250       1.1  christos BreakTerm
    251   1.1.1.4  christos     : PARSEOP_BREAK                 {$$ = TrCreateOp (PARSEOP_BREAK, 0);}
    252       1.1  christos     ;
    253       1.1  christos 
    254       1.1  christos BreakPointTerm
    255   1.1.1.4  christos     : PARSEOP_BREAKPOINT            {$$ = TrCreateOp (PARSEOP_BREAKPOINT, 0);}
    256       1.1  christos     ;
    257       1.1  christos 
    258       1.1  christos BufferTerm
    259   1.1.1.4  christos     : PARSEOP_BUFFER                {$<n>$ = TrCreateLeafOp (PARSEOP_BUFFER); COMMENT_CAPTURE_OFF; }
    260       1.1  christos         OptionalDataCount
    261   1.1.1.4  christos         '{' BufferTermData '}'      {$$ = TrLinkOpChildren ($<n>2,2,$3,$5); COMMENT_CAPTURE_ON;}
    262       1.1  christos     ;
    263       1.1  christos 
    264       1.1  christos BufferTermData
    265       1.1  christos     : ByteList                      {}
    266       1.1  christos     | StringData                    {}
    267       1.1  christos     ;
    268       1.1  christos 
    269       1.1  christos CaseTerm
    270   1.1.1.2  christos     : PARSEOP_CASE
    271   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CASE);}
    272       1.1  christos         DataObject
    273   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
    274   1.1.1.4  christos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
    275   1.1.1.2  christos     | PARSEOP_CASE
    276   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    277   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    278       1.1  christos     ;
    279       1.1  christos 
    280       1.1  christos ConcatTerm
    281   1.1.1.2  christos     : PARSEOP_CONCATENATE
    282   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CONCATENATE);}
    283       1.1  christos         TermArg
    284       1.1  christos         TermArgItem
    285       1.1  christos         Target
    286   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
    287   1.1.1.2  christos     | PARSEOP_CONCATENATE
    288   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    289   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    290       1.1  christos     ;
    291       1.1  christos 
    292       1.1  christos ConcatResTerm
    293   1.1.1.2  christos     : PARSEOP_CONCATENATERESTEMPLATE
    294   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (
    295   1.1.1.2  christos                                         PARSEOP_CONCATENATERESTEMPLATE);}
    296       1.1  christos         TermArg
    297       1.1  christos         TermArgItem
    298       1.1  christos         Target
    299   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
    300   1.1.1.2  christos     | PARSEOP_CONCATENATERESTEMPLATE
    301   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    302   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    303   1.1.1.2  christos     ;
    304   1.1.1.2  christos 
    305   1.1.1.2  christos CondRefOfTerm
    306   1.1.1.2  christos     : PARSEOP_CONDREFOF
    307   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CONDREFOF);}
    308   1.1.1.2  christos         CondRefOfSource
    309   1.1.1.2  christos         Target
    310   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
    311   1.1.1.2  christos     | PARSEOP_CONDREFOF
    312   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    313   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    314       1.1  christos     ;
    315       1.1  christos 
    316       1.1  christos ConnectionTerm
    317   1.1.1.2  christos     : PARSEOP_CONNECTION
    318   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    319       1.1  christos         NameString
    320   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_CONNECTION,1,$3);}
    321   1.1.1.2  christos     | PARSEOP_CONNECTION
    322   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CONNECTION);}
    323       1.1  christos         ResourceMacroTerm
    324   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3, 1,
    325   1.1.1.4  christos                                         TrLinkOpChildren (
    326   1.1.1.4  christos                                             TrCreateLeafOp (PARSEOP_RESOURCETEMPLATE), 3,
    327   1.1.1.4  christos                                             TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
    328   1.1.1.4  christos                                             TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
    329       1.1  christos                                             $4));}
    330   1.1.1.2  christos     | PARSEOP_CONNECTION
    331   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    332   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    333       1.1  christos     ;
    334       1.1  christos 
    335       1.1  christos ContinueTerm
    336   1.1.1.4  christos     : PARSEOP_CONTINUE              {$$ = TrCreateOp (PARSEOP_CONTINUE, 0);}
    337       1.1  christos     ;
    338       1.1  christos 
    339       1.1  christos CopyObjectTerm
    340   1.1.1.2  christos     : PARSEOP_COPYOBJECT
    341   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_COPYOBJECT);}
    342       1.1  christos         TermArg
    343   1.1.1.2  christos         ',' SimpleName
    344   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,
    345   1.1.1.4  christos                                         TrSetOpFlags ($6, OP_IS_TARGET));}
    346   1.1.1.2  christos     | PARSEOP_COPYOBJECT
    347   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    348   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    349       1.1  christos     ;
    350       1.1  christos 
    351       1.1  christos CreateBitFieldTerm
    352   1.1.1.2  christos     : PARSEOP_CREATEBITFIELD
    353   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEBITFIELD);}
    354       1.1  christos         TermArg
    355       1.1  christos         TermArgItem
    356       1.1  christos         NameStringItem
    357   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
    358   1.1.1.4  christos                                         TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
    359   1.1.1.2  christos     | PARSEOP_CREATEBITFIELD
    360   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    361   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    362       1.1  christos     ;
    363       1.1  christos 
    364       1.1  christos CreateByteFieldTerm
    365   1.1.1.2  christos     : PARSEOP_CREATEBYTEFIELD
    366   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEBYTEFIELD);}
    367       1.1  christos         TermArg
    368       1.1  christos         TermArgItem
    369       1.1  christos         NameStringItem
    370   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
    371   1.1.1.4  christos                                         TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
    372   1.1.1.2  christos     | PARSEOP_CREATEBYTEFIELD
    373   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    374   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    375       1.1  christos     ;
    376       1.1  christos 
    377       1.1  christos CreateDWordFieldTerm
    378   1.1.1.2  christos     : PARSEOP_CREATEDWORDFIELD
    379   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEDWORDFIELD);}
    380       1.1  christos         TermArg
    381       1.1  christos         TermArgItem
    382       1.1  christos         NameStringItem
    383   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
    384   1.1.1.4  christos                                         TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
    385   1.1.1.2  christos     | PARSEOP_CREATEDWORDFIELD
    386   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    387   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    388       1.1  christos     ;
    389       1.1  christos 
    390       1.1  christos CreateFieldTerm
    391   1.1.1.2  christos     : PARSEOP_CREATEFIELD
    392   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEFIELD);}
    393       1.1  christos         TermArg
    394       1.1  christos         TermArgItem
    395       1.1  christos         TermArgItem
    396       1.1  christos         NameStringItem
    397   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,4,$4,$5,$6,
    398   1.1.1.4  christos                                         TrSetOpFlags ($7, OP_IS_NAME_DECLARATION));}
    399   1.1.1.2  christos     | PARSEOP_CREATEFIELD
    400   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    401   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    402       1.1  christos     ;
    403       1.1  christos 
    404       1.1  christos CreateQWordFieldTerm
    405   1.1.1.2  christos     : PARSEOP_CREATEQWORDFIELD
    406   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEQWORDFIELD);}
    407       1.1  christos         TermArg
    408       1.1  christos         TermArgItem
    409       1.1  christos         NameStringItem
    410   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
    411   1.1.1.4  christos                                         TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
    412   1.1.1.2  christos     | PARSEOP_CREATEQWORDFIELD
    413   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    414   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    415       1.1  christos     ;
    416       1.1  christos 
    417       1.1  christos CreateWordFieldTerm
    418   1.1.1.2  christos     : PARSEOP_CREATEWORDFIELD
    419   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEWORDFIELD);}
    420       1.1  christos         TermArg
    421       1.1  christos         TermArgItem
    422       1.1  christos         NameStringItem
    423   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,
    424   1.1.1.4  christos                                         TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));}
    425   1.1.1.2  christos     | PARSEOP_CREATEWORDFIELD
    426   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    427   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    428       1.1  christos     ;
    429       1.1  christos 
    430       1.1  christos DataRegionTerm
    431   1.1.1.2  christos     : PARSEOP_DATATABLEREGION
    432   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DATATABLEREGION);}
    433       1.1  christos         NameString
    434       1.1  christos         TermArgItem
    435       1.1  christos         TermArgItem
    436       1.1  christos         TermArgItem
    437   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,4,
    438   1.1.1.4  christos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$5,$6,$7);}
    439   1.1.1.2  christos     | PARSEOP_DATATABLEREGION
    440   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    441   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    442       1.1  christos     ;
    443       1.1  christos 
    444       1.1  christos DebugTerm
    445   1.1.1.4  christos     : PARSEOP_DEBUG                 {$$ = TrCreateLeafOp (PARSEOP_DEBUG);}
    446       1.1  christos     ;
    447       1.1  christos 
    448       1.1  christos DecTerm
    449   1.1.1.2  christos     : PARSEOP_DECREMENT
    450   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DECREMENT);}
    451       1.1  christos         SuperName
    452   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
    453   1.1.1.2  christos     | PARSEOP_DECREMENT
    454   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    455   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    456       1.1  christos     ;
    457       1.1  christos 
    458       1.1  christos DefaultTerm
    459   1.1.1.4  christos     : PARSEOP_DEFAULT '{'           {$<n>$ = TrCreateLeafOp (PARSEOP_DEFAULT);}
    460   1.1.1.4  christos         TermList '}'                {$$ = TrLinkOpChildren ($<n>3,1,$4);}
    461       1.1  christos     | PARSEOP_DEFAULT '{'
    462       1.1  christos         error '}'                   {$$ = AslDoError(); yyclearin;}
    463       1.1  christos     ;
    464       1.1  christos 
    465       1.1  christos DerefOfTerm
    466   1.1.1.2  christos     : PARSEOP_DEREFOF
    467   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DEREFOF);}
    468   1.1.1.2  christos         DerefOfSource
    469   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
    470   1.1.1.2  christos     | PARSEOP_DEREFOF
    471   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    472   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    473       1.1  christos     ;
    474       1.1  christos 
    475       1.1  christos DeviceTerm
    476   1.1.1.2  christos     : PARSEOP_DEVICE
    477   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DEVICE);}
    478       1.1  christos         NameString
    479   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
    480   1.1.1.4  christos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,2,
    481   1.1.1.4  christos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$7);}
    482   1.1.1.2  christos     | PARSEOP_DEVICE
    483   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    484   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    485       1.1  christos     ;
    486       1.1  christos 
    487       1.1  christos DivideTerm
    488   1.1.1.2  christos     : PARSEOP_DIVIDE
    489   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DIVIDE);}
    490       1.1  christos         TermArg
    491       1.1  christos         TermArgItem
    492       1.1  christos         Target
    493       1.1  christos         Target
    494   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,4,$4,$5,$6,$7);}
    495   1.1.1.2  christos     | PARSEOP_DIVIDE
    496   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    497   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    498       1.1  christos     ;
    499       1.1  christos 
    500       1.1  christos EISAIDTerm
    501   1.1.1.2  christos     : PARSEOP_EISAID
    502   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    503   1.1.1.9  christos         StringLiteral
    504   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrSetOpIntegerValue (PARSEOP_EISAID, $3);}
    505   1.1.1.2  christos     | PARSEOP_EISAID
    506   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    507   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    508       1.1  christos     ;
    509       1.1  christos 
    510       1.1  christos ElseIfTerm
    511   1.1.1.4  christos     : IfTerm ElseTerm               {$$ = TrLinkPeerOp ($1,$2);}
    512       1.1  christos     ;
    513       1.1  christos 
    514       1.1  christos ElseTerm
    515       1.1  christos     :                               {$$ = NULL;}
    516   1.1.1.3  christos     | PARSEOP_ELSE '{'
    517   1.1.1.4  christos         TermList           {$<n>$ = TrCreateLeafOp (PARSEOP_ELSE);}
    518   1.1.1.4  christos         '}'                {$$ = TrLinkOpChildren ($<n>4,1,$3);}
    519       1.1  christos 
    520       1.1  christos     | PARSEOP_ELSE '{'
    521       1.1  christos         error '}'                   {$$ = AslDoError(); yyclearin;}
    522       1.1  christos 
    523       1.1  christos     | PARSEOP_ELSE
    524       1.1  christos         error                       {$$ = AslDoError(); yyclearin;}
    525       1.1  christos 
    526   1.1.1.2  christos     | PARSEOP_ELSEIF
    527   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_ELSE);}
    528   1.1.1.4  christos         TermArg                     {$<n>$ = TrCreateLeafOp (PARSEOP_IF);}
    529   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
    530   1.1.1.4  christos             TermList '}'            {TrLinkOpChildren ($<n>5,2,$4,$8);}
    531   1.1.1.4  christos         ElseTerm                    {TrLinkPeerOp ($<n>5,$11);}
    532   1.1.1.4  christos                                     {$$ = TrLinkOpChildren ($<n>3,1,$<n>5);}
    533       1.1  christos 
    534   1.1.1.2  christos     | PARSEOP_ELSEIF
    535   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    536   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    537       1.1  christos 
    538       1.1  christos     | PARSEOP_ELSEIF
    539       1.1  christos         error                       {$$ = AslDoError(); yyclearin;}
    540       1.1  christos     ;
    541       1.1  christos 
    542       1.1  christos EventTerm
    543   1.1.1.2  christos     : PARSEOP_EVENT
    544   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_EVENT);}
    545       1.1  christos         NameString
    546   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,
    547   1.1.1.4  christos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION));}
    548   1.1.1.2  christos     | PARSEOP_EVENT
    549   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    550   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    551       1.1  christos     ;
    552       1.1  christos 
    553       1.1  christos ExternalTerm
    554   1.1.1.2  christos     : PARSEOP_EXTERNAL
    555   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    556       1.1  christos         NameString
    557       1.1  christos         OptionalObjectTypeKeyword
    558       1.1  christos         OptionalParameterTypePackage
    559       1.1  christos         OptionalParameterTypesPackage
    560   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}
    561   1.1.1.2  christos     | PARSEOP_EXTERNAL
    562   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    563   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    564       1.1  christos     ;
    565       1.1  christos 
    566       1.1  christos FatalTerm
    567   1.1.1.2  christos     : PARSEOP_FATAL
    568   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FATAL);}
    569       1.1  christos         ByteConstExpr
    570       1.1  christos         ',' DWordConstExpr
    571       1.1  christos         TermArgItem
    572   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);}
    573   1.1.1.2  christos     | PARSEOP_FATAL
    574   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    575   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    576       1.1  christos     ;
    577       1.1  christos 
    578       1.1  christos FieldTerm
    579   1.1.1.2  christos     : PARSEOP_FIELD
    580   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FIELD);}
    581       1.1  christos         NameString
    582   1.1.1.6  christos         OptionalAccessTypeKeyword
    583   1.1.1.6  christos         OptionalLockRuleKeyword
    584   1.1.1.6  christos         OptionalUpdateRuleKeyword
    585   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
    586   1.1.1.6  christos             FieldUnitList '}'       {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$6,$7,$10);}
    587   1.1.1.2  christos     | PARSEOP_FIELD
    588   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    589   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN
    590   1.1.1.2  christos         '{' error '}'               {$$ = AslDoError(); yyclearin;}
    591       1.1  christos     ;
    592       1.1  christos 
    593       1.1  christos FindSetLeftBitTerm
    594   1.1.1.2  christos     : PARSEOP_FINDSETLEFTBIT
    595   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FINDSETLEFTBIT);}
    596       1.1  christos         TermArg
    597       1.1  christos         Target
    598   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
    599   1.1.1.2  christos     | PARSEOP_FINDSETLEFTBIT
    600   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    601   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    602       1.1  christos     ;
    603       1.1  christos 
    604       1.1  christos FindSetRightBitTerm
    605   1.1.1.2  christos     : PARSEOP_FINDSETRIGHTBIT
    606   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FINDSETRIGHTBIT);}
    607       1.1  christos         TermArg
    608       1.1  christos         Target
    609   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
    610   1.1.1.2  christos     | PARSEOP_FINDSETRIGHTBIT
    611   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    612   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    613       1.1  christos     ;
    614       1.1  christos 
    615       1.1  christos     /* Convert a For() loop to a While() loop */
    616       1.1  christos ForTerm
    617   1.1.1.2  christos     : PARSEOP_FOR
    618   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_WHILE);}
    619       1.1  christos         OptionalTermArg ','         {}
    620       1.1  christos         OptionalPredicate ','
    621   1.1.1.4  christos         OptionalTermArg             {$<n>$ = TrLinkPeerOp ($4,$<n>3);
    622   1.1.1.4  christos                                             TrSetOpParent ($9,$<n>3);}                /* New parent is WHILE */
    623   1.1.1.2  christos         PARSEOP_CLOSE_PAREN
    624   1.1.1.4  christos         '{' TermList '}'            {$<n>$ = TrLinkOpChildren ($<n>3,2,$7,$13);}
    625   1.1.1.4  christos                                     {$<n>$ = TrLinkPeerOp ($13,$9);
    626       1.1  christos                                         $$ = $<n>10;}
    627       1.1  christos     ;
    628       1.1  christos 
    629       1.1  christos OptionalPredicate
    630   1.1.1.4  christos     :                               {$$ = TrCreateValuedLeafOp (PARSEOP_INTEGER, 1);}
    631       1.1  christos     | TermArg                       {$$ = $1;}
    632       1.1  christos     ;
    633       1.1  christos 
    634       1.1  christos FprintfTerm
    635   1.1.1.2  christos     : PARSEOP_FPRINTF
    636   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FPRINTF);}
    637       1.1  christos         TermArg ','
    638   1.1.1.9  christos         StringLiteral
    639       1.1  christos         PrintfArgList
    640   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);}
    641   1.1.1.2  christos     | PARSEOP_FPRINTF
    642   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    643   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    644       1.1  christos     ;
    645       1.1  christos 
    646       1.1  christos FromBCDTerm
    647   1.1.1.2  christos     : PARSEOP_FROMBCD
    648   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_FROMBCD);}
    649       1.1  christos         TermArg
    650       1.1  christos         Target
    651   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
    652   1.1.1.2  christos     | PARSEOP_FROMBCD
    653   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    654   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    655       1.1  christos     ;
    656       1.1  christos 
    657       1.1  christos FunctionTerm
    658   1.1.1.2  christos     : PARSEOP_FUNCTION
    659   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {COMMENT_CAPTURE_OFF; $<n>$ = TrCreateLeafOp (PARSEOP_METHOD); }
    660       1.1  christos         NameString
    661       1.1  christos         OptionalParameterTypePackage
    662       1.1  christos         OptionalParameterTypesPackage
    663   1.1.1.3  christos         PARSEOP_CLOSE_PAREN '{'     {COMMENT_CAPTURE_ON; }
    664   1.1.1.4  christos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,7,
    665   1.1.1.4  christos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
    666   1.1.1.8  christos                                         TrCreateLeafOp (PARSEOP_DEFAULT_ARG),
    667   1.1.1.4  christos                                         TrCreateLeafOp (PARSEOP_SERIALIZERULE_NOTSERIAL),
    668   1.1.1.4  christos                                         TrCreateValuedLeafOp (PARSEOP_BYTECONST, 0),$5,$6,$10);}
    669   1.1.1.2  christos     | PARSEOP_FUNCTION
    670   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    671   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    672       1.1  christos     ;
    673       1.1  christos 
    674       1.1  christos IfTerm
    675   1.1.1.2  christos     : PARSEOP_IF
    676   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_IF);}
    677       1.1  christos         TermArg
    678   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
    679   1.1.1.4  christos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
    680       1.1  christos 
    681   1.1.1.2  christos     | PARSEOP_IF
    682   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    683   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    684       1.1  christos     ;
    685       1.1  christos 
    686       1.1  christos IncludeTerm
    687   1.1.1.2  christos     : PARSEOP_INCLUDE
    688   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    689   1.1.1.2  christos         String
    690   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrSetOpIntegerValue (PARSEOP_INCLUDE, $3);
    691       1.1  christos                                         FlOpenIncludeFile ($3);}
    692       1.1  christos     ;
    693       1.1  christos 
    694       1.1  christos IncludeEndTerm
    695   1.1.1.4  christos     : PARSEOP_INCLUDE_END           {$<n>$ = TrCreateLeafOp (PARSEOP_INCLUDE_END);
    696   1.1.1.4  christos                                         TrSetOpCurrentFilename ($$);}
    697       1.1  christos     ;
    698       1.1  christos 
    699       1.1  christos IncTerm
    700   1.1.1.2  christos     : PARSEOP_INCREMENT
    701   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_INCREMENT);}
    702       1.1  christos         SuperName
    703   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
    704   1.1.1.2  christos     | PARSEOP_INCREMENT
    705   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    706   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    707       1.1  christos     ;
    708       1.1  christos 
    709       1.1  christos IndexFieldTerm
    710   1.1.1.2  christos     : PARSEOP_INDEXFIELD
    711   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_INDEXFIELD);}
    712       1.1  christos         NameString
    713       1.1  christos         NameStringItem
    714   1.1.1.6  christos         OptionalAccessTypeKeyword
    715   1.1.1.6  christos         OptionalLockRuleKeyword
    716   1.1.1.6  christos         OptionalUpdateRuleKeyword
    717   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
    718   1.1.1.6  christos             FieldUnitList '}'       {$$ = TrLinkOpChildren ($<n>3,6,$4,$5,$6,$7,$8,$11);}
    719   1.1.1.2  christos     | PARSEOP_INDEXFIELD
    720   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    721   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN
    722   1.1.1.2  christos         '{' error '}'               {$$ = AslDoError(); yyclearin;}
    723       1.1  christos     ;
    724       1.1  christos 
    725       1.1  christos IndexTerm
    726   1.1.1.2  christos     : PARSEOP_INDEX
    727   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_INDEX);}
    728       1.1  christos         TermArg
    729       1.1  christos         TermArgItem
    730       1.1  christos         Target
    731   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
    732   1.1.1.2  christos     | PARSEOP_INDEX
    733   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    734   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    735       1.1  christos     ;
    736       1.1  christos 
    737       1.1  christos LAndTerm
    738   1.1.1.2  christos     : PARSEOP_LAND
    739   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LAND);}
    740       1.1  christos         TermArg
    741       1.1  christos         TermArgItem
    742   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
    743   1.1.1.2  christos     | PARSEOP_LAND
    744   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    745   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    746       1.1  christos     ;
    747       1.1  christos 
    748       1.1  christos LEqualTerm
    749   1.1.1.2  christos     : PARSEOP_LEQUAL
    750   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LEQUAL);}
    751       1.1  christos         TermArg
    752       1.1  christos         TermArgItem
    753   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
    754   1.1.1.2  christos     | PARSEOP_LEQUAL
    755   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    756   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    757       1.1  christos     ;
    758       1.1  christos 
    759       1.1  christos LGreaterEqualTerm
    760   1.1.1.2  christos     : PARSEOP_LGREATEREQUAL
    761   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LLESS);}
    762       1.1  christos         TermArg
    763       1.1  christos         TermArgItem
    764   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_LNOT, 1,
    765   1.1.1.4  christos                                         TrLinkOpChildren ($<n>3,2,$4,$5));}
    766   1.1.1.2  christos     | PARSEOP_LGREATEREQUAL
    767   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    768   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    769       1.1  christos     ;
    770       1.1  christos 
    771       1.1  christos LGreaterTerm
    772   1.1.1.2  christos     : PARSEOP_LGREATER
    773   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LGREATER);}
    774       1.1  christos         TermArg
    775       1.1  christos         TermArgItem
    776   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
    777   1.1.1.2  christos     | PARSEOP_LGREATER
    778   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    779   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    780       1.1  christos     ;
    781       1.1  christos 
    782       1.1  christos LLessEqualTerm
    783   1.1.1.2  christos     : PARSEOP_LLESSEQUAL
    784   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LGREATER);}
    785       1.1  christos         TermArg
    786       1.1  christos         TermArgItem
    787   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_LNOT, 1,
    788   1.1.1.4  christos                                         TrLinkOpChildren ($<n>3,2,$4,$5));}
    789   1.1.1.2  christos     | PARSEOP_LLESSEQUAL
    790   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    791   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    792       1.1  christos     ;
    793       1.1  christos 
    794       1.1  christos LLessTerm
    795   1.1.1.2  christos     : PARSEOP_LLESS
    796   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LLESS);}
    797       1.1  christos         TermArg
    798       1.1  christos         TermArgItem
    799   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
    800   1.1.1.2  christos     | PARSEOP_LLESS
    801   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    802   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    803       1.1  christos     ;
    804       1.1  christos 
    805       1.1  christos LNotEqualTerm
    806   1.1.1.2  christos     : PARSEOP_LNOTEQUAL
    807   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LEQUAL);}
    808       1.1  christos         TermArg
    809       1.1  christos         TermArgItem
    810   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_LNOT, 1,
    811   1.1.1.4  christos                                         TrLinkOpChildren ($<n>3,2,$4,$5));}
    812   1.1.1.2  christos     | PARSEOP_LNOTEQUAL
    813   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    814   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    815       1.1  christos     ;
    816       1.1  christos 
    817       1.1  christos LNotTerm
    818   1.1.1.2  christos     : PARSEOP_LNOT
    819   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LNOT);}
    820       1.1  christos         TermArg
    821   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
    822   1.1.1.2  christos     | PARSEOP_LNOT
    823   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    824   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    825       1.1  christos     ;
    826       1.1  christos 
    827       1.1  christos LoadTableTerm
    828   1.1.1.2  christos     : PARSEOP_LOADTABLE
    829   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LOADTABLE);}
    830       1.1  christos         TermArg
    831       1.1  christos         TermArgItem
    832       1.1  christos         TermArgItem
    833       1.1  christos         OptionalListString
    834       1.1  christos         OptionalListString
    835       1.1  christos         OptionalReference
    836   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);}
    837   1.1.1.2  christos     | PARSEOP_LOADTABLE
    838   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    839   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    840       1.1  christos     ;
    841       1.1  christos 
    842       1.1  christos LoadTerm
    843   1.1.1.2  christos     : PARSEOP_LOAD
    844   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LOAD);}
    845       1.1  christos         NameString
    846  1.1.1.11  christos         Target
    847   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
    848   1.1.1.2  christos     | PARSEOP_LOAD
    849   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    850   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    851       1.1  christos     ;
    852       1.1  christos 
    853       1.1  christos LocalTerm
    854   1.1.1.4  christos     : PARSEOP_LOCAL0                {$$ = TrCreateLeafOp (PARSEOP_LOCAL0);}
    855   1.1.1.4  christos     | PARSEOP_LOCAL1                {$$ = TrCreateLeafOp (PARSEOP_LOCAL1);}
    856   1.1.1.4  christos     | PARSEOP_LOCAL2                {$$ = TrCreateLeafOp (PARSEOP_LOCAL2);}
    857   1.1.1.4  christos     | PARSEOP_LOCAL3                {$$ = TrCreateLeafOp (PARSEOP_LOCAL3);}
    858   1.1.1.4  christos     | PARSEOP_LOCAL4                {$$ = TrCreateLeafOp (PARSEOP_LOCAL4);}
    859   1.1.1.4  christos     | PARSEOP_LOCAL5                {$$ = TrCreateLeafOp (PARSEOP_LOCAL5);}
    860   1.1.1.4  christos     | PARSEOP_LOCAL6                {$$ = TrCreateLeafOp (PARSEOP_LOCAL6);}
    861   1.1.1.4  christos     | PARSEOP_LOCAL7                {$$ = TrCreateLeafOp (PARSEOP_LOCAL7);}
    862       1.1  christos     ;
    863       1.1  christos 
    864       1.1  christos LOrTerm
    865   1.1.1.2  christos     : PARSEOP_LOR
    866   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_LOR);}
    867       1.1  christos         TermArg
    868       1.1  christos         TermArgItem
    869   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
    870   1.1.1.2  christos     | PARSEOP_LOR
    871   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    872   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    873       1.1  christos     ;
    874       1.1  christos 
    875       1.1  christos MatchTerm
    876   1.1.1.2  christos     : PARSEOP_MATCH
    877   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MATCH);}
    878       1.1  christos         TermArg
    879       1.1  christos         ',' MatchOpKeyword
    880       1.1  christos         TermArgItem
    881       1.1  christos         ',' MatchOpKeyword
    882       1.1  christos         TermArgItem
    883       1.1  christos         TermArgItem
    884   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);}
    885   1.1.1.2  christos     | PARSEOP_MATCH
    886   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    887   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    888       1.1  christos     ;
    889       1.1  christos 
    890       1.1  christos MethodTerm
    891   1.1.1.2  christos     : PARSEOP_METHOD
    892   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_METHOD); COMMENT_CAPTURE_OFF;}
    893       1.1  christos         NameString
    894       1.1  christos         OptionalByteConstExpr       {UtCheckIntegerRange ($5, 0, 7);}
    895       1.1  christos         OptionalSerializeRuleKeyword
    896       1.1  christos         OptionalByteConstExpr
    897       1.1  christos         OptionalParameterTypePackage
    898       1.1  christos         OptionalParameterTypesPackage
    899   1.1.1.3  christos         PARSEOP_CLOSE_PAREN '{'     {COMMENT_CAPTURE_ON;}
    900   1.1.1.4  christos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,7,
    901   1.1.1.4  christos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
    902   1.1.1.3  christos                                         $5,$7,$8,$9,$10,$14);}
    903   1.1.1.2  christos     | PARSEOP_METHOD
    904   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    905   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    906       1.1  christos     ;
    907       1.1  christos 
    908       1.1  christos MidTerm
    909   1.1.1.2  christos     : PARSEOP_MID
    910   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MID);}
    911       1.1  christos         TermArg
    912       1.1  christos         TermArgItem
    913       1.1  christos         TermArgItem
    914       1.1  christos         Target
    915   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,4,$4,$5,$6,$7);}
    916   1.1.1.2  christos     | PARSEOP_MID
    917   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    918   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    919       1.1  christos     ;
    920       1.1  christos 
    921       1.1  christos ModTerm
    922   1.1.1.2  christos     : PARSEOP_MOD
    923   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MOD);}
    924       1.1  christos         TermArg
    925       1.1  christos         TermArgItem
    926       1.1  christos         Target
    927   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
    928   1.1.1.2  christos     | PARSEOP_MOD
    929   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    930   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    931       1.1  christos     ;
    932       1.1  christos 
    933       1.1  christos MultiplyTerm
    934   1.1.1.2  christos     : PARSEOP_MULTIPLY
    935   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MULTIPLY);}
    936       1.1  christos         TermArg
    937       1.1  christos         TermArgItem
    938       1.1  christos         Target
    939   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
    940   1.1.1.2  christos     | PARSEOP_MULTIPLY
    941   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    942   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    943       1.1  christos     ;
    944       1.1  christos 
    945       1.1  christos MutexTerm
    946   1.1.1.2  christos     : PARSEOP_MUTEX
    947   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_MUTEX);}
    948       1.1  christos         NameString
    949   1.1.1.6  christos         OptionalSyncLevel
    950   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,
    951   1.1.1.6  christos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$5);}
    952   1.1.1.2  christos     | PARSEOP_MUTEX
    953   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    954   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    955       1.1  christos     ;
    956       1.1  christos 
    957       1.1  christos NameTerm
    958   1.1.1.2  christos     : PARSEOP_NAME
    959   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_NAME);}
    960       1.1  christos         NameString
    961       1.1  christos         ',' DataObject
    962   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,
    963   1.1.1.4  christos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$6);}
    964   1.1.1.2  christos     | PARSEOP_NAME
    965   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    966   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    967       1.1  christos     ;
    968       1.1  christos 
    969       1.1  christos NAndTerm
    970   1.1.1.2  christos     : PARSEOP_NAND
    971   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_NAND);}
    972       1.1  christos         TermArg
    973       1.1  christos         TermArgItem
    974       1.1  christos         Target
    975   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
    976   1.1.1.2  christos     | PARSEOP_NAND
    977   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    978   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    979       1.1  christos     ;
    980       1.1  christos 
    981       1.1  christos NoOpTerm
    982   1.1.1.4  christos     : PARSEOP_NOOP                  {$$ = TrCreateOp (PARSEOP_NOOP, 0);}
    983       1.1  christos     ;
    984       1.1  christos 
    985       1.1  christos NOrTerm
    986   1.1.1.2  christos     : PARSEOP_NOR
    987   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_NOR);}
    988       1.1  christos         TermArg
    989       1.1  christos         TermArgItem
    990       1.1  christos         Target
    991   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
    992   1.1.1.2  christos     | PARSEOP_NOR
    993   1.1.1.2  christos         PARSEOP_OPEN_PAREN
    994   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
    995       1.1  christos     ;
    996       1.1  christos 
    997       1.1  christos NotifyTerm
    998   1.1.1.2  christos     : PARSEOP_NOTIFY
    999   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_NOTIFY);}
   1000       1.1  christos         SuperName
   1001       1.1  christos         TermArgItem
   1002   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
   1003   1.1.1.2  christos     | PARSEOP_NOTIFY
   1004   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1005   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1006       1.1  christos     ;
   1007       1.1  christos 
   1008       1.1  christos NotTerm
   1009   1.1.1.2  christos     : PARSEOP_NOT
   1010   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_NOT);}
   1011       1.1  christos         TermArg
   1012       1.1  christos         Target
   1013   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
   1014   1.1.1.2  christos     | PARSEOP_NOT
   1015   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1016   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1017       1.1  christos     ;
   1018       1.1  christos 
   1019       1.1  christos ObjectTypeTerm
   1020   1.1.1.2  christos     : PARSEOP_OBJECTTYPE
   1021   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_OBJECTTYPE);}
   1022   1.1.1.2  christos         ObjectTypeSource
   1023   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
   1024   1.1.1.2  christos     | PARSEOP_OBJECTTYPE
   1025   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1026   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1027       1.1  christos     ;
   1028       1.1  christos 
   1029       1.1  christos OffsetTerm
   1030   1.1.1.2  christos     : PARSEOP_OFFSET
   1031   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1032       1.1  christos         AmlPackageLengthTerm
   1033   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrCreateOp (PARSEOP_OFFSET,1,$3);}
   1034   1.1.1.2  christos     | PARSEOP_OFFSET
   1035   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1036   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1037       1.1  christos     ;
   1038       1.1  christos 
   1039       1.1  christos OpRegionTerm
   1040   1.1.1.2  christos     : PARSEOP_OPERATIONREGION
   1041   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_OPERATIONREGION);}
   1042       1.1  christos         NameString
   1043       1.1  christos         ',' OpRegionSpaceIdTerm
   1044       1.1  christos         TermArgItem
   1045       1.1  christos         TermArgItem
   1046   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,4,
   1047   1.1.1.4  christos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
   1048       1.1  christos                                         $6,$7,$8);}
   1049   1.1.1.2  christos     | PARSEOP_OPERATIONREGION
   1050   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1051   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1052       1.1  christos     ;
   1053       1.1  christos 
   1054       1.1  christos OpRegionSpaceIdTerm
   1055       1.1  christos     : RegionSpaceKeyword            {}
   1056       1.1  christos     | ByteConst                     {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);}
   1057       1.1  christos     ;
   1058       1.1  christos 
   1059       1.1  christos OrTerm
   1060   1.1.1.2  christos     : PARSEOP_OR
   1061   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_OR);}
   1062       1.1  christos         TermArg
   1063       1.1  christos         TermArgItem
   1064       1.1  christos         Target
   1065   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
   1066   1.1.1.2  christos     | PARSEOP_OR
   1067   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1068   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1069       1.1  christos     ;
   1070       1.1  christos 
   1071       1.1  christos PackageTerm
   1072   1.1.1.4  christos     : PARSEOP_PACKAGE               {$<n>$ = TrCreateLeafOp (PARSEOP_VAR_PACKAGE);}
   1073       1.1  christos         OptionalDataCount
   1074   1.1.1.4  christos         '{' PackageList '}'         {$$ = TrLinkOpChildren ($<n>2,2,$3,$5);}
   1075       1.1  christos 
   1076       1.1  christos PowerResTerm
   1077   1.1.1.2  christos     : PARSEOP_POWERRESOURCE
   1078   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_POWERRESOURCE);}
   1079       1.1  christos         NameString
   1080       1.1  christos         ',' ByteConstExpr
   1081       1.1  christos         ',' WordConstExpr
   1082   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
   1083   1.1.1.4  christos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,4,
   1084   1.1.1.4  christos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
   1085       1.1  christos                                         $6,$8,$11);}
   1086   1.1.1.2  christos     | PARSEOP_POWERRESOURCE
   1087   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1088   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1089       1.1  christos     ;
   1090       1.1  christos 
   1091       1.1  christos PrintfTerm
   1092   1.1.1.2  christos     : PARSEOP_PRINTF
   1093   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_PRINTF);}
   1094   1.1.1.9  christos         StringLiteral
   1095       1.1  christos         PrintfArgList
   1096   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
   1097   1.1.1.2  christos     | PARSEOP_PRINTF
   1098   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1099   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1100       1.1  christos     ;
   1101       1.1  christos 
   1102       1.1  christos PrintfArgList
   1103       1.1  christos     :                               {$$ = NULL;}
   1104       1.1  christos     | TermArg                       {$$ = $1;}
   1105       1.1  christos     | PrintfArgList ','
   1106   1.1.1.4  christos        TermArg                      {$$ = TrLinkPeerOp ($1, $3);}
   1107       1.1  christos     ;
   1108       1.1  christos 
   1109       1.1  christos ProcessorTerm
   1110   1.1.1.2  christos     : PARSEOP_PROCESSOR
   1111   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_PROCESSOR);}
   1112       1.1  christos         NameString
   1113       1.1  christos         ',' ByteConstExpr
   1114       1.1  christos         OptionalDWordConstExpr
   1115       1.1  christos         OptionalByteConstExpr
   1116   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
   1117   1.1.1.4  christos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,5,
   1118   1.1.1.4  christos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),
   1119       1.1  christos                                         $6,$7,$8,$11);}
   1120   1.1.1.2  christos     | PARSEOP_PROCESSOR
   1121   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1122   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1123       1.1  christos     ;
   1124       1.1  christos 
   1125       1.1  christos RawDataBufferTerm
   1126   1.1.1.2  christos     : PARSEOP_DATABUFFER
   1127   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_DATABUFFER);}
   1128       1.1  christos         OptionalWordConst
   1129   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
   1130   1.1.1.4  christos             ByteList '}'            {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
   1131   1.1.1.2  christos     | PARSEOP_DATABUFFER
   1132   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1133   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1134       1.1  christos     ;
   1135       1.1  christos 
   1136       1.1  christos /*
   1137       1.1  christos  * In RefOf, the node isn't really a target, but we can't keep track of it after
   1138       1.1  christos  * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.)
   1139       1.1  christos  */
   1140       1.1  christos RefOfTerm
   1141   1.1.1.2  christos     : PARSEOP_REFOF
   1142   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_REFOF);}
   1143   1.1.1.2  christos         RefOfSource
   1144   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,
   1145   1.1.1.4  christos                                         TrSetOpFlags ($4, OP_IS_TARGET));}
   1146   1.1.1.2  christos     | PARSEOP_REFOF
   1147   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1148   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1149       1.1  christos     ;
   1150       1.1  christos 
   1151       1.1  christos ReleaseTerm
   1152   1.1.1.2  christos     : PARSEOP_RELEASE
   1153   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_RELEASE);}
   1154       1.1  christos         SuperName
   1155   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
   1156   1.1.1.2  christos     | PARSEOP_RELEASE
   1157   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1158   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1159       1.1  christos     ;
   1160       1.1  christos 
   1161       1.1  christos ResetTerm
   1162   1.1.1.2  christos     : PARSEOP_RESET
   1163   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_RESET);}
   1164       1.1  christos         SuperName
   1165   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
   1166   1.1.1.2  christos     | PARSEOP_RESET
   1167   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1168   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1169       1.1  christos     ;
   1170       1.1  christos 
   1171       1.1  christos ReturnTerm
   1172   1.1.1.2  christos     : PARSEOP_RETURN
   1173   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_RETURN);}
   1174       1.1  christos         OptionalReturnArg
   1175   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
   1176   1.1.1.4  christos     | PARSEOP_RETURN                {$$ = TrLinkOpChildren (
   1177   1.1.1.4  christos                                         TrCreateLeafOp (PARSEOP_RETURN),1,
   1178   1.1.1.4  christos                                         TrSetOpFlags (TrCreateLeafOp (PARSEOP_ZERO),
   1179   1.1.1.4  christos                                             OP_IS_NULL_RETURN));}
   1180   1.1.1.2  christos     | PARSEOP_RETURN
   1181   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1182   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1183       1.1  christos     ;
   1184       1.1  christos 
   1185       1.1  christos ScopeTerm
   1186   1.1.1.2  christos     : PARSEOP_SCOPE
   1187   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SCOPE);}
   1188       1.1  christos         NameString
   1189   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
   1190   1.1.1.4  christos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,2,
   1191   1.1.1.4  christos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$7);}
   1192   1.1.1.2  christos     | PARSEOP_SCOPE
   1193   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1194   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1195       1.1  christos     ;
   1196       1.1  christos 
   1197       1.1  christos ShiftLeftTerm
   1198   1.1.1.2  christos     : PARSEOP_SHIFTLEFT
   1199   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SHIFTLEFT);}
   1200       1.1  christos         TermArg
   1201       1.1  christos         TermArgItem
   1202       1.1  christos         Target
   1203   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
   1204   1.1.1.2  christos     | PARSEOP_SHIFTLEFT
   1205   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1206   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1207       1.1  christos     ;
   1208       1.1  christos 
   1209       1.1  christos ShiftRightTerm
   1210   1.1.1.2  christos     : PARSEOP_SHIFTRIGHT
   1211   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SHIFTRIGHT);}
   1212       1.1  christos         TermArg
   1213       1.1  christos         TermArgItem
   1214       1.1  christos         Target
   1215   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
   1216   1.1.1.2  christos     | PARSEOP_SHIFTRIGHT
   1217   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1218   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1219       1.1  christos     ;
   1220       1.1  christos 
   1221       1.1  christos SignalTerm
   1222   1.1.1.2  christos     : PARSEOP_SIGNAL
   1223   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SIGNAL);}
   1224       1.1  christos         SuperName
   1225   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
   1226   1.1.1.2  christos     | PARSEOP_SIGNAL
   1227   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1228   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1229       1.1  christos     ;
   1230       1.1  christos 
   1231       1.1  christos SizeOfTerm
   1232   1.1.1.2  christos     : PARSEOP_SIZEOF
   1233   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SIZEOF);}
   1234       1.1  christos         SuperName
   1235   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
   1236   1.1.1.2  christos     | PARSEOP_SIZEOF
   1237   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1238   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1239       1.1  christos     ;
   1240       1.1  christos 
   1241       1.1  christos SleepTerm
   1242   1.1.1.2  christos     : PARSEOP_SLEEP
   1243   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SLEEP);}
   1244       1.1  christos         TermArg
   1245   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
   1246   1.1.1.2  christos     | PARSEOP_SLEEP
   1247   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1248   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1249       1.1  christos     ;
   1250       1.1  christos 
   1251       1.1  christos StallTerm
   1252   1.1.1.2  christos     : PARSEOP_STALL
   1253   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_STALL);}
   1254       1.1  christos         TermArg
   1255   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
   1256   1.1.1.2  christos     | PARSEOP_STALL
   1257   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1258   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1259       1.1  christos     ;
   1260       1.1  christos 
   1261       1.1  christos StoreTerm
   1262   1.1.1.2  christos     : PARSEOP_STORE
   1263   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_STORE);}
   1264       1.1  christos         TermArg
   1265       1.1  christos         ',' SuperName
   1266   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,
   1267   1.1.1.4  christos                                             TrSetOpFlags ($6, OP_IS_TARGET));}
   1268   1.1.1.2  christos     | PARSEOP_STORE
   1269   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1270   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1271       1.1  christos     ;
   1272       1.1  christos 
   1273       1.1  christos SubtractTerm
   1274   1.1.1.2  christos     : PARSEOP_SUBTRACT
   1275   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SUBTRACT);}
   1276       1.1  christos         TermArg
   1277       1.1  christos         TermArgItem
   1278       1.1  christos         Target
   1279   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
   1280   1.1.1.2  christos     | PARSEOP_SUBTRACT
   1281   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1282   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1283       1.1  christos     ;
   1284       1.1  christos 
   1285       1.1  christos SwitchTerm
   1286   1.1.1.2  christos     : PARSEOP_SWITCH
   1287   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_SWITCH);}
   1288       1.1  christos         TermArg
   1289   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
   1290   1.1.1.4  christos             CaseDefaultTermList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
   1291   1.1.1.2  christos     | PARSEOP_SWITCH
   1292   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1293   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1294       1.1  christos     ;
   1295       1.1  christos 
   1296       1.1  christos ThermalZoneTerm
   1297   1.1.1.2  christos     : PARSEOP_THERMALZONE
   1298   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_THERMALZONE);}
   1299       1.1  christos         NameString
   1300   1.1.1.2  christos         PARSEOP_CLOSE_PAREN '{'
   1301   1.1.1.4  christos             TermList '}'            {$$ = TrLinkOpChildren ($<n>3,2,
   1302   1.1.1.4  christos                                         TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$7);}
   1303   1.1.1.2  christos     | PARSEOP_THERMALZONE
   1304   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1305   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1306       1.1  christos     ;
   1307       1.1  christos 
   1308       1.1  christos TimerTerm
   1309   1.1.1.2  christos     : PARSEOP_TIMER
   1310   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TIMER);}
   1311   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,0);}
   1312   1.1.1.4  christos     | PARSEOP_TIMER                 {$$ = TrLinkOpChildren (
   1313   1.1.1.4  christos                                         TrCreateLeafOp (PARSEOP_TIMER),0);}
   1314   1.1.1.2  christos     | PARSEOP_TIMER
   1315   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1316   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1317       1.1  christos     ;
   1318       1.1  christos 
   1319       1.1  christos ToBCDTerm
   1320   1.1.1.2  christos     : PARSEOP_TOBCD
   1321   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TOBCD);}
   1322       1.1  christos         TermArg
   1323       1.1  christos         Target
   1324   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
   1325   1.1.1.2  christos     | PARSEOP_TOBCD
   1326   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1327   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1328       1.1  christos     ;
   1329       1.1  christos 
   1330       1.1  christos ToBufferTerm
   1331   1.1.1.2  christos     : PARSEOP_TOBUFFER
   1332   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TOBUFFER);}
   1333       1.1  christos         TermArg
   1334       1.1  christos         Target
   1335   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
   1336   1.1.1.2  christos     | PARSEOP_TOBUFFER
   1337   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1338   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1339       1.1  christos     ;
   1340       1.1  christos 
   1341       1.1  christos ToDecimalStringTerm
   1342   1.1.1.2  christos     : PARSEOP_TODECIMALSTRING
   1343   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TODECIMALSTRING);}
   1344       1.1  christos         TermArg
   1345       1.1  christos         Target
   1346   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
   1347   1.1.1.2  christos     | PARSEOP_TODECIMALSTRING
   1348   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1349   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1350       1.1  christos     ;
   1351       1.1  christos 
   1352       1.1  christos ToHexStringTerm
   1353   1.1.1.2  christos     : PARSEOP_TOHEXSTRING
   1354   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TOHEXSTRING);}
   1355       1.1  christos         TermArg
   1356       1.1  christos         Target
   1357   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
   1358   1.1.1.2  christos     | PARSEOP_TOHEXSTRING
   1359   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1360   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1361       1.1  christos     ;
   1362       1.1  christos 
   1363       1.1  christos ToIntegerTerm
   1364   1.1.1.2  christos     : PARSEOP_TOINTEGER
   1365   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TOINTEGER);}
   1366       1.1  christos         TermArg
   1367       1.1  christos         Target
   1368   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
   1369   1.1.1.2  christos     | PARSEOP_TOINTEGER
   1370   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1371   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1372       1.1  christos     ;
   1373       1.1  christos 
   1374       1.1  christos ToPLDTerm
   1375   1.1.1.2  christos     : PARSEOP_TOPLD
   1376   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TOPLD);}
   1377       1.1  christos         PldKeywordList
   1378   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
   1379   1.1.1.2  christos     | PARSEOP_TOPLD
   1380   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1381   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1382       1.1  christos     ;
   1383       1.1  christos 
   1384       1.1  christos PldKeywordList
   1385       1.1  christos     :                               {$$ = NULL;}
   1386       1.1  christos     | PldKeyword
   1387   1.1.1.4  christos         PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkOpChildren ($1,1,$3);}
   1388       1.1  christos     | PldKeyword
   1389   1.1.1.4  christos         PARSEOP_EXP_EQUALS String   {$$ = TrLinkOpChildren ($1,1,$3);}
   1390       1.1  christos     | PldKeywordList ','            /* Allows a trailing comma at list end */
   1391       1.1  christos     | PldKeywordList ','
   1392       1.1  christos         PldKeyword
   1393   1.1.1.4  christos         PARSEOP_EXP_EQUALS Integer  {$$ = TrLinkPeerOp ($1,TrLinkOpChildren ($3,1,$5));}
   1394       1.1  christos     | PldKeywordList ','
   1395       1.1  christos         PldKeyword
   1396   1.1.1.4  christos         PARSEOP_EXP_EQUALS String   {$$ = TrLinkPeerOp ($1,TrLinkOpChildren ($3,1,$5));}
   1397       1.1  christos     ;
   1398       1.1  christos 
   1399       1.1  christos 
   1400       1.1  christos ToStringTerm
   1401   1.1.1.2  christos     : PARSEOP_TOSTRING
   1402   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_TOSTRING);}
   1403       1.1  christos         TermArg
   1404       1.1  christos         OptionalCount
   1405       1.1  christos         Target
   1406   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
   1407   1.1.1.2  christos     | PARSEOP_TOSTRING
   1408   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1409   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1410       1.1  christos     ;
   1411       1.1  christos 
   1412       1.1  christos ToUUIDTerm
   1413   1.1.1.2  christos     : PARSEOP_TOUUID
   1414   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1415   1.1.1.9  christos         StringLiteral
   1416   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrSetOpIntegerValue (PARSEOP_TOUUID, $3);}
   1417   1.1.1.2  christos     | PARSEOP_TOUUID
   1418   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1419   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1420       1.1  christos     ;
   1421       1.1  christos 
   1422       1.1  christos UnicodeTerm
   1423   1.1.1.2  christos     : PARSEOP_UNICODE
   1424   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_UNICODE);}
   1425   1.1.1.9  christos         StringLiteral
   1426   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,0,$4);}
   1427   1.1.1.2  christos     | PARSEOP_UNICODE
   1428   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1429   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1430       1.1  christos     ;
   1431       1.1  christos 
   1432       1.1  christos UnloadTerm
   1433   1.1.1.2  christos     : PARSEOP_UNLOAD
   1434   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_UNLOAD);}
   1435       1.1  christos         SuperName
   1436   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,1,$4);}
   1437   1.1.1.2  christos     | PARSEOP_UNLOAD
   1438   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1439   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1440       1.1  christos     ;
   1441       1.1  christos 
   1442       1.1  christos WaitTerm
   1443   1.1.1.2  christos     : PARSEOP_WAIT
   1444   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_WAIT);}
   1445       1.1  christos         SuperName
   1446       1.1  christos         TermArgItem
   1447   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);}
   1448   1.1.1.2  christos     | PARSEOP_WAIT
   1449   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1450   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1451       1.1  christos     ;
   1452       1.1  christos 
   1453       1.1  christos XOrTerm
   1454   1.1.1.2  christos     : PARSEOP_XOR
   1455   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_XOR);}
   1456       1.1  christos         TermArg
   1457       1.1  christos         TermArgItem
   1458       1.1  christos         Target
   1459   1.1.1.4  christos         PARSEOP_CLOSE_PAREN         {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);}
   1460   1.1.1.2  christos     | PARSEOP_XOR
   1461   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1462   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1463       1.1  christos     ;
   1464       1.1  christos 
   1465       1.1  christos WhileTerm
   1466   1.1.1.2  christos     : PARSEOP_WHILE
   1467   1.1.1.4  christos         PARSEOP_OPEN_PAREN          {$<n>$ = TrCreateLeafOp (PARSEOP_WHILE);}
   1468       1.1  christos         TermArg
   1469   1.1.1.2  christos         PARSEOP_CLOSE_PAREN
   1470   1.1.1.4  christos             '{' TermList '}'        {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);}
   1471   1.1.1.2  christos     | PARSEOP_WHILE
   1472   1.1.1.2  christos         PARSEOP_OPEN_PAREN
   1473   1.1.1.2  christos         error PARSEOP_CLOSE_PAREN   {$$ = AslDoError(); yyclearin;}
   1474       1.1  christos     ;
   1475