aslrules.y revision 281687
1271440SjkimNoEcho(' 2271440Sjkim/****************************************************************************** 3271440Sjkim * 4271440Sjkim * Module Name: aslrules.y - Bison/Yacc production rules 5271440Sjkim * 6271440Sjkim *****************************************************************************/ 7271440Sjkim 8271440Sjkim/* 9281075Sdim * Copyright (C) 2000 - 2015, Intel Corp. 10271440Sjkim * All rights reserved. 11271440Sjkim * 12271440Sjkim * Redistribution and use in source and binary forms, with or without 13271440Sjkim * modification, are permitted provided that the following conditions 14271440Sjkim * are met: 15271440Sjkim * 1. Redistributions of source code must retain the above copyright 16271440Sjkim * notice, this list of conditions, and the following disclaimer, 17271440Sjkim * without modification. 18271440Sjkim * 2. Redistributions in binary form must reproduce at minimum a disclaimer 19271440Sjkim * substantially similar to the "NO WARRANTY" disclaimer below 20271440Sjkim * ("Disclaimer") and any redistribution must be conditioned upon 21271440Sjkim * including a substantially similar Disclaimer requirement for further 22271440Sjkim * binary redistribution. 23271440Sjkim * 3. Neither the names of the above-listed copyright holders nor the names 24271440Sjkim * of any contributors may be used to endorse or promote products derived 25271440Sjkim * from this software without specific prior written permission. 26271440Sjkim * 27271440Sjkim * Alternatively, this software may be distributed under the terms of the 28271440Sjkim * GNU General Public License ("GPL") version 2 as published by the Free 29271440Sjkim * Software Foundation. 30271440Sjkim * 31271440Sjkim * NO WARRANTY 32271440Sjkim * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 33271440Sjkim * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 34271440Sjkim * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR 35271440Sjkim * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 36271440Sjkim * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 37271440Sjkim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 38271440Sjkim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 39271440Sjkim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 40271440Sjkim * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 41271440Sjkim * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 42271440Sjkim * POSSIBILITY OF SUCH DAMAGES. 43271440Sjkim */ 44271440Sjkim 45271440Sjkim') 46271440Sjkim 47271440Sjkim/******************************************************************************* 48271440Sjkim * 49271440Sjkim * Production rules start here 50271440Sjkim * 51271440Sjkim ******************************************************************************/ 52271440Sjkim 53271440Sjkim/* 54271440Sjkim * ASL Names 55271440Sjkim * 56271440Sjkim * Root rule. Allow multiple #line directives before the definition block 57271440Sjkim * to handle output from preprocessors 58271440Sjkim */ 59271440SjkimASLCode 60271440Sjkim : DefinitionBlockTerm 61271440Sjkim | error {YYABORT; $$ = NULL;} 62271440Sjkim ; 63271440Sjkim 64271440Sjkim/* 65271440Sjkim * Blocks, Data, and Opcodes 66271440Sjkim */ 67271440Sjkim 68271440Sjkim/* 69271440Sjkim * Note concerning support for "module-level code". 70271440Sjkim * 71271440Sjkim * ACPI 1.0 allowed Type1 and Type2 executable opcodes outside of control 72271440Sjkim * methods (the so-called module-level code.) This support was explicitly 73271440Sjkim * removed in ACPI 2.0, but this type of code continues to be created by 74271440Sjkim * BIOS vendors. In order to support the disassembly and recompilation of 75271440Sjkim * such code (and the porting of ASL code to iASL), iASL supports this 76271440Sjkim * code in violation of the current ACPI specification. 77271440Sjkim * 78271440Sjkim * The grammar change to support module-level code is to revert the 79271440Sjkim * {ObjectList} portion of the DefinitionBlockTerm in ACPI 2.0 to the 80271440Sjkim * original use of {TermList} instead (see below.) This allows the use 81271440Sjkim * of Type1 and Type2 opcodes at module level. 82271440Sjkim */ 83271440SjkimDefinitionBlockTerm 84271440Sjkim : PARSEOP_DEFINITIONBLOCK '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFINITIONBLOCK);} 85271440Sjkim String ',' 86271440Sjkim String ',' 87271440Sjkim ByteConst ',' 88271440Sjkim String ',' 89271440Sjkim String ',' 90271440Sjkim DWordConst 91271440Sjkim ')' {TrSetEndLineNumber ($<n>3);} 92271440Sjkim '{' TermList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$6,$8,$10,$12,$14,$18);} 93271440Sjkim ; 94271440Sjkim 95281075Sdim /* 96281075Sdim * ASL Extensions: C-style math/logical operators and expressions. 97281075Sdim * The implementation transforms these operators into the standard 98281075Sdim * AML opcodes and syntax. 99281075Sdim * 100281075Sdim * Supported operators and precedence rules (high-to-low) 101281075Sdim * 102281075Sdim * NOTE: The operator precedence and associativity rules are 103281075Sdim * implemented by the tokens in asltokens.y 104281075Sdim * 105281075Sdim * (left-to-right): 106281075Sdim * 1) ( ) expr++ expr-- 107281075Sdim * 108281075Sdim * (right-to-left): 109281075Sdim * 2) ! ~ 110281075Sdim * 111281075Sdim * (left-to-right): 112281075Sdim * 3) * / % 113281075Sdim * 4) + - 114281075Sdim * 5) >> << 115281075Sdim * 6) < > <= >= 116281075Sdim * 7) == != 117281075Sdim * 8) & 118281075Sdim * 9) ^ 119281075Sdim * 10) | 120281075Sdim * 11) && 121281075Sdim * 12) || 122281075Sdim * 123281075Sdim * (right-to-left): 124281075Sdim * 13) = += -= *= /= %= <<= >>= &= ^= |= 125281075Sdim */ 126281075SdimExpression 127281075Sdim 128281075Sdim /* Unary operators */ 129281075Sdim 130281075Sdim : PARSEOP_EXP_LOGICAL_NOT {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);} 131281075Sdim TermArg {$$ = TrLinkChildren ($<n>2,1,$3);} 132281075Sdim | PARSEOP_EXP_NOT {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);} 133281687Sjkim TermArg {$$ = TrLinkChildren ($<n>2,2,$3,TrCreateNullTarget ());} 134281075Sdim 135281075Sdim | SuperName PARSEOP_EXP_INCREMENT {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);} 136281075Sdim {$$ = TrLinkChildren ($<n>3,1,$1);} 137281075Sdim | SuperName PARSEOP_EXP_DECREMENT {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);} 138281075Sdim {$$ = TrLinkChildren ($<n>3,1,$1);} 139281075Sdim 140281075Sdim /* Binary operators: math and logical */ 141281075Sdim 142281075Sdim | TermArg PARSEOP_EXP_ADD {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);} 143281687Sjkim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());} 144281075Sdim | TermArg PARSEOP_EXP_DIVIDE {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);} 145281687Sjkim TermArg {$$ = TrLinkChildren ($<n>3,4,$1,$4,TrCreateNullTarget (), 146281687Sjkim TrCreateNullTarget ());} 147281075Sdim | TermArg PARSEOP_EXP_MODULO {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);} 148281687Sjkim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());} 149281075Sdim | TermArg PARSEOP_EXP_MULTIPLY {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);} 150281687Sjkim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());} 151281075Sdim | TermArg PARSEOP_EXP_SHIFT_LEFT {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);} 152281687Sjkim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());} 153281075Sdim | TermArg PARSEOP_EXP_SHIFT_RIGHT {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);} 154281687Sjkim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());} 155281075Sdim | TermArg PARSEOP_EXP_SUBTRACT {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);} 156281687Sjkim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());} 157281075Sdim 158281075Sdim | TermArg PARSEOP_EXP_AND {$<n>$ = TrCreateLeafNode (PARSEOP_AND);} 159281687Sjkim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());} 160281075Sdim | TermArg PARSEOP_EXP_OR {$<n>$ = TrCreateLeafNode (PARSEOP_OR);} 161281687Sjkim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());} 162281075Sdim | TermArg PARSEOP_EXP_XOR {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);} 163281687Sjkim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4,TrCreateNullTarget ());} 164281075Sdim 165281075Sdim | TermArg PARSEOP_EXP_GREATER {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);} 166281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);} 167281075Sdim | TermArg PARSEOP_EXP_GREATER_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATEREQUAL);} 168281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);} 169281075Sdim | TermArg PARSEOP_EXP_LESS {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);} 170281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);} 171281075Sdim | TermArg PARSEOP_EXP_LESS_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LLESSEQUAL);} 172281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);} 173281075Sdim 174281075Sdim | TermArg PARSEOP_EXP_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);} 175281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);} 176281075Sdim | TermArg PARSEOP_EXP_NOT_EQUAL {$<n>$ = TrCreateLeafNode (PARSEOP_LNOTEQUAL);} 177281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);} 178281075Sdim 179281075Sdim | TermArg PARSEOP_EXP_LOGICAL_AND {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);} 180281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);} 181281075Sdim | TermArg PARSEOP_EXP_LOGICAL_OR {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);} 182281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,2,$1,$4);} 183281075Sdim 184281075Sdim /* Parentheses */ 185281075Sdim 186281075Sdim | '(' TermArg ')' { $$ = $2;} 187281075Sdim ; 188281075Sdim 189281075SdimEqualsTerm 190281075Sdim 191281075Sdim /* All assignment-type operations */ 192281075Sdim 193281075Sdim : SuperName PARSEOP_EXP_EQUALS 194281075Sdim TermArg {$$ = TrCreateAssignmentNode ($1, $3);} 195281075Sdim 196281075Sdim | TermArg PARSEOP_EXP_ADD_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);} 197281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4, 198281075Sdim TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));} 199281075Sdim 200281075Sdim | TermArg PARSEOP_EXP_DIV_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);} 201281687Sjkim TermArg {$$ = TrLinkChildren ($<n>3,4,$1,$4,TrCreateNullTarget (), 202281075Sdim TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));} 203281075Sdim 204281075Sdim | TermArg PARSEOP_EXP_MOD_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);} 205281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4, 206281075Sdim TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));} 207281075Sdim 208281075Sdim | TermArg PARSEOP_EXP_MUL_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);} 209281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4, 210281075Sdim TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));} 211281075Sdim 212281075Sdim | TermArg PARSEOP_EXP_SHL_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);} 213281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4, 214281075Sdim TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));} 215281075Sdim 216281075Sdim | TermArg PARSEOP_EXP_SHR_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);} 217281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4, 218281075Sdim TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));} 219281075Sdim 220281075Sdim | TermArg PARSEOP_EXP_SUB_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);} 221281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4, 222281075Sdim TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));} 223281075Sdim 224281075Sdim | TermArg PARSEOP_EXP_AND_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_AND);} 225281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4, 226281075Sdim TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));} 227281075Sdim 228281075Sdim | TermArg PARSEOP_EXP_OR_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_OR);} 229281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4, 230281075Sdim TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));} 231281075Sdim 232281075Sdim | TermArg PARSEOP_EXP_XOR_EQ {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);} 233281075Sdim TermArg {$$ = TrLinkChildren ($<n>3,3,$1,$4, 234281075Sdim TrSetNodeFlags (TrCreateTargetOperand ($1, NULL), NODE_IS_TARGET));} 235281075Sdim ; 236281075Sdim 237281075Sdim 238271440Sjkim/* ACPI 3.0 -- allow semicolons between terms */ 239271440Sjkim 240271440SjkimTermList 241271440Sjkim : {$$ = NULL;} 242271440Sjkim | TermList Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);} 243271440Sjkim | TermList Term ';' {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$2);} 244271440Sjkim | TermList ';' Term {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);} 245271440Sjkim | TermList ';' Term ';' {$$ = TrLinkPeerNode (TrSetNodeFlags ($1, NODE_RESULT_NOT_USED),$3);} 246271440Sjkim ; 247271440Sjkim 248271440SjkimTerm 249271440Sjkim : Object {} 250271440Sjkim | Type1Opcode {} 251271440Sjkim | Type2Opcode {} 252281687Sjkim | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 253281687Sjkim | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 254271440Sjkim | Type2BufferOpcode {} 255271440Sjkim | Type2BufferOrStringOpcode {} 256271440Sjkim | error {$$ = AslDoError(); yyclearin;} 257271440Sjkim ; 258271440Sjkim 259271440SjkimCompilerDirective 260271440Sjkim : IncludeTerm {} 261271440Sjkim | ExternalTerm {} 262271440Sjkim ; 263271440Sjkim 264271440SjkimObjectList 265271440Sjkim : {$$ = NULL;} 266271440Sjkim | ObjectList Object {$$ = TrLinkPeerNode ($1,$2);} 267271440Sjkim | error {$$ = AslDoError(); yyclearin;} 268271440Sjkim ; 269271440Sjkim 270271440SjkimObject 271271440Sjkim : CompilerDirective {} 272271440Sjkim | NamedObject {} 273271440Sjkim | NameSpaceModifier {} 274271440Sjkim ; 275271440Sjkim 276271440SjkimDataObject 277271440Sjkim : BufferData {} 278271440Sjkim | PackageData {} 279271440Sjkim | IntegerData {} 280271440Sjkim | StringData {} 281271440Sjkim ; 282271440Sjkim 283271440SjkimBufferData 284271440Sjkim : Type5Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 285271440Sjkim | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 286271440Sjkim | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 287271440Sjkim | BufferTerm {} 288271440Sjkim ; 289271440Sjkim 290271440SjkimPackageData 291271440Sjkim : PackageTerm {} 292271440Sjkim ; 293271440Sjkim 294271440SjkimIntegerData 295271440Sjkim : Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 296271440Sjkim | Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 297271440Sjkim | Integer {} 298271440Sjkim | ConstTerm {} 299271440Sjkim ; 300271440Sjkim 301271440SjkimStringData 302271440Sjkim : Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 303271440Sjkim | String {} 304271440Sjkim ; 305271440Sjkim 306271440SjkimNamedObject 307271440Sjkim : BankFieldTerm {} 308271440Sjkim | CreateBitFieldTerm {} 309271440Sjkim | CreateByteFieldTerm {} 310271440Sjkim | CreateDWordFieldTerm {} 311271440Sjkim | CreateFieldTerm {} 312271440Sjkim | CreateQWordFieldTerm {} 313271440Sjkim | CreateWordFieldTerm {} 314271440Sjkim | DataRegionTerm {} 315271440Sjkim | DeviceTerm {} 316271440Sjkim | EventTerm {} 317271440Sjkim | FieldTerm {} 318271440Sjkim | FunctionTerm {} 319271440Sjkim | IndexFieldTerm {} 320271440Sjkim | MethodTerm {} 321271440Sjkim | MutexTerm {} 322271440Sjkim | OpRegionTerm {} 323271440Sjkim | PowerResTerm {} 324271440Sjkim | ProcessorTerm {} 325271440Sjkim | ThermalZoneTerm {} 326271440Sjkim ; 327271440Sjkim 328271440SjkimNameSpaceModifier 329271440Sjkim : AliasTerm {} 330271440Sjkim | NameTerm {} 331271440Sjkim | ScopeTerm {} 332271440Sjkim ; 333271440Sjkim 334281687SjkimMethodInvocationTerm 335271440Sjkim : NameString '(' {TrUpdateNode (PARSEOP_METHODCALL, $1);} 336271440Sjkim ArgList ')' {$$ = TrLinkChildNode ($1,$4);} 337271440Sjkim ; 338271440Sjkim 339271440SjkimArgList 340271440Sjkim : {$$ = NULL;} 341271440Sjkim | TermArg 342271440Sjkim | ArgList ',' /* Allows a trailing comma at list end */ 343271440Sjkim | ArgList ',' 344271440Sjkim TermArg {$$ = TrLinkPeerNode ($1,$3);} 345271440Sjkim ; 346271440Sjkim 347271440Sjkim/* 348271440SjkimRemoved from TermArg due to reduce/reduce conflicts 349271440Sjkim | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 350271440Sjkim | Type2StringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 351271440Sjkim | Type2BufferOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 352271440Sjkim | Type2BufferOrStringOpcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 353271440Sjkim 354271440Sjkim*/ 355271440Sjkim 356271440SjkimTermArg 357281687Sjkim : Type2Opcode {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 358271440Sjkim | DataObject {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 359271440Sjkim | NameString {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 360271440Sjkim | ArgTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 361271440Sjkim | LocalTerm {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);} 362271440Sjkim ; 363271440Sjkim 364271440SjkimTarget 365281687Sjkim : {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */ 366281687Sjkim | ',' {$$ = TrCreateNullTarget ();} /* Placeholder is a ZeroOp object */ 367271440Sjkim | ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);} 368271440Sjkim ; 369271440Sjkim 370271440SjkimRequiredTarget 371271440Sjkim : ',' SuperName {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);} 372271440Sjkim ; 373271440Sjkim 374271440SjkimSimpleTarget 375271440Sjkim : NameString {} 376271440Sjkim | LocalTerm {} 377271440Sjkim | ArgTerm {} 378271440Sjkim ; 379271440Sjkim 380271440Sjkim/* Rules for specifying the type of one method argument or return value */ 381271440Sjkim 382271440SjkimParameterTypePackage 383271440Sjkim : {$$ = NULL;} 384271440Sjkim | ObjectTypeKeyword {$$ = $1;} 385271440Sjkim | ParameterTypePackage ',' 386271440Sjkim ObjectTypeKeyword {$$ = TrLinkPeerNodes (2,$1,$3);} 387271440Sjkim ; 388271440Sjkim 389271440SjkimParameterTypePackageList 390271440Sjkim : {$$ = NULL;} 391271440Sjkim | ObjectTypeKeyword {$$ = $1;} 392271440Sjkim | '{' ParameterTypePackage '}' {$$ = $2;} 393271440Sjkim ; 394271440Sjkim 395271440SjkimOptionalParameterTypePackage 396271440Sjkim : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);} 397271440Sjkim | ',' ParameterTypePackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);} 398271440Sjkim ; 399271440Sjkim 400271440Sjkim/* Rules for specifying the types for method arguments */ 401271440Sjkim 402271440SjkimParameterTypesPackage 403271440Sjkim : ParameterTypePackageList {$$ = $1;} 404271440Sjkim | ParameterTypesPackage ',' 405271440Sjkim ParameterTypePackageList {$$ = TrLinkPeerNodes (2,$1,$3);} 406271440Sjkim ; 407271440Sjkim 408271440SjkimParameterTypesPackageList 409271440Sjkim : {$$ = NULL;} 410271440Sjkim | ObjectTypeKeyword {$$ = $1;} 411271440Sjkim | '{' ParameterTypesPackage '}' {$$ = $2;} 412271440Sjkim ; 413271440Sjkim 414271440SjkimOptionalParameterTypesPackage 415271440Sjkim : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);} 416271440Sjkim | ',' ParameterTypesPackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);} 417271440Sjkim ; 418271440Sjkim 419271440Sjkim 420271440Sjkim/* Opcode types */ 421271440Sjkim 422271440SjkimType1Opcode 423271440Sjkim : BreakTerm {} 424271440Sjkim | BreakPointTerm {} 425271440Sjkim | ContinueTerm {} 426271440Sjkim | FatalTerm {} 427271440Sjkim | IfElseTerm {} 428271440Sjkim | LoadTerm {} 429271440Sjkim | NoOpTerm {} 430271440Sjkim | NotifyTerm {} 431271440Sjkim | ReleaseTerm {} 432271440Sjkim | ResetTerm {} 433271440Sjkim | ReturnTerm {} 434271440Sjkim | SignalTerm {} 435271440Sjkim | SleepTerm {} 436271440Sjkim | StallTerm {} 437271440Sjkim | SwitchTerm {} 438271440Sjkim | UnloadTerm {} 439271440Sjkim | WhileTerm {} 440271440Sjkim ; 441271440Sjkim 442271440SjkimType2Opcode 443271440Sjkim : AcquireTerm {} 444271440Sjkim | CondRefOfTerm {} 445271440Sjkim | CopyObjectTerm {} 446271440Sjkim | DerefOfTerm {} 447271440Sjkim | ObjectTypeTerm {} 448271440Sjkim | RefOfTerm {} 449271440Sjkim | SizeOfTerm {} 450271440Sjkim | StoreTerm {} 451281075Sdim | EqualsTerm {} 452271440Sjkim | TimerTerm {} 453271440Sjkim | WaitTerm {} 454281687Sjkim | MethodInvocationTerm {} 455271440Sjkim ; 456271440Sjkim 457271440Sjkim/* 458271440Sjkim * Type 3/4/5 opcodes 459271440Sjkim */ 460271440Sjkim 461271440SjkimType2IntegerOpcode /* "Type3" opcodes */ 462281687Sjkim : Expression {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 463281687Sjkim | AddTerm {} 464271440Sjkim | AndTerm {} 465271440Sjkim | DecTerm {} 466271440Sjkim | DivideTerm {} 467271440Sjkim | FindSetLeftBitTerm {} 468271440Sjkim | FindSetRightBitTerm {} 469271440Sjkim | FromBCDTerm {} 470271440Sjkim | IncTerm {} 471271440Sjkim | IndexTerm {} 472271440Sjkim | LAndTerm {} 473271440Sjkim | LEqualTerm {} 474271440Sjkim | LGreaterTerm {} 475271440Sjkim | LGreaterEqualTerm {} 476271440Sjkim | LLessTerm {} 477271440Sjkim | LLessEqualTerm {} 478271440Sjkim | LNotTerm {} 479271440Sjkim | LNotEqualTerm {} 480271440Sjkim | LoadTableTerm {} 481271440Sjkim | LOrTerm {} 482271440Sjkim | MatchTerm {} 483271440Sjkim | ModTerm {} 484271440Sjkim | MultiplyTerm {} 485271440Sjkim | NAndTerm {} 486271440Sjkim | NOrTerm {} 487271440Sjkim | NotTerm {} 488271440Sjkim | OrTerm {} 489271440Sjkim | ShiftLeftTerm {} 490271440Sjkim | ShiftRightTerm {} 491271440Sjkim | SubtractTerm {} 492271440Sjkim | ToBCDTerm {} 493271440Sjkim | ToIntegerTerm {} 494271440Sjkim | XOrTerm {} 495271440Sjkim ; 496271440Sjkim 497271440SjkimType2StringOpcode /* "Type4" Opcodes */ 498271440Sjkim : ToDecimalStringTerm {} 499271440Sjkim | ToHexStringTerm {} 500271440Sjkim | ToStringTerm {} 501271440Sjkim ; 502271440Sjkim 503271440SjkimType2BufferOpcode /* "Type5" Opcodes */ 504271440Sjkim : ToBufferTerm {} 505271440Sjkim | ConcatResTerm {} 506271440Sjkim ; 507271440Sjkim 508271440SjkimType2BufferOrStringOpcode 509281687Sjkim : ConcatTerm {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);} 510281075Sdim | PrintfTerm {} 511281075Sdim | FprintfTerm {} 512271440Sjkim | MidTerm {} 513271440Sjkim ; 514271440Sjkim 515271440Sjkim/* 516271440Sjkim * A type 3 opcode evaluates to an Integer and cannot have a destination operand 517271440Sjkim */ 518271440Sjkim 519271440SjkimType3Opcode 520271440Sjkim : EISAIDTerm {} 521271440Sjkim ; 522271440Sjkim 523271440Sjkim/* Obsolete 524271440SjkimType4Opcode 525271440Sjkim : ConcatTerm {} 526271440Sjkim | ToDecimalStringTerm {} 527271440Sjkim | ToHexStringTerm {} 528271440Sjkim | MidTerm {} 529271440Sjkim | ToStringTerm {} 530271440Sjkim ; 531271440Sjkim*/ 532271440Sjkim 533271440Sjkim 534271440SjkimType5Opcode 535271440Sjkim : ResourceTemplateTerm {} 536271440Sjkim | UnicodeTerm {} 537281075Sdim | ToPLDTerm {} 538271440Sjkim | ToUUIDTerm {} 539271440Sjkim ; 540271440Sjkim 541271440SjkimType6Opcode 542271440Sjkim : RefOfTerm {} 543271440Sjkim | DerefOfTerm {} 544271440Sjkim | IndexTerm {} 545281687Sjkim | MethodInvocationTerm {} 546271440Sjkim ; 547271440Sjkim 548271440SjkimIncludeTerm 549271440Sjkim : PARSEOP_INCLUDE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INCLUDE);} 550271440Sjkim String ')' {TrLinkChildren ($<n>3,1,$4);FlOpenIncludeFile ($4);} 551271440Sjkim TermList 552271440Sjkim IncludeEndTerm {$$ = TrLinkPeerNodes (3,$<n>3,$7,$8);} 553271440Sjkim ; 554271440Sjkim 555271440SjkimIncludeEndTerm 556271440Sjkim : PARSEOP_INCLUDE_END {$$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);} 557271440Sjkim ; 558271440Sjkim 559271440SjkimExternalTerm 560271440Sjkim : PARSEOP_EXTERNAL '(' 561271440Sjkim NameString 562271440Sjkim OptionalObjectTypeKeyword 563271440Sjkim OptionalParameterTypePackage 564271440Sjkim OptionalParameterTypesPackage 565271440Sjkim ')' {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);} 566271440Sjkim | PARSEOP_EXTERNAL '(' 567271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 568271440Sjkim ; 569271440Sjkim 570271440Sjkim 571271440Sjkim/******* Named Objects *******************************************************/ 572271440Sjkim 573271440Sjkim 574271440SjkimBankFieldTerm 575271440Sjkim : PARSEOP_BANKFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_BANKFIELD);} 576271440Sjkim NameString 577271440Sjkim NameStringItem 578271440Sjkim TermArgItem 579271440Sjkim ',' AccessTypeKeyword 580271440Sjkim ',' LockRuleKeyword 581271440Sjkim ',' UpdateRuleKeyword 582271440Sjkim ')' '{' 583271440Sjkim FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);} 584271440Sjkim | PARSEOP_BANKFIELD '(' 585271440Sjkim error ')' '{' error '}' {$$ = AslDoError(); yyclearin;} 586271440Sjkim ; 587271440Sjkim 588271440SjkimFieldUnitList 589271440Sjkim : {$$ = NULL;} 590271440Sjkim | FieldUnit 591271440Sjkim | FieldUnitList ',' /* Allows a trailing comma at list end */ 592271440Sjkim | FieldUnitList ',' 593271440Sjkim FieldUnit {$$ = TrLinkPeerNode ($1,$3);} 594271440Sjkim ; 595271440Sjkim 596271440SjkimFieldUnit 597271440Sjkim : FieldUnitEntry {} 598271440Sjkim | OffsetTerm {} 599271440Sjkim | AccessAsTerm {} 600271440Sjkim | ConnectionTerm {} 601271440Sjkim ; 602271440Sjkim 603271440SjkimFieldUnitEntry 604271440Sjkim : ',' AmlPackageLengthTerm {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);} 605271440Sjkim | NameSeg ',' 606271440Sjkim AmlPackageLengthTerm {$$ = TrLinkChildNode ($1,$3);} 607271440Sjkim ; 608271440Sjkim 609271440SjkimOffsetTerm 610271440Sjkim : PARSEOP_OFFSET '(' 611271440Sjkim AmlPackageLengthTerm 612271440Sjkim ')' {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);} 613271440Sjkim | PARSEOP_OFFSET '(' 614271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 615271440Sjkim ; 616271440Sjkim 617271440SjkimAccessAsTerm 618271440Sjkim : PARSEOP_ACCESSAS '(' 619271440Sjkim AccessTypeKeyword 620271440Sjkim OptionalAccessAttribTerm 621271440Sjkim ')' {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);} 622271440Sjkim | PARSEOP_ACCESSAS '(' 623271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 624271440Sjkim ; 625271440Sjkim 626271440SjkimConnectionTerm 627271440Sjkim : PARSEOP_CONNECTION '(' 628271440Sjkim NameString 629271440Sjkim ')' {$$ = TrCreateNode (PARSEOP_CONNECTION,1,$3);} 630271440Sjkim | PARSEOP_CONNECTION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONNECTION);} 631271440Sjkim ResourceMacroTerm 632271440Sjkim ')' {$$ = TrLinkChildren ($<n>3, 1, 633271440Sjkim TrLinkChildren (TrCreateLeafNode (PARSEOP_RESOURCETEMPLATE), 3, 634271440Sjkim TrCreateLeafNode (PARSEOP_DEFAULT_ARG), 635271440Sjkim TrCreateLeafNode (PARSEOP_DEFAULT_ARG), 636271440Sjkim $4));} 637271440Sjkim | PARSEOP_CONNECTION '(' 638271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 639271440Sjkim ; 640271440Sjkim 641271440SjkimCreateBitFieldTerm 642271440Sjkim : PARSEOP_CREATEBITFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);} 643271440Sjkim TermArg 644271440Sjkim TermArgItem 645271440Sjkim NameStringItem 646271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));} 647271440Sjkim | PARSEOP_CREATEBITFIELD '(' 648271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 649271440Sjkim ; 650271440Sjkim 651271440SjkimCreateByteFieldTerm 652271440Sjkim : PARSEOP_CREATEBYTEFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);} 653271440Sjkim TermArg 654271440Sjkim TermArgItem 655271440Sjkim NameStringItem 656271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));} 657271440Sjkim | PARSEOP_CREATEBYTEFIELD '(' 658271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 659271440Sjkim ; 660271440Sjkim 661271440SjkimCreateDWordFieldTerm 662271440Sjkim : PARSEOP_CREATEDWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);} 663271440Sjkim TermArg 664271440Sjkim TermArgItem 665271440Sjkim NameStringItem 666271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));} 667271440Sjkim | PARSEOP_CREATEDWORDFIELD '(' 668271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 669271440Sjkim ; 670271440Sjkim 671271440SjkimCreateFieldTerm 672271440Sjkim : PARSEOP_CREATEFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);} 673271440Sjkim TermArg 674271440Sjkim TermArgItem 675271440Sjkim TermArgItem 676271440Sjkim NameStringItem 677271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));} 678271440Sjkim | PARSEOP_CREATEFIELD '(' 679271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 680271440Sjkim ; 681271440Sjkim 682271440SjkimCreateQWordFieldTerm 683271440Sjkim : PARSEOP_CREATEQWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEQWORDFIELD);} 684271440Sjkim TermArg 685271440Sjkim TermArgItem 686271440Sjkim NameStringItem 687271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));} 688271440Sjkim | PARSEOP_CREATEQWORDFIELD '(' 689271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 690271440Sjkim ; 691271440Sjkim 692271440SjkimCreateWordFieldTerm 693271440Sjkim : PARSEOP_CREATEWORDFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CREATEWORDFIELD);} 694271440Sjkim TermArg 695271440Sjkim TermArgItem 696271440Sjkim NameStringItem 697271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));} 698271440Sjkim | PARSEOP_CREATEWORDFIELD '(' 699271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 700271440Sjkim ; 701271440Sjkim 702271440SjkimDataRegionTerm 703271440Sjkim : PARSEOP_DATATABLEREGION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DATATABLEREGION);} 704271440Sjkim NameString 705271440Sjkim TermArgItem 706271440Sjkim TermArgItem 707271440Sjkim TermArgItem 708271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$6,$7);} 709271440Sjkim | PARSEOP_DATATABLEREGION '(' 710271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 711271440Sjkim ; 712271440Sjkim 713271440SjkimDeviceTerm 714271440Sjkim : PARSEOP_DEVICE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEVICE);} 715271440Sjkim NameString 716271440Sjkim ')' '{' 717271440Sjkim ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);} 718271440Sjkim | PARSEOP_DEVICE '(' 719271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 720271440Sjkim ; 721271440Sjkim 722271440SjkimEventTerm 723271440Sjkim : PARSEOP_EVENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EVENT);} 724271440Sjkim NameString 725271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION));} 726271440Sjkim | PARSEOP_EVENT '(' 727271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 728271440Sjkim ; 729271440Sjkim 730271440SjkimFieldTerm 731271440Sjkim : PARSEOP_FIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIELD);} 732271440Sjkim NameString 733271440Sjkim ',' AccessTypeKeyword 734271440Sjkim ',' LockRuleKeyword 735271440Sjkim ',' UpdateRuleKeyword 736271440Sjkim ')' '{' 737271440Sjkim FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$8,$10,$13);} 738271440Sjkim | PARSEOP_FIELD '(' 739271440Sjkim error ')' '{' error '}' {$$ = AslDoError(); yyclearin;} 740271440Sjkim ; 741271440Sjkim 742271440SjkimFunctionTerm 743271440Sjkim : PARSEOP_FUNCTION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);} 744271440Sjkim NameString 745271440Sjkim OptionalParameterTypePackage 746271440Sjkim OptionalParameterTypesPackage 747271440Sjkim ')' '{' 748271440Sjkim TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION), 749271440Sjkim TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0), 750271440Sjkim TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL), 751271440Sjkim TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0),$5,$6,$9);} 752271440Sjkim | PARSEOP_FUNCTION '(' 753271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 754271440Sjkim ; 755271440Sjkim 756271440SjkimIndexFieldTerm 757271440Sjkim : PARSEOP_INDEXFIELD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INDEXFIELD);} 758271440Sjkim NameString 759271440Sjkim NameStringItem 760271440Sjkim ',' AccessTypeKeyword 761271440Sjkim ',' LockRuleKeyword 762271440Sjkim ',' UpdateRuleKeyword 763271440Sjkim ')' '{' 764271440Sjkim FieldUnitList '}' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$7,$9,$11,$14);} 765271440Sjkim | PARSEOP_INDEXFIELD '(' 766271440Sjkim error ')' '{' error '}' {$$ = AslDoError(); yyclearin;} 767271440Sjkim ; 768271440Sjkim 769271440SjkimMethodTerm 770271440Sjkim : PARSEOP_METHOD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_METHOD);} 771271440Sjkim NameString 772271440Sjkim OptionalByteConstExpr {UtCheckIntegerRange ($5, 0, 7);} 773271440Sjkim OptionalSerializeRuleKeyword 774271440Sjkim OptionalByteConstExpr 775271440Sjkim OptionalParameterTypePackage 776271440Sjkim OptionalParameterTypesPackage 777271440Sjkim ')' '{' 778271440Sjkim TermList '}' {$$ = TrLinkChildren ($<n>3,7,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$5,$7,$8,$9,$10,$13);} 779271440Sjkim | PARSEOP_METHOD '(' 780271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 781271440Sjkim ; 782271440Sjkim 783271440SjkimMutexTerm 784271440Sjkim : PARSEOP_MUTEX '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MUTEX);} 785271440Sjkim NameString 786271440Sjkim ',' ByteConstExpr 787271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);} 788271440Sjkim | PARSEOP_MUTEX '(' 789271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 790271440Sjkim ; 791271440Sjkim 792271440SjkimOpRegionTerm 793271440Sjkim : PARSEOP_OPERATIONREGION '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OPERATIONREGION);} 794271440Sjkim NameString 795271440Sjkim ',' OpRegionSpaceIdTerm 796271440Sjkim TermArgItem 797271440Sjkim TermArgItem 798271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8);} 799271440Sjkim | PARSEOP_OPERATIONREGION '(' 800271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 801271440Sjkim ; 802271440Sjkim 803271440SjkimOpRegionSpaceIdTerm 804271440Sjkim : RegionSpaceKeyword {} 805271440Sjkim | ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);} 806271440Sjkim ; 807271440Sjkim 808271440SjkimPowerResTerm 809271440Sjkim : PARSEOP_POWERRESOURCE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_POWERRESOURCE);} 810271440Sjkim NameString 811271440Sjkim ',' ByteConstExpr 812271440Sjkim ',' WordConstExpr 813271440Sjkim ')' '{' 814271440Sjkim ObjectList '}' {$$ = TrLinkChildren ($<n>3,4,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$8,$11);} 815271440Sjkim | PARSEOP_POWERRESOURCE '(' 816271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 817271440Sjkim ; 818271440Sjkim 819271440SjkimProcessorTerm 820271440Sjkim : PARSEOP_PROCESSOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_PROCESSOR);} 821271440Sjkim NameString 822271440Sjkim ',' ByteConstExpr 823271440Sjkim OptionalDWordConstExpr 824271440Sjkim OptionalByteConstExpr 825271440Sjkim ')' '{' 826271440Sjkim ObjectList '}' {$$ = TrLinkChildren ($<n>3,5,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6,$7,$8,$11);} 827271440Sjkim | PARSEOP_PROCESSOR '(' 828271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 829271440Sjkim ; 830271440Sjkim 831271440SjkimThermalZoneTerm 832271440Sjkim : PARSEOP_THERMALZONE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_THERMALZONE);} 833271440Sjkim NameString 834271440Sjkim ')' '{' 835271440Sjkim ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);} 836271440Sjkim | PARSEOP_THERMALZONE '(' 837271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 838271440Sjkim ; 839271440Sjkim 840271440Sjkim 841271440Sjkim/******* Namespace modifiers *************************************************/ 842271440Sjkim 843271440Sjkim 844271440SjkimAliasTerm 845271440Sjkim : PARSEOP_ALIAS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ALIAS);} 846271440Sjkim NameString 847271440Sjkim NameStringItem 848271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($5, NODE_IS_NAME_DECLARATION));} 849271440Sjkim | PARSEOP_ALIAS '(' 850271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 851271440Sjkim ; 852271440Sjkim 853271440SjkimNameTerm 854271440Sjkim : PARSEOP_NAME '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NAME);} 855271440Sjkim NameString 856271440Sjkim ',' DataObject 857271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$6);} 858271440Sjkim | PARSEOP_NAME '(' 859271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 860271440Sjkim ; 861271440Sjkim 862271440SjkimScopeTerm 863271440Sjkim : PARSEOP_SCOPE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SCOPE);} 864271440Sjkim NameString 865271440Sjkim ')' '{' 866271440Sjkim ObjectList '}' {$$ = TrLinkChildren ($<n>3,2,TrSetNodeFlags ($4, NODE_IS_NAME_DECLARATION),$7);} 867271440Sjkim | PARSEOP_SCOPE '(' 868271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 869271440Sjkim ; 870271440Sjkim 871271440Sjkim 872271440Sjkim/******* Type 1 opcodes *******************************************************/ 873271440Sjkim 874271440Sjkim 875271440SjkimBreakTerm 876271440Sjkim : PARSEOP_BREAK {$$ = TrCreateNode (PARSEOP_BREAK, 0);} 877271440Sjkim ; 878271440Sjkim 879271440SjkimBreakPointTerm 880271440Sjkim : PARSEOP_BREAKPOINT {$$ = TrCreateNode (PARSEOP_BREAKPOINT, 0);} 881271440Sjkim ; 882271440Sjkim 883271440SjkimContinueTerm 884271440Sjkim : PARSEOP_CONTINUE {$$ = TrCreateNode (PARSEOP_CONTINUE, 0);} 885271440Sjkim ; 886271440Sjkim 887271440SjkimFatalTerm 888271440Sjkim : PARSEOP_FATAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FATAL);} 889271440Sjkim ByteConstExpr 890271440Sjkim ',' DWordConstExpr 891271440Sjkim TermArgItem 892271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);} 893271440Sjkim | PARSEOP_FATAL '(' 894271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 895271440Sjkim ; 896271440Sjkim 897271440SjkimIfElseTerm 898271440Sjkim : IfTerm ElseTerm {$$ = TrLinkPeerNode ($1,$2);} 899271440Sjkim ; 900271440Sjkim 901271440SjkimIfTerm 902271440Sjkim : PARSEOP_IF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IF);} 903271440Sjkim TermArg 904271440Sjkim ')' '{' 905271440Sjkim TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 906271440Sjkim 907271440Sjkim | PARSEOP_IF '(' 908271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 909271440Sjkim ; 910271440Sjkim 911271440SjkimElseTerm 912271440Sjkim : {$$ = NULL;} 913271440Sjkim | PARSEOP_ELSE '{' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);} 914271440Sjkim TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);} 915271440Sjkim 916271440Sjkim | PARSEOP_ELSE '{' 917271440Sjkim error '}' {$$ = AslDoError(); yyclearin;} 918271440Sjkim 919271440Sjkim | PARSEOP_ELSE 920271440Sjkim error {$$ = AslDoError(); yyclearin;} 921271440Sjkim 922271440Sjkim | PARSEOP_ELSEIF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ELSE);} 923271440Sjkim TermArg {$<n>$ = TrCreateLeafNode (PARSEOP_IF);} 924271440Sjkim ')' '{' 925271440Sjkim TermList '}' {TrLinkChildren ($<n>5,2,$4,$8);} 926271440Sjkim ElseTerm {TrLinkPeerNode ($<n>5,$11);} 927271440Sjkim {$$ = TrLinkChildren ($<n>3,1,$<n>5);} 928271440Sjkim 929271440Sjkim | PARSEOP_ELSEIF '(' 930271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 931271440Sjkim 932271440Sjkim | PARSEOP_ELSEIF 933271440Sjkim error {$$ = AslDoError(); yyclearin;} 934271440Sjkim ; 935271440Sjkim 936271440SjkimLoadTerm 937271440Sjkim : PARSEOP_LOAD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOAD);} 938271440Sjkim NameString 939271440Sjkim RequiredTarget 940271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 941271440Sjkim | PARSEOP_LOAD '(' 942271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 943271440Sjkim ; 944271440Sjkim 945271440SjkimNoOpTerm 946271440Sjkim : PARSEOP_NOOP {$$ = TrCreateNode (PARSEOP_NOOP, 0);} 947271440Sjkim ; 948271440Sjkim 949271440SjkimNotifyTerm 950271440Sjkim : PARSEOP_NOTIFY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOTIFY);} 951271440Sjkim SuperName 952271440Sjkim TermArgItem 953271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 954271440Sjkim | PARSEOP_NOTIFY '(' 955271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 956271440Sjkim ; 957271440Sjkim 958271440SjkimReleaseTerm 959271440Sjkim : PARSEOP_RELEASE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RELEASE);} 960271440Sjkim SuperName 961271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 962271440Sjkim | PARSEOP_RELEASE '(' 963271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 964271440Sjkim ; 965271440Sjkim 966271440SjkimResetTerm 967271440Sjkim : PARSEOP_RESET '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RESET);} 968271440Sjkim SuperName 969271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 970271440Sjkim | PARSEOP_RESET '(' 971271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 972271440Sjkim ; 973271440Sjkim 974271440SjkimReturnTerm 975271440Sjkim : PARSEOP_RETURN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_RETURN);} 976271440Sjkim OptionalReturnArg 977271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 978271440Sjkim | PARSEOP_RETURN {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_RETURN),1,TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN));} 979271440Sjkim | PARSEOP_RETURN '(' 980271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 981271440Sjkim ; 982271440Sjkim 983271440SjkimSignalTerm 984271440Sjkim : PARSEOP_SIGNAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SIGNAL);} 985271440Sjkim SuperName 986271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 987271440Sjkim | PARSEOP_SIGNAL '(' 988271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 989271440Sjkim ; 990271440Sjkim 991271440SjkimSleepTerm 992271440Sjkim : PARSEOP_SLEEP '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SLEEP);} 993271440Sjkim TermArg 994271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 995271440Sjkim | PARSEOP_SLEEP '(' 996271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 997271440Sjkim ; 998271440Sjkim 999271440SjkimStallTerm 1000271440Sjkim : PARSEOP_STALL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STALL);} 1001271440Sjkim TermArg 1002271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1003271440Sjkim | PARSEOP_STALL '(' 1004271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1005271440Sjkim ; 1006271440Sjkim 1007271440SjkimSwitchTerm 1008271440Sjkim : PARSEOP_SWITCH '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SWITCH);} 1009271440Sjkim TermArg 1010271440Sjkim ')' '{' 1011271440Sjkim CaseDefaultTermList '}' 1012271440Sjkim {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 1013271440Sjkim | PARSEOP_SWITCH '(' 1014271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1015271440Sjkim ; 1016271440Sjkim 1017271440Sjkim/* 1018271440Sjkim * Case-Default list; allow only one Default term and unlimited Case terms 1019271440Sjkim */ 1020271440Sjkim 1021271440SjkimCaseDefaultTermList 1022271440Sjkim : {$$ = NULL;} 1023271440Sjkim | CaseTerm {} 1024271440Sjkim | DefaultTerm {} 1025271440Sjkim | CaseDefaultTermList 1026271440Sjkim CaseTerm {$$ = TrLinkPeerNode ($1,$2);} 1027271440Sjkim | CaseDefaultTermList 1028271440Sjkim DefaultTerm {$$ = TrLinkPeerNode ($1,$2);} 1029271440Sjkim 1030271440Sjkim/* Original - attempts to force zero or one default term within the switch */ 1031271440Sjkim 1032271440Sjkim/* 1033271440SjkimCaseDefaultTermList 1034271440Sjkim : {$$ = NULL;} 1035271440Sjkim | CaseTermList 1036271440Sjkim DefaultTerm 1037271440Sjkim CaseTermList {$$ = TrLinkPeerNode ($1,TrLinkPeerNode ($2, $3));} 1038271440Sjkim | CaseTermList 1039271440Sjkim CaseTerm {$$ = TrLinkPeerNode ($1,$2);} 1040271440Sjkim ; 1041271440Sjkim 1042271440SjkimCaseTermList 1043271440Sjkim : {$$ = NULL;} 1044271440Sjkim | CaseTerm {} 1045271440Sjkim | CaseTermList 1046271440Sjkim CaseTerm {$$ = TrLinkPeerNode ($1,$2);} 1047271440Sjkim ; 1048271440Sjkim*/ 1049271440Sjkim 1050271440SjkimCaseTerm 1051271440Sjkim : PARSEOP_CASE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CASE);} 1052271440Sjkim DataObject 1053271440Sjkim ')' '{' 1054271440Sjkim TermList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 1055271440Sjkim | PARSEOP_CASE '(' 1056271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1057271440Sjkim ; 1058271440Sjkim 1059271440SjkimDefaultTerm 1060271440Sjkim : PARSEOP_DEFAULT '{' {$<n>$ = TrCreateLeafNode (PARSEOP_DEFAULT);} 1061271440Sjkim TermList '}' {$$ = TrLinkChildren ($<n>3,1,$4);} 1062271440Sjkim | PARSEOP_DEFAULT '{' 1063271440Sjkim error '}' {$$ = AslDoError(); yyclearin;} 1064271440Sjkim ; 1065271440Sjkim 1066271440SjkimUnloadTerm 1067271440Sjkim : PARSEOP_UNLOAD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UNLOAD);} 1068271440Sjkim SuperName 1069271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1070271440Sjkim | PARSEOP_UNLOAD '(' 1071271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1072271440Sjkim ; 1073271440Sjkim 1074271440SjkimWhileTerm 1075271440Sjkim : PARSEOP_WHILE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WHILE);} 1076271440Sjkim TermArg 1077271440Sjkim ')' '{' TermList '}' 1078271440Sjkim {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 1079271440Sjkim | PARSEOP_WHILE '(' 1080271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1081271440Sjkim ; 1082271440Sjkim 1083271440Sjkim 1084271440Sjkim/******* Type 2 opcodes *******************************************************/ 1085271440Sjkim 1086271440SjkimAcquireTerm 1087271440Sjkim : PARSEOP_ACQUIRE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACQUIRE);} 1088271440Sjkim SuperName 1089271440Sjkim ',' WordConstExpr 1090271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$6);} 1091271440Sjkim | PARSEOP_ACQUIRE '(' 1092271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1093271440Sjkim ; 1094271440Sjkim 1095271440SjkimAddTerm 1096271440Sjkim : PARSEOP_ADD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ADD);} 1097271440Sjkim TermArg 1098271440Sjkim TermArgItem 1099271440Sjkim Target 1100271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1101271440Sjkim | PARSEOP_ADD '(' 1102271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1103271440Sjkim ; 1104271440Sjkim 1105271440SjkimAndTerm 1106271440Sjkim : PARSEOP_AND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_AND);} 1107271440Sjkim TermArg 1108271440Sjkim TermArgItem 1109271440Sjkim Target 1110271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1111271440Sjkim | PARSEOP_AND '(' 1112271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1113271440Sjkim ; 1114271440Sjkim 1115271440SjkimConcatTerm 1116271440Sjkim : PARSEOP_CONCATENATE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATE);} 1117271440Sjkim TermArg 1118271440Sjkim TermArgItem 1119271440Sjkim Target 1120271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1121271440Sjkim | PARSEOP_CONCATENATE '(' 1122271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1123271440Sjkim ; 1124271440Sjkim 1125271440SjkimConcatResTerm 1126271440Sjkim : PARSEOP_CONCATENATERESTEMPLATE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONCATENATERESTEMPLATE);} 1127271440Sjkim TermArg 1128271440Sjkim TermArgItem 1129271440Sjkim Target 1130271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1131271440Sjkim | PARSEOP_CONCATENATERESTEMPLATE '(' 1132271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1133271440Sjkim ; 1134271440Sjkim 1135271440SjkimCondRefOfTerm 1136271440Sjkim : PARSEOP_CONDREFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_CONDREFOF);} 1137271440Sjkim SuperName 1138271440Sjkim Target 1139271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1140271440Sjkim | PARSEOP_CONDREFOF '(' 1141271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1142271440Sjkim ; 1143271440Sjkim 1144271440SjkimCopyObjectTerm 1145271440Sjkim : PARSEOP_COPYOBJECT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_COPYOBJECT);} 1146271440Sjkim TermArg 1147271440Sjkim ',' SimpleTarget 1148271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));} 1149271440Sjkim | PARSEOP_COPYOBJECT '(' 1150271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1151271440Sjkim ; 1152271440Sjkim 1153271440SjkimDecTerm 1154271440Sjkim : PARSEOP_DECREMENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DECREMENT);} 1155271440Sjkim SuperName 1156271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1157271440Sjkim | PARSEOP_DECREMENT '(' 1158271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1159271440Sjkim ; 1160271440Sjkim 1161271440SjkimDerefOfTerm 1162271440Sjkim : PARSEOP_DEREFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DEREFOF);} 1163271440Sjkim TermArg 1164271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1165271440Sjkim | PARSEOP_DEREFOF '(' 1166271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1167271440Sjkim ; 1168271440Sjkim 1169271440SjkimDivideTerm 1170271440Sjkim : PARSEOP_DIVIDE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DIVIDE);} 1171271440Sjkim TermArg 1172271440Sjkim TermArgItem 1173271440Sjkim Target 1174271440Sjkim Target 1175271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);} 1176271440Sjkim | PARSEOP_DIVIDE '(' 1177271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1178271440Sjkim ; 1179271440Sjkim 1180271440SjkimFindSetLeftBitTerm 1181271440Sjkim : PARSEOP_FINDSETLEFTBIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETLEFTBIT);} 1182271440Sjkim TermArg 1183271440Sjkim Target 1184271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1185271440Sjkim | PARSEOP_FINDSETLEFTBIT '(' 1186271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1187271440Sjkim ; 1188271440Sjkim 1189271440SjkimFindSetRightBitTerm 1190271440Sjkim : PARSEOP_FINDSETRIGHTBIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FINDSETRIGHTBIT);} 1191271440Sjkim TermArg 1192271440Sjkim Target 1193271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1194271440Sjkim | PARSEOP_FINDSETRIGHTBIT '(' 1195271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1196271440Sjkim ; 1197271440Sjkim 1198271440SjkimFromBCDTerm 1199271440Sjkim : PARSEOP_FROMBCD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FROMBCD);} 1200271440Sjkim TermArg 1201271440Sjkim Target 1202271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1203271440Sjkim | PARSEOP_FROMBCD '(' 1204271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1205271440Sjkim ; 1206271440Sjkim 1207271440SjkimIncTerm 1208271440Sjkim : PARSEOP_INCREMENT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INCREMENT);} 1209271440Sjkim SuperName 1210271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1211271440Sjkim | PARSEOP_INCREMENT '(' 1212271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1213271440Sjkim ; 1214271440Sjkim 1215271440SjkimIndexTerm 1216271440Sjkim : PARSEOP_INDEX '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INDEX);} 1217271440Sjkim TermArg 1218271440Sjkim TermArgItem 1219271440Sjkim Target 1220271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1221271440Sjkim | PARSEOP_INDEX '(' 1222271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1223271440Sjkim ; 1224271440Sjkim 1225271440SjkimLAndTerm 1226271440Sjkim : PARSEOP_LAND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LAND);} 1227271440Sjkim TermArg 1228271440Sjkim TermArgItem 1229271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1230271440Sjkim | PARSEOP_LAND '(' 1231271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1232271440Sjkim ; 1233271440Sjkim 1234271440SjkimLEqualTerm 1235271440Sjkim : PARSEOP_LEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);} 1236271440Sjkim TermArg 1237271440Sjkim TermArgItem 1238271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1239271440Sjkim | PARSEOP_LEQUAL '(' 1240271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1241271440Sjkim ; 1242271440Sjkim 1243271440SjkimLGreaterTerm 1244271440Sjkim : PARSEOP_LGREATER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);} 1245271440Sjkim TermArg 1246271440Sjkim TermArgItem 1247271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1248271440Sjkim | PARSEOP_LGREATER '(' 1249271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1250271440Sjkim ; 1251271440Sjkim 1252271440SjkimLGreaterEqualTerm 1253271440Sjkim : PARSEOP_LGREATEREQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);} 1254271440Sjkim TermArg 1255271440Sjkim TermArgItem 1256271440Sjkim ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));} 1257271440Sjkim | PARSEOP_LGREATEREQUAL '(' 1258271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1259271440Sjkim ; 1260271440Sjkim 1261271440SjkimLLessTerm 1262271440Sjkim : PARSEOP_LLESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LLESS);} 1263271440Sjkim TermArg 1264271440Sjkim TermArgItem 1265271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1266271440Sjkim | PARSEOP_LLESS '(' 1267271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1268271440Sjkim ; 1269271440Sjkim 1270271440SjkimLLessEqualTerm 1271271440Sjkim : PARSEOP_LLESSEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LGREATER);} 1272271440Sjkim TermArg 1273271440Sjkim TermArgItem 1274271440Sjkim ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));} 1275271440Sjkim | PARSEOP_LLESSEQUAL '(' 1276271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1277271440Sjkim ; 1278271440Sjkim 1279271440SjkimLNotTerm 1280271440Sjkim : PARSEOP_LNOT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LNOT);} 1281271440Sjkim TermArg 1282271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1283271440Sjkim | PARSEOP_LNOT '(' 1284271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1285271440Sjkim ; 1286271440Sjkim 1287271440SjkimLNotEqualTerm 1288271440Sjkim : PARSEOP_LNOTEQUAL '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LEQUAL);} 1289271440Sjkim TermArg 1290271440Sjkim TermArgItem 1291271440Sjkim ')' {$$ = TrCreateNode (PARSEOP_LNOT, 1, TrLinkChildren ($<n>3,2,$4,$5));} 1292271440Sjkim | PARSEOP_LNOTEQUAL '(' 1293271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1294271440Sjkim ; 1295271440Sjkim 1296271440SjkimLoadTableTerm 1297271440Sjkim : PARSEOP_LOADTABLE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOADTABLE);} 1298271440Sjkim TermArg 1299271440Sjkim TermArgItem 1300271440Sjkim TermArgItem 1301271440Sjkim OptionalListString 1302271440Sjkim OptionalListString 1303271440Sjkim OptionalReference 1304271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);} 1305271440Sjkim | PARSEOP_LOADTABLE '(' 1306271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1307271440Sjkim ; 1308271440Sjkim 1309271440SjkimLOrTerm 1310271440Sjkim : PARSEOP_LOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_LOR);} 1311271440Sjkim TermArg 1312271440Sjkim TermArgItem 1313271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1314271440Sjkim | PARSEOP_LOR '(' 1315271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1316271440Sjkim ; 1317271440Sjkim 1318271440SjkimMatchTerm 1319271440Sjkim : PARSEOP_MATCH '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MATCH);} 1320271440Sjkim TermArg 1321271440Sjkim ',' MatchOpKeyword 1322271440Sjkim TermArgItem 1323271440Sjkim ',' MatchOpKeyword 1324271440Sjkim TermArgItem 1325271440Sjkim TermArgItem 1326271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);} 1327271440Sjkim | PARSEOP_MATCH '(' 1328271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1329271440Sjkim ; 1330271440Sjkim 1331271440SjkimMidTerm 1332271440Sjkim : PARSEOP_MID '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MID);} 1333271440Sjkim TermArg 1334271440Sjkim TermArgItem 1335271440Sjkim TermArgItem 1336271440Sjkim Target 1337271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,$7);} 1338271440Sjkim | PARSEOP_MID '(' 1339271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1340271440Sjkim ; 1341271440Sjkim 1342271440SjkimModTerm 1343271440Sjkim : PARSEOP_MOD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MOD);} 1344271440Sjkim TermArg 1345271440Sjkim TermArgItem 1346271440Sjkim Target 1347271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1348271440Sjkim | PARSEOP_MOD '(' 1349271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1350271440Sjkim ; 1351271440Sjkim 1352271440SjkimMultiplyTerm 1353271440Sjkim : PARSEOP_MULTIPLY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MULTIPLY);} 1354271440Sjkim TermArg 1355271440Sjkim TermArgItem 1356271440Sjkim Target 1357271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1358271440Sjkim | PARSEOP_MULTIPLY '(' 1359271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1360271440Sjkim ; 1361271440Sjkim 1362271440SjkimNAndTerm 1363271440Sjkim : PARSEOP_NAND '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NAND);} 1364271440Sjkim TermArg 1365271440Sjkim TermArgItem 1366271440Sjkim Target 1367271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1368271440Sjkim | PARSEOP_NAND '(' 1369271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1370271440Sjkim ; 1371271440Sjkim 1372271440SjkimNOrTerm 1373271440Sjkim : PARSEOP_NOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOR);} 1374271440Sjkim TermArg 1375271440Sjkim TermArgItem 1376271440Sjkim Target 1377271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1378271440Sjkim | PARSEOP_NOR '(' 1379271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1380271440Sjkim ; 1381271440Sjkim 1382271440SjkimNotTerm 1383271440Sjkim : PARSEOP_NOT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_NOT);} 1384271440Sjkim TermArg 1385271440Sjkim Target 1386271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1387271440Sjkim | PARSEOP_NOT '(' 1388271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1389271440Sjkim ; 1390271440Sjkim 1391271440SjkimObjectTypeTerm 1392271440Sjkim : PARSEOP_OBJECTTYPE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE);} 1393271440Sjkim ObjectTypeName 1394271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1395271440Sjkim | PARSEOP_OBJECTTYPE '(' 1396271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1397271440Sjkim ; 1398271440Sjkim 1399271440SjkimOrTerm 1400271440Sjkim : PARSEOP_OR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_OR);} 1401271440Sjkim TermArg 1402271440Sjkim TermArgItem 1403271440Sjkim Target 1404271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1405271440Sjkim | PARSEOP_OR '(' 1406271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1407271440Sjkim ; 1408271440Sjkim 1409271440Sjkim/* 1410271440Sjkim * In RefOf, the node isn't really a target, but we can't keep track of it after 1411271440Sjkim * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.) 1412271440Sjkim */ 1413271440SjkimRefOfTerm 1414271440Sjkim : PARSEOP_REFOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REFOF);} 1415271440Sjkim SuperName 1416271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,TrSetNodeFlags ($4, NODE_IS_TARGET));} 1417271440Sjkim | PARSEOP_REFOF '(' 1418271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1419271440Sjkim ; 1420271440Sjkim 1421271440SjkimShiftLeftTerm 1422271440Sjkim : PARSEOP_SHIFTLEFT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTLEFT);} 1423271440Sjkim TermArg 1424271440Sjkim TermArgItem 1425271440Sjkim Target 1426271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1427271440Sjkim | PARSEOP_SHIFTLEFT '(' 1428271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1429271440Sjkim ; 1430271440Sjkim 1431271440SjkimShiftRightTerm 1432271440Sjkim : PARSEOP_SHIFTRIGHT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SHIFTRIGHT);} 1433271440Sjkim TermArg 1434271440Sjkim TermArgItem 1435271440Sjkim Target 1436271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1437271440Sjkim | PARSEOP_SHIFTRIGHT '(' 1438271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1439271440Sjkim ; 1440271440Sjkim 1441271440SjkimSizeOfTerm 1442271440Sjkim : PARSEOP_SIZEOF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SIZEOF);} 1443271440Sjkim SuperName 1444271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1445271440Sjkim | PARSEOP_SIZEOF '(' 1446271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1447271440Sjkim ; 1448271440Sjkim 1449271440SjkimStoreTerm 1450271440Sjkim : PARSEOP_STORE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STORE);} 1451271440Sjkim TermArg 1452271440Sjkim ',' SuperName 1453271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,TrSetNodeFlags ($6, NODE_IS_TARGET));} 1454271440Sjkim | PARSEOP_STORE '(' 1455271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1456271440Sjkim ; 1457271440Sjkim 1458271440SjkimSubtractTerm 1459271440Sjkim : PARSEOP_SUBTRACT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SUBTRACT);} 1460271440Sjkim TermArg 1461271440Sjkim TermArgItem 1462271440Sjkim Target 1463271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1464271440Sjkim | PARSEOP_SUBTRACT '(' 1465271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1466271440Sjkim ; 1467271440Sjkim 1468271440SjkimTimerTerm 1469271440Sjkim : PARSEOP_TIMER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TIMER);} 1470271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,0);} 1471271440Sjkim | PARSEOP_TIMER {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_TIMER),0);} 1472271440Sjkim | PARSEOP_TIMER '(' 1473271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1474271440Sjkim ; 1475271440Sjkim 1476271440SjkimToBCDTerm 1477271440Sjkim : PARSEOP_TOBCD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOBCD);} 1478271440Sjkim TermArg 1479271440Sjkim Target 1480271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1481271440Sjkim | PARSEOP_TOBCD '(' 1482271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1483271440Sjkim ; 1484271440Sjkim 1485271440SjkimToBufferTerm 1486271440Sjkim : PARSEOP_TOBUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOBUFFER);} 1487271440Sjkim TermArg 1488271440Sjkim Target 1489271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1490271440Sjkim | PARSEOP_TOBUFFER '(' 1491271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1492271440Sjkim ; 1493271440Sjkim 1494271440SjkimToDecimalStringTerm 1495271440Sjkim : PARSEOP_TODECIMALSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TODECIMALSTRING);} 1496271440Sjkim TermArg 1497271440Sjkim Target 1498271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1499271440Sjkim | PARSEOP_TODECIMALSTRING '(' 1500271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1501271440Sjkim ; 1502271440Sjkim 1503271440SjkimToHexStringTerm 1504271440Sjkim : PARSEOP_TOHEXSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOHEXSTRING);} 1505271440Sjkim TermArg 1506271440Sjkim Target 1507271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1508271440Sjkim | PARSEOP_TOHEXSTRING '(' 1509271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1510271440Sjkim ; 1511271440Sjkim 1512271440SjkimToIntegerTerm 1513271440Sjkim : PARSEOP_TOINTEGER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOINTEGER);} 1514271440Sjkim TermArg 1515271440Sjkim Target 1516271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1517271440Sjkim | PARSEOP_TOINTEGER '(' 1518271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1519271440Sjkim ; 1520271440Sjkim 1521281075SdimPldKeyword 1522281075Sdim : PARSEOP_PLD_REVISION {$$ = TrCreateLeafNode (PARSEOP_PLD_REVISION);} 1523281075Sdim | PARSEOP_PLD_IGNORECOLOR {$$ = TrCreateLeafNode (PARSEOP_PLD_IGNORECOLOR);} 1524281075Sdim | PARSEOP_PLD_RED {$$ = TrCreateLeafNode (PARSEOP_PLD_RED);} 1525281075Sdim | PARSEOP_PLD_GREEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GREEN);} 1526281075Sdim | PARSEOP_PLD_BLUE {$$ = TrCreateLeafNode (PARSEOP_PLD_BLUE);} 1527281075Sdim | PARSEOP_PLD_WIDTH {$$ = TrCreateLeafNode (PARSEOP_PLD_WIDTH);} 1528281075Sdim | PARSEOP_PLD_HEIGHT {$$ = TrCreateLeafNode (PARSEOP_PLD_HEIGHT);} 1529281075Sdim | PARSEOP_PLD_USERVISIBLE {$$ = TrCreateLeafNode (PARSEOP_PLD_USERVISIBLE);} 1530281075Sdim | PARSEOP_PLD_DOCK {$$ = TrCreateLeafNode (PARSEOP_PLD_DOCK);} 1531281075Sdim | PARSEOP_PLD_LID {$$ = TrCreateLeafNode (PARSEOP_PLD_LID);} 1532281075Sdim | PARSEOP_PLD_PANEL {$$ = TrCreateLeafNode (PARSEOP_PLD_PANEL);} 1533281075Sdim | PARSEOP_PLD_VERTICALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALPOSITION);} 1534281075Sdim | PARSEOP_PLD_HORIZONTALPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALPOSITION);} 1535281075Sdim | PARSEOP_PLD_SHAPE {$$ = TrCreateLeafNode (PARSEOP_PLD_SHAPE);} 1536281075Sdim | PARSEOP_PLD_GROUPORIENTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPORIENTATION);} 1537281075Sdim | PARSEOP_PLD_GROUPTOKEN {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPTOKEN);} 1538281075Sdim | PARSEOP_PLD_GROUPPOSITION {$$ = TrCreateLeafNode (PARSEOP_PLD_GROUPPOSITION);} 1539281075Sdim | PARSEOP_PLD_BAY {$$ = TrCreateLeafNode (PARSEOP_PLD_BAY);} 1540281075Sdim | PARSEOP_PLD_EJECTABLE {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTABLE);} 1541281075Sdim | PARSEOP_PLD_EJECTREQUIRED {$$ = TrCreateLeafNode (PARSEOP_PLD_EJECTREQUIRED);} 1542281075Sdim | PARSEOP_PLD_CABINETNUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CABINETNUMBER);} 1543281075Sdim | PARSEOP_PLD_CARDCAGENUMBER {$$ = TrCreateLeafNode (PARSEOP_PLD_CARDCAGENUMBER);} 1544281075Sdim | PARSEOP_PLD_REFERENCE {$$ = TrCreateLeafNode (PARSEOP_PLD_REFERENCE);} 1545281075Sdim | PARSEOP_PLD_ROTATION {$$ = TrCreateLeafNode (PARSEOP_PLD_ROTATION);} 1546281075Sdim | PARSEOP_PLD_ORDER {$$ = TrCreateLeafNode (PARSEOP_PLD_ORDER);} 1547281075Sdim | PARSEOP_PLD_RESERVED {$$ = TrCreateLeafNode (PARSEOP_PLD_RESERVED);} 1548281075Sdim | PARSEOP_PLD_VERTICALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_VERTICALOFFSET);} 1549281075Sdim | PARSEOP_PLD_HORIZONTALOFFSET {$$ = TrCreateLeafNode (PARSEOP_PLD_HORIZONTALOFFSET);} 1550281075Sdim ; 1551281075Sdim 1552281075SdimPldKeywordList 1553281075Sdim : {$$ = NULL;} 1554281075Sdim | PldKeyword 1555281075Sdim PARSEOP_EXP_EQUALS Integer {$$ = TrLinkChildren ($1,1,$3);} 1556281075Sdim | PldKeyword 1557281075Sdim PARSEOP_EXP_EQUALS String {$$ = TrLinkChildren ($1,1,$3);} 1558281075Sdim | PldKeywordList ',' /* Allows a trailing comma at list end */ 1559281075Sdim | PldKeywordList ',' 1560281075Sdim PldKeyword 1561281075Sdim PARSEOP_EXP_EQUALS Integer {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));} 1562281075Sdim | PldKeywordList ',' 1563281075Sdim PldKeyword 1564281075Sdim PARSEOP_EXP_EQUALS String {$$ = TrLinkPeerNode ($1,TrLinkChildren ($3,1,$5));} 1565281075Sdim ; 1566281075Sdim 1567281075SdimToPLDTerm 1568281075Sdim : PARSEOP_TOPLD '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOPLD);} 1569281075Sdim PldKeywordList 1570281075Sdim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1571281075Sdim | PARSEOP_TOPLD '(' 1572281075Sdim error ')' {$$ = AslDoError(); yyclearin;} 1573281075Sdim ; 1574281075Sdim 1575281075SdimPrintfArgList 1576281075Sdim : {$$ = NULL;} 1577281075Sdim | TermArg {$$ = $1;} 1578281075Sdim | PrintfArgList ',' 1579281075Sdim TermArg {$$ = TrLinkPeerNode ($1, $3);} 1580281075Sdim ; 1581281075Sdim 1582281075SdimPrintfTerm 1583281075Sdim : PARSEOP_PRINTF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_PRINTF);} 1584281075Sdim StringData 1585281075Sdim PrintfArgList 1586281075Sdim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1587281075Sdim | PARSEOP_PRINTF '(' 1588281075Sdim error ')' {$$ = AslDoError(); yyclearin;} 1589281075Sdim ; 1590281075Sdim 1591281075SdimFprintfTerm 1592281075Sdim : PARSEOP_FPRINTF '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FPRINTF);} 1593281075Sdim TermArg ',' 1594281075Sdim StringData 1595281075Sdim PrintfArgList 1596281075Sdim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);} 1597281075Sdim | PARSEOP_FPRINTF '(' 1598281075Sdim error ')' {$$ = AslDoError(); yyclearin;} 1599281075Sdim ; 1600281075Sdim 1601271440SjkimToStringTerm 1602271440Sjkim : PARSEOP_TOSTRING '(' {$<n>$ = TrCreateLeafNode (PARSEOP_TOSTRING);} 1603271440Sjkim TermArg 1604271440Sjkim OptionalCount 1605271440Sjkim Target 1606271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1607271440Sjkim | PARSEOP_TOSTRING '(' 1608271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1609271440Sjkim ; 1610271440Sjkim 1611271440SjkimToUUIDTerm 1612271440Sjkim : PARSEOP_TOUUID '(' 1613271440Sjkim StringData ')' {$$ = TrUpdateNode (PARSEOP_TOUUID, $3);} 1614271440Sjkim | PARSEOP_TOUUID '(' 1615271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1616271440Sjkim ; 1617271440Sjkim 1618271440SjkimWaitTerm 1619271440Sjkim : PARSEOP_WAIT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WAIT);} 1620271440Sjkim SuperName 1621271440Sjkim TermArgItem 1622271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,$4,$5);} 1623271440Sjkim | PARSEOP_WAIT '(' 1624271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1625271440Sjkim ; 1626271440Sjkim 1627271440SjkimXOrTerm 1628271440Sjkim : PARSEOP_XOR '(' {$<n>$ = TrCreateLeafNode (PARSEOP_XOR);} 1629271440Sjkim TermArg 1630271440Sjkim TermArgItem 1631271440Sjkim Target 1632271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$5,$6);} 1633271440Sjkim | PARSEOP_XOR '(' 1634271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 1635271440Sjkim ; 1636271440Sjkim 1637271440Sjkim 1638271440Sjkim/******* Keywords *************************************************************/ 1639271440Sjkim 1640271440Sjkim 1641271440SjkimAccessAttribKeyword 1642271440Sjkim : PARSEOP_ACCESSATTRIB_BLOCK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK);} 1643271440Sjkim | PARSEOP_ACCESSATTRIB_BLOCK_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BLOCK_CALL);} 1644271440Sjkim | PARSEOP_ACCESSATTRIB_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_BYTE);} 1645271440Sjkim | PARSEOP_ACCESSATTRIB_QUICK {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_QUICK );} 1646271440Sjkim | PARSEOP_ACCESSATTRIB_SND_RCV {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_SND_RCV);} 1647271440Sjkim | PARSEOP_ACCESSATTRIB_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD);} 1648271440Sjkim | PARSEOP_ACCESSATTRIB_WORD_CALL {$$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_WORD_CALL);} 1649271440Sjkim | PARSEOP_ACCESSATTRIB_MULTIBYTE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_MULTIBYTE);} 1650271440Sjkim ByteConst 1651271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1652271440Sjkim | PARSEOP_ACCESSATTRIB_RAW_BYTES '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_BYTES);} 1653271440Sjkim ByteConst 1654271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1655271440Sjkim | PARSEOP_ACCESSATTRIB_RAW_PROCESS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_ACCESSATTRIB_RAW_PROCESS);} 1656271440Sjkim ByteConst 1657271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,1,$4);} 1658271440Sjkim ; 1659271440Sjkim 1660271440SjkimAccessTypeKeyword 1661271440Sjkim : PARSEOP_ACCESSTYPE_ANY {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_ANY);} 1662271440Sjkim | PARSEOP_ACCESSTYPE_BYTE {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BYTE);} 1663271440Sjkim | PARSEOP_ACCESSTYPE_WORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_WORD);} 1664271440Sjkim | PARSEOP_ACCESSTYPE_DWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_DWORD);} 1665271440Sjkim | PARSEOP_ACCESSTYPE_QWORD {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_QWORD);} 1666271440Sjkim | PARSEOP_ACCESSTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_ACCESSTYPE_BUF);} 1667271440Sjkim ; 1668271440Sjkim 1669271440SjkimAddressingModeKeyword 1670271440Sjkim : PARSEOP_ADDRESSINGMODE_7BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_7BIT);} 1671271440Sjkim | PARSEOP_ADDRESSINGMODE_10BIT {$$ = TrCreateLeafNode (PARSEOP_ADDRESSINGMODE_10BIT);} 1672271440Sjkim ; 1673271440Sjkim 1674271440SjkimAddressKeyword 1675271440Sjkim : PARSEOP_ADDRESSTYPE_MEMORY {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_MEMORY);} 1676271440Sjkim | PARSEOP_ADDRESSTYPE_RESERVED {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_RESERVED);} 1677271440Sjkim | PARSEOP_ADDRESSTYPE_NVS {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_NVS);} 1678271440Sjkim | PARSEOP_ADDRESSTYPE_ACPI {$$ = TrCreateLeafNode (PARSEOP_ADDRESSTYPE_ACPI);} 1679271440Sjkim ; 1680271440Sjkim 1681271440SjkimAddressSpaceKeyword 1682271440Sjkim : ByteConst {$$ = UtCheckIntegerRange ($1, 0x0A, 0xFF);} 1683271440Sjkim | RegionSpaceKeyword {} 1684271440Sjkim ; 1685271440Sjkim 1686271440SjkimBitsPerByteKeyword 1687271440Sjkim : PARSEOP_BITSPERBYTE_FIVE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_FIVE);} 1688271440Sjkim | PARSEOP_BITSPERBYTE_SIX {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SIX);} 1689271440Sjkim | PARSEOP_BITSPERBYTE_SEVEN {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_SEVEN);} 1690271440Sjkim | PARSEOP_BITSPERBYTE_EIGHT {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_EIGHT);} 1691271440Sjkim | PARSEOP_BITSPERBYTE_NINE {$$ = TrCreateLeafNode (PARSEOP_BITSPERBYTE_NINE);} 1692271440Sjkim ; 1693271440Sjkim 1694271440SjkimClockPhaseKeyword 1695271440Sjkim : PARSEOP_CLOCKPHASE_FIRST {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_FIRST);} 1696271440Sjkim | PARSEOP_CLOCKPHASE_SECOND {$$ = TrCreateLeafNode (PARSEOP_CLOCKPHASE_SECOND);} 1697271440Sjkim ; 1698271440Sjkim 1699271440SjkimClockPolarityKeyword 1700271440Sjkim : PARSEOP_CLOCKPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_LOW);} 1701271440Sjkim | PARSEOP_CLOCKPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_CLOCKPOLARITY_HIGH);} 1702271440Sjkim ; 1703271440Sjkim 1704271440SjkimDecodeKeyword 1705271440Sjkim : PARSEOP_DECODETYPE_POS {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_POS);} 1706271440Sjkim | PARSEOP_DECODETYPE_SUB {$$ = TrCreateLeafNode (PARSEOP_DECODETYPE_SUB);} 1707271440Sjkim ; 1708271440Sjkim 1709271440SjkimDevicePolarityKeyword 1710271440Sjkim : PARSEOP_DEVICEPOLARITY_LOW {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_LOW);} 1711271440Sjkim | PARSEOP_DEVICEPOLARITY_HIGH {$$ = TrCreateLeafNode (PARSEOP_DEVICEPOLARITY_HIGH);} 1712271440Sjkim ; 1713271440Sjkim 1714271440SjkimDMATypeKeyword 1715271440Sjkim : PARSEOP_DMATYPE_A {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_A);} 1716271440Sjkim | PARSEOP_DMATYPE_COMPATIBILITY {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_COMPATIBILITY);} 1717271440Sjkim | PARSEOP_DMATYPE_B {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_B);} 1718271440Sjkim | PARSEOP_DMATYPE_F {$$ = TrCreateLeafNode (PARSEOP_DMATYPE_F);} 1719271440Sjkim ; 1720271440Sjkim 1721271440SjkimEndianKeyword 1722271440Sjkim : PARSEOP_ENDIAN_LITTLE {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_LITTLE);} 1723271440Sjkim | PARSEOP_ENDIAN_BIG {$$ = TrCreateLeafNode (PARSEOP_ENDIAN_BIG);} 1724271440Sjkim ; 1725271440Sjkim 1726271440SjkimFlowControlKeyword 1727271440Sjkim : PARSEOP_FLOWCONTROL_HW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_HW);} 1728271440Sjkim | PARSEOP_FLOWCONTROL_NONE {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_NONE);} 1729271440Sjkim | PARSEOP_FLOWCONTROL_SW {$$ = TrCreateLeafNode (PARSEOP_FLOWCONTROL_SW);} 1730271440Sjkim ; 1731271440Sjkim 1732271440SjkimInterruptLevel 1733271440Sjkim : PARSEOP_INTLEVEL_ACTIVEBOTH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEBOTH);} 1734271440Sjkim | PARSEOP_INTLEVEL_ACTIVEHIGH {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVEHIGH);} 1735271440Sjkim | PARSEOP_INTLEVEL_ACTIVELOW {$$ = TrCreateLeafNode (PARSEOP_INTLEVEL_ACTIVELOW);} 1736271440Sjkim ; 1737271440Sjkim 1738271440SjkimInterruptTypeKeyword 1739271440Sjkim : PARSEOP_INTTYPE_EDGE {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_EDGE);} 1740271440Sjkim | PARSEOP_INTTYPE_LEVEL {$$ = TrCreateLeafNode (PARSEOP_INTTYPE_LEVEL);} 1741271440Sjkim ; 1742271440Sjkim 1743271440SjkimIODecodeKeyword 1744271440Sjkim : PARSEOP_IODECODETYPE_16 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_16);} 1745271440Sjkim | PARSEOP_IODECODETYPE_10 {$$ = TrCreateLeafNode (PARSEOP_IODECODETYPE_10);} 1746271440Sjkim ; 1747271440Sjkim 1748271440SjkimIoRestrictionKeyword 1749271440Sjkim : PARSEOP_IORESTRICT_IN {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_IN);} 1750271440Sjkim | PARSEOP_IORESTRICT_OUT {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_OUT);} 1751271440Sjkim | PARSEOP_IORESTRICT_NONE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_NONE);} 1752271440Sjkim | PARSEOP_IORESTRICT_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_IORESTRICT_PRESERVE);} 1753271440Sjkim ; 1754271440Sjkim 1755271440SjkimLockRuleKeyword 1756271440Sjkim : PARSEOP_LOCKRULE_LOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_LOCK);} 1757271440Sjkim | PARSEOP_LOCKRULE_NOLOCK {$$ = TrCreateLeafNode (PARSEOP_LOCKRULE_NOLOCK);} 1758271440Sjkim ; 1759271440Sjkim 1760271440SjkimMatchOpKeyword 1761271440Sjkim : PARSEOP_MATCHTYPE_MTR {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MTR);} 1762271440Sjkim | PARSEOP_MATCHTYPE_MEQ {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MEQ);} 1763271440Sjkim | PARSEOP_MATCHTYPE_MLE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLE);} 1764271440Sjkim | PARSEOP_MATCHTYPE_MLT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MLT);} 1765271440Sjkim | PARSEOP_MATCHTYPE_MGE {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGE);} 1766271440Sjkim | PARSEOP_MATCHTYPE_MGT {$$ = TrCreateLeafNode (PARSEOP_MATCHTYPE_MGT);} 1767271440Sjkim ; 1768271440Sjkim 1769271440SjkimMaxKeyword 1770271440Sjkim : PARSEOP_MAXTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_FIXED);} 1771271440Sjkim | PARSEOP_MAXTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MAXTYPE_NOTFIXED);} 1772271440Sjkim ; 1773271440Sjkim 1774271440SjkimMemTypeKeyword 1775271440Sjkim : PARSEOP_MEMTYPE_CACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_CACHEABLE);} 1776271440Sjkim | PARSEOP_MEMTYPE_WRITECOMBINING {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_WRITECOMBINING);} 1777271440Sjkim | PARSEOP_MEMTYPE_PREFETCHABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_PREFETCHABLE);} 1778271440Sjkim | PARSEOP_MEMTYPE_NONCACHEABLE {$$ = TrCreateLeafNode (PARSEOP_MEMTYPE_NONCACHEABLE);} 1779271440Sjkim ; 1780271440Sjkim 1781271440SjkimMinKeyword 1782271440Sjkim : PARSEOP_MINTYPE_FIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_FIXED);} 1783271440Sjkim | PARSEOP_MINTYPE_NOTFIXED {$$ = TrCreateLeafNode (PARSEOP_MINTYPE_NOTFIXED);} 1784271440Sjkim ; 1785271440Sjkim 1786271440SjkimObjectTypeKeyword 1787271440Sjkim : PARSEOP_OBJECTTYPE_UNK {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);} 1788271440Sjkim | PARSEOP_OBJECTTYPE_INT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_INT);} 1789271440Sjkim | PARSEOP_OBJECTTYPE_STR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_STR);} 1790271440Sjkim | PARSEOP_OBJECTTYPE_BUF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BUF);} 1791271440Sjkim | PARSEOP_OBJECTTYPE_PKG {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PKG);} 1792271440Sjkim | PARSEOP_OBJECTTYPE_FLD {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_FLD);} 1793271440Sjkim | PARSEOP_OBJECTTYPE_DEV {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DEV);} 1794271440Sjkim | PARSEOP_OBJECTTYPE_EVT {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_EVT);} 1795271440Sjkim | PARSEOP_OBJECTTYPE_MTH {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTH);} 1796271440Sjkim | PARSEOP_OBJECTTYPE_MTX {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_MTX);} 1797271440Sjkim | PARSEOP_OBJECTTYPE_OPR {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_OPR);} 1798271440Sjkim | PARSEOP_OBJECTTYPE_POW {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_POW);} 1799271440Sjkim | PARSEOP_OBJECTTYPE_PRO {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_PRO);} 1800271440Sjkim | PARSEOP_OBJECTTYPE_THZ {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_THZ);} 1801271440Sjkim | PARSEOP_OBJECTTYPE_BFF {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_BFF);} 1802271440Sjkim | PARSEOP_OBJECTTYPE_DDB {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_DDB);} 1803271440Sjkim ; 1804271440Sjkim 1805271440SjkimParityTypeKeyword 1806271440Sjkim : PARSEOP_PARITYTYPE_SPACE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_SPACE);} 1807271440Sjkim | PARSEOP_PARITYTYPE_MARK {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_MARK);} 1808271440Sjkim | PARSEOP_PARITYTYPE_ODD {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_ODD);} 1809271440Sjkim | PARSEOP_PARITYTYPE_EVEN {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_EVEN);} 1810271440Sjkim | PARSEOP_PARITYTYPE_NONE {$$ = TrCreateLeafNode (PARSEOP_PARITYTYPE_NONE);} 1811271440Sjkim ; 1812271440Sjkim 1813271440SjkimPinConfigByte 1814271440Sjkim : PinConfigKeyword {$$ = $1;} 1815271440Sjkim | ByteConstExpr {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);} 1816271440Sjkim ; 1817271440Sjkim 1818271440SjkimPinConfigKeyword 1819271440Sjkim : PARSEOP_PIN_NOPULL {$$ = TrCreateLeafNode (PARSEOP_PIN_NOPULL);} 1820271440Sjkim | PARSEOP_PIN_PULLDOWN {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDOWN);} 1821271440Sjkim | PARSEOP_PIN_PULLUP {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLUP);} 1822271440Sjkim | PARSEOP_PIN_PULLDEFAULT {$$ = TrCreateLeafNode (PARSEOP_PIN_PULLDEFAULT);} 1823271440Sjkim ; 1824271440Sjkim 1825271440SjkimRangeTypeKeyword 1826271440Sjkim : PARSEOP_RANGETYPE_ISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ISAONLY);} 1827271440Sjkim | PARSEOP_RANGETYPE_NONISAONLY {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_NONISAONLY);} 1828271440Sjkim | PARSEOP_RANGETYPE_ENTIRE {$$ = TrCreateLeafNode (PARSEOP_RANGETYPE_ENTIRE);} 1829271440Sjkim ; 1830271440Sjkim 1831271440SjkimRegionSpaceKeyword 1832271440Sjkim : PARSEOP_REGIONSPACE_IO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IO);} 1833271440Sjkim | PARSEOP_REGIONSPACE_MEM {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_MEM);} 1834271440Sjkim | PARSEOP_REGIONSPACE_PCI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCI);} 1835271440Sjkim | PARSEOP_REGIONSPACE_EC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_EC);} 1836271440Sjkim | PARSEOP_REGIONSPACE_SMBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_SMBUS);} 1837271440Sjkim | PARSEOP_REGIONSPACE_CMOS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_CMOS);} 1838271440Sjkim | PARSEOP_REGIONSPACE_PCIBAR {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCIBAR);} 1839271440Sjkim | PARSEOP_REGIONSPACE_IPMI {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_IPMI);} 1840271440Sjkim | PARSEOP_REGIONSPACE_GPIO {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GPIO);} 1841271440Sjkim | PARSEOP_REGIONSPACE_GSBUS {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_GSBUS);} 1842271440Sjkim | PARSEOP_REGIONSPACE_PCC {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_PCC);} 1843271440Sjkim | PARSEOP_REGIONSPACE_FFIXEDHW {$$ = TrCreateLeafNode (PARSEOP_REGIONSPACE_FFIXEDHW);} 1844271440Sjkim ; 1845271440Sjkim 1846271440SjkimResourceTypeKeyword 1847271440Sjkim : PARSEOP_RESOURCETYPE_CONSUMER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);} 1848271440Sjkim | PARSEOP_RESOURCETYPE_PRODUCER {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_PRODUCER);} 1849271440Sjkim ; 1850271440Sjkim 1851271440SjkimSerializeRuleKeyword 1852271440Sjkim : PARSEOP_SERIALIZERULE_SERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_SERIAL);} 1853271440Sjkim | PARSEOP_SERIALIZERULE_NOTSERIAL {$$ = TrCreateLeafNode (PARSEOP_SERIALIZERULE_NOTSERIAL);} 1854271440Sjkim ; 1855271440Sjkim 1856271440SjkimShareTypeKeyword 1857271440Sjkim : PARSEOP_SHARETYPE_SHARED {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHARED);} 1858271440Sjkim | PARSEOP_SHARETYPE_EXCLUSIVE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVE);} 1859271440Sjkim | PARSEOP_SHARETYPE_SHAREDWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_SHAREDWAKE);} 1860271440Sjkim | PARSEOP_SHARETYPE_EXCLUSIVEWAKE {$$ = TrCreateLeafNode (PARSEOP_SHARETYPE_EXCLUSIVEWAKE);} 1861271440Sjkim ; 1862271440Sjkim 1863271440SjkimSlaveModeKeyword 1864271440Sjkim : PARSEOP_SLAVEMODE_CONTROLLERINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_CONTROLLERINIT);} 1865271440Sjkim | PARSEOP_SLAVEMODE_DEVICEINIT {$$ = TrCreateLeafNode (PARSEOP_SLAVEMODE_DEVICEINIT);} 1866271440Sjkim ; 1867271440Sjkim 1868271440SjkimStopBitsKeyword 1869271440Sjkim : PARSEOP_STOPBITS_TWO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_TWO);} 1870271440Sjkim | PARSEOP_STOPBITS_ONEPLUSHALF {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONEPLUSHALF);} 1871271440Sjkim | PARSEOP_STOPBITS_ONE {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ONE);} 1872271440Sjkim | PARSEOP_STOPBITS_ZERO {$$ = TrCreateLeafNode (PARSEOP_STOPBITS_ZERO);} 1873271440Sjkim ; 1874271440Sjkim 1875271440SjkimTranslationKeyword 1876271440Sjkim : PARSEOP_TRANSLATIONTYPE_SPARSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_SPARSE);} 1877271440Sjkim | PARSEOP_TRANSLATIONTYPE_DENSE {$$ = TrCreateLeafNode (PARSEOP_TRANSLATIONTYPE_DENSE);} 1878271440Sjkim ; 1879271440Sjkim 1880271440SjkimTypeKeyword 1881271440Sjkim : PARSEOP_TYPE_TRANSLATION {$$ = TrCreateLeafNode (PARSEOP_TYPE_TRANSLATION);} 1882271440Sjkim | PARSEOP_TYPE_STATIC {$$ = TrCreateLeafNode (PARSEOP_TYPE_STATIC);} 1883271440Sjkim ; 1884271440Sjkim 1885271440SjkimUpdateRuleKeyword 1886271440Sjkim : PARSEOP_UPDATERULE_PRESERVE {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_PRESERVE);} 1887271440Sjkim | PARSEOP_UPDATERULE_ONES {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ONES);} 1888271440Sjkim | PARSEOP_UPDATERULE_ZEROS {$$ = TrCreateLeafNode (PARSEOP_UPDATERULE_ZEROS);} 1889271440Sjkim ; 1890271440Sjkim 1891271440SjkimWireModeKeyword 1892271440Sjkim : PARSEOP_WIREMODE_FOUR {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_FOUR);} 1893271440Sjkim | PARSEOP_WIREMODE_THREE {$$ = TrCreateLeafNode (PARSEOP_WIREMODE_THREE);} 1894271440Sjkim ; 1895271440Sjkim 1896271440SjkimXferSizeKeyword 1897271440Sjkim : PARSEOP_XFERSIZE_8 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_8, 0);} 1898271440Sjkim | PARSEOP_XFERSIZE_16 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_16, 1);} 1899271440Sjkim | PARSEOP_XFERSIZE_32 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);} 1900271440Sjkim | PARSEOP_XFERSIZE_64 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_64, 3);} 1901271440Sjkim | PARSEOP_XFERSIZE_128 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_128, 4);} 1902271440Sjkim | PARSEOP_XFERSIZE_256 {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_256, 5);} 1903271440Sjkim ; 1904271440Sjkim 1905271440SjkimXferTypeKeyword 1906271440Sjkim : PARSEOP_XFERTYPE_8 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8);} 1907271440Sjkim | PARSEOP_XFERTYPE_8_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_8_16);} 1908271440Sjkim | PARSEOP_XFERTYPE_16 {$$ = TrCreateLeafNode (PARSEOP_XFERTYPE_16);} 1909271440Sjkim ; 1910271440Sjkim 1911271440Sjkim 1912271440Sjkim/******* Miscellaneous Types **************************************************/ 1913271440Sjkim 1914271440Sjkim 1915271440SjkimSuperName 1916271440Sjkim : NameString {} 1917271440Sjkim | ArgTerm {} 1918271440Sjkim | LocalTerm {} 1919271440Sjkim | DebugTerm {} 1920271440Sjkim | Type6Opcode {} 1921271440Sjkim 1922281687Sjkim/* For ObjectType: SuperName except for MethodInvocationTerm */ 1923271440Sjkim 1924271440SjkimObjectTypeName 1925271440Sjkim : NameString {} 1926271440Sjkim | ArgTerm {} 1927271440Sjkim | LocalTerm {} 1928271440Sjkim | DebugTerm {} 1929271440Sjkim | RefOfTerm {} 1930271440Sjkim | DerefOfTerm {} 1931271440Sjkim | IndexTerm {} 1932271440Sjkim 1933281687Sjkim/* | MethodInvocationTerm {} */ /* Caused reduce/reduce with Type6Opcode->MethodInvocationTerm */ 1934271440Sjkim ; 1935271440Sjkim 1936271440SjkimArgTerm 1937271440Sjkim : PARSEOP_ARG0 {$$ = TrCreateLeafNode (PARSEOP_ARG0);} 1938271440Sjkim | PARSEOP_ARG1 {$$ = TrCreateLeafNode (PARSEOP_ARG1);} 1939271440Sjkim | PARSEOP_ARG2 {$$ = TrCreateLeafNode (PARSEOP_ARG2);} 1940271440Sjkim | PARSEOP_ARG3 {$$ = TrCreateLeafNode (PARSEOP_ARG3);} 1941271440Sjkim | PARSEOP_ARG4 {$$ = TrCreateLeafNode (PARSEOP_ARG4);} 1942271440Sjkim | PARSEOP_ARG5 {$$ = TrCreateLeafNode (PARSEOP_ARG5);} 1943271440Sjkim | PARSEOP_ARG6 {$$ = TrCreateLeafNode (PARSEOP_ARG6);} 1944271440Sjkim ; 1945271440Sjkim 1946271440SjkimLocalTerm 1947271440Sjkim : PARSEOP_LOCAL0 {$$ = TrCreateLeafNode (PARSEOP_LOCAL0);} 1948271440Sjkim | PARSEOP_LOCAL1 {$$ = TrCreateLeafNode (PARSEOP_LOCAL1);} 1949271440Sjkim | PARSEOP_LOCAL2 {$$ = TrCreateLeafNode (PARSEOP_LOCAL2);} 1950271440Sjkim | PARSEOP_LOCAL3 {$$ = TrCreateLeafNode (PARSEOP_LOCAL3);} 1951271440Sjkim | PARSEOP_LOCAL4 {$$ = TrCreateLeafNode (PARSEOP_LOCAL4);} 1952271440Sjkim | PARSEOP_LOCAL5 {$$ = TrCreateLeafNode (PARSEOP_LOCAL5);} 1953271440Sjkim | PARSEOP_LOCAL6 {$$ = TrCreateLeafNode (PARSEOP_LOCAL6);} 1954271440Sjkim | PARSEOP_LOCAL7 {$$ = TrCreateLeafNode (PARSEOP_LOCAL7);} 1955271440Sjkim ; 1956271440Sjkim 1957271440SjkimDebugTerm 1958271440Sjkim : PARSEOP_DEBUG {$$ = TrCreateLeafNode (PARSEOP_DEBUG);} 1959271440Sjkim ; 1960271440Sjkim 1961271440Sjkim 1962271440SjkimByteConst 1963271440Sjkim : Integer {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);} 1964271440Sjkim ; 1965271440Sjkim 1966271440SjkimWordConst 1967271440Sjkim : Integer {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);} 1968271440Sjkim ; 1969271440Sjkim 1970271440SjkimDWordConst 1971271440Sjkim : Integer {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);} 1972271440Sjkim ; 1973271440Sjkim 1974271440SjkimQWordConst 1975271440Sjkim : Integer {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);} 1976271440Sjkim ; 1977271440Sjkim 1978271440SjkimInteger 1979271440Sjkim : PARSEOP_INTEGER {$$ = TrCreateValuedLeafNode (PARSEOP_INTEGER, AslCompilerlval.i);} 1980271440Sjkim ; 1981271440Sjkim 1982271440SjkimString 1983271440Sjkim : PARSEOP_STRING_LITERAL {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, (ACPI_NATIVE_INT) AslCompilerlval.s);} 1984271440Sjkim ; 1985271440Sjkim 1986271440SjkimConstTerm 1987271440Sjkim : ConstExprTerm {} 1988271440Sjkim | PARSEOP_REVISION {$$ = TrCreateLeafNode (PARSEOP_REVISION);} 1989271440Sjkim ; 1990271440Sjkim 1991271440SjkimConstExprTerm 1992271440Sjkim : PARSEOP_ZERO {$$ = TrCreateValuedLeafNode (PARSEOP_ZERO, 0);} 1993271440Sjkim | PARSEOP_ONE {$$ = TrCreateValuedLeafNode (PARSEOP_ONE, 1);} 1994271440Sjkim | PARSEOP_ONES {$$ = TrCreateValuedLeafNode (PARSEOP_ONES, ACPI_UINT64_MAX);} 1995271440Sjkim | PARSEOP___DATE__ {$$ = TrCreateConstantLeafNode (PARSEOP___DATE__);} 1996271440Sjkim | PARSEOP___FILE__ {$$ = TrCreateConstantLeafNode (PARSEOP___FILE__);} 1997271440Sjkim | PARSEOP___LINE__ {$$ = TrCreateConstantLeafNode (PARSEOP___LINE__);} 1998271440Sjkim | PARSEOP___PATH__ {$$ = TrCreateConstantLeafNode (PARSEOP___PATH__);} 1999271440Sjkim ; 2000271440Sjkim 2001271440Sjkim/* 2002271440Sjkim * The NODE_COMPILE_TIME_CONST flag in the following constant expressions 2003271440Sjkim * enables compile-time constant folding to reduce the Type3Opcodes/Type2IntegerOpcodes 2004271440Sjkim * to simple integers. It is an error if these types of expressions cannot be 2005271440Sjkim * reduced, since the AML grammar for ****ConstExpr requires a simple constant. 2006271440Sjkim * Note: The required byte length of the constant is passed through to the 2007271440Sjkim * constant folding code in the node AmlLength field. 2008271440Sjkim */ 2009271440SjkimByteConstExpr 2010271440Sjkim : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);} 2011271440Sjkim | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 1);} 2012271440Sjkim | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_BYTECONST, $1);} 2013271440Sjkim | ByteConst {} 2014271440Sjkim ; 2015271440Sjkim 2016271440SjkimWordConstExpr 2017271440Sjkim : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);} 2018271440Sjkim | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 2);} 2019271440Sjkim | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_WORDCONST, $1);} 2020271440Sjkim | WordConst {} 2021271440Sjkim ; 2022271440Sjkim 2023271440SjkimDWordConstExpr 2024271440Sjkim : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);} 2025271440Sjkim | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 4);} 2026271440Sjkim | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_DWORDCONST, $1);} 2027271440Sjkim | DWordConst {} 2028271440Sjkim ; 2029271440Sjkim 2030271440SjkimQWordConstExpr 2031271440Sjkim : Type3Opcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);} 2032271440Sjkim | Type2IntegerOpcode {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST); TrSetNodeAmlLength ($1, 8);} 2033271440Sjkim | ConstExprTerm {$$ = TrUpdateNode (PARSEOP_QWORDCONST, $1);} 2034271440Sjkim | QWordConst {} 2035271440Sjkim ; 2036271440Sjkim 2037271440Sjkim/* OptionalCount must appear before ByteList or an incorrect reduction will result */ 2038271440Sjkim 2039271440SjkimOptionalCount 2040271440Sjkim : {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */ 2041271440Sjkim | ',' {$$ = TrCreateLeafNode (PARSEOP_ONES);} /* Placeholder is a OnesOp object */ 2042271440Sjkim | ',' TermArg {$$ = $2;} 2043271440Sjkim ; 2044271440Sjkim 2045271440SjkimBufferTerm 2046271440Sjkim : PARSEOP_BUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_BUFFER);} 2047271440Sjkim OptionalTermArg 2048271440Sjkim ')' '{' 2049271440Sjkim BufferTermData '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 2050271440Sjkim | PARSEOP_BUFFER '(' 2051271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2052271440Sjkim ; 2053271440Sjkim 2054271440SjkimBufferTermData 2055271440Sjkim : ByteList {} 2056271440Sjkim | StringData {} 2057271440Sjkim ; 2058271440Sjkim 2059271440SjkimByteList 2060271440Sjkim : {$$ = NULL;} 2061271440Sjkim | ByteConstExpr 2062271440Sjkim | ByteList ',' /* Allows a trailing comma at list end */ 2063271440Sjkim | ByteList ',' 2064271440Sjkim ByteConstExpr {$$ = TrLinkPeerNode ($1,$3);} 2065271440Sjkim ; 2066271440Sjkim 2067271440SjkimDataBufferTerm 2068271440Sjkim : PARSEOP_DATABUFFER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DATABUFFER);} 2069271440Sjkim OptionalWordConst 2070271440Sjkim ')' '{' 2071271440Sjkim ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 2072271440Sjkim | PARSEOP_DATABUFFER '(' 2073271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2074271440Sjkim ; 2075271440Sjkim 2076271440SjkimDWordList 2077271440Sjkim : {$$ = NULL;} 2078271440Sjkim | DWordConstExpr 2079271440Sjkim | DWordList ',' /* Allows a trailing comma at list end */ 2080271440Sjkim | DWordList ',' 2081271440Sjkim DWordConstExpr {$$ = TrLinkPeerNode ($1,$3);} 2082271440Sjkim ; 2083271440Sjkim 2084271440SjkimPackageTerm 2085271440Sjkim : PARSEOP_PACKAGE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VAR_PACKAGE);} 2086271440Sjkim VarPackageLengthTerm 2087271440Sjkim ')' '{' 2088271440Sjkim PackageList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 2089271440Sjkim | PARSEOP_PACKAGE '(' 2090271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2091271440Sjkim ; 2092271440Sjkim 2093271440SjkimPackageList 2094271440Sjkim : {$$ = NULL;} 2095271440Sjkim | PackageElement 2096271440Sjkim | PackageList ',' /* Allows a trailing comma at list end */ 2097271440Sjkim | PackageList ',' 2098271440Sjkim PackageElement {$$ = TrLinkPeerNode ($1,$3);} 2099271440Sjkim ; 2100271440Sjkim 2101271440SjkimPackageElement 2102271440Sjkim : DataObject {} 2103271440Sjkim | NameString {} 2104271440Sjkim ; 2105271440Sjkim 2106271440SjkimVarPackageLengthTerm 2107271440Sjkim : {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);} 2108271440Sjkim | TermArg {$$ = $1;} 2109271440Sjkim ; 2110271440Sjkim 2111271440Sjkim 2112271440Sjkim/******* Macros ***********************************************/ 2113271440Sjkim 2114271440Sjkim 2115271440SjkimEISAIDTerm 2116271440Sjkim : PARSEOP_EISAID '(' 2117271440Sjkim StringData ')' {$$ = TrUpdateNode (PARSEOP_EISAID, $3);} 2118271440Sjkim | PARSEOP_EISAID '(' 2119271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2120271440Sjkim ; 2121271440Sjkim 2122271440SjkimUnicodeTerm 2123271440Sjkim : PARSEOP_UNICODE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UNICODE);} 2124271440Sjkim StringData 2125271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,2,0,$4);} 2126271440Sjkim | PARSEOP_UNICODE '(' 2127271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2128271440Sjkim ; 2129271440Sjkim 2130271440Sjkim 2131271440Sjkim/******* Resources and Memory ***********************************************/ 2132271440Sjkim 2133271440Sjkim 2134271440Sjkim/* 2135271440Sjkim * Note: Create two default nodes to allow conversion to a Buffer AML opcode 2136271440Sjkim * Also, insert the EndTag at the end of the template. 2137271440Sjkim */ 2138271440SjkimResourceTemplateTerm 2139271440Sjkim : PARSEOP_RESOURCETEMPLATE '(' ')' 2140271440Sjkim '{' 2141271440Sjkim ResourceMacroList '}' {$$ = TrCreateNode (PARSEOP_RESOURCETEMPLATE,4, 2142271440Sjkim TrCreateLeafNode (PARSEOP_DEFAULT_ARG), 2143271440Sjkim TrCreateLeafNode (PARSEOP_DEFAULT_ARG), 2144271440Sjkim $5, 2145271440Sjkim TrCreateLeafNode (PARSEOP_ENDTAG));} 2146271440Sjkim ; 2147271440Sjkim 2148271440SjkimResourceMacroList 2149271440Sjkim : {$$ = NULL;} 2150271440Sjkim | ResourceMacroList 2151271440Sjkim ResourceMacroTerm {$$ = TrLinkPeerNode ($1,$2);} 2152271440Sjkim ; 2153271440Sjkim 2154271440SjkimResourceMacroTerm 2155271440Sjkim : DMATerm {} 2156271440Sjkim | DWordIOTerm {} 2157271440Sjkim | DWordMemoryTerm {} 2158271440Sjkim | DWordSpaceTerm {} 2159271440Sjkim | EndDependentFnTerm {} 2160271440Sjkim | ExtendedIOTerm {} 2161271440Sjkim | ExtendedMemoryTerm {} 2162271440Sjkim | ExtendedSpaceTerm {} 2163271440Sjkim | FixedDmaTerm {} 2164271440Sjkim | FixedIOTerm {} 2165271440Sjkim | GpioIntTerm {} 2166271440Sjkim | GpioIoTerm {} 2167271440Sjkim | I2cSerialBusTerm {} 2168271440Sjkim | InterruptTerm {} 2169271440Sjkim | IOTerm {} 2170271440Sjkim | IRQNoFlagsTerm {} 2171271440Sjkim | IRQTerm {} 2172271440Sjkim | Memory24Term {} 2173271440Sjkim | Memory32FixedTerm {} 2174271440Sjkim | Memory32Term {} 2175271440Sjkim | QWordIOTerm {} 2176271440Sjkim | QWordMemoryTerm {} 2177271440Sjkim | QWordSpaceTerm {} 2178271440Sjkim | RegisterTerm {} 2179271440Sjkim | SpiSerialBusTerm {} 2180271440Sjkim | StartDependentFnNoPriTerm {} 2181271440Sjkim | StartDependentFnTerm {} 2182271440Sjkim | UartSerialBusTerm {} 2183271440Sjkim | VendorLongTerm {} 2184271440Sjkim | VendorShortTerm {} 2185271440Sjkim | WordBusNumberTerm {} 2186271440Sjkim | WordIOTerm {} 2187271440Sjkim | WordSpaceTerm {} 2188271440Sjkim ; 2189271440Sjkim 2190271440SjkimDMATerm 2191271440Sjkim : PARSEOP_DMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DMA);} 2192271440Sjkim DMATypeKeyword 2193271440Sjkim OptionalBusMasterKeyword 2194271440Sjkim ',' XferTypeKeyword 2195271440Sjkim OptionalNameString_Last 2196271440Sjkim ')' '{' 2197271440Sjkim ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$5,$7,$8,$11);} 2198271440Sjkim | PARSEOP_DMA '(' 2199271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2200271440Sjkim ; 2201271440Sjkim 2202271440SjkimDWordIOTerm 2203271440Sjkim : PARSEOP_DWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDIO);} 2204271440Sjkim OptionalResourceType_First 2205271440Sjkim OptionalMinType 2206271440Sjkim OptionalMaxType 2207271440Sjkim OptionalDecodeType 2208271440Sjkim OptionalRangeType 2209271440Sjkim ',' DWordConstExpr 2210271440Sjkim ',' DWordConstExpr 2211271440Sjkim ',' DWordConstExpr 2212271440Sjkim ',' DWordConstExpr 2213271440Sjkim ',' DWordConstExpr 2214271440Sjkim OptionalByteConstExpr 2215271440Sjkim OptionalStringData 2216271440Sjkim OptionalNameString 2217271440Sjkim OptionalType 2218271440Sjkim OptionalTranslationType_Last 2219271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 2220271440Sjkim | PARSEOP_DWORDIO '(' 2221271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2222271440Sjkim ; 2223271440Sjkim 2224271440SjkimDWordMemoryTerm 2225271440Sjkim : PARSEOP_DWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDMEMORY);} 2226271440Sjkim OptionalResourceType_First 2227271440Sjkim OptionalDecodeType 2228271440Sjkim OptionalMinType 2229271440Sjkim OptionalMaxType 2230271440Sjkim OptionalMemType 2231271440Sjkim ',' OptionalReadWriteKeyword 2232271440Sjkim ',' DWordConstExpr 2233271440Sjkim ',' DWordConstExpr 2234271440Sjkim ',' DWordConstExpr 2235271440Sjkim ',' DWordConstExpr 2236271440Sjkim ',' DWordConstExpr 2237271440Sjkim OptionalByteConstExpr 2238271440Sjkim OptionalStringData 2239271440Sjkim OptionalNameString 2240271440Sjkim OptionalAddressRange 2241271440Sjkim OptionalType_Last 2242271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);} 2243271440Sjkim | PARSEOP_DWORDMEMORY '(' 2244271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2245271440Sjkim ; 2246271440Sjkim 2247271440SjkimDWordSpaceTerm 2248271440Sjkim : PARSEOP_DWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_DWORDSPACE);} 2249271440Sjkim ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 2250271440Sjkim OptionalResourceType 2251271440Sjkim OptionalDecodeType 2252271440Sjkim OptionalMinType 2253271440Sjkim OptionalMaxType 2254271440Sjkim ',' ByteConstExpr 2255271440Sjkim ',' DWordConstExpr 2256271440Sjkim ',' DWordConstExpr 2257271440Sjkim ',' DWordConstExpr 2258271440Sjkim ',' DWordConstExpr 2259271440Sjkim ',' DWordConstExpr 2260271440Sjkim OptionalByteConstExpr 2261271440Sjkim OptionalStringData 2262271440Sjkim OptionalNameString_Last 2263271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 2264271440Sjkim | PARSEOP_DWORDSPACE '(' 2265271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2266271440Sjkim ; 2267271440Sjkim 2268271440Sjkim 2269271440SjkimEndDependentFnTerm 2270271440Sjkim : PARSEOP_ENDDEPENDENTFN '(' 2271271440Sjkim ')' {$$ = TrCreateLeafNode (PARSEOP_ENDDEPENDENTFN);} 2272271440Sjkim | PARSEOP_ENDDEPENDENTFN '(' 2273271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2274271440Sjkim ; 2275271440Sjkim 2276271440SjkimExtendedIOTerm 2277271440Sjkim : PARSEOP_EXTENDEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDIO);} 2278271440Sjkim OptionalResourceType_First 2279271440Sjkim OptionalMinType 2280271440Sjkim OptionalMaxType 2281271440Sjkim OptionalDecodeType 2282271440Sjkim OptionalRangeType 2283271440Sjkim ',' QWordConstExpr 2284271440Sjkim ',' QWordConstExpr 2285271440Sjkim ',' QWordConstExpr 2286271440Sjkim ',' QWordConstExpr 2287271440Sjkim ',' QWordConstExpr 2288271440Sjkim OptionalQWordConstExpr 2289271440Sjkim OptionalNameString 2290271440Sjkim OptionalType 2291271440Sjkim OptionalTranslationType_Last 2292271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22);} 2293271440Sjkim | PARSEOP_EXTENDEDIO '(' 2294271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2295271440Sjkim ; 2296271440Sjkim 2297271440SjkimExtendedMemoryTerm 2298271440Sjkim : PARSEOP_EXTENDEDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDMEMORY);} 2299271440Sjkim OptionalResourceType_First 2300271440Sjkim OptionalDecodeType 2301271440Sjkim OptionalMinType 2302271440Sjkim OptionalMaxType 2303271440Sjkim OptionalMemType 2304271440Sjkim ',' OptionalReadWriteKeyword 2305271440Sjkim ',' QWordConstExpr 2306271440Sjkim ',' QWordConstExpr 2307271440Sjkim ',' QWordConstExpr 2308271440Sjkim ',' QWordConstExpr 2309271440Sjkim ',' QWordConstExpr 2310271440Sjkim OptionalQWordConstExpr 2311271440Sjkim OptionalNameString 2312271440Sjkim OptionalAddressRange 2313271440Sjkim OptionalType_Last 2314271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24);} 2315271440Sjkim | PARSEOP_EXTENDEDMEMORY '(' 2316271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2317271440Sjkim ; 2318271440Sjkim 2319271440SjkimExtendedSpaceTerm 2320271440Sjkim : PARSEOP_EXTENDEDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_EXTENDEDSPACE);} 2321271440Sjkim ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 2322271440Sjkim OptionalResourceType 2323271440Sjkim OptionalDecodeType 2324271440Sjkim OptionalMinType 2325271440Sjkim OptionalMaxType 2326271440Sjkim ',' ByteConstExpr 2327271440Sjkim ',' QWordConstExpr 2328271440Sjkim ',' QWordConstExpr 2329271440Sjkim ',' QWordConstExpr 2330271440Sjkim ',' QWordConstExpr 2331271440Sjkim ',' QWordConstExpr 2332271440Sjkim OptionalQWordConstExpr 2333271440Sjkim OptionalNameString_Last 2334271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,13,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23);} 2335271440Sjkim | PARSEOP_EXTENDEDSPACE '(' 2336271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2337271440Sjkim ; 2338271440Sjkim 2339271440SjkimFixedDmaTerm 2340271440Sjkim : PARSEOP_FIXEDDMA '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDDMA);} 2341271440Sjkim WordConstExpr /* 04: DMA RequestLines */ 2342271440Sjkim ',' WordConstExpr /* 06: DMA Channels */ 2343271440Sjkim OptionalXferSize /* 07: DMA TransferSize */ 2344271440Sjkim OptionalNameString /* 08: DescriptorName */ 2345271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$7,$8);} 2346271440Sjkim | PARSEOP_FIXEDDMA '(' 2347271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2348271440Sjkim ; 2349271440Sjkim 2350271440SjkimFixedIOTerm 2351271440Sjkim : PARSEOP_FIXEDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_FIXEDIO);} 2352271440Sjkim WordConstExpr 2353271440Sjkim ',' ByteConstExpr 2354271440Sjkim OptionalNameString_Last 2355271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$7);} 2356271440Sjkim | PARSEOP_FIXEDIO '(' 2357271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2358271440Sjkim ; 2359271440Sjkim 2360271440SjkimGpioIntTerm 2361271440Sjkim : PARSEOP_GPIO_INT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_INT);} 2362271440Sjkim InterruptTypeKeyword /* 04: InterruptType */ 2363271440Sjkim ',' InterruptLevel /* 06: InterruptLevel */ 2364271440Sjkim OptionalShareType /* 07: SharedType */ 2365271440Sjkim ',' PinConfigByte /* 09: PinConfig */ 2366271440Sjkim OptionalWordConstExpr /* 10: DebounceTimeout */ 2367271440Sjkim ',' StringData /* 12: ResourceSource */ 2368271440Sjkim OptionalByteConstExpr /* 13: ResourceSourceIndex */ 2369271440Sjkim OptionalResourceType /* 14: ResourceType */ 2370271440Sjkim OptionalNameString /* 15: DescriptorName */ 2371271440Sjkim OptionalBuffer_Last /* 16: VendorData */ 2372271440Sjkim ')' '{' 2373271440Sjkim DWordConstExpr '}' {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$9,$10,$12,$13,$14,$15,$16,$19);} 2374271440Sjkim | PARSEOP_GPIO_INT '(' 2375271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2376271440Sjkim ; 2377271440Sjkim 2378271440SjkimGpioIoTerm 2379271440Sjkim : PARSEOP_GPIO_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_GPIO_IO);} 2380271440Sjkim OptionalShareType_First /* 04: SharedType */ 2381271440Sjkim ',' PinConfigByte /* 06: PinConfig */ 2382271440Sjkim OptionalWordConstExpr /* 07: DebounceTimeout */ 2383271440Sjkim OptionalWordConstExpr /* 08: DriveStrength */ 2384271440Sjkim OptionalIoRestriction /* 09: IoRestriction */ 2385271440Sjkim ',' StringData /* 11: ResourceSource */ 2386271440Sjkim OptionalByteConstExpr /* 12: ResourceSourceIndex */ 2387271440Sjkim OptionalResourceType /* 13: ResourceType */ 2388271440Sjkim OptionalNameString /* 14: DescriptorName */ 2389271440Sjkim OptionalBuffer_Last /* 15: VendorData */ 2390271440Sjkim ')' '{' 2391271440Sjkim DWordList '}' {$$ = TrLinkChildren ($<n>3,11,$4,$6,$7,$8,$9,$11,$12,$13,$14,$15,$18);} 2392271440Sjkim | PARSEOP_GPIO_IO '(' 2393271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2394271440Sjkim ; 2395271440Sjkim 2396271440SjkimI2cSerialBusTerm 2397271440Sjkim : PARSEOP_I2C_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_I2C_SERIALBUS);} 2398271440Sjkim WordConstExpr /* 04: SlaveAddress */ 2399271440Sjkim OptionalSlaveMode /* 05: SlaveMode */ 2400271440Sjkim ',' DWordConstExpr /* 07: ConnectionSpeed */ 2401271440Sjkim OptionalAddressingMode /* 08: AddressingMode */ 2402271440Sjkim ',' StringData /* 10: ResourceSource */ 2403271440Sjkim OptionalByteConstExpr /* 11: ResourceSourceIndex */ 2404271440Sjkim OptionalResourceType /* 12: ResourceType */ 2405271440Sjkim OptionalNameString /* 13: DescriptorName */ 2406271440Sjkim OptionalBuffer_Last /* 14: VendorData */ 2407271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,9,$4,$5,$7,$8,$10,$11,$12,$13,$14);} 2408271440Sjkim | PARSEOP_I2C_SERIALBUS '(' 2409271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2410271440Sjkim ; 2411271440Sjkim 2412271440SjkimInterruptTerm 2413271440Sjkim : PARSEOP_INTERRUPT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_INTERRUPT);} 2414271440Sjkim OptionalResourceType_First 2415271440Sjkim ',' InterruptTypeKeyword 2416271440Sjkim ',' InterruptLevel 2417271440Sjkim OptionalShareType 2418271440Sjkim OptionalByteConstExpr 2419271440Sjkim OptionalStringData 2420271440Sjkim OptionalNameString_Last 2421271440Sjkim ')' '{' 2422271440Sjkim DWordList '}' {$$ = TrLinkChildren ($<n>3,8,$4,$6,$8,$9,$10,$11,$12,$15);} 2423271440Sjkim | PARSEOP_INTERRUPT '(' 2424271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2425271440Sjkim ; 2426271440Sjkim 2427271440SjkimIOTerm 2428271440Sjkim : PARSEOP_IO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IO);} 2429271440Sjkim IODecodeKeyword 2430271440Sjkim ',' WordConstExpr 2431271440Sjkim ',' WordConstExpr 2432271440Sjkim ',' ByteConstExpr 2433271440Sjkim ',' ByteConstExpr 2434271440Sjkim OptionalNameString_Last 2435271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 2436271440Sjkim | PARSEOP_IO '(' 2437271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2438271440Sjkim ; 2439271440Sjkim 2440271440SjkimIRQNoFlagsTerm 2441271440Sjkim : PARSEOP_IRQNOFLAGS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQNOFLAGS);} 2442271440Sjkim OptionalNameString_First 2443271440Sjkim ')' '{' 2444271440Sjkim ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 2445271440Sjkim | PARSEOP_IRQNOFLAGS '(' 2446271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2447271440Sjkim ; 2448271440Sjkim 2449271440SjkimIRQTerm 2450271440Sjkim : PARSEOP_IRQ '(' {$<n>$ = TrCreateLeafNode (PARSEOP_IRQ);} 2451271440Sjkim InterruptTypeKeyword 2452271440Sjkim ',' InterruptLevel 2453271440Sjkim OptionalShareType 2454271440Sjkim OptionalNameString_Last 2455271440Sjkim ')' '{' 2456271440Sjkim ByteList '}' {$$ = TrLinkChildren ($<n>3,5,$4,$6,$7,$8,$11);} 2457271440Sjkim | PARSEOP_IRQ '(' 2458271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2459271440Sjkim ; 2460271440Sjkim 2461271440SjkimMemory24Term 2462271440Sjkim : PARSEOP_MEMORY24 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY24);} 2463271440Sjkim OptionalReadWriteKeyword 2464271440Sjkim ',' WordConstExpr 2465271440Sjkim ',' WordConstExpr 2466271440Sjkim ',' WordConstExpr 2467271440Sjkim ',' WordConstExpr 2468271440Sjkim OptionalNameString_Last 2469271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 2470271440Sjkim | PARSEOP_MEMORY24 '(' 2471271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2472271440Sjkim ; 2473271440Sjkim 2474271440SjkimMemory32FixedTerm 2475271440Sjkim : PARSEOP_MEMORY32FIXED '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32FIXED);} 2476271440Sjkim OptionalReadWriteKeyword 2477271440Sjkim ',' DWordConstExpr 2478271440Sjkim ',' DWordConstExpr 2479271440Sjkim OptionalNameString_Last 2480271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,4,$4,$6,$8,$9);} 2481271440Sjkim | PARSEOP_MEMORY32FIXED '(' 2482271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2483271440Sjkim ; 2484271440Sjkim 2485271440SjkimMemory32Term 2486271440Sjkim : PARSEOP_MEMORY32 '(' {$<n>$ = TrCreateLeafNode (PARSEOP_MEMORY32);} 2487271440Sjkim OptionalReadWriteKeyword 2488271440Sjkim ',' DWordConstExpr 2489271440Sjkim ',' DWordConstExpr 2490271440Sjkim ',' DWordConstExpr 2491271440Sjkim ',' DWordConstExpr 2492271440Sjkim OptionalNameString_Last 2493271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$12,$13);} 2494271440Sjkim | PARSEOP_MEMORY32 '(' 2495271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2496271440Sjkim ; 2497271440Sjkim 2498271440SjkimQWordIOTerm 2499271440Sjkim : PARSEOP_QWORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDIO);} 2500271440Sjkim OptionalResourceType_First 2501271440Sjkim OptionalMinType 2502271440Sjkim OptionalMaxType 2503271440Sjkim OptionalDecodeType 2504271440Sjkim OptionalRangeType 2505271440Sjkim ',' QWordConstExpr 2506271440Sjkim ',' QWordConstExpr 2507271440Sjkim ',' QWordConstExpr 2508271440Sjkim ',' QWordConstExpr 2509271440Sjkim ',' QWordConstExpr 2510271440Sjkim OptionalByteConstExpr 2511271440Sjkim OptionalStringData 2512271440Sjkim OptionalNameString 2513271440Sjkim OptionalType 2514271440Sjkim OptionalTranslationType_Last 2515271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 2516271440Sjkim | PARSEOP_QWORDIO '(' 2517271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2518271440Sjkim ; 2519271440Sjkim 2520271440SjkimQWordMemoryTerm 2521271440Sjkim : PARSEOP_QWORDMEMORY '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDMEMORY);} 2522271440Sjkim OptionalResourceType_First 2523271440Sjkim OptionalDecodeType 2524271440Sjkim OptionalMinType 2525271440Sjkim OptionalMaxType 2526271440Sjkim OptionalMemType 2527271440Sjkim ',' OptionalReadWriteKeyword 2528271440Sjkim ',' QWordConstExpr 2529271440Sjkim ',' QWordConstExpr 2530271440Sjkim ',' QWordConstExpr 2531271440Sjkim ',' QWordConstExpr 2532271440Sjkim ',' QWordConstExpr 2533271440Sjkim OptionalByteConstExpr 2534271440Sjkim OptionalStringData 2535271440Sjkim OptionalNameString 2536271440Sjkim OptionalAddressRange 2537271440Sjkim OptionalType_Last 2538271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,16,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$20,$21,$22,$23,$24,$25);} 2539271440Sjkim | PARSEOP_QWORDMEMORY '(' 2540271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2541271440Sjkim ; 2542271440Sjkim 2543271440SjkimQWordSpaceTerm 2544271440Sjkim : PARSEOP_QWORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_QWORDSPACE);} 2545271440Sjkim ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 2546271440Sjkim OptionalResourceType 2547271440Sjkim OptionalDecodeType 2548271440Sjkim OptionalMinType 2549271440Sjkim OptionalMaxType 2550271440Sjkim ',' ByteConstExpr 2551271440Sjkim ',' QWordConstExpr 2552271440Sjkim ',' QWordConstExpr 2553271440Sjkim ',' QWordConstExpr 2554271440Sjkim ',' QWordConstExpr 2555271440Sjkim ',' QWordConstExpr 2556271440Sjkim OptionalByteConstExpr 2557271440Sjkim OptionalStringData 2558271440Sjkim OptionalNameString_Last 2559271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 2560271440Sjkim | PARSEOP_QWORDSPACE '(' 2561271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2562271440Sjkim ; 2563271440Sjkim 2564271440SjkimRegisterTerm 2565271440Sjkim : PARSEOP_REGISTER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_REGISTER);} 2566271440Sjkim AddressSpaceKeyword 2567271440Sjkim ',' ByteConstExpr 2568271440Sjkim ',' ByteConstExpr 2569271440Sjkim ',' QWordConstExpr 2570271440Sjkim OptionalAccessSize 2571271440Sjkim OptionalNameString_Last 2572271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,6,$4,$6,$8,$10,$11,$12);} 2573271440Sjkim | PARSEOP_REGISTER '(' 2574271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2575271440Sjkim ; 2576271440Sjkim 2577271440SjkimSpiSerialBusTerm 2578271440Sjkim : PARSEOP_SPI_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_SPI_SERIALBUS);} 2579271440Sjkim WordConstExpr /* 04: DeviceSelection */ 2580271440Sjkim OptionalDevicePolarity /* 05: DevicePolarity */ 2581271440Sjkim OptionalWireMode /* 06: WireMode */ 2582271440Sjkim ',' ByteConstExpr /* 08: DataBitLength */ 2583271440Sjkim OptionalSlaveMode /* 09: SlaveMode */ 2584271440Sjkim ',' DWordConstExpr /* 11: ConnectionSpeed */ 2585271440Sjkim ',' ClockPolarityKeyword /* 13: ClockPolarity */ 2586271440Sjkim ',' ClockPhaseKeyword /* 15: ClockPhase */ 2587271440Sjkim ',' StringData /* 17: ResourceSource */ 2588271440Sjkim OptionalByteConstExpr /* 18: ResourceSourceIndex */ 2589271440Sjkim OptionalResourceType /* 19: ResourceType */ 2590271440Sjkim OptionalNameString /* 20: DescriptorName */ 2591271440Sjkim OptionalBuffer_Last /* 21: VendorData */ 2592271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,13,$4,$5,$6,$8,$9,$11,$13,$15,$17,$18,$19,$20,$21);} 2593271440Sjkim | PARSEOP_SPI_SERIALBUS '(' 2594271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2595271440Sjkim ; 2596271440Sjkim 2597271440SjkimStartDependentFnNoPriTerm 2598271440Sjkim : PARSEOP_STARTDEPENDENTFN_NOPRI '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN_NOPRI);} 2599271440Sjkim ')' '{' 2600271440Sjkim ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,1,$6);} 2601271440Sjkim | PARSEOP_STARTDEPENDENTFN_NOPRI '(' 2602271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2603271440Sjkim ; 2604271440Sjkim 2605271440SjkimStartDependentFnTerm 2606271440Sjkim : PARSEOP_STARTDEPENDENTFN '(' {$<n>$ = TrCreateLeafNode (PARSEOP_STARTDEPENDENTFN);} 2607271440Sjkim ByteConstExpr 2608271440Sjkim ',' ByteConstExpr 2609271440Sjkim ')' '{' 2610271440Sjkim ResourceMacroList '}' {$$ = TrLinkChildren ($<n>3,3,$4,$6,$9);} 2611271440Sjkim | PARSEOP_STARTDEPENDENTFN '(' 2612271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2613271440Sjkim ; 2614271440Sjkim 2615271440SjkimUartSerialBusTerm 2616271440Sjkim : PARSEOP_UART_SERIALBUS '(' {$<n>$ = TrCreateLeafNode (PARSEOP_UART_SERIALBUS);} 2617271440Sjkim DWordConstExpr /* 04: ConnectionSpeed */ 2618271440Sjkim OptionalBitsPerByte /* 05: BitsPerByte */ 2619271440Sjkim OptionalStopBits /* 06: StopBits */ 2620271440Sjkim ',' ByteConstExpr /* 08: LinesInUse */ 2621271440Sjkim OptionalEndian /* 09: Endianess */ 2622271440Sjkim OptionalParityType /* 10: Parity */ 2623271440Sjkim OptionalFlowControl /* 11: FlowControl */ 2624271440Sjkim ',' WordConstExpr /* 13: Rx BufferSize */ 2625271440Sjkim ',' WordConstExpr /* 15: Tx BufferSize */ 2626271440Sjkim ',' StringData /* 17: ResourceSource */ 2627271440Sjkim OptionalByteConstExpr /* 18: ResourceSourceIndex */ 2628271440Sjkim OptionalResourceType /* 19: ResourceType */ 2629271440Sjkim OptionalNameString /* 20: DescriptorName */ 2630271440Sjkim OptionalBuffer_Last /* 21: VendorData */ 2631271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,14,$4,$5,$6,$8,$9,$10,$11,$13,$15,$17,$18,$19,$20,$21);} 2632271440Sjkim | PARSEOP_UART_SERIALBUS '(' 2633271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2634271440Sjkim ; 2635271440Sjkim 2636271440SjkimVendorLongTerm 2637271440Sjkim : PARSEOP_VENDORLONG '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORLONG);} 2638271440Sjkim OptionalNameString_First 2639271440Sjkim ')' '{' 2640271440Sjkim ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 2641271440Sjkim | PARSEOP_VENDORLONG '(' 2642271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2643271440Sjkim ; 2644271440Sjkim 2645271440SjkimVendorShortTerm 2646271440Sjkim : PARSEOP_VENDORSHORT '(' {$<n>$ = TrCreateLeafNode (PARSEOP_VENDORSHORT);} 2647271440Sjkim OptionalNameString_First 2648271440Sjkim ')' '{' 2649271440Sjkim ByteList '}' {$$ = TrLinkChildren ($<n>3,2,$4,$7);} 2650271440Sjkim | PARSEOP_VENDORSHORT '(' 2651271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2652271440Sjkim ; 2653271440Sjkim 2654271440SjkimWordBusNumberTerm 2655271440Sjkim : PARSEOP_WORDBUSNUMBER '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDBUSNUMBER);} 2656271440Sjkim OptionalResourceType_First 2657271440Sjkim OptionalMinType 2658271440Sjkim OptionalMaxType 2659271440Sjkim OptionalDecodeType 2660271440Sjkim ',' WordConstExpr 2661271440Sjkim ',' WordConstExpr 2662271440Sjkim ',' WordConstExpr 2663271440Sjkim ',' WordConstExpr 2664271440Sjkim ',' WordConstExpr 2665271440Sjkim OptionalByteConstExpr 2666271440Sjkim OptionalStringData 2667271440Sjkim OptionalNameString_Last 2668271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,12,$4,$5,$6,$7,$9,$11,$13,$15,$17,$18,$19,$20);} 2669271440Sjkim | PARSEOP_WORDBUSNUMBER '(' 2670271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2671271440Sjkim ; 2672271440Sjkim 2673271440SjkimWordIOTerm 2674271440Sjkim : PARSEOP_WORDIO '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDIO);} 2675271440Sjkim OptionalResourceType_First 2676271440Sjkim OptionalMinType 2677271440Sjkim OptionalMaxType 2678271440Sjkim OptionalDecodeType 2679271440Sjkim OptionalRangeType 2680271440Sjkim ',' WordConstExpr 2681271440Sjkim ',' WordConstExpr 2682271440Sjkim ',' WordConstExpr 2683271440Sjkim ',' WordConstExpr 2684271440Sjkim ',' WordConstExpr 2685271440Sjkim OptionalByteConstExpr 2686271440Sjkim OptionalStringData 2687271440Sjkim OptionalNameString 2688271440Sjkim OptionalType 2689271440Sjkim OptionalTranslationType_Last 2690271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,15,$4,$5,$6,$7,$8,$10,$12,$14,$16,$18,$19,$20,$21,$22,$23);} 2691271440Sjkim | PARSEOP_WORDIO '(' 2692271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2693271440Sjkim ; 2694271440Sjkim 2695271440SjkimWordSpaceTerm 2696271440Sjkim : PARSEOP_WORDSPACE '(' {$<n>$ = TrCreateLeafNode (PARSEOP_WORDSPACE);} 2697271440Sjkim ByteConstExpr {UtCheckIntegerRange ($4, 0xC0, 0xFF);} 2698271440Sjkim OptionalResourceType 2699271440Sjkim OptionalDecodeType 2700271440Sjkim OptionalMinType 2701271440Sjkim OptionalMaxType 2702271440Sjkim ',' ByteConstExpr 2703271440Sjkim ',' WordConstExpr 2704271440Sjkim ',' WordConstExpr 2705271440Sjkim ',' WordConstExpr 2706271440Sjkim ',' WordConstExpr 2707271440Sjkim ',' WordConstExpr 2708271440Sjkim OptionalByteConstExpr 2709271440Sjkim OptionalStringData 2710271440Sjkim OptionalNameString_Last 2711271440Sjkim ')' {$$ = TrLinkChildren ($<n>3,14,$4,$6,$7,$8,$9,$11,$13,$15,$17,$19,$21,$22,$23,$24);} 2712271440Sjkim | PARSEOP_WORDSPACE '(' 2713271440Sjkim error ')' {$$ = AslDoError(); yyclearin;} 2714271440Sjkim ; 2715271440Sjkim 2716271440Sjkim 2717271440Sjkim/******* Object References ***********************************************/ 2718271440Sjkim 2719271440Sjkim/* Allow IO, DMA, IRQ Resource macro names to also be used as identifiers */ 2720271440Sjkim 2721271440SjkimNameString 2722271440Sjkim : NameSeg {} 2723271440Sjkim | PARSEOP_NAMESTRING {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) AslCompilerlval.s);} 2724271440Sjkim | PARSEOP_IO {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IO");} 2725271440Sjkim | PARSEOP_DMA {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "DMA");} 2726271440Sjkim | PARSEOP_IRQ {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESTRING, (ACPI_NATIVE_INT) "IRQ");} 2727271440Sjkim ; 2728271440Sjkim 2729271440SjkimNameSeg 2730271440Sjkim : PARSEOP_NAMESEG {$$ = TrCreateValuedLeafNode (PARSEOP_NAMESEG, (ACPI_NATIVE_INT) AslCompilerlval.s);} 2731271440Sjkim ; 2732271440Sjkim 2733271440Sjkim 2734271440Sjkim/******* Helper rules ****************************************************/ 2735271440Sjkim 2736271440Sjkim 2737271440SjkimAmlPackageLengthTerm 2738271440Sjkim : Integer {$$ = TrUpdateNode (PARSEOP_PACKAGE_LENGTH,(ACPI_PARSE_OBJECT *) $1);} 2739271440Sjkim ; 2740271440Sjkim 2741271440SjkimNameStringItem 2742271440Sjkim : ',' NameString {$$ = $2;} 2743271440Sjkim | ',' error {$$ = AslDoError (); yyclearin;} 2744271440Sjkim ; 2745271440Sjkim 2746271440SjkimTermArgItem 2747271440Sjkim : ',' TermArg {$$ = $2;} 2748271440Sjkim | ',' error {$$ = AslDoError (); yyclearin;} 2749271440Sjkim ; 2750271440Sjkim 2751271440SjkimOptionalBusMasterKeyword 2752271440Sjkim : ',' {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);} 2753271440Sjkim | ',' PARSEOP_BUSMASTERTYPE_MASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_MASTER);} 2754271440Sjkim | ',' PARSEOP_BUSMASTERTYPE_NOTMASTER {$$ = TrCreateLeafNode (PARSEOP_BUSMASTERTYPE_NOTMASTER);} 2755271440Sjkim ; 2756271440Sjkim 2757271440SjkimOptionalAccessAttribTerm 2758271440Sjkim : {$$ = NULL;} 2759271440Sjkim | ',' {$$ = NULL;} 2760271440Sjkim | ',' ByteConstExpr {$$ = $2;} 2761271440Sjkim | ',' AccessAttribKeyword {$$ = $2;} 2762271440Sjkim ; 2763271440Sjkim 2764271440SjkimOptionalAccessSize 2765271440Sjkim : {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);} 2766271440Sjkim | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_BYTECONST, 0);} 2767271440Sjkim | ',' ByteConstExpr {$$ = $2;} 2768271440Sjkim ; 2769271440Sjkim 2770271440SjkimOptionalAddressingMode 2771271440Sjkim : ',' {$$ = NULL;} 2772271440Sjkim | ',' AddressingModeKeyword {$$ = $2;} 2773271440Sjkim ; 2774271440Sjkim 2775271440SjkimOptionalAddressRange 2776271440Sjkim : {$$ = NULL;} 2777271440Sjkim | ',' {$$ = NULL;} 2778271440Sjkim | ',' AddressKeyword {$$ = $2;} 2779271440Sjkim ; 2780271440Sjkim 2781271440SjkimOptionalBitsPerByte 2782271440Sjkim : ',' {$$ = NULL;} 2783271440Sjkim | ',' BitsPerByteKeyword {$$ = $2;} 2784271440Sjkim ; 2785271440Sjkim 2786271440SjkimOptionalBuffer_Last 2787271440Sjkim : {$$ = NULL;} 2788271440Sjkim | ',' {$$ = NULL;} 2789271440Sjkim | ',' DataBufferTerm {$$ = $2;} 2790271440Sjkim ; 2791271440Sjkim 2792271440SjkimOptionalByteConstExpr 2793271440Sjkim : {$$ = NULL;} 2794271440Sjkim | ',' {$$ = NULL;} 2795271440Sjkim | ',' ByteConstExpr {$$ = $2;} 2796271440Sjkim ; 2797271440Sjkim 2798271440SjkimOptionalDecodeType 2799271440Sjkim : ',' {$$ = NULL;} 2800271440Sjkim | ',' DecodeKeyword {$$ = $2;} 2801271440Sjkim ; 2802271440Sjkim 2803271440SjkimOptionalDevicePolarity 2804271440Sjkim : ',' {$$ = NULL;} 2805271440Sjkim | ',' DevicePolarityKeyword {$$ = $2;} 2806271440Sjkim ; 2807271440Sjkim 2808271440SjkimOptionalDWordConstExpr 2809271440Sjkim : {$$ = NULL;} 2810271440Sjkim | ',' {$$ = NULL;} 2811271440Sjkim | ',' DWordConstExpr {$$ = $2;} 2812271440Sjkim ; 2813271440Sjkim 2814271440SjkimOptionalEndian 2815271440Sjkim : ',' {$$ = NULL;} 2816271440Sjkim | ',' EndianKeyword {$$ = $2;} 2817271440Sjkim ; 2818271440Sjkim 2819271440SjkimOptionalFlowControl 2820271440Sjkim : ',' {$$ = NULL;} 2821271440Sjkim | ',' FlowControlKeyword {$$ = $2;} 2822271440Sjkim ; 2823271440Sjkim 2824271440SjkimOptionalIoRestriction 2825271440Sjkim : ',' {$$ = NULL;} 2826271440Sjkim | ',' IoRestrictionKeyword {$$ = $2;} 2827271440Sjkim ; 2828271440Sjkim 2829271440SjkimOptionalListString 2830271440Sjkim : {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */ 2831271440Sjkim | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_STRING_LITERAL, ACPI_TO_INTEGER (""));} /* Placeholder is a NULL string */ 2832271440Sjkim | ',' TermArg {$$ = $2;} 2833271440Sjkim ; 2834271440Sjkim 2835271440SjkimOptionalMaxType 2836271440Sjkim : ',' {$$ = NULL;} 2837271440Sjkim | ',' MaxKeyword {$$ = $2;} 2838271440Sjkim ; 2839271440Sjkim 2840271440SjkimOptionalMemType 2841271440Sjkim : ',' {$$ = NULL;} 2842271440Sjkim | ',' MemTypeKeyword {$$ = $2;} 2843271440Sjkim ; 2844271440Sjkim 2845271440SjkimOptionalMinType 2846271440Sjkim : ',' {$$ = NULL;} 2847271440Sjkim | ',' MinKeyword {$$ = $2;} 2848271440Sjkim ; 2849271440Sjkim 2850271440SjkimOptionalNameString 2851271440Sjkim : {$$ = NULL;} 2852271440Sjkim | ',' {$$ = NULL;} 2853271440Sjkim | ',' NameString {$$ = $2;} 2854271440Sjkim ; 2855271440Sjkim 2856271440SjkimOptionalNameString_Last 2857271440Sjkim : {$$ = NULL;} 2858271440Sjkim | ',' {$$ = NULL;} 2859271440Sjkim | ',' NameString {$$ = $2;} 2860271440Sjkim ; 2861271440Sjkim 2862271440SjkimOptionalNameString_First 2863271440Sjkim : {$$ = TrCreateLeafNode (PARSEOP_ZERO);} 2864271440Sjkim | NameString {$$ = $1;} 2865271440Sjkim ; 2866271440Sjkim 2867271440SjkimOptionalObjectTypeKeyword 2868271440Sjkim : {$$ = TrCreateLeafNode (PARSEOP_OBJECTTYPE_UNK);} 2869271440Sjkim | ',' ObjectTypeKeyword {$$ = $2;} 2870271440Sjkim ; 2871271440Sjkim 2872271440SjkimOptionalParityType 2873271440Sjkim : ',' {$$ = NULL;} 2874271440Sjkim | ',' ParityTypeKeyword {$$ = $2;} 2875271440Sjkim ; 2876271440Sjkim 2877271440SjkimOptionalQWordConstExpr 2878271440Sjkim : {$$ = NULL;} 2879271440Sjkim | ',' {$$ = NULL;} 2880271440Sjkim | ',' QWordConstExpr {$$ = $2;} 2881271440Sjkim ; 2882271440Sjkim 2883271440SjkimOptionalRangeType 2884271440Sjkim : ',' {$$ = NULL;} 2885271440Sjkim | ',' RangeTypeKeyword {$$ = $2;} 2886271440Sjkim ; 2887271440Sjkim 2888271440SjkimOptionalReadWriteKeyword 2889271440Sjkim : {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);} 2890271440Sjkim | PARSEOP_READWRITETYPE_BOTH {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_BOTH);} 2891271440Sjkim | PARSEOP_READWRITETYPE_READONLY {$$ = TrCreateLeafNode (PARSEOP_READWRITETYPE_READONLY);} 2892271440Sjkim ; 2893271440Sjkim 2894271440SjkimOptionalReference 2895271440Sjkim : {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */ 2896271440Sjkim | ',' {$$ = TrCreateLeafNode (PARSEOP_ZERO);} /* Placeholder is a ZeroOp object */ 2897271440Sjkim | ',' TermArg {$$ = $2;} 2898271440Sjkim ; 2899271440Sjkim 2900271440SjkimOptionalResourceType_First 2901271440Sjkim : {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);} 2902271440Sjkim | ResourceTypeKeyword {$$ = $1;} 2903271440Sjkim ; 2904271440Sjkim 2905271440SjkimOptionalResourceType 2906271440Sjkim : {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);} 2907271440Sjkim | ',' {$$ = TrCreateLeafNode (PARSEOP_RESOURCETYPE_CONSUMER);} 2908271440Sjkim | ',' ResourceTypeKeyword {$$ = $2;} 2909271440Sjkim ; 2910271440Sjkim 2911271440SjkimOptionalReturnArg 2912271440Sjkim : {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_NULL_RETURN);} /* Placeholder is a ZeroOp object */ 2913271440Sjkim | TermArg {$$ = $1;} 2914271440Sjkim ; 2915271440Sjkim 2916271440SjkimOptionalSerializeRuleKeyword 2917271440Sjkim : {$$ = NULL;} 2918271440Sjkim | ',' {$$ = NULL;} 2919271440Sjkim | ',' SerializeRuleKeyword {$$ = $2;} 2920271440Sjkim ; 2921271440Sjkim 2922271440SjkimOptionalSlaveMode 2923271440Sjkim : ',' {$$ = NULL;} 2924271440Sjkim | ',' SlaveModeKeyword {$$ = $2;} 2925271440Sjkim ; 2926271440Sjkim 2927271440SjkimOptionalShareType 2928271440Sjkim : {$$ = NULL;} 2929271440Sjkim | ',' {$$ = NULL;} 2930271440Sjkim | ',' ShareTypeKeyword {$$ = $2;} 2931271440Sjkim ; 2932271440Sjkim 2933271440SjkimOptionalShareType_First 2934271440Sjkim : {$$ = NULL;} 2935271440Sjkim | ShareTypeKeyword {$$ = $1;} 2936271440Sjkim ; 2937271440Sjkim 2938271440SjkimOptionalStopBits 2939271440Sjkim : ',' {$$ = NULL;} 2940271440Sjkim | ',' StopBitsKeyword {$$ = $2;} 2941271440Sjkim ; 2942271440Sjkim 2943271440SjkimOptionalStringData 2944271440Sjkim : {$$ = NULL;} 2945271440Sjkim | ',' {$$ = NULL;} 2946271440Sjkim | ',' StringData {$$ = $2;} 2947271440Sjkim ; 2948271440Sjkim 2949271440SjkimOptionalTermArg 2950271440Sjkim : {$$ = NULL;} 2951271440Sjkim | TermArg {$$ = $1;} 2952271440Sjkim ; 2953271440Sjkim 2954271440SjkimOptionalType 2955271440Sjkim : {$$ = NULL;} 2956271440Sjkim | ',' {$$ = NULL;} 2957271440Sjkim | ',' TypeKeyword {$$ = $2;} 2958271440Sjkim ; 2959271440Sjkim 2960271440SjkimOptionalType_Last 2961271440Sjkim : {$$ = NULL;} 2962271440Sjkim | ',' {$$ = NULL;} 2963271440Sjkim | ',' TypeKeyword {$$ = $2;} 2964271440Sjkim ; 2965271440Sjkim 2966271440SjkimOptionalTranslationType_Last 2967271440Sjkim : {$$ = NULL;} 2968271440Sjkim | ',' {$$ = NULL;} 2969271440Sjkim | ',' TranslationKeyword {$$ = $2;} 2970271440Sjkim ; 2971271440Sjkim 2972271440SjkimOptionalWireMode 2973271440Sjkim : ',' {$$ = NULL;} 2974271440Sjkim | ',' WireModeKeyword {$$ = $2;} 2975271440Sjkim ; 2976271440Sjkim 2977271440SjkimOptionalWordConst 2978271440Sjkim : {$$ = NULL;} 2979271440Sjkim | WordConst {$$ = $1;} 2980271440Sjkim ; 2981271440Sjkim 2982271440SjkimOptionalWordConstExpr 2983271440Sjkim : ',' {$$ = NULL;} 2984271440Sjkim | ',' WordConstExpr {$$ = $2;} 2985271440Sjkim ; 2986271440Sjkim 2987271440SjkimOptionalXferSize 2988271440Sjkim : {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);} 2989271440Sjkim | ',' {$$ = TrCreateValuedLeafNode (PARSEOP_XFERSIZE_32, 2);} 2990271440Sjkim | ',' XferSizeKeyword {$$ = $2;} 2991271440Sjkim ; 2992