## @file\r
-# This file is used to define class objects of INF file [Guids] section. \r
-# It will consumed by InfParser. \r
+# This file is used to define class objects of INF file [Guids] section.\r
+# It will consumed by InfParser.\r
#\r
-# Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
#\r
-# This program and the accompanying materials are licensed and made available \r
-# under the terms and conditions of the BSD License which accompanies this \r
-# distribution. The full text of the license may be found at \r
+# This program and the accompanying materials are licensed and made available\r
+# under the terms and conditions of the BSD License which accompanies this\r
+# distribution. The full text of the license may be found at\r
# http://opensource.org/licenses/bsd-license.php\r
#\r
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
\r
from Library.ParserValidate import IsValidCVariableName\r
from Library.CommentParsing import ParseComment\r
-from Library.ExpressionValidate import IsValidFeatureFlagExp \r
- \r
+from Library.ExpressionValidate import IsValidFeatureFlagExp\r
+\r
from Library.Misc import Sdict\r
-from Library import DataType as DT \r
+from Library import DataType as DT\r
import Logger.Log as Logger\r
from Logger import ToolError\r
from Logger import StringTable as ST\r
class InfGuidItemCommentContent():\r
def __init__(self):\r
#\r
- # ## SOMETIMES_CONSUMES ## Variable:L"MemoryTypeInformation" \r
+ # ## SOMETIMES_CONSUMES ## Variable:L"MemoryTypeInformation"\r
# TailString.\r
#\r
#\r
# TailString\r
#\r
self.HelpStringItem = ''\r
- \r
+\r
def SetUsageItem(self, UsageItem):\r
self.UsageItem = UsageItem\r
def GetUsageItem(self):\r
return self.UsageItem\r
- \r
+\r
def SetGuidTypeItem(self, GuidTypeItem):\r
self.GuidTypeItem = GuidTypeItem\r
def GetGuidTypeItem(self):\r
return self.GuidTypeItem\r
- \r
+\r
def SetVariableNameItem(self, VariableNameItem):\r
self.VariableNameItem = VariableNameItem\r
def GetVariableNameItem(self):\r
return self.VariableNameItem\r
- \r
+\r
def SetHelpStringItem(self, HelpStringItem):\r
self.HelpStringItem = HelpStringItem\r
def GetHelpStringItem(self):\r
return self.HelpStringItem\r
- \r
+\r
class InfGuidItem():\r
def __init__(self):\r
self.Name = ''\r
#\r
self.CommentList = []\r
self.SupArchList = []\r
- \r
+\r
def SetName(self, Name):\r
self.Name = Name\r
def GetName(self):\r
return self.Name\r
- \r
+\r
def SetFeatureFlagExp(self, FeatureFlagExp):\r
self.FeatureFlagExp = FeatureFlagExp\r
def GetFeatureFlagExp(self):\r
return self.FeatureFlagExp\r
- \r
+\r
def SetCommentList(self, CommentList):\r
self.CommentList = CommentList\r
def GetCommentList(self):\r
return self.CommentList\r
- \r
+\r
def SetSupArchList(self, SupArchList):\r
self.SupArchList = SupArchList\r
def GetSupArchList(self):\r
CommentItemGuidType, \\r
CommentItemVarString, \\r
CommentItemHelpText = \\r
- ParseComment(CommentItem, \r
- DT.ALL_USAGE_TOKENS, \r
- DT.GUID_TYPE_TOKENS, \r
- [], \r
+ ParseComment(CommentItem,\r
+ DT.ALL_USAGE_TOKENS,\r
+ DT.GUID_TYPE_TOKENS,\r
+ [],\r
True)\r
- \r
+\r
if CommentItemHelpText is None:\r
CommentItemHelpText = ''\r
if Count == len(CommentsList) and CommentItemUsage == CommentItemGuidType == DT.ITEM_UNDEFINED:\r
CommentItemHelpText = DT.END_OF_LINE\r
- \r
+\r
if Count == len(CommentsList):\r
if BlockFlag == 1 or BlockFlag == 2:\r
if CommentItemUsage == CommentItemGuidType == DT.ITEM_UNDEFINED:\r
else:\r
BlockFlag = 3\r
if BlockFlag == -1:\r
- BlockFlag = 4 \r
+ BlockFlag = 4\r
if BlockFlag == -1 or BlockFlag == 1 or BlockFlag == 2:\r
if CommentItemUsage == CommentItemGuidType == DT.ITEM_UNDEFINED:\r
if BlockFlag == -1:\r
BlockFlag = 3\r
elif BlockFlag == -1:\r
BlockFlag = 4\r
- \r
+\r
#\r
# Combine two comment line if they are generic comment\r
- # \r
+ #\r
if CommentItemUsage == CommentItemGuidType == PreUsage == PreGuidType == DT.ITEM_UNDEFINED:\r
CommentItemHelpText = PreHelpText + DT.END_OF_LINE + CommentItemHelpText\r
PreHelpText = CommentItemHelpText\r
- \r
- if BlockFlag == 4: \r
+\r
+ if BlockFlag == 4:\r
CommentItemIns = InfGuidItemCommentContent()\r
CommentItemIns.SetUsageItem(CommentItemUsage)\r
CommentItemIns.SetGuidTypeItem(CommentItemGuidType)\r
CommentItemHelpText = CommentItemHelpText.strip(DT.END_OF_LINE)\r
CommentItemIns.SetHelpStringItem(CommentItemHelpText)\r
CommentInsList.append(CommentItemIns)\r
- \r
+\r
BlockFlag = -1\r
PreUsage = None\r
PreGuidType = None\r
PreHelpText = ''\r
- \r
+\r
elif BlockFlag == 3:\r
#\r
# Add previous help string\r
- # \r
+ #\r
CommentItemIns = InfGuidItemCommentContent()\r
CommentItemIns.SetUsageItem(DT.ITEM_UNDEFINED)\r
CommentItemIns.SetGuidTypeItem(DT.ITEM_UNDEFINED)\r
CommentItemHelpText = CommentItemHelpText.strip(DT.END_OF_LINE)\r
CommentItemIns.SetHelpStringItem(CommentItemHelpText)\r
CommentInsList.append(CommentItemIns)\r
- \r
+\r
BlockFlag = -1\r
PreUsage = None\r
PreGuidType = None\r
- PreHelpText = '' \r
- \r
+ PreHelpText = ''\r
+\r
else:\r
PreUsage = CommentItemUsage\r
PreGuidType = CommentItemGuidType\r
PreHelpText = CommentItemHelpText\r
- \r
+\r
InfGuidItemObj.SetCommentList(CommentInsList)\r
else:\r
#\r
CommentItemIns.SetUsageItem(DT.ITEM_UNDEFINED)\r
CommentItemIns.SetGuidTypeItem(DT.ITEM_UNDEFINED)\r
InfGuidItemObj.SetCommentList([CommentItemIns])\r
- \r
+\r
return InfGuidItemObj\r
\r
## InfGuidObject\r
# Macro defined in this section should be only used in this section.\r
#\r
self.Macros = {}\r
- \r
+\r
def SetGuid(self, GuidList, Arch = None):\r
__SupportArchList = []\r
for ArchItem in Arch:\r
#\r
# Validate Arch\r
- # \r
+ #\r
if (ArchItem == '' or ArchItem is None):\r
- ArchItem = 'COMMON' \r
- \r
+ ArchItem = 'COMMON'\r
+\r
__SupportArchList.append(ArchItem)\r
- \r
+\r
for Item in GuidList:\r
#\r
# Get Comment content of this protocol\r
CommentsList = Item[1]\r
CurrentLineOfItem = Item[2]\r
Item = Item[0]\r
- InfGuidItemObj = InfGuidItem() \r
+ InfGuidItemObj = InfGuidItem()\r
if len(Item) >= 1 and len(Item) <= 2:\r
#\r
# Only GuildName contained\r
#\r
if not IsValidCVariableName(Item[0]):\r
- Logger.Error("InfParser", \r
- ToolError.FORMAT_INVALID, \r
+ Logger.Error("InfParser",\r
+ ToolError.FORMAT_INVALID,\r
ST.ERR_INF_PARSER_INVALID_CNAME%(Item[0]),\r
- File=CurrentLineOfItem[2], \r
- Line=CurrentLineOfItem[1], \r
+ File=CurrentLineOfItem[2],\r
+ Line=CurrentLineOfItem[1],\r
ExtraData=CurrentLineOfItem[0])\r
if (Item[0] != ''):\r
InfGuidItemObj.SetName(Item[0])\r
else:\r
- Logger.Error("InfParser", \r
- ToolError.FORMAT_INVALID, \r
+ Logger.Error("InfParser",\r
+ ToolError.FORMAT_INVALID,\r
ST.ERR_INF_PARSER_CNAME_MISSING,\r
- File=CurrentLineOfItem[2], \r
- Line=CurrentLineOfItem[1], \r
+ File=CurrentLineOfItem[2],\r
+ Line=CurrentLineOfItem[1],\r
ExtraData=CurrentLineOfItem[0])\r
if len(Item) == 2:\r
#\r
# Contained CName and Feature Flag Express\r
# <statements> ::= <CName> ["|" <FeatureFlagExpress>]\r
- # For GUID entry. \r
+ # For GUID entry.\r
#\r
if Item[1].strip() == '':\r
- Logger.Error("InfParser", \r
- ToolError.FORMAT_INVALID, \r
+ Logger.Error("InfParser",\r
+ ToolError.FORMAT_INVALID,\r
ST.ERR_INF_PARSER_FEATURE_FLAG_EXP_MISSING,\r
- File=CurrentLineOfItem[2], \r
- Line=CurrentLineOfItem[1], \r
+ File=CurrentLineOfItem[2],\r
+ Line=CurrentLineOfItem[1],\r
ExtraData=CurrentLineOfItem[0])\r
#\r
- # Validate Feature Flag Express \r
+ # Validate Feature Flag Express\r
#\r
FeatureFlagRtv = IsValidFeatureFlagExp(Item[1].strip())\r
if not FeatureFlagRtv[0]:\r
- Logger.Error("InfParser", \r
+ Logger.Error("InfParser",\r
ToolError.FORMAT_INVALID,\r
ST.ERR_INF_PARSER_FEATURE_FLAG_EXP_SYNTAX_INVLID%(FeatureFlagRtv[1]),\r
- File=CurrentLineOfItem[2], \r
- Line=CurrentLineOfItem[1], \r
+ File=CurrentLineOfItem[2],\r
+ Line=CurrentLineOfItem[1],\r
ExtraData=CurrentLineOfItem[0])\r
InfGuidItemObj.SetFeatureFlagExp(Item[1])\r
if len(Item) != 1 and len(Item) != 2:\r
#\r
- # Invalid format of GUID statement \r
+ # Invalid format of GUID statement\r
#\r
- Logger.Error("InfParser", \r
+ Logger.Error("InfParser",\r
ToolError.FORMAT_INVALID,\r
ST.ERR_INF_PARSER_GUID_PPI_PROTOCOL_SECTION_CONTENT_ERROR,\r
- File=CurrentLineOfItem[2], \r
- Line=CurrentLineOfItem[1], \r
+ File=CurrentLineOfItem[2],\r
+ Line=CurrentLineOfItem[1],\r
ExtraData=CurrentLineOfItem[0])\r
- \r
+\r
InfGuidItemObj = ParseGuidComment(CommentsList, InfGuidItemObj)\r
InfGuidItemObj.SetSupArchList(__SupportArchList)\r
- \r
+\r
#\r
# Determine GUID name duplicate. Follow below rule:\r
#\r
- # A GUID must not be duplicated within a [Guids] section. \r
- # A GUID may appear in multiple architectural [Guids] \r
- # sections. A GUID listed in an architectural [Guids] \r
- # section must not be listed in the common architectural \r
+ # A GUID must not be duplicated within a [Guids] section.\r
+ # A GUID may appear in multiple architectural [Guids]\r
+ # sections. A GUID listed in an architectural [Guids]\r
+ # section must not be listed in the common architectural\r
# [Guids] section.\r
- # \r
+ #\r
# NOTE: This check will not report error now.\r
- # \r
+ #\r
for Item in self.Guids:\r
if Item.GetName() == InfGuidItemObj.GetName():\r
ItemSupArchList = Item.GetSupArchList()\r
# ST.ERR_INF_PARSER_ITEM_DUPLICATE_COMMON\r
#\r
pass\r
- \r
+\r
if (InfGuidItemObj) in self.Guids:\r
- GuidList = self.Guids[InfGuidItemObj] \r
+ GuidList = self.Guids[InfGuidItemObj]\r
GuidList.append(InfGuidItemObj)\r
self.Guids[InfGuidItemObj] = GuidList\r
else:\r
GuidList = []\r
GuidList.append(InfGuidItemObj)\r
self.Guids[InfGuidItemObj] = GuidList\r
- \r
+\r
return True\r
- \r
+\r
def GetGuid(self):\r
return self.Guids\r