def GetGuidsProtocolsPpisOfDec(Item, Type, ContainerFile, LineNo=-1): List = GetSplitValueList(Item, DataType.TAB_EQUAL_SPLIT) if len(List) != 2: RaiseParserError(Item, Type, ContainerFile, '<CName>=<GuidValue>', \ LineNo) # #convert C-Format Guid to Register Format # if List[1][0] == '{' and List[1][-1] == '}': RegisterFormatGuid = GuidStructureStringToGuidString(List[1]) if RegisterFormatGuid == '': RaiseParserError(Item, Type, ContainerFile, \ 'CFormat or RegisterFormat', LineNo) else: if CheckGuidRegFormat(List[1]): RegisterFormatGuid = List[1] else: RaiseParserError(Item, Type, ContainerFile, \ 'CFormat or RegisterFormat', LineNo) return (List[0], RegisterFormatGuid)
def _ParseItem(self): Line = self._RawData.CurrentLine TokenList = GetSplitValueList(Line, DT.TAB_EQUAL_SPLIT, 1) if len(TokenList) < 2: self._LoggerError(ST.ERR_DECPARSE_CGUID) if TokenList[0] == '': self._LoggerError(ST.ERR_DECPARSE_CGUID_NAME) if TokenList[1] == '': self._LoggerError(ST.ERR_DECPARSE_CGUID_GUID) if not IsValidToken(CVAR_PATTERN, TokenList[0]): self._LoggerError(ST.ERR_DECPARSE_PCD_CVAR_GUID) self._CheckReDefine(TokenList[0]) if TokenList[1][0] != '{': if not CheckGuidRegFormat(TokenList[1]): self._LoggerError(ST.ERR_DECPARSE_DEFINE_PKGGUID) GuidString = TokenList[1] else: # # Convert C format GUID to GUID string and Simple error check # GuidString = GuidStructureStringToGuidString(TokenList[1]) if TokenList[1][0] != '{' or TokenList[1][ -1] != '}' or GuidString == '': self._LoggerError(ST.ERR_DECPARSE_CGUID_GUIDFORMAT) # # Check C format GUID # if not IsValidCFormatGuid(TokenList[1]): self._LoggerError(ST.ERR_DECPARSE_CGUID_GUIDFORMAT) Item = DecGuidItemObject(TokenList[0], TokenList[1], GuidString) ItemObject = self.ObjectDict[self._RawData.CurrentScope[0][0]] ItemObject.AddItem(Item, self._RawData.CurrentScope) return Item