def SetDestructor(self, Destructor, Comments): # # It can be a list and only 1 set to TRUE # ValueList = [] TokenList = GetSplitValueList(Destructor, DT.TAB_VALUE_SPLIT) ValueList[0:len(TokenList)] = TokenList InfDefineDestructorItemObj = InfDefineDestructorItem() if not IsValidCVariableName(ValueList[0]): ErrorInInf(ST.ERR_INF_PARSER_DEFINE_FROMAT_INVALID%(ValueList[0]), LineInfo=self.CurrentLine) InfDefineDestructorItemObj.SetCName(ValueList[0]) if len(ValueList) >= 2: ModList = GetSplitValueList(ValueList[1].strip(), ' ') if ValueList[1].strip() == '': ErrorInInf(ST.ERR_INF_PARSER_DEFINE_FROMAT_INVALID%(ValueList[1]), LineInfo=self.CurrentLine) for ModItem in ModList: if ModItem not in DT.MODULE_LIST: ErrorInInf(ST.ERR_INF_PARSER_DEFINE_MODULETYPE_INVALID%(ModItem), LineInfo=self.CurrentLine) InfDefineDestructorItemObj.SetSupModList(ModList) if len(ValueList) == 3: if ValueList[2].strip() == '': ErrorInInf(ST.ERR_INF_PARSER_DEFINE_FROMAT_INVALID%(ValueList[2]), LineInfo=self.CurrentLine) # # Validate FFE # FeatureFlagRtv = IsValidFeatureFlagExp(ValueList[2].strip()) if not FeatureFlagRtv[0]: ErrorInInf(ST.ERR_INF_PARSER_FEATURE_FLAG_EXP_SYNTAX_INVLID%(FeatureFlagRtv[1]), LineInfo=self.CurrentLine) InfDefineDestructorItemObj.SetFeatureFlagExp(ValueList[2]) if len(ValueList) > 3: ErrorInInf(ST.ERR_INF_PARSER_DEFINE_FROMAT_INVALID%(Destructor), LineInfo=self.CurrentLine) InfDefineDestructorItemObj.Comments = Comments self.Destructor.append(InfDefineDestructorItemObj)
def SetDestructor(self, Destructor, Comments): # # It can be a list and only 1 set to TRUE # ValueList = [] TokenList = GetSplitValueList(Destructor, DT.TAB_VALUE_SPLIT) ValueList[0:len(TokenList)] = TokenList InfDefineDestructorItemObj = InfDefineDestructorItem() if not IsValidCVariableName(ValueList[0]): ErrorInInf(ST.ERR_INF_PARSER_DEFINE_FROMAT_INVALID % (ValueList[0]), LineInfo=self.CurrentLine) InfDefineDestructorItemObj.SetCName(ValueList[0]) if len(ValueList) >= 2: ModList = GetSplitValueList(ValueList[1].strip(), ' ') if ValueList[1].strip() == '': ErrorInInf(ST.ERR_INF_PARSER_DEFINE_FROMAT_INVALID % (ValueList[1]), LineInfo=self.CurrentLine) for ModItem in ModList: if ModItem not in DT.MODULE_LIST: ErrorInInf(ST.ERR_INF_PARSER_DEFINE_MODULETYPE_INVALID % (ModItem), LineInfo=self.CurrentLine) InfDefineDestructorItemObj.SetSupModList(ModList) if len(ValueList) == 3: if ValueList[2].strip() == '': ErrorInInf(ST.ERR_INF_PARSER_DEFINE_FROMAT_INVALID % (ValueList[2]), LineInfo=self.CurrentLine) # # Validate FFE # FeatureFlagRtv = IsValidFeatureFlagExp(ValueList[2].strip()) if not FeatureFlagRtv[0]: ErrorInInf(ST.ERR_INF_PARSER_FEATURE_FLAG_EXP_SYNTAX_INVLID % (FeatureFlagRtv[1]), LineInfo=self.CurrentLine) InfDefineDestructorItemObj.SetFeatureFlagExp(ValueList[2]) if len(ValueList) > 3: ErrorInInf(ST.ERR_INF_PARSER_DEFINE_FROMAT_INVALID % (Destructor), LineInfo=self.CurrentLine) InfDefineDestructorItemObj.Comments = Comments self.Destructor.append(InfDefineDestructorItemObj)