| NoEcho(' |
| /****************************************************************************** |
| * |
| * Module Name: aslprimaries.y - Rules for primary ASL operators |
| * - Keep this file synched with the |
| * CvParseOpBlockType function in cvcompiler.c |
| * |
| *****************************************************************************/ |
| |
| /* |
| * Copyright (C) 2000 - 2023, Intel Corp. |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions, and the following disclaimer, |
| * without modification. |
| * 2. Redistributions in binary form must reproduce at minimum a disclaimer |
| * substantially similar to the "NO WARRANTY" disclaimer below |
| * ("Disclaimer") and any redistribution must be conditioned upon |
| * including a substantially similar Disclaimer requirement for further |
| * binary redistribution. |
| * 3. Neither the names of the above-listed copyright holders nor the names |
| * of any contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * Alternatively, this software may be distributed under the terms of the |
| * GNU General Public License ("GPL") version 2 as published by the Free |
| * Software Foundation. |
| * |
| * NO WARRANTY |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
| * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
| * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| * POSSIBILITY OF SUCH DAMAGES. |
| */ |
| |
| ') |
| |
| |
| /******************************************************************************* |
| * |
| * ASL Primary Terms |
| * |
| ******************************************************************************/ |
| |
| AccessAsTerm |
| : PARSEOP_ACCESSAS |
| PARSEOP_OPEN_PAREN |
| AccessTypeKeyword |
| OptionalAccessAttribTerm |
| PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_ACCESSAS,2,$3,$4);} |
| | PARSEOP_ACCESSAS |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| AcquireTerm |
| : PARSEOP_ACQUIRE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp(PARSEOP_ACQUIRE);} |
| SuperName |
| ',' WordConstExpr |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$6);} |
| | PARSEOP_ACQUIRE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| AddTerm |
| : PARSEOP_ADD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_ADD);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_ADD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| AliasTerm |
| : PARSEOP_ALIAS |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_ALIAS);} |
| NameString |
| NameStringItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4, |
| TrSetOpFlags ($5, OP_IS_NAME_DECLARATION));} |
| | PARSEOP_ALIAS |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| AndTerm |
| : PARSEOP_AND |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_AND);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_AND |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ArgTerm |
| : PARSEOP_ARG0 {$$ = TrCreateLeafOp (PARSEOP_ARG0);} |
| | PARSEOP_ARG1 {$$ = TrCreateLeafOp (PARSEOP_ARG1);} |
| | PARSEOP_ARG2 {$$ = TrCreateLeafOp (PARSEOP_ARG2);} |
| | PARSEOP_ARG3 {$$ = TrCreateLeafOp (PARSEOP_ARG3);} |
| | PARSEOP_ARG4 {$$ = TrCreateLeafOp (PARSEOP_ARG4);} |
| | PARSEOP_ARG5 {$$ = TrCreateLeafOp (PARSEOP_ARG5);} |
| | PARSEOP_ARG6 {$$ = TrCreateLeafOp (PARSEOP_ARG6);} |
| ; |
| |
| BankFieldTerm |
| : PARSEOP_BANKFIELD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_BANKFIELD);} |
| NameString |
| NameStringItem |
| TermArgItem |
| OptionalAccessTypeKeyword |
| OptionalLockRuleKeyword |
| OptionalUpdateRuleKeyword |
| PARSEOP_CLOSE_PAREN '{' |
| FieldUnitList '}' {$$ = TrLinkOpChildren ($<n>3,7, |
| $4,$5,$6,$7,$8,$9,$12);} |
| | PARSEOP_BANKFIELD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN |
| '{' error '}' {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| BreakTerm |
| : PARSEOP_BREAK {$$ = TrCreateOp (PARSEOP_BREAK, 0);} |
| ; |
| |
| BreakPointTerm |
| : PARSEOP_BREAKPOINT {$$ = TrCreateOp (PARSEOP_BREAKPOINT, 0);} |
| ; |
| |
| BufferTerm |
| : PARSEOP_BUFFER {$<n>$ = TrCreateLeafOp (PARSEOP_BUFFER); COMMENT_CAPTURE_OFF; } |
| OptionalDataCount |
| '{' BufferTermData '}' {$$ = TrLinkOpChildren ($<n>2,2,$3,$5); COMMENT_CAPTURE_ON;} |
| ; |
| |
| BufferTermData |
| : ByteList {} |
| | StringData {} |
| ; |
| |
| CaseTerm |
| : PARSEOP_CASE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CASE);} |
| DataObject |
| PARSEOP_CLOSE_PAREN '{' |
| TermList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);} |
| | PARSEOP_CASE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ConcatTerm |
| : PARSEOP_CONCATENATE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CONCATENATE);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_CONCATENATE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ConcatResTerm |
| : PARSEOP_CONCATENATERESTEMPLATE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp ( |
| PARSEOP_CONCATENATERESTEMPLATE);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_CONCATENATERESTEMPLATE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| CondRefOfTerm |
| : PARSEOP_CONDREFOF |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CONDREFOF);} |
| CondRefOfSource |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_CONDREFOF |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ConnectionTerm |
| : PARSEOP_CONNECTION |
| PARSEOP_OPEN_PAREN |
| NameString |
| PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_CONNECTION,1,$3);} |
| | PARSEOP_CONNECTION |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CONNECTION);} |
| ResourceMacroTerm |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3, 1, |
| TrLinkOpChildren ( |
| TrCreateLeafOp (PARSEOP_RESOURCETEMPLATE), 3, |
| TrCreateLeafOp (PARSEOP_DEFAULT_ARG), |
| TrCreateLeafOp (PARSEOP_DEFAULT_ARG), |
| $4));} |
| | PARSEOP_CONNECTION |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ContinueTerm |
| : PARSEOP_CONTINUE {$$ = TrCreateOp (PARSEOP_CONTINUE, 0);} |
| ; |
| |
| CopyObjectTerm |
| : PARSEOP_COPYOBJECT |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_COPYOBJECT);} |
| TermArg |
| ',' SimpleName |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4, |
| TrSetOpFlags ($6, OP_IS_TARGET));} |
| | PARSEOP_COPYOBJECT |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| CreateBitFieldTerm |
| : PARSEOP_CREATEBITFIELD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEBITFIELD);} |
| TermArg |
| TermArgItem |
| NameStringItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5, |
| TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));} |
| | PARSEOP_CREATEBITFIELD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| CreateByteFieldTerm |
| : PARSEOP_CREATEBYTEFIELD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEBYTEFIELD);} |
| TermArg |
| TermArgItem |
| NameStringItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5, |
| TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));} |
| | PARSEOP_CREATEBYTEFIELD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| CreateDWordFieldTerm |
| : PARSEOP_CREATEDWORDFIELD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEDWORDFIELD);} |
| TermArg |
| TermArgItem |
| NameStringItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5, |
| TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));} |
| | PARSEOP_CREATEDWORDFIELD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| CreateFieldTerm |
| : PARSEOP_CREATEFIELD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEFIELD);} |
| TermArg |
| TermArgItem |
| TermArgItem |
| NameStringItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$5,$6, |
| TrSetOpFlags ($7, OP_IS_NAME_DECLARATION));} |
| | PARSEOP_CREATEFIELD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| CreateQWordFieldTerm |
| : PARSEOP_CREATEQWORDFIELD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEQWORDFIELD);} |
| TermArg |
| TermArgItem |
| NameStringItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5, |
| TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));} |
| | PARSEOP_CREATEQWORDFIELD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| CreateWordFieldTerm |
| : PARSEOP_CREATEWORDFIELD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_CREATEWORDFIELD);} |
| TermArg |
| TermArgItem |
| NameStringItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5, |
| TrSetOpFlags ($6, OP_IS_NAME_DECLARATION));} |
| | PARSEOP_CREATEWORDFIELD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| DataRegionTerm |
| : PARSEOP_DATATABLEREGION |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DATATABLEREGION);} |
| NameString |
| TermArgItem |
| TermArgItem |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4, |
| TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$5,$6,$7);} |
| | PARSEOP_DATATABLEREGION |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| DebugTerm |
| : PARSEOP_DEBUG {$$ = TrCreateLeafOp (PARSEOP_DEBUG);} |
| ; |
| |
| DecTerm |
| : PARSEOP_DECREMENT |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DECREMENT);} |
| SuperName |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_DECREMENT |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| DefaultTerm |
| : PARSEOP_DEFAULT '{' {$<n>$ = TrCreateLeafOp (PARSEOP_DEFAULT);} |
| TermList '}' {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_DEFAULT '{' |
| error '}' {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| DerefOfTerm |
| : PARSEOP_DEREFOF |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DEREFOF);} |
| DerefOfSource |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_DEREFOF |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| DeviceTerm |
| : PARSEOP_DEVICE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DEVICE);} |
| NameString |
| PARSEOP_CLOSE_PAREN '{' |
| TermList '}' {$$ = TrLinkOpChildren ($<n>3,2, |
| TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$7);} |
| | PARSEOP_DEVICE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| DivideTerm |
| : PARSEOP_DIVIDE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DIVIDE);} |
| TermArg |
| TermArgItem |
| Target |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$5,$6,$7);} |
| | PARSEOP_DIVIDE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| EISAIDTerm |
| : PARSEOP_EISAID |
| PARSEOP_OPEN_PAREN |
| StringLiteral |
| PARSEOP_CLOSE_PAREN {$$ = TrSetOpIntegerValue (PARSEOP_EISAID, $3);} |
| | PARSEOP_EISAID |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ElseIfTerm |
| : IfTerm ElseTerm {$$ = TrLinkPeerOp ($1,$2);} |
| ; |
| |
| ElseTerm |
| : {$$ = NULL;} |
| | PARSEOP_ELSE '{' |
| TermList {$<n>$ = TrCreateLeafOp (PARSEOP_ELSE);} |
| '}' {$$ = TrLinkOpChildren ($<n>4,1,$3);} |
| |
| | PARSEOP_ELSE '{' |
| error '}' {$$ = AslDoError(); yyclearin;} |
| |
| | PARSEOP_ELSE |
| error {$$ = AslDoError(); yyclearin;} |
| |
| | PARSEOP_ELSEIF |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_ELSE);} |
| TermArg {$<n>$ = TrCreateLeafOp (PARSEOP_IF);} |
| PARSEOP_CLOSE_PAREN '{' |
| TermList '}' {TrLinkOpChildren ($<n>5,2,$4,$8);} |
| ElseTerm {TrLinkPeerOp ($<n>5,$11);} |
| {$$ = TrLinkOpChildren ($<n>3,1,$<n>5);} |
| |
| | PARSEOP_ELSEIF |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| |
| | PARSEOP_ELSEIF |
| error {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| EventTerm |
| : PARSEOP_EVENT |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_EVENT);} |
| NameString |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1, |
| TrSetOpFlags ($4, OP_IS_NAME_DECLARATION));} |
| | PARSEOP_EVENT |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ExternalTerm |
| : PARSEOP_EXTERNAL |
| PARSEOP_OPEN_PAREN |
| NameString |
| OptionalObjectTypeKeyword |
| OptionalParameterTypePackage |
| OptionalParameterTypesPackage |
| PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);} |
| | PARSEOP_EXTERNAL |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| FatalTerm |
| : PARSEOP_FATAL |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FATAL);} |
| ByteConstExpr |
| ',' DWordConstExpr |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);} |
| | PARSEOP_FATAL |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| FieldTerm |
| : PARSEOP_FIELD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FIELD);} |
| NameString |
| OptionalAccessTypeKeyword |
| OptionalLockRuleKeyword |
| OptionalUpdateRuleKeyword |
| PARSEOP_CLOSE_PAREN '{' |
| FieldUnitList '}' {$$ = TrLinkOpChildren ($<n>3,5,$4,$5,$6,$7,$10);} |
| | PARSEOP_FIELD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN |
| '{' error '}' {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| FindSetLeftBitTerm |
| : PARSEOP_FINDSETLEFTBIT |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FINDSETLEFTBIT);} |
| TermArg |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_FINDSETLEFTBIT |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| FindSetRightBitTerm |
| : PARSEOP_FINDSETRIGHTBIT |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FINDSETRIGHTBIT);} |
| TermArg |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_FINDSETRIGHTBIT |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| /* Convert a For() loop to a While() loop */ |
| ForTerm |
| : PARSEOP_FOR |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WHILE);} |
| OptionalTermArg ',' {} |
| OptionalPredicate ',' |
| OptionalTermArg {$<n>$ = TrLinkPeerOp ($4,$<n>3); |
| TrSetOpParent ($9,$<n>3);} /* New parent is WHILE */ |
| PARSEOP_CLOSE_PAREN |
| '{' TermList '}' {$<n>$ = TrLinkOpChildren ($<n>3,2,$7,$13);} |
| {$<n>$ = TrLinkPeerOp ($13,$9); |
| $$ = $<n>10;} |
| ; |
| |
| OptionalPredicate |
| : {$$ = TrCreateValuedLeafOp (PARSEOP_INTEGER, 1);} |
| | TermArg {$$ = $1;} |
| ; |
| |
| FprintfTerm |
| : PARSEOP_FPRINTF |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FPRINTF);} |
| TermArg ',' |
| StringLiteral |
| PrintfArgList |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$6,$7);} |
| | PARSEOP_FPRINTF |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| FromBCDTerm |
| : PARSEOP_FROMBCD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_FROMBCD);} |
| TermArg |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_FROMBCD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| FunctionTerm |
| : PARSEOP_FUNCTION |
| PARSEOP_OPEN_PAREN {COMMENT_CAPTURE_OFF; $<n>$ = TrCreateLeafOp (PARSEOP_METHOD); } |
| NameString |
| OptionalParameterTypePackage |
| OptionalParameterTypesPackage |
| PARSEOP_CLOSE_PAREN '{' {COMMENT_CAPTURE_ON; } |
| TermList '}' {$$ = TrLinkOpChildren ($<n>3,7, |
| TrSetOpFlags ($4, OP_IS_NAME_DECLARATION), |
| TrCreateLeafOp (PARSEOP_DEFAULT_ARG), |
| TrCreateLeafOp (PARSEOP_SERIALIZERULE_NOTSERIAL), |
| TrCreateValuedLeafOp (PARSEOP_BYTECONST, 0),$5,$6,$10);} |
| | PARSEOP_FUNCTION |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| IfTerm |
| : PARSEOP_IF |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_IF);} |
| TermArg |
| PARSEOP_CLOSE_PAREN '{' |
| TermList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);} |
| |
| | PARSEOP_IF |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| IncludeTerm |
| : PARSEOP_INCLUDE |
| PARSEOP_OPEN_PAREN |
| String |
| PARSEOP_CLOSE_PAREN {$$ = TrSetOpIntegerValue (PARSEOP_INCLUDE, $3); |
| FlOpenIncludeFile ($3);} |
| ; |
| |
| IncludeEndTerm |
| : PARSEOP_INCLUDE_END {$<n>$ = TrCreateLeafOp (PARSEOP_INCLUDE_END); |
| TrSetOpCurrentFilename ($$);} |
| ; |
| |
| IncTerm |
| : PARSEOP_INCREMENT |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_INCREMENT);} |
| SuperName |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_INCREMENT |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| IndexFieldTerm |
| : PARSEOP_INDEXFIELD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_INDEXFIELD);} |
| NameString |
| NameStringItem |
| OptionalAccessTypeKeyword |
| OptionalLockRuleKeyword |
| OptionalUpdateRuleKeyword |
| PARSEOP_CLOSE_PAREN '{' |
| FieldUnitList '}' {$$ = TrLinkOpChildren ($<n>3,6,$4,$5,$6,$7,$8,$11);} |
| | PARSEOP_INDEXFIELD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN |
| '{' error '}' {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| IndexTerm |
| : PARSEOP_INDEX |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_INDEX);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_INDEX |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| LAndTerm |
| : PARSEOP_LAND |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LAND);} |
| TermArg |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_LAND |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| LEqualTerm |
| : PARSEOP_LEQUAL |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LEQUAL);} |
| TermArg |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_LEQUAL |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| LGreaterEqualTerm |
| : PARSEOP_LGREATEREQUAL |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LLESS);} |
| TermArg |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_LNOT, 1, |
| TrLinkOpChildren ($<n>3,2,$4,$5));} |
| | PARSEOP_LGREATEREQUAL |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| LGreaterTerm |
| : PARSEOP_LGREATER |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LGREATER);} |
| TermArg |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_LGREATER |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| LLessEqualTerm |
| : PARSEOP_LLESSEQUAL |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LGREATER);} |
| TermArg |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_LNOT, 1, |
| TrLinkOpChildren ($<n>3,2,$4,$5));} |
| | PARSEOP_LLESSEQUAL |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| LLessTerm |
| : PARSEOP_LLESS |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LLESS);} |
| TermArg |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_LLESS |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| LNotEqualTerm |
| : PARSEOP_LNOTEQUAL |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LEQUAL);} |
| TermArg |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_LNOT, 1, |
| TrLinkOpChildren ($<n>3,2,$4,$5));} |
| | PARSEOP_LNOTEQUAL |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| LNotTerm |
| : PARSEOP_LNOT |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LNOT);} |
| TermArg |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_LNOT |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| LoadTableTerm |
| : PARSEOP_LOADTABLE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LOADTABLE);} |
| TermArg |
| TermArgItem |
| TermArgItem |
| OptionalListString |
| OptionalListString |
| OptionalReference |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$5,$6,$7,$8,$9);} |
| | PARSEOP_LOADTABLE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| LoadTerm |
| : PARSEOP_LOAD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LOAD);} |
| NameString |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_LOAD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| LocalTerm |
| : PARSEOP_LOCAL0 {$$ = TrCreateLeafOp (PARSEOP_LOCAL0);} |
| | PARSEOP_LOCAL1 {$$ = TrCreateLeafOp (PARSEOP_LOCAL1);} |
| | PARSEOP_LOCAL2 {$$ = TrCreateLeafOp (PARSEOP_LOCAL2);} |
| | PARSEOP_LOCAL3 {$$ = TrCreateLeafOp (PARSEOP_LOCAL3);} |
| | PARSEOP_LOCAL4 {$$ = TrCreateLeafOp (PARSEOP_LOCAL4);} |
| | PARSEOP_LOCAL5 {$$ = TrCreateLeafOp (PARSEOP_LOCAL5);} |
| | PARSEOP_LOCAL6 {$$ = TrCreateLeafOp (PARSEOP_LOCAL6);} |
| | PARSEOP_LOCAL7 {$$ = TrCreateLeafOp (PARSEOP_LOCAL7);} |
| ; |
| |
| LOrTerm |
| : PARSEOP_LOR |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_LOR);} |
| TermArg |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_LOR |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| MatchTerm |
| : PARSEOP_MATCH |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MATCH);} |
| TermArg |
| ',' MatchOpKeyword |
| TermArgItem |
| ',' MatchOpKeyword |
| TermArgItem |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,6,$4,$6,$7,$9,$10,$11);} |
| | PARSEOP_MATCH |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| MethodTerm |
| : PARSEOP_METHOD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_METHOD); COMMENT_CAPTURE_OFF;} |
| NameString |
| OptionalByteConstExpr {UtCheckIntegerRange ($5, 0, 7);} |
| OptionalSerializeRuleKeyword |
| OptionalByteConstExpr |
| OptionalParameterTypePackage |
| OptionalParameterTypesPackage |
| PARSEOP_CLOSE_PAREN '{' {COMMENT_CAPTURE_ON;} |
| TermList '}' {$$ = TrLinkOpChildren ($<n>3,7, |
| TrSetOpFlags ($4, OP_IS_NAME_DECLARATION), |
| $5,$7,$8,$9,$10,$14);} |
| | PARSEOP_METHOD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| MidTerm |
| : PARSEOP_MID |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MID);} |
| TermArg |
| TermArgItem |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4,$4,$5,$6,$7);} |
| | PARSEOP_MID |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ModTerm |
| : PARSEOP_MOD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MOD);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_MOD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| MultiplyTerm |
| : PARSEOP_MULTIPLY |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MULTIPLY);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_MULTIPLY |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| MutexTerm |
| : PARSEOP_MUTEX |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_MUTEX);} |
| NameString |
| OptionalSyncLevel |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2, |
| TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$5);} |
| | PARSEOP_MUTEX |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| NameTerm |
| : PARSEOP_NAME |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_NAME);} |
| NameString |
| ',' DataObject |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2, |
| TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$6);} |
| | PARSEOP_NAME |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| NAndTerm |
| : PARSEOP_NAND |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_NAND);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_NAND |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| NoOpTerm |
| : PARSEOP_NOOP {$$ = TrCreateOp (PARSEOP_NOOP, 0);} |
| ; |
| |
| NOrTerm |
| : PARSEOP_NOR |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_NOR);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_NOR |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| NotifyTerm |
| : PARSEOP_NOTIFY |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_NOTIFY);} |
| SuperName |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_NOTIFY |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| NotTerm |
| : PARSEOP_NOT |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_NOT);} |
| TermArg |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_NOT |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ObjectTypeTerm |
| : PARSEOP_OBJECTTYPE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_OBJECTTYPE);} |
| ObjectTypeSource |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_OBJECTTYPE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| OffsetTerm |
| : PARSEOP_OFFSET |
| PARSEOP_OPEN_PAREN |
| AmlPackageLengthTerm |
| PARSEOP_CLOSE_PAREN {$$ = TrCreateOp (PARSEOP_OFFSET,1,$3);} |
| | PARSEOP_OFFSET |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| OpRegionTerm |
| : PARSEOP_OPERATIONREGION |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_OPERATIONREGION);} |
| NameString |
| ',' OpRegionSpaceIdTerm |
| TermArgItem |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,4, |
| TrSetOpFlags ($4, OP_IS_NAME_DECLARATION), |
| $6,$7,$8);} |
| | PARSEOP_OPERATIONREGION |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| OpRegionSpaceIdTerm |
| : RegionSpaceKeyword {} |
| | ByteConst {$$ = UtCheckIntegerRange ($1, 0x80, 0xFF);} |
| ; |
| |
| OrTerm |
| : PARSEOP_OR |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_OR);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_OR |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| PackageTerm |
| : PARSEOP_PACKAGE {$<n>$ = TrCreateLeafOp (PARSEOP_VAR_PACKAGE);} |
| OptionalDataCount |
| '{' PackageList '}' {$$ = TrLinkOpChildren ($<n>2,2,$3,$5);} |
| |
| PowerResTerm |
| : PARSEOP_POWERRESOURCE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_POWERRESOURCE);} |
| NameString |
| ',' ByteConstExpr |
| ',' WordConstExpr |
| PARSEOP_CLOSE_PAREN '{' |
| TermList '}' {$$ = TrLinkOpChildren ($<n>3,4, |
| TrSetOpFlags ($4, OP_IS_NAME_DECLARATION), |
| $6,$8,$11);} |
| | PARSEOP_POWERRESOURCE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| PrintfTerm |
| : PARSEOP_PRINTF |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PRINTF);} |
| StringLiteral |
| PrintfArgList |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_PRINTF |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| PrintfArgList |
| : {$$ = NULL;} |
| | TermArg {$$ = $1;} |
| | PrintfArgList ',' |
| TermArg {$$ = TrLinkPeerOp ($1, $3);} |
| ; |
| |
| ProcessorTerm |
| : PARSEOP_PROCESSOR |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_PROCESSOR);} |
| NameString |
| ',' ByteConstExpr |
| OptionalDWordConstExpr |
| OptionalByteConstExpr |
| PARSEOP_CLOSE_PAREN '{' |
| TermList '}' {$$ = TrLinkOpChildren ($<n>3,5, |
| TrSetOpFlags ($4, OP_IS_NAME_DECLARATION), |
| $6,$7,$8,$11);} |
| | PARSEOP_PROCESSOR |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| RawDataBufferTerm |
| : PARSEOP_DATABUFFER |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_DATABUFFER);} |
| OptionalWordConst |
| PARSEOP_CLOSE_PAREN '{' |
| ByteList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);} |
| | PARSEOP_DATABUFFER |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| /* |
| * In RefOf, the node isn't really a target, but we can't keep track of it after |
| * we've taken a pointer to it. (hard to tell if a local becomes initialized this way.) |
| */ |
| RefOfTerm |
| : PARSEOP_REFOF |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_REFOF);} |
| RefOfSource |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1, |
| TrSetOpFlags ($4, OP_IS_TARGET));} |
| | PARSEOP_REFOF |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ReleaseTerm |
| : PARSEOP_RELEASE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_RELEASE);} |
| SuperName |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_RELEASE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ResetTerm |
| : PARSEOP_RESET |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_RESET);} |
| SuperName |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_RESET |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ReturnTerm |
| : PARSEOP_RETURN |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_RETURN);} |
| OptionalReturnArg |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_RETURN {$$ = TrLinkOpChildren ( |
| TrCreateLeafOp (PARSEOP_RETURN),1, |
| TrSetOpFlags (TrCreateLeafOp (PARSEOP_ZERO), |
| OP_IS_NULL_RETURN));} |
| | PARSEOP_RETURN |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ScopeTerm |
| : PARSEOP_SCOPE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SCOPE);} |
| NameString |
| PARSEOP_CLOSE_PAREN '{' |
| TermList '}' {$$ = TrLinkOpChildren ($<n>3,2, |
| TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$7);} |
| | PARSEOP_SCOPE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ShiftLeftTerm |
| : PARSEOP_SHIFTLEFT |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SHIFTLEFT);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_SHIFTLEFT |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ShiftRightTerm |
| : PARSEOP_SHIFTRIGHT |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SHIFTRIGHT);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_SHIFTRIGHT |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| SignalTerm |
| : PARSEOP_SIGNAL |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SIGNAL);} |
| SuperName |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_SIGNAL |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| SizeOfTerm |
| : PARSEOP_SIZEOF |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SIZEOF);} |
| SuperName |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_SIZEOF |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| SleepTerm |
| : PARSEOP_SLEEP |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SLEEP);} |
| TermArg |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_SLEEP |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| StallTerm |
| : PARSEOP_STALL |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STALL);} |
| TermArg |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_STALL |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| StoreTerm |
| : PARSEOP_STORE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_STORE);} |
| TermArg |
| ',' SuperName |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4, |
| TrSetOpFlags ($6, OP_IS_TARGET));} |
| | PARSEOP_STORE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| SubtractTerm |
| : PARSEOP_SUBTRACT |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SUBTRACT);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_SUBTRACT |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| SwitchTerm |
| : PARSEOP_SWITCH |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_SWITCH);} |
| TermArg |
| PARSEOP_CLOSE_PAREN '{' |
| CaseDefaultTermList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);} |
| | PARSEOP_SWITCH |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ThermalZoneTerm |
| : PARSEOP_THERMALZONE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_THERMALZONE);} |
| NameString |
| PARSEOP_CLOSE_PAREN '{' |
| TermList '}' {$$ = TrLinkOpChildren ($<n>3,2, |
| TrSetOpFlags ($4, OP_IS_NAME_DECLARATION),$7);} |
| | PARSEOP_THERMALZONE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| TimerTerm |
| : PARSEOP_TIMER |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TIMER);} |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,0);} |
| | PARSEOP_TIMER {$$ = TrLinkOpChildren ( |
| TrCreateLeafOp (PARSEOP_TIMER),0);} |
| | PARSEOP_TIMER |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ToBCDTerm |
| : PARSEOP_TOBCD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TOBCD);} |
| TermArg |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_TOBCD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ToBufferTerm |
| : PARSEOP_TOBUFFER |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TOBUFFER);} |
| TermArg |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_TOBUFFER |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ToDecimalStringTerm |
| : PARSEOP_TODECIMALSTRING |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TODECIMALSTRING);} |
| TermArg |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_TODECIMALSTRING |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ToHexStringTerm |
| : PARSEOP_TOHEXSTRING |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TOHEXSTRING);} |
| TermArg |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_TOHEXSTRING |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ToIntegerTerm |
| : PARSEOP_TOINTEGER |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TOINTEGER);} |
| TermArg |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_TOINTEGER |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ToPLDTerm |
| : PARSEOP_TOPLD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TOPLD);} |
| PldKeywordList |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_TOPLD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| PldKeywordList |
| : {$$ = NULL;} |
| | PldKeyword |
| PARSEOP_EXP_EQUALS Integer {$$ = TrLinkOpChildren ($1,1,$3);} |
| | PldKeyword |
| PARSEOP_EXP_EQUALS String {$$ = TrLinkOpChildren ($1,1,$3);} |
| | PldKeywordList ',' /* Allows a trailing comma at list end */ |
| | PldKeywordList ',' |
| PldKeyword |
| PARSEOP_EXP_EQUALS Integer {$$ = TrLinkPeerOp ($1,TrLinkOpChildren ($3,1,$5));} |
| | PldKeywordList ',' |
| PldKeyword |
| PARSEOP_EXP_EQUALS String {$$ = TrLinkPeerOp ($1,TrLinkOpChildren ($3,1,$5));} |
| ; |
| |
| |
| ToStringTerm |
| : PARSEOP_TOSTRING |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_TOSTRING);} |
| TermArg |
| OptionalCount |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_TOSTRING |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| ToUUIDTerm |
| : PARSEOP_TOUUID |
| PARSEOP_OPEN_PAREN |
| StringLiteral |
| PARSEOP_CLOSE_PAREN {$$ = TrSetOpIntegerValue (PARSEOP_TOUUID, $3);} |
| | PARSEOP_TOUUID |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| UnicodeTerm |
| : PARSEOP_UNICODE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UNICODE);} |
| StringLiteral |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,0,$4);} |
| | PARSEOP_UNICODE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| UnloadTerm |
| : PARSEOP_UNLOAD |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_UNLOAD);} |
| SuperName |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,1,$4);} |
| | PARSEOP_UNLOAD |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| WaitTerm |
| : PARSEOP_WAIT |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WAIT);} |
| SuperName |
| TermArgItem |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,2,$4,$5);} |
| | PARSEOP_WAIT |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| XOrTerm |
| : PARSEOP_XOR |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_XOR);} |
| TermArg |
| TermArgItem |
| Target |
| PARSEOP_CLOSE_PAREN {$$ = TrLinkOpChildren ($<n>3,3,$4,$5,$6);} |
| | PARSEOP_XOR |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |
| |
| WhileTerm |
| : PARSEOP_WHILE |
| PARSEOP_OPEN_PAREN {$<n>$ = TrCreateLeafOp (PARSEOP_WHILE);} |
| TermArg |
| PARSEOP_CLOSE_PAREN |
| '{' TermList '}' {$$ = TrLinkOpChildren ($<n>3,2,$4,$7);} |
| | PARSEOP_WHILE |
| PARSEOP_OPEN_PAREN |
| error PARSEOP_CLOSE_PAREN {$$ = AslDoError(); yyclearin;} |
| ; |