예제 #1
0
 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) 
예제 #2
0
    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)