⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aslcompiler.y

📁 acpi tools for linux include acpiexec and acpixtract
💻 Y
📖 第 1 页 / 共 5 页
字号:
CompilerDirective    : IncludeTerm                   {}    | IncludeCStyleTerm             {$$ = NULL;}    | LineTerm						{$$ = NULL;}    | ExternalTerm                  {}    ;ObjectList    :                               {$$ = NULL;}    | ObjectList Object             {$$ = TrLinkPeerNode ($1,$2);}    | error                         {$$ = AslDoError(); yyclearin;}    ;Object    : CompilerDirective             {}    | NamedObject                   {}    | NameSpaceModifier             {}    ;DataObject    : BufferData                    {}    | PackageData                   {}    | IntegerData                   {}    | StringData                    {}    ;BufferData    : Type5Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}    | BufferTerm                    {}    ;PackageData    : PackageTerm                   {}    ;IntegerData    : Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}    | Type3Opcode                   {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}    | Integer                       {}    | ConstTerm                     {}    ;StringData    : Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_COMPILE_TIME_CONST);}    | String                        {}    ;NamedObject    : BankFieldTerm                 {}    | CreateBitFieldTerm            {}    | CreateByteFieldTerm           {}    | CreateDWordFieldTerm          {}    | CreateFieldTerm               {}    | CreateQWordFieldTerm          {}    | CreateWordFieldTerm           {}    | DataRegionTerm                {}    | DeviceTerm                    {}    | EventTerm                     {}    | FieldTerm                     {}    | FunctionTerm                  {}    | IndexFieldTerm                {}    | MethodTerm                    {}    | MutexTerm                     {}    | OpRegionTerm                  {}    | PowerResTerm                  {}    | ProcessorTerm                 {}    | ThermalZoneTerm               {}    ;NameSpaceModifier    : AliasTerm                     {}    | NameTerm                      {}    | ScopeTerm                     {}    ;UserTerm    : NameString '('                {TrUpdateNode (PARSEOP_METHODCALL, $1);}        ArgList ')'                 {$$ = TrLinkChildNode ($1,$4);}    ;ArgList    :                               {$$ = NULL;}    | TermArg    | ArgList ','                   /* Allows a trailing comma at list end */    | ArgList ','        TermArg                     {$$ = TrLinkPeerNode ($1,$3);}    ;/*Removed from TermArg due to reduce/reduce conflicts    | Type2IntegerOpcode            {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}    | Type2StringOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}    | Type2BufferOpcode             {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}    | Type2BufferOrStringOpcode     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}*/TermArg    : Type2Opcode                   {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}    | DataObject                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}    | NameString                    {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}    | ArgTerm                       {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}    | LocalTerm                     {$$ = TrSetNodeFlags ($1, NODE_IS_TERM_ARG);}    ;Target    :                               {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */    | ','                           {$$ = TrSetNodeFlags (TrCreateLeafNode (PARSEOP_ZERO), NODE_IS_TARGET | NODE_COMPILE_TIME_CONST);} /* Placeholder is a ZeroOp object */    | ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}    ;RequiredTarget    : ',' SuperName                 {$$ = TrSetNodeFlags ($2, NODE_IS_TARGET);}    ;SimpleTarget    : NameString                    {}    | LocalTerm                     {}    | ArgTerm                       {}    ;/* Rules for specifying the type of one method argument or return value */ParameterTypePackage    :                               {$$ = NULL;}    | ObjectTypeKeyword             {$$ = $1;}    | ParameterTypePackage ','        ObjectTypeKeyword           {$$ = TrLinkPeerNodes (2,$1,$3);}    ;ParameterTypePackageList    :                               {$$ = NULL;}    | ObjectTypeKeyword             {$$ = $1;}    | '{' ParameterTypePackage '}'  {$$ = $2;}    ;OptionalParameterTypePackage    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}    | ',' ParameterTypePackageList  {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}    ;/* Rules for specifying the types for method arguments */ParameterTypesPackage    : ParameterTypePackageList      {$$ = $1;}    | ParameterTypesPackage ','        ParameterTypePackageList    {$$ = TrLinkPeerNodes (2,$1,$3);}    ;ParameterTypesPackageList    :                               {$$ = NULL;}    | ObjectTypeKeyword             {$$ = $1;}    | '{' ParameterTypesPackage '}' {$$ = $2;}    ;OptionalParameterTypesPackage    :                               {$$ = TrCreateLeafNode (PARSEOP_DEFAULT_ARG);}    | ',' ParameterTypesPackageList {$$ = TrLinkChildren (TrCreateLeafNode (PARSEOP_DEFAULT_ARG),1,$2);}    ;/* Opcode types */Type1Opcode    : BreakTerm                     {}    | BreakPointTerm                {}    | ContinueTerm                  {}    | FatalTerm                     {}    | IfElseTerm                    {}    | LoadTerm                      {}    | NoOpTerm                      {}    | NotifyTerm                    {}    | ReleaseTerm                   {}    | ResetTerm                     {}    | ReturnTerm                    {}    | SignalTerm                    {}    | SleepTerm                     {}    | StallTerm                     {}    | SwitchTerm                    {}    | UnloadTerm                    {}    | WhileTerm                     {}    ;Type2Opcode    : AcquireTerm                   {}    | CondRefOfTerm                 {}    | CopyObjectTerm                {}    | DerefOfTerm                   {}    | ObjectTypeTerm                {}    | RefOfTerm                     {}    | SizeOfTerm                    {}    | StoreTerm                     {}    | TimerTerm                     {}    | WaitTerm                      {}    | UserTerm                      {}    ;/* * Type 3/4/5 opcodes */Type2IntegerOpcode                  /* "Type3" opcodes */    : AddTerm                       {}    | AndTerm                       {}    | DecTerm                       {}    | DivideTerm                    {}    | FindSetLeftBitTerm            {}    | FindSetRightBitTerm           {}    | FromBCDTerm                   {}    | IncTerm                       {}    | IndexTerm                     {}    | LAndTerm                      {}    | LEqualTerm                    {}    | LGreaterTerm                  {}    | LGreaterEqualTerm             {}    | LLessTerm                     {}    | LLessEqualTerm                {}    | LNotTerm                      {}    | LNotEqualTerm                 {}    | LoadTableTerm                 {}    | LOrTerm                       {}    | MatchTerm                     {}    | ModTerm                       {}    | MultiplyTerm                  {}    | NAndTerm                      {}    | NOrTerm                       {}    | NotTerm                       {}    | OrTerm                        {}    | ShiftLeftTerm                 {}    | ShiftRightTerm                {}    | SubtractTerm                  {}    | ToBCDTerm                     {}    | ToIntegerTerm                 {}    | XOrTerm                       {}    ;Type2StringOpcode                   /* "Type4" Opcodes */    : ToDecimalStringTerm           {}    | ToHexStringTerm               {}    | ToStringTerm                  {}    ;Type2BufferOpcode                   /* "Type5" Opcodes */    : ToBufferTerm                  {}    | ConcatResTerm                 {}    ;Type2BufferOrStringOpcode    : ConcatTerm                    {}    | MidTerm                       {}    ;/* * A type 3 opcode evaluates to an Integer and cannot have a destination operand */Type3Opcode    : EISAIDTerm                    {}    ;/* ObsoleteType4Opcode    : ConcatTerm                    {}    | ToDecimalStringTerm           {}    | ToHexStringTerm               {}    | MidTerm                       {}    | ToStringTerm                  {}    ;*/Type5Opcode    : ResourceTemplateTerm          {}    | UnicodeTerm                   {}    | ToUUIDTerm                    {}    ;Type6Opcode    : RefOfTerm                     {}    | DerefOfTerm                   {}    | IndexTerm                     {}    | UserTerm                      {}    ;IncludeTerm    : PARSEOP_INCLUDE '('			{$$ = TrCreateLeafNode (PARSEOP_INCLUDE);}        String  ')'                 {TrLinkChildren ($<n>3,1,$4);FlOpenIncludeFile ($4);}        TermList        IncludeEndTerm              {$$ = TrLinkPeerNodes (3,$<n>3,$7,$8);}    ;IncludeEndTerm    : PARSEOP_INCLUDE_END			{$$ = TrCreateLeafNode (PARSEOP_INCLUDE_END);}    ;IncludeCStyleTerm    : PARSEOP_INCLUDE_CSTYLE        String                      {FlOpenIncludeFile ($2);}    ;LineTerm	: PARSEOP_LINE_CSTYLE		Integer						{FlSetLineNumber ($2);}	;ExternalTerm    : PARSEOP_EXTERNAL '('        NameString        OptionalObjectTypeKeyword        OptionalParameterTypePackage        OptionalParameterTypesPackage        ')'                         {$$ = TrCreateNode (PARSEOP_EXTERNAL,4,$3,$4,$5,$6);}    | PARSEOP_EXTERNAL '('        error ')'                   {$$ = AslDoError(); yyclearin;}    ;/******* Named Objects *******************************************************/BankFieldTerm    : PARSEOP_BANKFIELD '('			{$$ = TrCreateLeafNode (PARSEOP_BANKFIELD);}        NameString        NameStringItem        TermArgItem        ',' AccessTypeKeyword        ',' LockRuleKeyword        ',' UpdateRuleKeyword        ')' '{'            FieldUnitList '}'       {$$ = TrLinkChildren ($<n>3,7,$4,$5,$6,$8,$10,$12,$15);}    | PARSEOP_BANKFIELD '('        error ')' '{' error '}'     {$$ = AslDoError(); yyclearin;}    ;FieldUnitList    :                               {$$ = NULL;}    | FieldUnit    | FieldUnitList ','             /* Allows a trailing comma at list end */    | FieldUnitList ','        FieldUnit                   {$$ = TrLinkPeerNode ($1,$3);}    ;FieldUnit    : FieldUnitEntry                {}    | OffsetTerm                    {}    | AccessAsTerm                  {}    ;FieldUnitEntry    : ',' AmlPackageLengthTerm      {$$ = TrCreateNode (PARSEOP_RESERVED_BYTES,1,$2);}    | NameSeg ','        AmlPackageLengthTerm        {$$ = TrLinkChildNode ($1,$3);}    ;OffsetTerm    : PARSEOP_OFFSET '('        AmlPackageLengthTerm        ')'                         {$$ = TrCreateNode (PARSEOP_OFFSET,1,$3);}    | PARSEOP_OFFSET '('        error ')'                   {$$ = AslDoError(); yyclearin;}    ;AccessAsTerm    : PARSEOP_ACCESSAS '('        AccessTypeKeyword        OptionalAccessAttribTerm        ')'                         {$$ = TrCreateNode (PARSEOP_ACCESSAS,2,$3,$4);}    | PARSEOP_ACCESSAS '('        error ')'                   {$$ = AslDoError(); yyclearin;}    ;CreateBitFieldTerm    : PARSEOP_CREATEBITFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEBITFIELD);}        TermArg        TermArgItem        NameStringItem        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}    | PARSEOP_CREATEBITFIELD '('        error ')'                   {$$ = AslDoError(); yyclearin;}    ;CreateByteFieldTerm    : PARSEOP_CREATEBYTEFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEBYTEFIELD);}        TermArg        TermArgItem        NameStringItem        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}    | PARSEOP_CREATEBYTEFIELD '('        error ')'                   {$$ = AslDoError(); yyclearin;}    ;CreateDWordFieldTerm    : PARSEOP_CREATEDWORDFIELD '('	{$$ = TrCreateLeafNode (PARSEOP_CREATEDWORDFIELD);}        TermArg        TermArgItem        NameStringItem        ')'                         {$$ = TrLinkChildren ($<n>3,3,$4,$5,TrSetNodeFlags ($6, NODE_IS_NAME_DECLARATION));}    | PARSEOP_CREATEDWORDFIELD '('        error ')'                   {$$ = AslDoError(); yyclearin;}    ;CreateFieldTerm    : PARSEOP_CREATEFIELD '('		{$$ = TrCreateLeafNode (PARSEOP_CREATEFIELD);}        TermArg        TermArgItem        TermArgItem        NameStringItem        ')'                         {$$ = TrLinkChildren ($<n>3,4,$4,$5,$6,TrSetNodeFlags ($7, NODE_IS_NAME_DECLARATION));}    | PARSEOP_CREATEFIELD '('        error ')'                   {$$ = AslDoError(); yyclearin;}    ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -