19.2.3. ASL 根项和次级项
// 根项
> ASLCode := > > > DefinitionBlockList
> DefinitionBlockList := > > > DefinitionBlockTerm | <DefinitionBlockTerm DefinitionBlockList>
// 主要项
> SuperName := > > > NameString | ArgTerm | LocalTerm | DebugTerm | ReferenceTypeOpcode | MethodInvocationTerm
> Target := > > > Nothing | SuperName
> TermArg := > > > ExpressionOpcode | DataObject | ArgTerm | LocalTerm | NameString | SymbolicExpression
> MethodInvocationTerm := > > > NameString ( // NameString => Method > > ArgList > > ) => Nothing | DataRefObject
// 列表项
> ArgList := > > > Nothing | <TermArg ArgListTail>
> ArgListTail := > > > Nothing | <CommaChar TermArg ArgListTail>
> ByteList := > > > Nothing | <ByteConstExpr ByteListTail>
> ByteListTail := > > > Nothing | <CommaChar ByteConstExpr ByteListTail>
> DWordList := > > > Nothing | <DwordConstExpr DWordListTail>
> DWordListTail := > > > Nothing | <CommaChar DwordConstExpr DWordListTail>
> ExtendedAccessAttribTerm := > > > ExtendedAccessAttribKeyword ( > > AccessLength //ByteConst > > )
> FieldUnitList := > > > Nothing | <FieldUnit FieldUnitListTail>
> FieldUnitListTail := > > > Nothing | <CommaChar FieldUnit FieldUnitListTail>
> FieldUnit := > > > FieldUnitEntry | OffsetTerm | AccessAsTerm | ConnectionTerm
> FieldUnitEntry := > > > <Nothing | NameSeg> CommaChar Integer
> PackageList := > > > Nothing | <PackageElement PackageListTail>
> PackageListTail := > > > Nothing | <CommaChar PackageElement PackageListTail>
> PackageElement := > > > DataObject | NameString
> ParameterTypePackage := > > > ObjectTypeKeyword | {Nothing | ParameterTypePackageList}
> ParameterTypePackageList := > > > ObjectTypeKeyword | <ObjectTypeKeyword CommaChar ParameterTypePackageList>
> ParameterTypesPackage := > > > ObjectTypeKeyword | {Nothing | ParameterTypesPackageList}
> ParameterTypesPackageList := > > > ParameterTypePackage | <ParameterTypePackage CommaChar ParameterTypesPackageList>
> TermList := > > > Nothing | <Term SemiColonDelimiter TermList>
> Term := > > > Object | StatementOpcode | ExpressionOpcode | SymbolicExpression
> Object := > > > CompilerDirective | NamedObject | NameSpaceModifier
// 条件执行列表项
> CaseTermList := > > > Nothing | CaseTerm | DefaultTerm DefaultTermList | CaseTerm CaseTermList
> DefaultTermList := > > > Nothing | CaseTerm | CaseTerm DefaultTermList
> IfElseTerm := > > > IfTerm ElseTerm