1313a0c13SJung-uk Kim NoEcho(' 2313a0c13SJung-uk Kim /****************************************************************************** 3313a0c13SJung-uk Kim * 4*f8146b88SJung-uk Kim * Module Name: aslrules.y - Main Bison/Yacc production rules 5313a0c13SJung-uk Kim * 6313a0c13SJung-uk Kim *****************************************************************************/ 7313a0c13SJung-uk Kim 8313a0c13SJung-uk Kim /* 9*f8146b88SJung-uk Kim * Copyright (C) 2000 - 2016, Intel Corp. 10313a0c13SJung-uk Kim * All rights reserved. 11313a0c13SJung-uk Kim * 12313a0c13SJung-uk Kim * Redistribution and use in source and binary forms, with or without 13313a0c13SJung-uk Kim * modification, are permitted provided that the following conditions 14313a0c13SJung-uk Kim * are met: 15313a0c13SJung-uk Kim * 1. Redistributions of source code must retain the above copyright 16313a0c13SJung-uk Kim * notice, this list of conditions, and the following disclaimer, 17313a0c13SJung-uk Kim * without modification. 18313a0c13SJung-uk Kim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 19313a0c13SJung-uk Kim * substantially similar to the "NO WARRANTY" disclaimer below 20313a0c13SJung-uk Kim * ("Disclaimer") and any redistribution must be conditioned upon 21313a0c13SJung-uk Kim * including a substantially similar Disclaimer requirement for further 22313a0c13SJung-uk Kim * binary redistribution. 23313a0c13SJung-uk Kim * 3. Neither the names of the above-listed copyright holders nor the names 24313a0c13SJung-uk Kim * of any contributors may be used to endorse or promote products derived 25313a0c13SJung-uk Kim * from this software without specific prior written permission. 26313a0c13SJung-uk Kim * 27313a0c13SJung-uk Kim * Alternatively, this software may be distributed under the terms of the 28313a0c13SJung-uk Kim * GNU General Public License ("GPL") version 2 as published by the Free 29313a0c13SJung-uk Kim * Software Foundation. 30313a0c13SJung-uk Kim * 31313a0c13SJung-uk Kim * NO WARRANTY 32313a0c13SJung-uk Kim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 33313a0c13SJung-uk Kim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 34313a0c13SJung-uk Kim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 35313a0c13SJung-uk Kim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 36313a0c13SJung-uk Kim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 37313a0c13SJung-uk Kim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 38313a0c13SJung-uk Kim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39313a0c13SJung-uk Kim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 40313a0c13SJung-uk Kim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 41313a0c13SJung-uk Kim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 42313a0c13SJung-uk Kim * POSSIBILITY OF SUCH DAMAGES. 43313a0c13SJung-uk Kim */ 44313a0c13SJung-uk Kim 45313a0c13SJung-uk Kim ') 46313a0c13SJung-uk Kim 47313a0c13SJung-uk Kim /******************************************************************************* 48313a0c13SJung-uk Kim * 49*f8146b88SJung-uk Kim * ASL Root and Secondary Terms 50313a0c13SJung-uk Kim * 51313a0c13SJung-uk Kim ******************************************************************************/ 52313a0c13SJung-uk Kim 53313a0c13SJung-uk Kim /* 54*f8146b88SJung-uk Kim * Root term. Allow multiple #line directives before the definition block 55313a0c13SJung-uk Kim * to handle output from preprocessors 56313a0c13SJung-uk Kim */ 57*f8146b88SJung-uk Kim AslCode 58*f8146b88SJung-uk Kim : DefinitionBlockList {$<n>$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_ASL_CODE),1, $1);} 59313a0c13SJung-uk Kim | error {YYABORT; $$ = NULL;} 60313a0c13SJung-uk Kim ; 61313a0c13SJung-uk Kim 62313a0c13SJung-uk Kim 63313a0c13SJung-uk Kim /* 64313a0c13SJung-uk Kim * Note concerning support for "module-level code". 65313a0c13SJung-uk Kim * 66313a0c13SJung-uk Kim * ACPI 1.0 allowed Type1 and Type2 executable opcodes outside of control 67313a0c13SJung-uk Kim * methods (the so-called module-level code.) This support was explicitly 68313a0c13SJung-uk Kim * removed in ACPI 2.0, but this type of code continues to be created by 69313a0c13SJung-uk Kim * BIOS vendors. In order to support the disassembly and recompilation of 70313a0c13SJung-uk Kim * such code (and the porting of ASL code to iASL), iASL supports this 71313a0c13SJung-uk Kim * code in violation of the current ACPI specification. 72313a0c13SJung-uk Kim * 73313a0c13SJung-uk Kim * The grammar change to support module-level code is to revert the 74313a0c13SJung-uk Kim * {ObjectList} portion of the DefinitionBlockTerm in ACPI 2.0 to the 75313a0c13SJung-uk Kim * original use of {TermList} instead (see below.) This allows the use 76313a0c13SJung-uk Kim * of Type1 and Type2 opcodes at module level. 77*f8146b88SJung-uk Kim * 78*f8146b88SJung-uk Kim * 04/2016: The module-level code is now allowed in the following terms: 79*f8146b88SJung-uk Kim * DeviceTerm, PowerResTerm, ProcessorTerm, ScopeTerm, ThermalZoneTerm. 80*f8146b88SJung-uk Kim * The ObjectList term is obsolete and has been removed. 81313a0c13SJung-uk Kim */ 82313a0c13SJung-uk Kim DefinitionBlockTerm 83*f8146b88SJung-uk Kim : PARSEOP_DEFINITION_BLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITION_BLOCK);} 84313a0c13SJung-uk Kim String ',' 85313a0c13SJung-uk Kim String ',' 86313a0c13SJung-uk Kim ByteConst ',' 87313a0c13SJung-uk Kim String ',' 88313a0c13SJung-uk Kim String ',' 89313a0c13SJung-uk Kim DWordConst 90313a0c13SJung-uk Kim ')' {TrSetEndLineNumber ($<n>3);} 91313a0c13SJung-uk Kim '{' TermList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);} 92313a0c13SJung-uk Kim ; 93313a0c13SJung-uk Kim 94*f8146b88SJung-uk Kim DefinitionBlockList 95*f8146b88SJung-uk Kim : DefinitionBlockTerm 96*f8146b88SJung-uk Kim | DefinitionBlockTerm 97*f8146b88SJung-uk Kim DefinitionBlockList {$$ = TrLinkPeerNodes (2, $1,$2);} 981c0e1b6dSJung-uk Kim ; 991c0e1b6dSJung-uk Kim 100*f8146b88SJung-uk Kim SuperName 101*f8146b88SJung-uk Kim : NameString {} 102*f8146b88SJung-uk Kim | ArgTerm {} 103*f8146b88SJung-uk Kim | LocalTerm {} 104*f8146b88SJung-uk Kim | DebugTerm {} 105*f8146b88SJung-uk Kim | Type6Opcode {} 1061c0e1b6dSJung-uk Kim 107*f8146b88SJung-uk Kim Target 108*f8146b88SJung-uk Kim : {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */ 109*f8146b88SJung-uk Kim | ',' {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */ 110*f8146b88SJung-uk Kim | ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);} 1111c0e1b6dSJung-uk Kim ; 1121c0e1b6dSJung-uk Kim 113313a0c13SJung-uk Kim TermArg 1147cf3e94aSJung-uk Kim : Type2Opcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 115313a0c13SJung-uk Kim | DataObject {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 116313a0c13SJung-uk Kim | NameString {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 117313a0c13SJung-uk Kim | ArgTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 118313a0c13SJung-uk Kim | LocalTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 119313a0c13SJung-uk Kim ; 120313a0c13SJung-uk Kim 121*f8146b88SJung-uk Kim /* 122*f8146b88SJung-uk Kim NOTE: Removed from TermArg due to reduce/reduce conflicts: 123*f8146b88SJung-uk Kim | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 124*f8146b88SJung-uk Kim | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 125*f8146b88SJung-uk Kim | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 126*f8146b88SJung-uk Kim | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 127*f8146b88SJung-uk Kim 128*f8146b88SJung-uk Kim */ 129*f8146b88SJung-uk Kim 130*f8146b88SJung-uk Kim MethodInvocationTerm 131*f8146b88SJung-uk Kim : NameString '(' {TrUpdateNode (PARSEOP_METHODCALL, $1);} 132*f8146b88SJung-uk Kim ArgList ')' {$$ = TrLinkChildNode ($1,$4);} 133313a0c13SJung-uk Kim ; 134313a0c13SJung-uk Kim 135*f8146b88SJung-uk Kim /* OptionalCount must appear before ByteList or an incorrect reduction will result */ 136*f8146b88SJung-uk Kim 137*f8146b88SJung-uk Kim OptionalCount 138*f8146b88SJung-uk Kim : {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */ 139*f8146b88SJung-uk Kim | ',' {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */ 140*f8146b88SJung-uk Kim | ',' TermArg {$$ = $2;} 141313a0c13SJung-uk Kim ; 142313a0c13SJung-uk Kim 143*f8146b88SJung-uk Kim VarPackageLengthTerm 144*f8146b88SJung-uk Kim : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);} 145*f8146b88SJung-uk Kim | TermArg {$$ = $1;} 146*f8146b88SJung-uk Kim ; 147*f8146b88SJung-uk Kim 148*f8146b88SJung-uk Kim 149*f8146b88SJung-uk Kim /******* List Terms **************************************************/ 150*f8146b88SJung-uk Kim 151*f8146b88SJung-uk Kim ArgList 152*f8146b88SJung-uk Kim : {$$ = NULL;} 153*f8146b88SJung-uk Kim | TermArg 154*f8146b88SJung-uk Kim | ArgList ',' /* Allows a trailing comma at list end */ 155*f8146b88SJung-uk Kim | ArgList ',' 156*f8146b88SJung-uk Kim TermArg {$$ = TrLinkPeerNode ($1,$3);} 157*f8146b88SJung-uk Kim ; 158*f8146b88SJung-uk Kim 159*f8146b88SJung-uk Kim ByteList 160*f8146b88SJung-uk Kim : {$$ = NULL;} 161*f8146b88SJung-uk Kim | ByteConstExpr 162*f8146b88SJung-uk Kim | ByteList ',' /* Allows a trailing comma at list end */ 163*f8146b88SJung-uk Kim | ByteList ',' 164*f8146b88SJung-uk Kim ByteConstExpr {$$ = TrLinkPeerNode ($1,$3);} 165*f8146b88SJung-uk Kim ; 166*f8146b88SJung-uk Kim 167*f8146b88SJung-uk Kim DWordList 168*f8146b88SJung-uk Kim : {$$ = NULL;} 169*f8146b88SJung-uk Kim | DWordConstExpr 170*f8146b88SJung-uk Kim | DWordList ',' /* Allows a trailing comma at list end */ 171*f8146b88SJung-uk Kim | DWordList ',' 172*f8146b88SJung-uk Kim DWordConstExpr {$$ = TrLinkPeerNode ($1,$3);} 173*f8146b88SJung-uk Kim ; 174*f8146b88SJung-uk Kim 175*f8146b88SJung-uk Kim FieldUnitList 176*f8146b88SJung-uk Kim : {$$ = NULL;} 177*f8146b88SJung-uk Kim | FieldUnit 178*f8146b88SJung-uk Kim | FieldUnitList ',' /* Allows a trailing comma at list end */ 179*f8146b88SJung-uk Kim | FieldUnitList ',' 180*f8146b88SJung-uk Kim FieldUnit {$$ = TrLinkPeerNode ($1,$3);} 181*f8146b88SJung-uk Kim ; 182*f8146b88SJung-uk Kim 183*f8146b88SJung-uk Kim FieldUnit 184*f8146b88SJung-uk Kim : FieldUnitEntry {} 185*f8146b88SJung-uk Kim | OffsetTerm {} 186*f8146b88SJung-uk Kim | AccessAsTerm {} 187*f8146b88SJung-uk Kim | ConnectionTerm {} 188*f8146b88SJung-uk Kim ; 189*f8146b88SJung-uk Kim 190*f8146b88SJung-uk Kim FieldUnitEntry 191*f8146b88SJung-uk Kim : ',' AmlPackageLengthTerm {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);} 192*f8146b88SJung-uk Kim | NameSeg ',' 193*f8146b88SJung-uk Kim AmlPackageLengthTerm {$$ = TrLinkChildNode ($1,$3);} 194*f8146b88SJung-uk Kim ; 195*f8146b88SJung-uk Kim 196*f8146b88SJung-uk Kim Object 197*f8146b88SJung-uk Kim : CompilerDirective {} 198*f8146b88SJung-uk Kim | NamedObject {} 199*f8146b88SJung-uk Kim | NameSpaceModifier {} 200*f8146b88SJung-uk Kim ; 201*f8146b88SJung-uk Kim 202*f8146b88SJung-uk Kim PackageList 203*f8146b88SJung-uk Kim : {$$ = NULL;} 204*f8146b88SJung-uk Kim | PackageElement 205*f8146b88SJung-uk Kim | PackageList ',' /* Allows a trailing comma at list end */ 206*f8146b88SJung-uk Kim | PackageList ',' 207*f8146b88SJung-uk Kim PackageElement {$$ = TrLinkPeerNode ($1,$3);} 208*f8146b88SJung-uk Kim ; 209*f8146b88SJung-uk Kim 210*f8146b88SJung-uk Kim PackageElement 211*f8146b88SJung-uk Kim : DataObject {} 212*f8146b88SJung-uk Kim | NameString {} 213313a0c13SJung-uk Kim ; 214313a0c13SJung-uk Kim 215313a0c13SJung-uk Kim /* Rules for specifying the type of one method argument or return value */ 216313a0c13SJung-uk Kim 217313a0c13SJung-uk Kim ParameterTypePackage 218313a0c13SJung-uk Kim : {$$ = NULL;} 219313a0c13SJung-uk Kim | ObjectTypeKeyword {$$ = $1;} 220313a0c13SJung-uk Kim | ParameterTypePackage ',' 221313a0c13SJung-uk Kim ObjectTypeKeyword {$$ = TrLinkPeerNodes (2,$1,$3);} 222313a0c13SJung-uk Kim ; 223313a0c13SJung-uk Kim 224313a0c13SJung-uk Kim ParameterTypePackageList 225313a0c13SJung-uk Kim : {$$ = NULL;} 226313a0c13SJung-uk Kim | ObjectTypeKeyword {$$ = $1;} 227313a0c13SJung-uk Kim | '{' ParameterTypePackage '}' {$$ = $2;} 228313a0c13SJung-uk Kim ; 229313a0c13SJung-uk Kim 230313a0c13SJung-uk Kim OptionalParameterTypePackage 231313a0c13SJung-uk Kim : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);} 232313a0c13SJung-uk Kim | ',' ParameterTypePackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);} 233313a0c13SJung-uk Kim ; 234313a0c13SJung-uk Kim 235313a0c13SJung-uk Kim /* Rules for specifying the types for method arguments */ 236313a0c13SJung-uk Kim 237313a0c13SJung-uk Kim ParameterTypesPackage 238313a0c13SJung-uk Kim : ParameterTypePackageList {$$ = $1;} 239313a0c13SJung-uk Kim | ParameterTypesPackage ',' 240313a0c13SJung-uk Kim ParameterTypePackageList {$$ = TrLinkPeerNodes (2,$1,$3);} 241313a0c13SJung-uk Kim ; 242313a0c13SJung-uk Kim 243313a0c13SJung-uk Kim ParameterTypesPackageList 244313a0c13SJung-uk Kim : {$$ = NULL;} 245313a0c13SJung-uk Kim | ObjectTypeKeyword {$$ = $1;} 246313a0c13SJung-uk Kim | '{' ParameterTypesPackage '}' {$$ = $2;} 247313a0c13SJung-uk Kim ; 248313a0c13SJung-uk Kim 249313a0c13SJung-uk Kim OptionalParameterTypesPackage 250313a0c13SJung-uk Kim : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);} 251313a0c13SJung-uk Kim | ',' ParameterTypesPackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);} 252313a0c13SJung-uk Kim ; 253313a0c13SJung-uk Kim 254*f8146b88SJung-uk Kim /* ACPI 3.0 -- allow semicolons between terms */ 255*f8146b88SJung-uk Kim 256*f8146b88SJung-uk Kim TermList 257*f8146b88SJung-uk Kim : {$$ = NULL;} 258*f8146b88SJung-uk Kim | TermList Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);} 259*f8146b88SJung-uk Kim | TermList Term ';' {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);} 260*f8146b88SJung-uk Kim | TermList ';' Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);} 261*f8146b88SJung-uk Kim | TermList ';' Term ';' {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);} 262*f8146b88SJung-uk Kim ; 263*f8146b88SJung-uk Kim 264*f8146b88SJung-uk Kim Term 265*f8146b88SJung-uk Kim : Object {} 266*f8146b88SJung-uk Kim | Type1Opcode {} 267*f8146b88SJung-uk Kim | Type2Opcode {} 268*f8146b88SJung-uk Kim | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 269*f8146b88SJung-uk Kim | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 270*f8146b88SJung-uk Kim | Type2BufferOpcode {} 271*f8146b88SJung-uk Kim | Type2BufferOrStringOpcode {} 272*f8146b88SJung-uk Kim | error {$$ = AslDoError(); yyclearin;} 273*f8146b88SJung-uk Kim ; 274*f8146b88SJung-uk Kim 275*f8146b88SJung-uk Kim /* 276*f8146b88SJung-uk Kim * Case-Default list; allow only one Default term and unlimited Case terms 277*f8146b88SJung-uk Kim */ 278*f8146b88SJung-uk Kim CaseDefaultTermList 279*f8146b88SJung-uk Kim : {$$ = NULL;} 280*f8146b88SJung-uk Kim | CaseTerm {} 281*f8146b88SJung-uk Kim | DefaultTerm {} 282*f8146b88SJung-uk Kim | CaseDefaultTermList 283*f8146b88SJung-uk Kim CaseTerm {$$ = TrLinkPeerNode ($1,$2);} 284*f8146b88SJung-uk Kim | CaseDefaultTermList 285*f8146b88SJung-uk Kim DefaultTerm {$$ = TrLinkPeerNode ($1,$2);} 286*f8146b88SJung-uk Kim 287*f8146b88SJung-uk Kim /* Original - attempts to force zero or one default term within the switch */ 288*f8146b88SJung-uk Kim 289*f8146b88SJung-uk Kim /* 290*f8146b88SJung-uk Kim CaseDefaultTermList 291*f8146b88SJung-uk Kim : {$$ = NULL;} 292*f8146b88SJung-uk Kim | CaseTermList 293*f8146b88SJung-uk Kim DefaultTerm 294*f8146b88SJung-uk Kim CaseTermList {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));} 295*f8146b88SJung-uk Kim | CaseTermList 296*f8146b88SJung-uk Kim CaseTerm {$$ = TrLinkPeerNode ($1,$2);} 297*f8146b88SJung-uk Kim ; 298*f8146b88SJung-uk Kim 299*f8146b88SJung-uk Kim CaseTermList 300*f8146b88SJung-uk Kim : {$$ = NULL;} 301*f8146b88SJung-uk Kim | CaseTerm {} 302*f8146b88SJung-uk Kim | CaseTermList 303*f8146b88SJung-uk Kim CaseTerm {$$ = TrLinkPeerNode ($1,$2);} 304*f8146b88SJung-uk Kim ; 305*f8146b88SJung-uk Kim */ 306*f8146b88SJung-uk Kim 307*f8146b88SJung-uk Kim 308*f8146b88SJung-uk Kim /******************************************************************************* 309*f8146b88SJung-uk Kim * 310*f8146b88SJung-uk Kim * ASL Data and Constant Terms 311*f8146b88SJung-uk Kim * 312*f8146b88SJung-uk Kim ******************************************************************************/ 313*f8146b88SJung-uk Kim 314*f8146b88SJung-uk Kim DataObject 315*f8146b88SJung-uk Kim : BufferData {} 316*f8146b88SJung-uk Kim | PackageData {} 317*f8146b88SJung-uk Kim | IntegerData {} 318*f8146b88SJung-uk Kim | StringData {} 319*f8146b88SJung-uk Kim ; 320*f8146b88SJung-uk Kim 321*f8146b88SJung-uk Kim BufferData 322*f8146b88SJung-uk Kim : Type5Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 323*f8146b88SJung-uk Kim | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 324*f8146b88SJung-uk Kim | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 325*f8146b88SJung-uk Kim | BufferTerm {} 326*f8146b88SJung-uk Kim ; 327*f8146b88SJung-uk Kim 328*f8146b88SJung-uk Kim PackageData 329*f8146b88SJung-uk Kim : PackageTerm {} 330*f8146b88SJung-uk Kim ; 331*f8146b88SJung-uk Kim 332*f8146b88SJung-uk Kim IntegerData 333*f8146b88SJung-uk Kim : Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 334*f8146b88SJung-uk Kim | Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 335*f8146b88SJung-uk Kim | Integer {} 336*f8146b88SJung-uk Kim | ConstTerm {} 337*f8146b88SJung-uk Kim ; 338*f8146b88SJung-uk Kim 339*f8146b88SJung-uk Kim StringData 340*f8146b88SJung-uk Kim : Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 341*f8146b88SJung-uk Kim | String {} 342*f8146b88SJung-uk Kim ; 343*f8146b88SJung-uk Kim 344*f8146b88SJung-uk Kim ByteConst 345*f8146b88SJung-uk Kim : Integer {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);} 346*f8146b88SJung-uk Kim ; 347*f8146b88SJung-uk Kim 348*f8146b88SJung-uk Kim WordConst 349*f8146b88SJung-uk Kim : Integer {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);} 350*f8146b88SJung-uk Kim ; 351*f8146b88SJung-uk Kim 352*f8146b88SJung-uk Kim DWordConst 353*f8146b88SJung-uk Kim : Integer {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);} 354*f8146b88SJung-uk Kim ; 355*f8146b88SJung-uk Kim 356*f8146b88SJung-uk Kim QWordConst 357*f8146b88SJung-uk Kim : Integer {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);} 358*f8146b88SJung-uk Kim ; 359*f8146b88SJung-uk Kim 360*f8146b88SJung-uk Kim /* 361*f8146b88SJung-uk Kim * The NODE_COMPILE_TIME_CONST flag in the following constant expressions 362*f8146b88SJung-uk Kim * enables compile-time constant folding to reduce the Type3Opcodes/Type2IntegerOpcodes 363*f8146b88SJung-uk Kim * to simple integers. It is an error if these types of expressions cannot be 364*f8146b88SJung-uk Kim * reduced, since the AML grammar for ****ConstExpr requires a simple constant. 365*f8146b88SJung-uk Kim * Note: The required byte length of the constant is passed through to the 366*f8146b88SJung-uk Kim * constant folding code in the node AmlLength field. 367*f8146b88SJung-uk Kim */ 368*f8146b88SJung-uk Kim ByteConstExpr 369*f8146b88SJung-uk Kim : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);} 370*f8146b88SJung-uk Kim | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);} 371*f8146b88SJung-uk Kim | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);} 372*f8146b88SJung-uk Kim | ByteConst {} 373*f8146b88SJung-uk Kim ; 374*f8146b88SJung-uk Kim 375*f8146b88SJung-uk Kim WordConstExpr 376*f8146b88SJung-uk Kim : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);} 377*f8146b88SJung-uk Kim | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);} 378*f8146b88SJung-uk Kim | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);} 379*f8146b88SJung-uk Kim | WordConst {} 380*f8146b88SJung-uk Kim ; 381*f8146b88SJung-uk Kim 382*f8146b88SJung-uk Kim DWordConstExpr 383*f8146b88SJung-uk Kim : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);} 384*f8146b88SJung-uk Kim | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);} 385*f8146b88SJung-uk Kim | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);} 386*f8146b88SJung-uk Kim | DWordConst {} 387*f8146b88SJung-uk Kim ; 388*f8146b88SJung-uk Kim 389*f8146b88SJung-uk Kim QWordConstExpr 390*f8146b88SJung-uk Kim : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);} 391*f8146b88SJung-uk Kim | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);} 392*f8146b88SJung-uk Kim | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);} 393*f8146b88SJung-uk Kim | QWordConst {} 394*f8146b88SJung-uk Kim ; 395*f8146b88SJung-uk Kim 396*f8146b88SJung-uk Kim ConstTerm 397*f8146b88SJung-uk Kim : ConstExprTerm {} 398*f8146b88SJung-uk Kim | PARSEOP_REVISION {$$ = TrCreateLeafNode (PARSEOP_REVISION);} 399*f8146b88SJung-uk Kim ; 400*f8146b88SJung-uk Kim 401*f8146b88SJung-uk Kim ConstExprTerm 402*f8146b88SJung-uk Kim : PARSEOP_ZERO {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);} 403*f8146b88SJung-uk Kim | PARSEOP_ONE {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);} 404*f8146b88SJung-uk Kim | PARSEOP_ONES {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_UINT64_MAX);} 405*f8146b88SJung-uk Kim | PARSEOP___DATE__ {$$ = TrCreateConstantLeafNode (PARSEOP___DATE__);} 406*f8146b88SJung-uk Kim | PARSEOP___FILE__ {$$ = TrCreateConstantLeafNode (PARSEOP___FILE__);} 407*f8146b88SJung-uk Kim | PARSEOP___LINE__ {$$ = TrCreateConstantLeafNode (PARSEOP___LINE__);} 408*f8146b88SJung-uk Kim | PARSEOP___PATH__ {$$ = TrCreateConstantLeafNode (PARSEOP___PATH__);} 409*f8146b88SJung-uk Kim ; 410*f8146b88SJung-uk Kim 411*f8146b88SJung-uk Kim Integer 412*f8146b88SJung-uk Kim : PARSEOP_INTEGER {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);} 413*f8146b88SJung-uk Kim ; 414*f8146b88SJung-uk Kim 415*f8146b88SJung-uk Kim String 416*f8146b88SJung-uk Kim : PARSEOP_STRING_LITERAL {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);} 417*f8146b88SJung-uk Kim ; 418*f8146b88SJung-uk Kim 419*f8146b88SJung-uk Kim 420*f8146b88SJung-uk Kim /******************************************************************************* 421*f8146b88SJung-uk Kim * 422*f8146b88SJung-uk Kim * ASL Opcode Terms 423*f8146b88SJung-uk Kim * 424*f8146b88SJung-uk Kim ******************************************************************************/ 425*f8146b88SJung-uk Kim 426*f8146b88SJung-uk Kim CompilerDirective 427*f8146b88SJung-uk Kim : IncludeTerm {} 428*f8146b88SJung-uk Kim | IncludeEndTerm {} 429*f8146b88SJung-uk Kim | ExternalTerm {} 430*f8146b88SJung-uk Kim ; 431*f8146b88SJung-uk Kim 432*f8146b88SJung-uk Kim NamedObject 433*f8146b88SJung-uk Kim : BankFieldTerm {} 434*f8146b88SJung-uk Kim | CreateBitFieldTerm {} 435*f8146b88SJung-uk Kim | CreateByteFieldTerm {} 436*f8146b88SJung-uk Kim | CreateDWordFieldTerm {} 437*f8146b88SJung-uk Kim | CreateFieldTerm {} 438*f8146b88SJung-uk Kim | CreateQWordFieldTerm {} 439*f8146b88SJung-uk Kim | CreateWordFieldTerm {} 440*f8146b88SJung-uk Kim | DataRegionTerm {} 441*f8146b88SJung-uk Kim | DeviceTerm {} 442*f8146b88SJung-uk Kim | EventTerm {} 443*f8146b88SJung-uk Kim | FieldTerm {} 444*f8146b88SJung-uk Kim | FunctionTerm {} 445*f8146b88SJung-uk Kim | IndexFieldTerm {} 446*f8146b88SJung-uk Kim | MethodTerm {} 447*f8146b88SJung-uk Kim | MutexTerm {} 448*f8146b88SJung-uk Kim | OpRegionTerm {} 449*f8146b88SJung-uk Kim | PowerResTerm {} 450*f8146b88SJung-uk Kim | ProcessorTerm {} 451*f8146b88SJung-uk Kim | ThermalZoneTerm {} 452*f8146b88SJung-uk Kim ; 453*f8146b88SJung-uk Kim 454*f8146b88SJung-uk Kim NameSpaceModifier 455*f8146b88SJung-uk Kim : AliasTerm {} 456*f8146b88SJung-uk Kim | NameTerm {} 457*f8146b88SJung-uk Kim | ScopeTerm {} 458*f8146b88SJung-uk Kim ; 459*f8146b88SJung-uk Kim 460*f8146b88SJung-uk Kim /* For ObjectType: SuperName except for MethodInvocationTerm */ 461*f8146b88SJung-uk Kim 462*f8146b88SJung-uk Kim ObjectTypeName 463*f8146b88SJung-uk Kim : NameString {} 464*f8146b88SJung-uk Kim | ArgTerm {} 465*f8146b88SJung-uk Kim | LocalTerm {} 466*f8146b88SJung-uk Kim | DebugTerm {} 467*f8146b88SJung-uk Kim | RefOfTerm {} 468*f8146b88SJung-uk Kim | DerefOfTerm {} 469*f8146b88SJung-uk Kim | IndexTerm {} 470*f8146b88SJung-uk Kim /* | MethodInvocationTerm {} */ /* Caused reduce/reduce with Type6Opcode->MethodInvocationTerm */ 471*f8146b88SJung-uk Kim ; 472*f8146b88SJung-uk Kim 473*f8146b88SJung-uk Kim RequiredTarget 474*f8146b88SJung-uk Kim : ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);} 475*f8146b88SJung-uk Kim ; 476*f8146b88SJung-uk Kim 477*f8146b88SJung-uk Kim SimpleTarget 478*f8146b88SJung-uk Kim : NameString {} 479*f8146b88SJung-uk Kim | LocalTerm {} 480*f8146b88SJung-uk Kim | ArgTerm {} 481*f8146b88SJung-uk Kim ; 482313a0c13SJung-uk Kim 483313a0c13SJung-uk Kim /* Opcode types */ 484313a0c13SJung-uk Kim 485313a0c13SJung-uk Kim Type1Opcode 486313a0c13SJung-uk Kim : BreakTerm {} 487313a0c13SJung-uk Kim | BreakPointTerm {} 488313a0c13SJung-uk Kim | ContinueTerm {} 489313a0c13SJung-uk Kim | FatalTerm {} 490*f8146b88SJung-uk Kim | ForTerm {} 491*f8146b88SJung-uk Kim | ElseIfTerm {} 492313a0c13SJung-uk Kim | LoadTerm {} 493313a0c13SJung-uk Kim | NoOpTerm {} 494313a0c13SJung-uk Kim | NotifyTerm {} 495313a0c13SJung-uk Kim | ReleaseTerm {} 496313a0c13SJung-uk Kim | ResetTerm {} 497313a0c13SJung-uk Kim | ReturnTerm {} 498313a0c13SJung-uk Kim | SignalTerm {} 499313a0c13SJung-uk Kim | SleepTerm {} 500313a0c13SJung-uk Kim | StallTerm {} 501313a0c13SJung-uk Kim | SwitchTerm {} 502313a0c13SJung-uk Kim | UnloadTerm {} 503313a0c13SJung-uk Kim | WhileTerm {} 504313a0c13SJung-uk Kim ; 505313a0c13SJung-uk Kim 506313a0c13SJung-uk Kim Type2Opcode 507313a0c13SJung-uk Kim : AcquireTerm {} 508313a0c13SJung-uk Kim | CondRefOfTerm {} 509313a0c13SJung-uk Kim | CopyObjectTerm {} 510313a0c13SJung-uk Kim | DerefOfTerm {} 511313a0c13SJung-uk Kim | ObjectTypeTerm {} 512313a0c13SJung-uk Kim | RefOfTerm {} 513313a0c13SJung-uk Kim | SizeOfTerm {} 514313a0c13SJung-uk Kim | StoreTerm {} 5151c0e1b6dSJung-uk Kim | EqualsTerm {} 516313a0c13SJung-uk Kim | TimerTerm {} 517313a0c13SJung-uk Kim | WaitTerm {} 5187cf3e94aSJung-uk Kim | MethodInvocationTerm {} 519313a0c13SJung-uk Kim ; 520313a0c13SJung-uk Kim 521313a0c13SJung-uk Kim /* 522313a0c13SJung-uk Kim * Type 3/4/5 opcodes 523313a0c13SJung-uk Kim */ 524313a0c13SJung-uk Kim Type2IntegerOpcode /* "Type3" opcodes */ 5257cf3e94aSJung-uk Kim : Expression {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 5267cf3e94aSJung-uk Kim | AddTerm {} 527313a0c13SJung-uk Kim | AndTerm {} 528313a0c13SJung-uk Kim | DecTerm {} 529313a0c13SJung-uk Kim | DivideTerm {} 530313a0c13SJung-uk Kim | FindSetLeftBitTerm {} 531313a0c13SJung-uk Kim | FindSetRightBitTerm {} 532313a0c13SJung-uk Kim | FromBCDTerm {} 533313a0c13SJung-uk Kim | IncTerm {} 534313a0c13SJung-uk Kim | IndexTerm {} 535313a0c13SJung-uk Kim | LAndTerm {} 536313a0c13SJung-uk Kim | LEqualTerm {} 537313a0c13SJung-uk Kim | LGreaterTerm {} 538313a0c13SJung-uk Kim | LGreaterEqualTerm {} 539313a0c13SJung-uk Kim | LLessTerm {} 540313a0c13SJung-uk Kim | LLessEqualTerm {} 541313a0c13SJung-uk Kim | LNotTerm {} 542313a0c13SJung-uk Kim | LNotEqualTerm {} 543313a0c13SJung-uk Kim | LoadTableTerm {} 544313a0c13SJung-uk Kim | LOrTerm {} 545313a0c13SJung-uk Kim | MatchTerm {} 546313a0c13SJung-uk Kim | ModTerm {} 547313a0c13SJung-uk Kim | MultiplyTerm {} 548313a0c13SJung-uk Kim | NAndTerm {} 549313a0c13SJung-uk Kim | NOrTerm {} 550313a0c13SJung-uk Kim | NotTerm {} 551313a0c13SJung-uk Kim | OrTerm {} 552313a0c13SJung-uk Kim | ShiftLeftTerm {} 553313a0c13SJung-uk Kim | ShiftRightTerm {} 554313a0c13SJung-uk Kim | SubtractTerm {} 555313a0c13SJung-uk Kim | ToBCDTerm {} 556313a0c13SJung-uk Kim | ToIntegerTerm {} 557313a0c13SJung-uk Kim | XOrTerm {} 558313a0c13SJung-uk Kim ; 559313a0c13SJung-uk Kim 560313a0c13SJung-uk Kim Type2StringOpcode /* "Type4" Opcodes */ 561313a0c13SJung-uk Kim : ToDecimalStringTerm {} 562313a0c13SJung-uk Kim | ToHexStringTerm {} 563313a0c13SJung-uk Kim | ToStringTerm {} 564313a0c13SJung-uk Kim ; 565313a0c13SJung-uk Kim 566313a0c13SJung-uk Kim Type2BufferOpcode /* "Type5" Opcodes */ 567313a0c13SJung-uk Kim : ToBufferTerm {} 568313a0c13SJung-uk Kim | ConcatResTerm {} 569313a0c13SJung-uk Kim ; 570313a0c13SJung-uk Kim 571313a0c13SJung-uk Kim Type2BufferOrStringOpcode 5727cf3e94aSJung-uk Kim : ConcatTerm {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 5731c0e1b6dSJung-uk Kim | PrintfTerm {} 5741c0e1b6dSJung-uk Kim | FprintfTerm {} 575313a0c13SJung-uk Kim | MidTerm {} 576313a0c13SJung-uk Kim ; 577313a0c13SJung-uk Kim 578313a0c13SJung-uk Kim /* 579313a0c13SJung-uk Kim * A type 3 opcode evaluates to an Integer and cannot have a destination operand 580313a0c13SJung-uk Kim */ 581313a0c13SJung-uk Kim Type3Opcode 582313a0c13SJung-uk Kim : EISAIDTerm {} 583313a0c13SJung-uk Kim ; 584313a0c13SJung-uk Kim 585313a0c13SJung-uk Kim /* Obsolete 586313a0c13SJung-uk Kim Type4Opcode 587313a0c13SJung-uk Kim : ConcatTerm {} 588313a0c13SJung-uk Kim | ToDecimalStringTerm {} 589313a0c13SJung-uk Kim | ToHexStringTerm {} 590313a0c13SJung-uk Kim | MidTerm {} 591313a0c13SJung-uk Kim | ToStringTerm {} 592313a0c13SJung-uk Kim ; 593313a0c13SJung-uk Kim */ 594313a0c13SJung-uk Kim 595313a0c13SJung-uk Kim Type5Opcode 596313a0c13SJung-uk Kim : ResourceTemplateTerm {} 597313a0c13SJung-uk Kim | UnicodeTerm {} 5981c0e1b6dSJung-uk Kim | ToPLDTerm {} 599313a0c13SJung-uk Kim | ToUUIDTerm {} 600313a0c13SJung-uk Kim ; 601313a0c13SJung-uk Kim 602313a0c13SJung-uk Kim Type6Opcode 603313a0c13SJung-uk Kim : RefOfTerm {} 604313a0c13SJung-uk Kim | DerefOfTerm {} 605313a0c13SJung-uk Kim | IndexTerm {} 606*f8146b88SJung-uk Kim | IndexExpTerm {} 6077cf3e94aSJung-uk Kim | MethodInvocationTerm {} 608313a0c13SJung-uk Kim ; 609313a0c13SJung-uk Kim 610313a0c13SJung-uk Kim 611*f8146b88SJung-uk Kim /******************************************************************************* 612*f8146b88SJung-uk Kim * 613*f8146b88SJung-uk Kim * ASL Primary Terms 614*f8146b88SJung-uk Kim * 615*f8146b88SJung-uk Kim ******************************************************************************/ 616313a0c13SJung-uk Kim 617*f8146b88SJung-uk Kim AccessAsTerm 618*f8146b88SJung-uk Kim : PARSEOP_ACCESSAS '(' 619*f8146b88SJung-uk Kim AccessTypeKeyword 620*f8146b88SJung-uk Kim OptionalAccessAttribTerm 621*f8146b88SJung-uk Kim ')' {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);} 622*f8146b88SJung-uk Kim | PARSEOP_ACCESSAS '(' 623313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 624313a0c13SJung-uk Kim ; 625313a0c13SJung-uk Kim 626*f8146b88SJung-uk Kim AcquireTerm 627*f8146b88SJung-uk Kim : PARSEOP_ACQUIRE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);} 628*f8146b88SJung-uk Kim SuperName 629*f8146b88SJung-uk Kim ',' WordConstExpr 630*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$6);} 631*f8146b88SJung-uk Kim | PARSEOP_ACQUIRE '(' 632*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 633*f8146b88SJung-uk Kim ; 634313a0c13SJung-uk Kim 635*f8146b88SJung-uk Kim AddTerm 636*f8146b88SJung-uk Kim : PARSEOP_ADD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);} 637*f8146b88SJung-uk Kim TermArg 638*f8146b88SJung-uk Kim TermArgItem 639*f8146b88SJung-uk Kim Target 640*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 641*f8146b88SJung-uk Kim | PARSEOP_ADD '(' 642*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 643*f8146b88SJung-uk Kim ; 644313a0c13SJung-uk Kim 645*f8146b88SJung-uk Kim AliasTerm 646*f8146b88SJung-uk Kim : PARSEOP_ALIAS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);} 647*f8146b88SJung-uk Kim NameString 648*f8146b88SJung-uk Kim NameStringItem 649*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4, 650*f8146b88SJung-uk Kim TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));} 651*f8146b88SJung-uk Kim | PARSEOP_ALIAS '(' 652*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 653*f8146b88SJung-uk Kim ; 654*f8146b88SJung-uk Kim 655*f8146b88SJung-uk Kim AndTerm 656*f8146b88SJung-uk Kim : PARSEOP_AND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_AND);} 657*f8146b88SJung-uk Kim TermArg 658*f8146b88SJung-uk Kim TermArgItem 659*f8146b88SJung-uk Kim Target 660*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 661*f8146b88SJung-uk Kim | PARSEOP_AND '(' 662*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 663*f8146b88SJung-uk Kim ; 664*f8146b88SJung-uk Kim 665*f8146b88SJung-uk Kim ArgTerm 666*f8146b88SJung-uk Kim : PARSEOP_ARG0 {$$ = TrCreateLeafNode (PARSEOP_ARG0);} 667*f8146b88SJung-uk Kim | PARSEOP_ARG1 {$$ = TrCreateLeafNode (PARSEOP_ARG1);} 668*f8146b88SJung-uk Kim | PARSEOP_ARG2 {$$ = TrCreateLeafNode (PARSEOP_ARG2);} 669*f8146b88SJung-uk Kim | PARSEOP_ARG3 {$$ = TrCreateLeafNode (PARSEOP_ARG3);} 670*f8146b88SJung-uk Kim | PARSEOP_ARG4 {$$ = TrCreateLeafNode (PARSEOP_ARG4);} 671*f8146b88SJung-uk Kim | PARSEOP_ARG5 {$$ = TrCreateLeafNode (PARSEOP_ARG5);} 672*f8146b88SJung-uk Kim | PARSEOP_ARG6 {$$ = TrCreateLeafNode (PARSEOP_ARG6);} 673*f8146b88SJung-uk Kim ; 674313a0c13SJung-uk Kim 675313a0c13SJung-uk Kim BankFieldTerm 676313a0c13SJung-uk Kim : PARSEOP_BANKFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_BANKFIELD);} 677313a0c13SJung-uk Kim NameString 678313a0c13SJung-uk Kim NameStringItem 679313a0c13SJung-uk Kim TermArgItem 680313a0c13SJung-uk Kim ',' AccessTypeKeyword 681313a0c13SJung-uk Kim ',' LockRuleKeyword 682313a0c13SJung-uk Kim ',' UpdateRuleKeyword 683313a0c13SJung-uk Kim ')' '{' 684313a0c13SJung-uk Kim FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);} 685313a0c13SJung-uk Kim | PARSEOP_BANKFIELD '(' 686313a0c13SJung-uk Kim error ')' '{' error '}' {$$ = AslDoError(); yyclearin;} 687313a0c13SJung-uk Kim ; 688313a0c13SJung-uk Kim 689*f8146b88SJung-uk Kim BreakTerm 690*f8146b88SJung-uk Kim : PARSEOP_BREAK {$$ = TrCreateNode (PARSEOP_BREAK, 0);} 691313a0c13SJung-uk Kim ; 692313a0c13SJung-uk Kim 693*f8146b88SJung-uk Kim BreakPointTerm 694*f8146b88SJung-uk Kim : PARSEOP_BREAKPOINT {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);} 695313a0c13SJung-uk Kim ; 696313a0c13SJung-uk Kim 697*f8146b88SJung-uk Kim BufferTerm 698*f8146b88SJung-uk Kim : PARSEOP_BUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);} 699*f8146b88SJung-uk Kim OptionalBufferLength 700*f8146b88SJung-uk Kim ')' '{' 701*f8146b88SJung-uk Kim BufferTermData '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 702*f8146b88SJung-uk Kim | PARSEOP_BUFFER '(' 703313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 704313a0c13SJung-uk Kim ; 705313a0c13SJung-uk Kim 706*f8146b88SJung-uk Kim BufferTermData 707*f8146b88SJung-uk Kim : ByteList {} 708*f8146b88SJung-uk Kim | StringData {} 709*f8146b88SJung-uk Kim ; 710*f8146b88SJung-uk Kim 711*f8146b88SJung-uk Kim CaseTerm 712*f8146b88SJung-uk Kim : PARSEOP_CASE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);} 713*f8146b88SJung-uk Kim DataObject 714*f8146b88SJung-uk Kim ')' '{' 715*f8146b88SJung-uk Kim TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 716*f8146b88SJung-uk Kim | PARSEOP_CASE '(' 717*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 718*f8146b88SJung-uk Kim ; 719*f8146b88SJung-uk Kim 720*f8146b88SJung-uk Kim ConcatTerm 721*f8146b88SJung-uk Kim : PARSEOP_CONCATENATE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);} 722*f8146b88SJung-uk Kim TermArg 723*f8146b88SJung-uk Kim TermArgItem 724*f8146b88SJung-uk Kim Target 725*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 726*f8146b88SJung-uk Kim | PARSEOP_CONCATENATE '(' 727*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 728*f8146b88SJung-uk Kim ; 729*f8146b88SJung-uk Kim 730*f8146b88SJung-uk Kim ConcatResTerm 731*f8146b88SJung-uk Kim : PARSEOP_CONCATENATERESTEMPLATE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);} 732*f8146b88SJung-uk Kim TermArg 733*f8146b88SJung-uk Kim TermArgItem 734*f8146b88SJung-uk Kim Target 735*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 736*f8146b88SJung-uk Kim | PARSEOP_CONCATENATERESTEMPLATE '(' 737313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 738313a0c13SJung-uk Kim ; 739313a0c13SJung-uk Kim 740313a0c13SJung-uk Kim ConnectionTerm 741313a0c13SJung-uk Kim : PARSEOP_CONNECTION '(' 742313a0c13SJung-uk Kim NameString 743313a0c13SJung-uk Kim ')' {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);} 744313a0c13SJung-uk Kim | PARSEOP_CONNECTION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONNECTION);} 745313a0c13SJung-uk Kim ResourceMacroTerm 746313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3, 1, 747313a0c13SJung-uk Kim TrLinkChildren (TrCreateLeafNode (PARSEOP_RESOURCETEMPLATE), 3, 748313a0c13SJung-uk Kim TrCreateLeafNode (PARSEOP_DEFAULT_ARG), 749313a0c13SJung-uk Kim TrCreateLeafNode (PARSEOP_DEFAULT_ARG), 750313a0c13SJung-uk Kim $4));} 751313a0c13SJung-uk Kim | PARSEOP_CONNECTION '(' 752313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 753313a0c13SJung-uk Kim ; 754313a0c13SJung-uk Kim 755*f8146b88SJung-uk Kim CondRefOfTerm 756*f8146b88SJung-uk Kim : PARSEOP_CONDREFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);} 757*f8146b88SJung-uk Kim SuperName 758*f8146b88SJung-uk Kim Target 759*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 760*f8146b88SJung-uk Kim | PARSEOP_CONDREFOF '(' 761*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 762*f8146b88SJung-uk Kim ; 763*f8146b88SJung-uk Kim 764*f8146b88SJung-uk Kim ContinueTerm 765*f8146b88SJung-uk Kim : PARSEOP_CONTINUE {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);} 766*f8146b88SJung-uk Kim ; 767*f8146b88SJung-uk Kim 768*f8146b88SJung-uk Kim CopyObjectTerm 769*f8146b88SJung-uk Kim : PARSEOP_COPYOBJECT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);} 770*f8146b88SJung-uk Kim TermArg 771*f8146b88SJung-uk Kim ',' SimpleTarget 772*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));} 773*f8146b88SJung-uk Kim | PARSEOP_COPYOBJECT '(' 774*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 775*f8146b88SJung-uk Kim ; 776*f8146b88SJung-uk Kim 777313a0c13SJung-uk Kim CreateBitFieldTerm 778313a0c13SJung-uk Kim : PARSEOP_CREATEBITFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);} 779313a0c13SJung-uk Kim TermArg 780313a0c13SJung-uk Kim TermArgItem 781313a0c13SJung-uk Kim NameStringItem 782313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));} 783313a0c13SJung-uk Kim | PARSEOP_CREATEBITFIELD '(' 784313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 785313a0c13SJung-uk Kim ; 786313a0c13SJung-uk Kim 787313a0c13SJung-uk Kim CreateByteFieldTerm 788313a0c13SJung-uk Kim : PARSEOP_CREATEBYTEFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);} 789313a0c13SJung-uk Kim TermArg 790313a0c13SJung-uk Kim TermArgItem 791313a0c13SJung-uk Kim NameStringItem 792313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));} 793313a0c13SJung-uk Kim | PARSEOP_CREATEBYTEFIELD '(' 794313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 795313a0c13SJung-uk Kim ; 796313a0c13SJung-uk Kim 797313a0c13SJung-uk Kim CreateDWordFieldTerm 798313a0c13SJung-uk Kim : PARSEOP_CREATEDWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);} 799313a0c13SJung-uk Kim TermArg 800313a0c13SJung-uk Kim TermArgItem 801313a0c13SJung-uk Kim NameStringItem 802313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));} 803313a0c13SJung-uk Kim | PARSEOP_CREATEDWORDFIELD '(' 804313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 805313a0c13SJung-uk Kim ; 806313a0c13SJung-uk Kim 807313a0c13SJung-uk Kim CreateFieldTerm 808313a0c13SJung-uk Kim : PARSEOP_CREATEFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);} 809313a0c13SJung-uk Kim TermArg 810313a0c13SJung-uk Kim TermArgItem 811313a0c13SJung-uk Kim TermArgItem 812313a0c13SJung-uk Kim NameStringItem 813313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));} 814313a0c13SJung-uk Kim | PARSEOP_CREATEFIELD '(' 815313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 816313a0c13SJung-uk Kim ; 817313a0c13SJung-uk Kim 818313a0c13SJung-uk Kim CreateQWordFieldTerm 819313a0c13SJung-uk Kim : PARSEOP_CREATEQWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);} 820313a0c13SJung-uk Kim TermArg 821313a0c13SJung-uk Kim TermArgItem 822313a0c13SJung-uk Kim NameStringItem 823313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));} 824313a0c13SJung-uk Kim | PARSEOP_CREATEQWORDFIELD '(' 825313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 826313a0c13SJung-uk Kim ; 827313a0c13SJung-uk Kim 828313a0c13SJung-uk Kim CreateWordFieldTerm 829313a0c13SJung-uk Kim : PARSEOP_CREATEWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);} 830313a0c13SJung-uk Kim TermArg 831313a0c13SJung-uk Kim TermArgItem 832313a0c13SJung-uk Kim NameStringItem 833313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));} 834313a0c13SJung-uk Kim | PARSEOP_CREATEWORDFIELD '(' 835313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 836313a0c13SJung-uk Kim ; 837313a0c13SJung-uk Kim 838313a0c13SJung-uk Kim DataRegionTerm 839313a0c13SJung-uk Kim : PARSEOP_DATATABLEREGION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);} 840313a0c13SJung-uk Kim NameString 841313a0c13SJung-uk Kim TermArgItem 842313a0c13SJung-uk Kim TermArgItem 843313a0c13SJung-uk Kim TermArgItem 844313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);} 845313a0c13SJung-uk Kim | PARSEOP_DATATABLEREGION '(' 846313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 847313a0c13SJung-uk Kim ; 848313a0c13SJung-uk Kim 849*f8146b88SJung-uk Kim DebugTerm 850*f8146b88SJung-uk Kim : PARSEOP_DEBUG {$$ = TrCreateLeafNode (PARSEOP_DEBUG);} 851*f8146b88SJung-uk Kim ; 852*f8146b88SJung-uk Kim 853*f8146b88SJung-uk Kim DecTerm 854*f8146b88SJung-uk Kim : PARSEOP_DECREMENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);} 855*f8146b88SJung-uk Kim SuperName 856*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 857*f8146b88SJung-uk Kim | PARSEOP_DECREMENT '(' 858*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 859*f8146b88SJung-uk Kim ; 860*f8146b88SJung-uk Kim 861*f8146b88SJung-uk Kim DefaultTerm 862*f8146b88SJung-uk Kim : PARSEOP_DEFAULT '{' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);} 863*f8146b88SJung-uk Kim TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);} 864*f8146b88SJung-uk Kim | PARSEOP_DEFAULT '{' 865*f8146b88SJung-uk Kim error '}' {$$ = AslDoError(); yyclearin;} 866*f8146b88SJung-uk Kim ; 867*f8146b88SJung-uk Kim 868*f8146b88SJung-uk Kim DerefOfTerm 869*f8146b88SJung-uk Kim : PARSEOP_DEREFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);} 870*f8146b88SJung-uk Kim TermArg 871*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 872*f8146b88SJung-uk Kim | PARSEOP_DEREFOF '(' 873*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 874*f8146b88SJung-uk Kim ; 875*f8146b88SJung-uk Kim 876313a0c13SJung-uk Kim DeviceTerm 877313a0c13SJung-uk Kim : PARSEOP_DEVICE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);} 878313a0c13SJung-uk Kim NameString 879313a0c13SJung-uk Kim ')' '{' 880*f8146b88SJung-uk Kim TermList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);} 881313a0c13SJung-uk Kim | PARSEOP_DEVICE '(' 882313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 883313a0c13SJung-uk Kim ; 884313a0c13SJung-uk Kim 885*f8146b88SJung-uk Kim DivideTerm 886*f8146b88SJung-uk Kim : PARSEOP_DIVIDE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);} 887313a0c13SJung-uk Kim TermArg 888*f8146b88SJung-uk Kim TermArgItem 889*f8146b88SJung-uk Kim Target 890*f8146b88SJung-uk Kim Target 891*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);} 892*f8146b88SJung-uk Kim | PARSEOP_DIVIDE '(' 893313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 894313a0c13SJung-uk Kim ; 895313a0c13SJung-uk Kim 896*f8146b88SJung-uk Kim EISAIDTerm 897*f8146b88SJung-uk Kim : PARSEOP_EISAID '(' 898*f8146b88SJung-uk Kim StringData ')' {$$ = TrUpdateNode (PARSEOP_EISAID, $3);} 899*f8146b88SJung-uk Kim | PARSEOP_EISAID '(' 900*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 901*f8146b88SJung-uk Kim ; 902*f8146b88SJung-uk Kim 903*f8146b88SJung-uk Kim ElseIfTerm 904*f8146b88SJung-uk Kim : IfTerm ElseTerm {$$ = TrLinkPeerNode ($1,$2);} 905*f8146b88SJung-uk Kim ; 906*f8146b88SJung-uk Kim 907313a0c13SJung-uk Kim ElseTerm 908313a0c13SJung-uk Kim : {$$ = NULL;} 909313a0c13SJung-uk Kim | PARSEOP_ELSE '{' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);} 910313a0c13SJung-uk Kim TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);} 911313a0c13SJung-uk Kim 912313a0c13SJung-uk Kim | PARSEOP_ELSE '{' 913313a0c13SJung-uk Kim error '}' {$$ = AslDoError(); yyclearin;} 914313a0c13SJung-uk Kim 915313a0c13SJung-uk Kim | PARSEOP_ELSE 916313a0c13SJung-uk Kim error {$$ = AslDoError(); yyclearin;} 917313a0c13SJung-uk Kim 918313a0c13SJung-uk Kim | PARSEOP_ELSEIF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);} 919313a0c13SJung-uk Kim TermArg {$<n>$ = TrCreateLeafNode (PARSEOP_IF);} 920313a0c13SJung-uk Kim ')' '{' 921313a0c13SJung-uk Kim TermList '}' {TrLinkChildren ($<n>5,2,$4,$8);} 922313a0c13SJung-uk Kim ElseTerm {TrLinkPeerNode ($<n>5,$11);} 923313a0c13SJung-uk Kim {$$ = TrLinkChildren ($<n>3,1,$<n>5);} 924313a0c13SJung-uk Kim 925313a0c13SJung-uk Kim | PARSEOP_ELSEIF '(' 926313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 927313a0c13SJung-uk Kim 928313a0c13SJung-uk Kim | PARSEOP_ELSEIF 929313a0c13SJung-uk Kim error {$$ = AslDoError(); yyclearin;} 930313a0c13SJung-uk Kim ; 931313a0c13SJung-uk Kim 932*f8146b88SJung-uk Kim EventTerm 933*f8146b88SJung-uk Kim : PARSEOP_EVENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);} 934313a0c13SJung-uk Kim NameString 935*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));} 936*f8146b88SJung-uk Kim | PARSEOP_EVENT '(' 937313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 938313a0c13SJung-uk Kim ; 939313a0c13SJung-uk Kim 940*f8146b88SJung-uk Kim ExternalTerm 941*f8146b88SJung-uk Kim : PARSEOP_EXTERNAL '(' 942*f8146b88SJung-uk Kim NameString 943*f8146b88SJung-uk Kim OptionalObjectTypeKeyword 944*f8146b88SJung-uk Kim OptionalParameterTypePackage 945*f8146b88SJung-uk Kim OptionalParameterTypesPackage 946*f8146b88SJung-uk Kim ')' {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);} 947*f8146b88SJung-uk Kim | PARSEOP_EXTERNAL '(' 948*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 949313a0c13SJung-uk Kim ; 950313a0c13SJung-uk Kim 951*f8146b88SJung-uk Kim FatalTerm 952*f8146b88SJung-uk Kim : PARSEOP_FATAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);} 953*f8146b88SJung-uk Kim ByteConstExpr 954*f8146b88SJung-uk Kim ',' DWordConstExpr 955313a0c13SJung-uk Kim TermArgItem 956*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);} 957*f8146b88SJung-uk Kim | PARSEOP_FATAL '(' 958313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 959313a0c13SJung-uk Kim ; 960313a0c13SJung-uk Kim 961*f8146b88SJung-uk Kim FieldTerm 962*f8146b88SJung-uk Kim : PARSEOP_FIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIELD);} 963*f8146b88SJung-uk Kim NameString 964*f8146b88SJung-uk Kim ',' AccessTypeKeyword 965*f8146b88SJung-uk Kim ',' LockRuleKeyword 966*f8146b88SJung-uk Kim ',' UpdateRuleKeyword 967313a0c13SJung-uk Kim ')' '{' 968*f8146b88SJung-uk Kim FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);} 969*f8146b88SJung-uk Kim | PARSEOP_FIELD '(' 970*f8146b88SJung-uk Kim error ')' '{' error '}' {$$ = AslDoError(); yyclearin;} 971313a0c13SJung-uk Kim ; 972313a0c13SJung-uk Kim 973313a0c13SJung-uk Kim FindSetLeftBitTerm 974313a0c13SJung-uk Kim : PARSEOP_FINDSETLEFTBIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);} 975313a0c13SJung-uk Kim TermArg 976313a0c13SJung-uk Kim Target 977313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 978313a0c13SJung-uk Kim | PARSEOP_FINDSETLEFTBIT '(' 979313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 980313a0c13SJung-uk Kim ; 981313a0c13SJung-uk Kim 982313a0c13SJung-uk Kim FindSetRightBitTerm 983313a0c13SJung-uk Kim : PARSEOP_FINDSETRIGHTBIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);} 984313a0c13SJung-uk Kim TermArg 985313a0c13SJung-uk Kim Target 986313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 987313a0c13SJung-uk Kim | PARSEOP_FINDSETRIGHTBIT '(' 988313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 989313a0c13SJung-uk Kim ; 990313a0c13SJung-uk Kim 991*f8146b88SJung-uk Kim /* Convert a For() loop to a While() loop */ 992*f8146b88SJung-uk Kim ForTerm 993*f8146b88SJung-uk Kim : PARSEOP_FOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);} 994*f8146b88SJung-uk Kim OptionalTermArg ',' {} 995*f8146b88SJung-uk Kim OptionalPredicate ',' 996*f8146b88SJung-uk Kim OptionalTermArg {$<n>$ = TrLinkPeerNode ($4,$<n>3); 997*f8146b88SJung-uk Kim TrSetParent ($9,$<n>3);} /* New parent is WHILE */ 998*f8146b88SJung-uk Kim ')' '{' TermList '}' {$<n>$ = TrLinkChildren ($<n>3,2,$7,$13);} 999*f8146b88SJung-uk Kim {$<n>$ = TrLinkPeerNode ($13,$9); 1000*f8146b88SJung-uk Kim $$ = $<n>10;} 1001*f8146b88SJung-uk Kim ; 1002*f8146b88SJung-uk Kim 1003*f8146b88SJung-uk Kim OptionalPredicate 1004*f8146b88SJung-uk Kim : {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, 1);} 1005*f8146b88SJung-uk Kim | TermArg {$$ = $1;} 1006*f8146b88SJung-uk Kim ; 1007*f8146b88SJung-uk Kim 1008*f8146b88SJung-uk Kim FprintfTerm 1009*f8146b88SJung-uk Kim : PARSEOP_FPRINTF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FPRINTF);} 1010*f8146b88SJung-uk Kim TermArg ',' 1011*f8146b88SJung-uk Kim StringData 1012*f8146b88SJung-uk Kim PrintfArgList 1013*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);} 1014*f8146b88SJung-uk Kim | PARSEOP_FPRINTF '(' 1015*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1016*f8146b88SJung-uk Kim ; 1017*f8146b88SJung-uk Kim 1018313a0c13SJung-uk Kim FromBCDTerm 1019313a0c13SJung-uk Kim : PARSEOP_FROMBCD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);} 1020313a0c13SJung-uk Kim TermArg 1021313a0c13SJung-uk Kim Target 1022313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1023313a0c13SJung-uk Kim | PARSEOP_FROMBCD '(' 1024313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1025313a0c13SJung-uk Kim ; 1026313a0c13SJung-uk Kim 1027*f8146b88SJung-uk Kim FunctionTerm 1028*f8146b88SJung-uk Kim : PARSEOP_FUNCTION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);} 1029*f8146b88SJung-uk Kim NameString 1030*f8146b88SJung-uk Kim OptionalParameterTypePackage 1031*f8146b88SJung-uk Kim OptionalParameterTypesPackage 1032*f8146b88SJung-uk Kim ')' '{' 1033*f8146b88SJung-uk Kim TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION), 1034*f8146b88SJung-uk Kim TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0), 1035*f8146b88SJung-uk Kim TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL), 1036*f8146b88SJung-uk Kim TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);} 1037*f8146b88SJung-uk Kim | PARSEOP_FUNCTION '(' 1038*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1039*f8146b88SJung-uk Kim ; 1040*f8146b88SJung-uk Kim 1041*f8146b88SJung-uk Kim IfTerm 1042*f8146b88SJung-uk Kim : PARSEOP_IF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IF);} 1043*f8146b88SJung-uk Kim TermArg 1044*f8146b88SJung-uk Kim ')' '{' 1045*f8146b88SJung-uk Kim TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 1046*f8146b88SJung-uk Kim 1047*f8146b88SJung-uk Kim | PARSEOP_IF '(' 1048*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1049*f8146b88SJung-uk Kim ; 1050*f8146b88SJung-uk Kim 1051*f8146b88SJung-uk Kim IncludeTerm 1052*f8146b88SJung-uk Kim : PARSEOP_INCLUDE '(' 1053*f8146b88SJung-uk Kim String ')' {$$ = TrUpdateNode (PARSEOP_INCLUDE, $3); 1054*f8146b88SJung-uk Kim FlOpenIncludeFile ($3);} 1055*f8146b88SJung-uk Kim ; 1056*f8146b88SJung-uk Kim 1057*f8146b88SJung-uk Kim IncludeEndTerm 1058*f8146b88SJung-uk Kim : PARSEOP_INCLUDE_END {$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE_END); TrSetCurrentFilename ($$);} 1059*f8146b88SJung-uk Kim ; 1060*f8146b88SJung-uk Kim 1061313a0c13SJung-uk Kim IncTerm 1062313a0c13SJung-uk Kim : PARSEOP_INCREMENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);} 1063313a0c13SJung-uk Kim SuperName 1064313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1065313a0c13SJung-uk Kim | PARSEOP_INCREMENT '(' 1066313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1067313a0c13SJung-uk Kim ; 1068313a0c13SJung-uk Kim 1069*f8146b88SJung-uk Kim IndexFieldTerm 1070*f8146b88SJung-uk Kim : PARSEOP_INDEXFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);} 1071*f8146b88SJung-uk Kim NameString 1072*f8146b88SJung-uk Kim NameStringItem 1073*f8146b88SJung-uk Kim ',' AccessTypeKeyword 1074*f8146b88SJung-uk Kim ',' LockRuleKeyword 1075*f8146b88SJung-uk Kim ',' UpdateRuleKeyword 1076*f8146b88SJung-uk Kim ')' '{' 1077*f8146b88SJung-uk Kim FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);} 1078*f8146b88SJung-uk Kim | PARSEOP_INDEXFIELD '(' 1079*f8146b88SJung-uk Kim error ')' '{' error '}' {$$ = AslDoError(); yyclearin;} 1080*f8146b88SJung-uk Kim ; 1081*f8146b88SJung-uk Kim 1082313a0c13SJung-uk Kim IndexTerm 1083313a0c13SJung-uk Kim : PARSEOP_INDEX '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);} 1084313a0c13SJung-uk Kim TermArg 1085313a0c13SJung-uk Kim TermArgItem 1086313a0c13SJung-uk Kim Target 1087313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1088313a0c13SJung-uk Kim | PARSEOP_INDEX '(' 1089313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1090313a0c13SJung-uk Kim ; 1091313a0c13SJung-uk Kim 1092313a0c13SJung-uk Kim LAndTerm 1093313a0c13SJung-uk Kim : PARSEOP_LAND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);} 1094313a0c13SJung-uk Kim TermArg 1095313a0c13SJung-uk Kim TermArgItem 1096313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1097313a0c13SJung-uk Kim | PARSEOP_LAND '(' 1098313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1099313a0c13SJung-uk Kim ; 1100313a0c13SJung-uk Kim 1101313a0c13SJung-uk Kim LEqualTerm 1102313a0c13SJung-uk Kim : PARSEOP_LEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);} 1103313a0c13SJung-uk Kim TermArg 1104313a0c13SJung-uk Kim TermArgItem 1105313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1106313a0c13SJung-uk Kim | PARSEOP_LEQUAL '(' 1107313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1108313a0c13SJung-uk Kim ; 1109313a0c13SJung-uk Kim 1110313a0c13SJung-uk Kim LGreaterEqualTerm 1111313a0c13SJung-uk Kim : PARSEOP_LGREATEREQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);} 1112313a0c13SJung-uk Kim TermArg 1113313a0c13SJung-uk Kim TermArgItem 1114313a0c13SJung-uk Kim ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));} 1115313a0c13SJung-uk Kim | PARSEOP_LGREATEREQUAL '(' 1116313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1117313a0c13SJung-uk Kim ; 1118313a0c13SJung-uk Kim 1119*f8146b88SJung-uk Kim LGreaterTerm 1120*f8146b88SJung-uk Kim : PARSEOP_LGREATER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);} 1121313a0c13SJung-uk Kim TermArg 1122313a0c13SJung-uk Kim TermArgItem 1123313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1124*f8146b88SJung-uk Kim | PARSEOP_LGREATER '(' 1125313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1126313a0c13SJung-uk Kim ; 1127313a0c13SJung-uk Kim 1128313a0c13SJung-uk Kim LLessEqualTerm 1129313a0c13SJung-uk Kim : PARSEOP_LLESSEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);} 1130313a0c13SJung-uk Kim TermArg 1131313a0c13SJung-uk Kim TermArgItem 1132313a0c13SJung-uk Kim ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));} 1133313a0c13SJung-uk Kim | PARSEOP_LLESSEQUAL '(' 1134313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1135313a0c13SJung-uk Kim ; 1136313a0c13SJung-uk Kim 1137*f8146b88SJung-uk Kim LLessTerm 1138*f8146b88SJung-uk Kim : PARSEOP_LLESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);} 1139313a0c13SJung-uk Kim TermArg 1140*f8146b88SJung-uk Kim TermArgItem 1141*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1142*f8146b88SJung-uk Kim | PARSEOP_LLESS '(' 1143313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1144313a0c13SJung-uk Kim ; 1145313a0c13SJung-uk Kim 1146313a0c13SJung-uk Kim LNotEqualTerm 1147313a0c13SJung-uk Kim : PARSEOP_LNOTEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);} 1148313a0c13SJung-uk Kim TermArg 1149313a0c13SJung-uk Kim TermArgItem 1150313a0c13SJung-uk Kim ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));} 1151313a0c13SJung-uk Kim | PARSEOP_LNOTEQUAL '(' 1152313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1153313a0c13SJung-uk Kim ; 1154313a0c13SJung-uk Kim 1155*f8146b88SJung-uk Kim LNotTerm 1156*f8146b88SJung-uk Kim : PARSEOP_LNOT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);} 1157*f8146b88SJung-uk Kim TermArg 1158*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1159*f8146b88SJung-uk Kim | PARSEOP_LNOT '(' 1160*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1161*f8146b88SJung-uk Kim ; 1162*f8146b88SJung-uk Kim 1163313a0c13SJung-uk Kim LoadTableTerm 1164313a0c13SJung-uk Kim : PARSEOP_LOADTABLE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);} 1165313a0c13SJung-uk Kim TermArg 1166313a0c13SJung-uk Kim TermArgItem 1167313a0c13SJung-uk Kim TermArgItem 1168313a0c13SJung-uk Kim OptionalListString 1169313a0c13SJung-uk Kim OptionalListString 1170313a0c13SJung-uk Kim OptionalReference 1171313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);} 1172313a0c13SJung-uk Kim | PARSEOP_LOADTABLE '(' 1173313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1174313a0c13SJung-uk Kim ; 1175313a0c13SJung-uk Kim 1176*f8146b88SJung-uk Kim LoadTerm 1177*f8146b88SJung-uk Kim : PARSEOP_LOAD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);} 1178*f8146b88SJung-uk Kim NameString 1179*f8146b88SJung-uk Kim RequiredTarget 1180*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1181*f8146b88SJung-uk Kim | PARSEOP_LOAD '(' 1182*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1183*f8146b88SJung-uk Kim ; 1184*f8146b88SJung-uk Kim 1185*f8146b88SJung-uk Kim LocalTerm 1186*f8146b88SJung-uk Kim : PARSEOP_LOCAL0 {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);} 1187*f8146b88SJung-uk Kim | PARSEOP_LOCAL1 {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);} 1188*f8146b88SJung-uk Kim | PARSEOP_LOCAL2 {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);} 1189*f8146b88SJung-uk Kim | PARSEOP_LOCAL3 {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);} 1190*f8146b88SJung-uk Kim | PARSEOP_LOCAL4 {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);} 1191*f8146b88SJung-uk Kim | PARSEOP_LOCAL5 {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);} 1192*f8146b88SJung-uk Kim | PARSEOP_LOCAL6 {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);} 1193*f8146b88SJung-uk Kim | PARSEOP_LOCAL7 {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);} 1194*f8146b88SJung-uk Kim ; 1195*f8146b88SJung-uk Kim 1196313a0c13SJung-uk Kim LOrTerm 1197313a0c13SJung-uk Kim : PARSEOP_LOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);} 1198313a0c13SJung-uk Kim TermArg 1199313a0c13SJung-uk Kim TermArgItem 1200313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1201313a0c13SJung-uk Kim | PARSEOP_LOR '(' 1202313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1203313a0c13SJung-uk Kim ; 1204313a0c13SJung-uk Kim 1205313a0c13SJung-uk Kim MatchTerm 1206313a0c13SJung-uk Kim : PARSEOP_MATCH '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);} 1207313a0c13SJung-uk Kim TermArg 1208313a0c13SJung-uk Kim ',' MatchOpKeyword 1209313a0c13SJung-uk Kim TermArgItem 1210313a0c13SJung-uk Kim ',' MatchOpKeyword 1211313a0c13SJung-uk Kim TermArgItem 1212313a0c13SJung-uk Kim TermArgItem 1213313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);} 1214313a0c13SJung-uk Kim | PARSEOP_MATCH '(' 1215313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1216313a0c13SJung-uk Kim ; 1217313a0c13SJung-uk Kim 1218*f8146b88SJung-uk Kim MethodTerm 1219*f8146b88SJung-uk Kim : PARSEOP_METHOD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);} 1220*f8146b88SJung-uk Kim NameString 1221*f8146b88SJung-uk Kim OptionalByteConstExpr {UtCheckIntegerRange ($5, 0, 7);} 1222*f8146b88SJung-uk Kim OptionalSerializeRuleKeyword 1223*f8146b88SJung-uk Kim OptionalByteConstExpr 1224*f8146b88SJung-uk Kim OptionalParameterTypePackage 1225*f8146b88SJung-uk Kim OptionalParameterTypesPackage 1226*f8146b88SJung-uk Kim ')' '{' 1227*f8146b88SJung-uk Kim TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);} 1228*f8146b88SJung-uk Kim | PARSEOP_METHOD '(' 1229*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1230*f8146b88SJung-uk Kim ; 1231*f8146b88SJung-uk Kim 1232313a0c13SJung-uk Kim MidTerm 1233313a0c13SJung-uk Kim : PARSEOP_MID '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MID);} 1234313a0c13SJung-uk Kim TermArg 1235313a0c13SJung-uk Kim TermArgItem 1236313a0c13SJung-uk Kim TermArgItem 1237313a0c13SJung-uk Kim Target 1238313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);} 1239313a0c13SJung-uk Kim | PARSEOP_MID '(' 1240313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1241313a0c13SJung-uk Kim ; 1242313a0c13SJung-uk Kim 1243313a0c13SJung-uk Kim ModTerm 1244313a0c13SJung-uk Kim : PARSEOP_MOD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);} 1245313a0c13SJung-uk Kim TermArg 1246313a0c13SJung-uk Kim TermArgItem 1247313a0c13SJung-uk Kim Target 1248313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1249313a0c13SJung-uk Kim | PARSEOP_MOD '(' 1250313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1251313a0c13SJung-uk Kim ; 1252313a0c13SJung-uk Kim 1253313a0c13SJung-uk Kim MultiplyTerm 1254313a0c13SJung-uk Kim : PARSEOP_MULTIPLY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);} 1255313a0c13SJung-uk Kim TermArg 1256313a0c13SJung-uk Kim TermArgItem 1257313a0c13SJung-uk Kim Target 1258313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1259313a0c13SJung-uk Kim | PARSEOP_MULTIPLY '(' 1260313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1261313a0c13SJung-uk Kim ; 1262313a0c13SJung-uk Kim 1263*f8146b88SJung-uk Kim MutexTerm 1264*f8146b88SJung-uk Kim : PARSEOP_MUTEX '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);} 1265*f8146b88SJung-uk Kim NameString 1266*f8146b88SJung-uk Kim ',' ByteConstExpr 1267*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);} 1268*f8146b88SJung-uk Kim | PARSEOP_MUTEX '(' 1269*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1270*f8146b88SJung-uk Kim ; 1271*f8146b88SJung-uk Kim 1272*f8146b88SJung-uk Kim NameTerm 1273*f8146b88SJung-uk Kim : PARSEOP_NAME '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);} 1274*f8146b88SJung-uk Kim NameString 1275*f8146b88SJung-uk Kim ',' DataObject 1276*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);} 1277*f8146b88SJung-uk Kim | PARSEOP_NAME '(' 1278*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1279*f8146b88SJung-uk Kim ; 1280*f8146b88SJung-uk Kim 1281313a0c13SJung-uk Kim NAndTerm 1282313a0c13SJung-uk Kim : PARSEOP_NAND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NAND);} 1283313a0c13SJung-uk Kim TermArg 1284313a0c13SJung-uk Kim TermArgItem 1285313a0c13SJung-uk Kim Target 1286313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1287313a0c13SJung-uk Kim | PARSEOP_NAND '(' 1288313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1289313a0c13SJung-uk Kim ; 1290313a0c13SJung-uk Kim 1291*f8146b88SJung-uk Kim NoOpTerm 1292*f8146b88SJung-uk Kim : PARSEOP_NOOP {$$ = TrCreateNode (PARSEOP_NOOP, 0);} 1293*f8146b88SJung-uk Kim ; 1294*f8146b88SJung-uk Kim 1295313a0c13SJung-uk Kim NOrTerm 1296313a0c13SJung-uk Kim : PARSEOP_NOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOR);} 1297313a0c13SJung-uk Kim TermArg 1298313a0c13SJung-uk Kim TermArgItem 1299313a0c13SJung-uk Kim Target 1300313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1301313a0c13SJung-uk Kim | PARSEOP_NOR '(' 1302313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1303313a0c13SJung-uk Kim ; 1304313a0c13SJung-uk Kim 1305*f8146b88SJung-uk Kim NotifyTerm 1306*f8146b88SJung-uk Kim : PARSEOP_NOTIFY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);} 1307*f8146b88SJung-uk Kim SuperName 1308*f8146b88SJung-uk Kim TermArgItem 1309*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1310*f8146b88SJung-uk Kim | PARSEOP_NOTIFY '(' 1311*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1312*f8146b88SJung-uk Kim ; 1313*f8146b88SJung-uk Kim 1314313a0c13SJung-uk Kim NotTerm 1315313a0c13SJung-uk Kim : PARSEOP_NOT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);} 1316313a0c13SJung-uk Kim TermArg 1317313a0c13SJung-uk Kim Target 1318313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1319313a0c13SJung-uk Kim | PARSEOP_NOT '(' 1320313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1321313a0c13SJung-uk Kim ; 1322313a0c13SJung-uk Kim 1323313a0c13SJung-uk Kim ObjectTypeTerm 1324313a0c13SJung-uk Kim : PARSEOP_OBJECTTYPE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);} 1325313a0c13SJung-uk Kim ObjectTypeName 1326313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1327313a0c13SJung-uk Kim | PARSEOP_OBJECTTYPE '(' 1328313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1329313a0c13SJung-uk Kim ; 1330313a0c13SJung-uk Kim 1331*f8146b88SJung-uk Kim OffsetTerm 1332*f8146b88SJung-uk Kim : PARSEOP_OFFSET '(' 1333*f8146b88SJung-uk Kim AmlPackageLengthTerm 1334*f8146b88SJung-uk Kim ')' {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);} 1335*f8146b88SJung-uk Kim | PARSEOP_OFFSET '(' 1336*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1337*f8146b88SJung-uk Kim ; 1338*f8146b88SJung-uk Kim 1339*f8146b88SJung-uk Kim OpRegionTerm 1340*f8146b88SJung-uk Kim : PARSEOP_OPERATIONREGION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);} 1341*f8146b88SJung-uk Kim NameString 1342*f8146b88SJung-uk Kim ',' OpRegionSpaceIdTerm 1343*f8146b88SJung-uk Kim TermArgItem 1344*f8146b88SJung-uk Kim TermArgItem 1345*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);} 1346*f8146b88SJung-uk Kim | PARSEOP_OPERATIONREGION '(' 1347*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1348*f8146b88SJung-uk Kim ; 1349*f8146b88SJung-uk Kim 1350*f8146b88SJung-uk Kim OpRegionSpaceIdTerm 1351*f8146b88SJung-uk Kim : RegionSpaceKeyword {} 1352*f8146b88SJung-uk Kim | ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);} 1353*f8146b88SJung-uk Kim ; 1354*f8146b88SJung-uk Kim 1355313a0c13SJung-uk Kim OrTerm 1356313a0c13SJung-uk Kim : PARSEOP_OR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OR);} 1357313a0c13SJung-uk Kim TermArg 1358313a0c13SJung-uk Kim TermArgItem 1359313a0c13SJung-uk Kim Target 1360313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1361313a0c13SJung-uk Kim | PARSEOP_OR '(' 1362313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1363313a0c13SJung-uk Kim ; 1364313a0c13SJung-uk Kim 1365*f8146b88SJung-uk Kim PackageTerm 1366*f8146b88SJung-uk Kim : PARSEOP_PACKAGE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);} 1367*f8146b88SJung-uk Kim VarPackageLengthTerm 1368*f8146b88SJung-uk Kim ')' '{' 1369*f8146b88SJung-uk Kim PackageList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 1370*f8146b88SJung-uk Kim | PARSEOP_PACKAGE '(' 1371*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1372*f8146b88SJung-uk Kim ; 1373*f8146b88SJung-uk Kim 1374*f8146b88SJung-uk Kim PowerResTerm 1375*f8146b88SJung-uk Kim : PARSEOP_POWERRESOURCE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);} 1376*f8146b88SJung-uk Kim NameString 1377*f8146b88SJung-uk Kim ',' ByteConstExpr 1378*f8146b88SJung-uk Kim ',' WordConstExpr 1379*f8146b88SJung-uk Kim ')' '{' 1380*f8146b88SJung-uk Kim TermList '}' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);} 1381*f8146b88SJung-uk Kim | PARSEOP_POWERRESOURCE '(' 1382*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1383*f8146b88SJung-uk Kim ; 1384*f8146b88SJung-uk Kim 1385*f8146b88SJung-uk Kim PrintfTerm 1386*f8146b88SJung-uk Kim : PARSEOP_PRINTF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);} 1387*f8146b88SJung-uk Kim StringData 1388*f8146b88SJung-uk Kim PrintfArgList 1389*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1390*f8146b88SJung-uk Kim | PARSEOP_PRINTF '(' 1391*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1392*f8146b88SJung-uk Kim ; 1393*f8146b88SJung-uk Kim 1394*f8146b88SJung-uk Kim PrintfArgList 1395*f8146b88SJung-uk Kim : {$$ = NULL;} 1396*f8146b88SJung-uk Kim | TermArg {$$ = $1;} 1397*f8146b88SJung-uk Kim | PrintfArgList ',' 1398*f8146b88SJung-uk Kim TermArg {$$ = TrLinkPeerNode ($1, $3);} 1399*f8146b88SJung-uk Kim ; 1400*f8146b88SJung-uk Kim 1401*f8146b88SJung-uk Kim ProcessorTerm 1402*f8146b88SJung-uk Kim : PARSEOP_PROCESSOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);} 1403*f8146b88SJung-uk Kim NameString 1404*f8146b88SJung-uk Kim ',' ByteConstExpr 1405*f8146b88SJung-uk Kim OptionalDWordConstExpr 1406*f8146b88SJung-uk Kim OptionalByteConstExpr 1407*f8146b88SJung-uk Kim ')' '{' 1408*f8146b88SJung-uk Kim TermList '}' {$$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);} 1409*f8146b88SJung-uk Kim | PARSEOP_PROCESSOR '(' 1410*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1411*f8146b88SJung-uk Kim ; 1412*f8146b88SJung-uk Kim 1413*f8146b88SJung-uk Kim RawDataBufferTerm 1414*f8146b88SJung-uk Kim : PARSEOP_DATABUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);} 1415*f8146b88SJung-uk Kim OptionalWordConst 1416*f8146b88SJung-uk Kim ')' '{' 1417*f8146b88SJung-uk Kim ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 1418*f8146b88SJung-uk Kim | PARSEOP_DATABUFFER '(' 1419*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1420*f8146b88SJung-uk Kim ; 1421*f8146b88SJung-uk Kim 1422313a0c13SJung-uk Kim /* 1423313a0c13SJung-uk Kim * In RefOf, the node isn't really a target, but we can't keep track of it after 1424313a0c13SJung-uk Kim * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.) 1425313a0c13SJung-uk Kim */ 1426313a0c13SJung-uk Kim RefOfTerm 1427313a0c13SJung-uk Kim : PARSEOP_REFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);} 1428313a0c13SJung-uk Kim SuperName 1429313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));} 1430313a0c13SJung-uk Kim | PARSEOP_REFOF '(' 1431313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1432313a0c13SJung-uk Kim ; 1433313a0c13SJung-uk Kim 1434*f8146b88SJung-uk Kim ReleaseTerm 1435*f8146b88SJung-uk Kim : PARSEOP_RELEASE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);} 1436*f8146b88SJung-uk Kim SuperName 1437*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1438*f8146b88SJung-uk Kim | PARSEOP_RELEASE '(' 1439*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1440*f8146b88SJung-uk Kim ; 1441*f8146b88SJung-uk Kim 1442*f8146b88SJung-uk Kim ResetTerm 1443*f8146b88SJung-uk Kim : PARSEOP_RESET '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);} 1444*f8146b88SJung-uk Kim SuperName 1445*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1446*f8146b88SJung-uk Kim | PARSEOP_RESET '(' 1447*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1448*f8146b88SJung-uk Kim ; 1449*f8146b88SJung-uk Kim 1450*f8146b88SJung-uk Kim ReturnTerm 1451*f8146b88SJung-uk Kim : PARSEOP_RETURN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);} 1452*f8146b88SJung-uk Kim OptionalReturnArg 1453*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1454*f8146b88SJung-uk Kim | PARSEOP_RETURN {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN));} 1455*f8146b88SJung-uk Kim | PARSEOP_RETURN '(' 1456*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1457*f8146b88SJung-uk Kim ; 1458*f8146b88SJung-uk Kim 1459*f8146b88SJung-uk Kim ScopeTerm 1460*f8146b88SJung-uk Kim : PARSEOP_SCOPE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);} 1461*f8146b88SJung-uk Kim NameString 1462*f8146b88SJung-uk Kim ')' '{' 1463*f8146b88SJung-uk Kim TermList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);} 1464*f8146b88SJung-uk Kim | PARSEOP_SCOPE '(' 1465*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1466*f8146b88SJung-uk Kim ; 1467*f8146b88SJung-uk Kim 1468313a0c13SJung-uk Kim ShiftLeftTerm 1469313a0c13SJung-uk Kim : PARSEOP_SHIFTLEFT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);} 1470313a0c13SJung-uk Kim TermArg 1471313a0c13SJung-uk Kim TermArgItem 1472313a0c13SJung-uk Kim Target 1473313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1474313a0c13SJung-uk Kim | PARSEOP_SHIFTLEFT '(' 1475313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1476313a0c13SJung-uk Kim ; 1477313a0c13SJung-uk Kim 1478313a0c13SJung-uk Kim ShiftRightTerm 1479313a0c13SJung-uk Kim : PARSEOP_SHIFTRIGHT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);} 1480313a0c13SJung-uk Kim TermArg 1481313a0c13SJung-uk Kim TermArgItem 1482313a0c13SJung-uk Kim Target 1483313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1484313a0c13SJung-uk Kim | PARSEOP_SHIFTRIGHT '(' 1485313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1486313a0c13SJung-uk Kim ; 1487313a0c13SJung-uk Kim 1488*f8146b88SJung-uk Kim SignalTerm 1489*f8146b88SJung-uk Kim : PARSEOP_SIGNAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);} 1490*f8146b88SJung-uk Kim SuperName 1491*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1492*f8146b88SJung-uk Kim | PARSEOP_SIGNAL '(' 1493*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1494*f8146b88SJung-uk Kim ; 1495*f8146b88SJung-uk Kim 1496313a0c13SJung-uk Kim SizeOfTerm 1497313a0c13SJung-uk Kim : PARSEOP_SIZEOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);} 1498313a0c13SJung-uk Kim SuperName 1499313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1500313a0c13SJung-uk Kim | PARSEOP_SIZEOF '(' 1501313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1502313a0c13SJung-uk Kim ; 1503313a0c13SJung-uk Kim 1504*f8146b88SJung-uk Kim SleepTerm 1505*f8146b88SJung-uk Kim : PARSEOP_SLEEP '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);} 1506*f8146b88SJung-uk Kim TermArg 1507*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1508*f8146b88SJung-uk Kim | PARSEOP_SLEEP '(' 1509*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1510*f8146b88SJung-uk Kim ; 1511*f8146b88SJung-uk Kim 1512*f8146b88SJung-uk Kim StallTerm 1513*f8146b88SJung-uk Kim : PARSEOP_STALL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);} 1514*f8146b88SJung-uk Kim TermArg 1515*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1516*f8146b88SJung-uk Kim | PARSEOP_STALL '(' 1517*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1518*f8146b88SJung-uk Kim ; 1519*f8146b88SJung-uk Kim 1520313a0c13SJung-uk Kim StoreTerm 1521313a0c13SJung-uk Kim : PARSEOP_STORE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);} 1522313a0c13SJung-uk Kim TermArg 1523313a0c13SJung-uk Kim ',' SuperName 1524313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));} 1525313a0c13SJung-uk Kim | PARSEOP_STORE '(' 1526313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1527313a0c13SJung-uk Kim ; 1528313a0c13SJung-uk Kim 1529313a0c13SJung-uk Kim SubtractTerm 1530313a0c13SJung-uk Kim : PARSEOP_SUBTRACT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);} 1531313a0c13SJung-uk Kim TermArg 1532313a0c13SJung-uk Kim TermArgItem 1533313a0c13SJung-uk Kim Target 1534313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1535313a0c13SJung-uk Kim | PARSEOP_SUBTRACT '(' 1536313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1537313a0c13SJung-uk Kim ; 1538*f8146b88SJung-uk Kim SwitchTerm 1539*f8146b88SJung-uk Kim : PARSEOP_SWITCH '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);} 1540*f8146b88SJung-uk Kim TermArg 1541*f8146b88SJung-uk Kim ')' '{' 1542*f8146b88SJung-uk Kim CaseDefaultTermList '}' 1543*f8146b88SJung-uk Kim {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 1544*f8146b88SJung-uk Kim | PARSEOP_SWITCH '(' 1545*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1546*f8146b88SJung-uk Kim ; 1547*f8146b88SJung-uk Kim 1548*f8146b88SJung-uk Kim ThermalZoneTerm 1549*f8146b88SJung-uk Kim : PARSEOP_THERMALZONE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);} 1550*f8146b88SJung-uk Kim NameString 1551*f8146b88SJung-uk Kim ')' '{' 1552*f8146b88SJung-uk Kim TermList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);} 1553*f8146b88SJung-uk Kim | PARSEOP_THERMALZONE '(' 1554*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1555*f8146b88SJung-uk Kim ; 1556313a0c13SJung-uk Kim 1557313a0c13SJung-uk Kim TimerTerm 1558313a0c13SJung-uk Kim : PARSEOP_TIMER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);} 1559313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,0);} 1560313a0c13SJung-uk Kim | PARSEOP_TIMER {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);} 1561313a0c13SJung-uk Kim | PARSEOP_TIMER '(' 1562313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1563313a0c13SJung-uk Kim ; 1564313a0c13SJung-uk Kim 1565313a0c13SJung-uk Kim ToBCDTerm 1566313a0c13SJung-uk Kim : PARSEOP_TOBCD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);} 1567313a0c13SJung-uk Kim TermArg 1568313a0c13SJung-uk Kim Target 1569313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1570313a0c13SJung-uk Kim | PARSEOP_TOBCD '(' 1571313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1572313a0c13SJung-uk Kim ; 1573313a0c13SJung-uk Kim 1574313a0c13SJung-uk Kim ToBufferTerm 1575313a0c13SJung-uk Kim : PARSEOP_TOBUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);} 1576313a0c13SJung-uk Kim TermArg 1577313a0c13SJung-uk Kim Target 1578313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1579313a0c13SJung-uk Kim | PARSEOP_TOBUFFER '(' 1580313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1581313a0c13SJung-uk Kim ; 1582313a0c13SJung-uk Kim 1583313a0c13SJung-uk Kim ToDecimalStringTerm 1584313a0c13SJung-uk Kim : PARSEOP_TODECIMALSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);} 1585313a0c13SJung-uk Kim TermArg 1586313a0c13SJung-uk Kim Target 1587313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1588313a0c13SJung-uk Kim | PARSEOP_TODECIMALSTRING '(' 1589313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1590313a0c13SJung-uk Kim ; 1591313a0c13SJung-uk Kim 1592313a0c13SJung-uk Kim ToHexStringTerm 1593313a0c13SJung-uk Kim : PARSEOP_TOHEXSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);} 1594313a0c13SJung-uk Kim TermArg 1595313a0c13SJung-uk Kim Target 1596313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1597313a0c13SJung-uk Kim | PARSEOP_TOHEXSTRING '(' 1598313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1599313a0c13SJung-uk Kim ; 1600313a0c13SJung-uk Kim 1601313a0c13SJung-uk Kim ToIntegerTerm 1602313a0c13SJung-uk Kim : PARSEOP_TOINTEGER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);} 1603313a0c13SJung-uk Kim TermArg 1604313a0c13SJung-uk Kim Target 1605313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1606313a0c13SJung-uk Kim | PARSEOP_TOINTEGER '(' 1607313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1608313a0c13SJung-uk Kim ; 1609313a0c13SJung-uk Kim 1610*f8146b88SJung-uk Kim ToPLDTerm 1611*f8146b88SJung-uk Kim : PARSEOP_TOPLD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);} 1612*f8146b88SJung-uk Kim PldKeywordList 1613*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1614*f8146b88SJung-uk Kim | PARSEOP_TOPLD '(' 1615*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 16161c0e1b6dSJung-uk Kim ; 16171c0e1b6dSJung-uk Kim 16181c0e1b6dSJung-uk Kim PldKeywordList 16191c0e1b6dSJung-uk Kim : {$$ = NULL;} 16201c0e1b6dSJung-uk Kim | PldKeyword 16211c0e1b6dSJung-uk Kim PARSEOP_EXP_EQUALS Integer {$$ = TrLinkChildren ($1,1,$3);} 16221c0e1b6dSJung-uk Kim | PldKeyword 16231c0e1b6dSJung-uk Kim PARSEOP_EXP_EQUALS String {$$ = TrLinkChildren ($1,1,$3);} 16241c0e1b6dSJung-uk Kim | PldKeywordList ',' /* Allows a trailing comma at list end */ 16251c0e1b6dSJung-uk Kim | PldKeywordList ',' 16261c0e1b6dSJung-uk Kim PldKeyword 16271c0e1b6dSJung-uk Kim PARSEOP_EXP_EQUALS Integer {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));} 16281c0e1b6dSJung-uk Kim | PldKeywordList ',' 16291c0e1b6dSJung-uk Kim PldKeyword 16301c0e1b6dSJung-uk Kim PARSEOP_EXP_EQUALS String {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));} 16311c0e1b6dSJung-uk Kim ; 16321c0e1b6dSJung-uk Kim 16331c0e1b6dSJung-uk Kim 1634313a0c13SJung-uk Kim ToStringTerm 1635313a0c13SJung-uk Kim : PARSEOP_TOSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);} 1636313a0c13SJung-uk Kim TermArg 1637313a0c13SJung-uk Kim OptionalCount 1638313a0c13SJung-uk Kim Target 1639313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1640313a0c13SJung-uk Kim | PARSEOP_TOSTRING '(' 1641313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1642313a0c13SJung-uk Kim ; 1643313a0c13SJung-uk Kim 1644313a0c13SJung-uk Kim ToUUIDTerm 1645313a0c13SJung-uk Kim : PARSEOP_TOUUID '(' 1646313a0c13SJung-uk Kim StringData ')' {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);} 1647313a0c13SJung-uk Kim | PARSEOP_TOUUID '(' 1648313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1649313a0c13SJung-uk Kim ; 1650313a0c13SJung-uk Kim 1651*f8146b88SJung-uk Kim UnicodeTerm 1652*f8146b88SJung-uk Kim : PARSEOP_UNICODE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);} 1653*f8146b88SJung-uk Kim StringData 1654*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,0,$4);} 1655*f8146b88SJung-uk Kim | PARSEOP_UNICODE '(' 1656*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1657*f8146b88SJung-uk Kim ; 1658*f8146b88SJung-uk Kim 1659*f8146b88SJung-uk Kim UnloadTerm 1660*f8146b88SJung-uk Kim : PARSEOP_UNLOAD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);} 1661*f8146b88SJung-uk Kim SuperName 1662*f8146b88SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1663*f8146b88SJung-uk Kim | PARSEOP_UNLOAD '(' 1664*f8146b88SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1665*f8146b88SJung-uk Kim ; 1666*f8146b88SJung-uk Kim 1667313a0c13SJung-uk Kim WaitTerm 1668313a0c13SJung-uk Kim : PARSEOP_WAIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);} 1669313a0c13SJung-uk Kim SuperName 1670313a0c13SJung-uk Kim TermArgItem 1671313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1672313a0c13SJung-uk Kim | PARSEOP_WAIT '(' 1673313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1674313a0c13SJung-uk Kim ; 1675313a0c13SJung-uk Kim 1676313a0c13SJung-uk Kim XOrTerm 1677313a0c13SJung-uk Kim : PARSEOP_XOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);} 1678313a0c13SJung-uk Kim TermArg 1679313a0c13SJung-uk Kim TermArgItem 1680313a0c13SJung-uk Kim Target 1681313a0c13SJung-uk Kim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1682313a0c13SJung-uk Kim | PARSEOP_XOR '(' 1683313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1684313a0c13SJung-uk Kim ; 1685313a0c13SJung-uk Kim 1686*f8146b88SJung-uk Kim WhileTerm 1687*f8146b88SJung-uk Kim : PARSEOP_WHILE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);} 1688*f8146b88SJung-uk Kim TermArg 1689*f8146b88SJung-uk Kim ')' '{' TermList '}' 1690*f8146b88SJung-uk Kim {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 1691*f8146b88SJung-uk Kim | PARSEOP_WHILE '(' 1692313a0c13SJung-uk Kim error ')' {$$ = AslDoError(); yyclearin;} 1693313a0c13SJung-uk Kim ; 1694313a0c13SJung-uk Kim 1695313a0c13SJung-uk Kim 1696*f8146b88SJung-uk Kim /******************************************************************************* 1697*f8146b88SJung-uk Kim * 1698*f8146b88SJung-uk Kim * ASL Helper Terms 1699*f8146b88SJung-uk Kim * 1700*f8146b88SJung-uk Kim ******************************************************************************/ 1701313a0c13SJung-uk Kim 1702313a0c13SJung-uk Kim AmlPackageLengthTerm 1703313a0c13SJung-uk Kim : Integer {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);} 1704313a0c13SJung-uk Kim ; 1705313a0c13SJung-uk Kim 1706313a0c13SJung-uk Kim NameStringItem 1707313a0c13SJung-uk Kim : ',' NameString {$$ = $2;} 1708313a0c13SJung-uk Kim | ',' error {$$ = AslDoError (); yyclearin;} 1709313a0c13SJung-uk Kim ; 1710313a0c13SJung-uk Kim 1711313a0c13SJung-uk Kim TermArgItem 1712313a0c13SJung-uk Kim : ',' TermArg {$$ = $2;} 1713313a0c13SJung-uk Kim | ',' error {$$ = AslDoError (); yyclearin;} 1714313a0c13SJung-uk Kim ; 1715313a0c13SJung-uk Kim 1716313a0c13SJung-uk Kim OptionalReference 1717313a0c13SJung-uk Kim : {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */ 1718313a0c13SJung-uk Kim | ',' {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */ 1719313a0c13SJung-uk Kim | ',' TermArg {$$ = $2;} 1720313a0c13SJung-uk Kim ; 1721313a0c13SJung-uk Kim 1722313a0c13SJung-uk Kim OptionalReturnArg 1723313a0c13SJung-uk Kim : {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN);} /* Placeholder is a ZeroOp object */ 1724313a0c13SJung-uk Kim | TermArg {$$ = $1;} 1725313a0c13SJung-uk Kim ; 1726313a0c13SJung-uk Kim 1727313a0c13SJung-uk Kim OptionalSerializeRuleKeyword 1728313a0c13SJung-uk Kim : {$$ = NULL;} 1729313a0c13SJung-uk Kim | ',' {$$ = NULL;} 1730313a0c13SJung-uk Kim | ',' SerializeRuleKeyword {$$ = $2;} 1731313a0c13SJung-uk Kim ; 1732313a0c13SJung-uk Kim 1733313a0c13SJung-uk Kim OptionalTermArg 1734*f8146b88SJung-uk Kim : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);} 1735313a0c13SJung-uk Kim | TermArg {$$ = $1;} 1736313a0c13SJung-uk Kim ; 1737313a0c13SJung-uk Kim 1738*f8146b88SJung-uk Kim OptionalBufferLength 1739313a0c13SJung-uk Kim : {$$ = NULL;} 1740*f8146b88SJung-uk Kim | TermArg {$$ = $1;} 1741313a0c13SJung-uk Kim ; 1742313a0c13SJung-uk Kim 1743313a0c13SJung-uk Kim OptionalWordConst 1744313a0c13SJung-uk Kim : {$$ = NULL;} 1745313a0c13SJung-uk Kim | WordConst {$$ = $1;} 1746313a0c13SJung-uk Kim ; 1747