]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Common/DscClassObject.py
BaseTools: cleanup class heirarchy
[mirror_edk2.git] / BaseTools / Source / Python / Common / DscClassObject.py
index ddccf6507da64170dae0ae4c23df60027d145cfd..da3101ae0fe9b70d44af6c1904103d3ae6ad2f30 100644 (file)
@@ -1,8 +1,8 @@
 ## @file\r
 # This file is used to define each component of DSC file\r
 #\r
-# Copyright (c) 2007 ~ 2008, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -14,7 +14,7 @@
 ##\r
 # Import Modules\r
 #\r
-import os\r
+import Common.LongFilePathOs as os\r
 import EdkLogger as EdkLogger\r
 import Database\r
 from String import *\r
@@ -28,6 +28,7 @@ from BuildToolError import *
 from Misc import sdict\r
 import GlobalData\r
 from Table.TableDsc import TableDsc\r
+from Common.LongFilePathSupport import OpenLongFilePath as open\r
 \r
 #\r
 # Global variable\r
@@ -53,21 +54,10 @@ Section = {TAB_UNKNOWN.upper() : MODEL_UNKNOWN,
            TAB_USER_EXTENSIONS.upper() : MODEL_META_DATA_USER_EXTENSION\r
            }\r
 \r
-## DscObject\r
-#\r
-# This class defined basic Dsc object which is used by inheriting\r
-#\r
-# @param object:       Inherited from object class\r
-#\r
-class DscObject(object):\r
-    def __init__(self):\r
-        object.__init__()\r
-\r
 ## Dsc\r
 #\r
 # This class defined the structure used in Dsc object\r
 #\r
-# @param DscObject:         Inherited from InfObject class\r
 # @param Ffilename:         Input value for Ffilename of Inf file, default is None\r
 # @param IsMergeAllArches:  Input value for IsMergeAllArches\r
 #                           True is to merge all arches\r
@@ -88,20 +78,19 @@ class DscObject(object):
 # @var WorkspaceDir:        To store value for WorkspaceDir\r
 # @var KeyList:             To store value for KeyList, a list for all Keys used in Dec\r
 #\r
-class Dsc(DscObject):\r
+class Dsc(object):\r
     _NullClassIndex = 0\r
 \r
-    def __init__(self, Filename = None, IsToDatabase = False, IsToPlatform = False, WorkspaceDir = None, Database = None):\r
+    def __init__(self, Filename=None, IsToDatabase=False, IsToPlatform=False, WorkspaceDir=None, Database=None):\r
         self.Identification = Identification()\r
         self.Platform = PlatformClass()\r
         self.UserExtensions = ''\r
         self.WorkspaceDir = WorkspaceDir\r
         self.IsToDatabase = IsToDatabase\r
-\r
-        self.Cur = Database.Cur\r
-        self.TblFile = Database.TblFile\r
-        self.TblDsc = Database.TblDsc\r
-\r
+        if Database:\r
+            self.Cur = Database.Cur\r
+            self.TblFile = Database.TblFile\r
+            self.TblDsc = Database.TblDsc\r
 \r
         self.KeyList = [\r
             TAB_SKUIDS, TAB_LIBRARIES, TAB_LIBRARY_CLASSES, TAB_BUILD_OPTIONS, TAB_PCDS_FIXED_AT_BUILD_NULL, \\r
@@ -128,7 +117,7 @@ class Dsc(DscObject):
         #\r
         # Load Dsc file if filename is not None\r
         #\r
-        if Filename != None:\r
+        if Filename is not None:\r
             self.LoadDscFile(Filename)\r
 \r
         #\r
@@ -251,6 +240,12 @@ class Dsc(DscObject):
             Fdf = PlatformFlashDefinitionFileClass()\r
             Fdf.FilePath = NormPath(QueryDefinesItem(self.TblDsc, TAB_DSC_DEFINES_FLASH_DEFINITION, Arch, self.FileID)[0])\r
             self.Platform.FlashDefinitionFile = Fdf\r
+            Prebuild = BuildScriptClass()\r
+            Prebuild.FilePath = NormPath(QueryDefinesItem(self.TblDsc, TAB_DSC_PREBUILD, Arch, self.FileID)[0])\r
+            self.Platform.Prebuild = Prebuild\r
+            Postbuild = BuildScriptClass()\r
+            Postbuild.FilePath = NormPath(QueryDefinesItem(self.TblDsc, TAB_DSC_POSTBUILD, Arch, self.FileID)[0])\r
+            self.Platform.Postbuild = Postbuild\r
 \r
     ## GenBuildOptions\r
     #\r
@@ -385,10 +380,11 @@ class Dsc(DscObject):
             for IncludeFile in IncludeFiles:\r
                 if IncludeFile[1] == Arch or IncludeFile[1] == TAB_ARCH_COMMON.upper():\r
                     Filename = CheckFileExist(self.WorkspaceDir, IncludeFile[0], ContainerFile, TAB_LIBRARIES, '', IncludeFile[2])\r
-                    for NewItem in open(Filename, 'r').readlines():\r
-                        if CleanString(NewItem) == '':\r
-                            continue\r
-                        MergeArches(Libraries, NewItem, Arch)\r
+                    if os.path.exists(Filename):\r
+                        for NewItem in open(Filename, 'r').readlines():\r
+                            if CleanString(NewItem) == '':\r
+                                continue\r
+                            MergeArches(Libraries, NewItem, Arch)\r
 \r
             for Record in RecordSet:\r
                 if Record[1] == Arch or Record[1] == TAB_ARCH_COMMON.upper():\r
@@ -459,7 +455,7 @@ class Dsc(DscObject):
     # @param Type:           The type of Pcd\r
     # @param ContainerFile:  The file which describes the pcd, used for error report\r
     #\r
-    def GenPcds(self, Type = '', ContainerFile = ''):\r
+    def GenPcds(self, Type='', ContainerFile=''):\r
         Pcds = {}\r
         if Type == DataType.TAB_PCDS_PATCHABLE_IN_MODULE:\r
             Model = MODEL_PCD_PATCHABLE_IN_MODULE\r
@@ -511,7 +507,7 @@ class Dsc(DscObject):
     # @param Type:           The type of Pcd\r
     # @param ContainerFile:  The file which describes the pcd, used for error report\r
     #\r
-    def GenFeatureFlagPcds(self, Type = '', ContainerFile = ''):\r
+    def GenFeatureFlagPcds(self, Type='', ContainerFile=''):\r
         Pcds = {}\r
         if Type == DataType.TAB_PCDS_FEATURE_FLAG:\r
             Model = MODEL_PCD_FEATURE_FLAG\r
@@ -561,7 +557,7 @@ class Dsc(DscObject):
     # @param Type:           The type of Pcd\r
     # @param ContainerFile:  The file which describes the pcd, used for error report\r
     #\r
-    def GenDynamicDefaultPcds(self, Type = '', ContainerFile = ''):\r
+    def GenDynamicDefaultPcds(self, Type='', ContainerFile=''):\r
         Pcds = {}\r
         SkuInfoList = {}\r
         if Type == DataType.TAB_PCDS_DYNAMIC_DEFAULT:\r
@@ -593,20 +589,20 @@ class Dsc(DscObject):
                         if CleanString(NewItem) == '':\r
                             continue\r
                         (K1, K2, K3, K4, K5, K6) = GetDynamicDefaultPcd(NewItem, Type, Filename, -1)\r
-                        MergeArches(Pcds,  (K1, K2, K3, K4, K5, K6, IncludeFile[4]), Arch)\r
+                        MergeArches(Pcds, (K1, K2, K3, K4, K5, K6, IncludeFile[4]), Arch)\r
                         self.PcdToken[Record[3]] = (K2, K1)\r
 \r
             for Record in RecordSet:\r
                 if Record[1] == Arch or Record[1] == TAB_ARCH_COMMON.upper():\r
                     (K1, K2, K3, K4, K5, K6) = GetDynamicDefaultPcd(Record[0], Type, ContainerFile, Record[2])\r
-                    MergeArches(Pcds,  (K1, K2, K3, K4, K5, K6, Record[4]), Arch)\r
+                    MergeArches(Pcds, (K1, K2, K3, K4, K5, K6, Record[4]), Arch)\r
                     self.PcdToken[Record[3]] = (K2, K1)\r
 \r
         for Key in Pcds:\r
             (Status, SkuInfoList) = self.GenSkuInfoList(Key[6], self.Platform.SkuInfos.SkuInfoList, '', '', '', '', '', Key[2])\r
             if Status == False:\r
                 ErrorMsg = "The SKUID '%s' used in section '%s' is not defined in section [SkuIds]" % (SkuInfoList, Type)\r
-                EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, ContainerFile, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, ContainerFile, RaiseError=EdkLogger.IsRaiseError)\r
             Pcd = PcdClass(Key[0], '', Key[1], Key[3], Key[4], Key[2], Key[5], [], SkuInfoList, [])\r
             Pcd.SupArchList = Pcds[Key]\r
             self.Platform.DynamicPcdBuildDefinitions.append(Pcd)\r
@@ -618,7 +614,7 @@ class Dsc(DscObject):
     # @param Type:           The type of Pcd\r
     # @param ContainerFile:  The file which describes the pcd, used for error report\r
     #\r
-    def GenDynamicHiiPcds(self, Type = '', ContainerFile = ''):\r
+    def GenDynamicHiiPcds(self, Type='', ContainerFile=''):\r
         Pcds = {}\r
         SkuInfoList = {}\r
         if Type == DataType.TAB_PCDS_DYNAMIC_HII:\r
@@ -650,20 +646,20 @@ class Dsc(DscObject):
                         if CleanString(NewItem) == '':\r
                             continue\r
                         (K1, K2, K3, K4, K5, K6, K7, K8) = GetDynamicHiiPcd(NewItem, Type, Filename, -1)\r
-                        MergeArches(Pcds,  (K1, K2, K3, K4, K5, K6, K7, K8, IncludeFile[4]), Arch)\r
+                        MergeArches(Pcds, (K1, K2, K3, K4, K5, K6, K7, K8, IncludeFile[4]), Arch)\r
                         self.PcdToken[Record[3]] = (K2, K1)\r
 \r
             for Record in RecordSet:\r
                 if Record[1] == Arch or Record[1] == TAB_ARCH_COMMON.upper():\r
                     (K1, K2, K3, K4, K5, K6, K7, K8) = GetDynamicHiiPcd(Record[0], Type, ContainerFile, Record[2])\r
-                    MergeArches(Pcds,  (K1, K2, K3, K4, K5, K6, K7, K8, Record[4]), Arch)\r
+                    MergeArches(Pcds, (K1, K2, K3, K4, K5, K6, K7, K8, Record[4]), Arch)\r
                     self.PcdToken[Record[3]] = (K2, K1)\r
 \r
         for Key in Pcds:\r
             (Status, SkuInfoList) = self.GenSkuInfoList(Key[8], self.Platform.SkuInfos.SkuInfoList, Key[2], Key[3], Key[4], Key[5], '', '')\r
             if Status == False:\r
                 ErrorMsg = "The SKUID '%s' used in section '%s' is not defined in section [SkuIds]" % (SkuInfoList, Type)\r
-                EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, ContainerFile, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, ContainerFile, RaiseError=EdkLogger.IsRaiseError)\r
             Pcd = PcdClass(Key[0], '', Key[1], '', Key[6], Key[5], Key[7], [], SkuInfoList, [])\r
             Pcd.SupArchList = Pcds[Key]\r
             self.Platform.DynamicPcdBuildDefinitions.append(Pcd)\r
@@ -675,7 +671,7 @@ class Dsc(DscObject):
     # @param Type:           The type of Pcd\r
     # @param ContainerFile:  The file which describes the pcd, used for error report\r
     #\r
-    def GenDynamicVpdPcds(self, Type = '', ContainerFile = ''):\r
+    def GenDynamicVpdPcds(self, Type='', ContainerFile=''):\r
         Pcds = {}\r
         SkuInfoList = {}\r
         if Type == DataType.TAB_PCDS_DYNAMIC_VPD:\r
@@ -707,20 +703,20 @@ class Dsc(DscObject):
                         if CleanString(NewItem) == '':\r
                             continue\r
                         (K1, K2, K3, K4, K5) = GetDynamicVpdPcd(NewItem, Type, Filename, -1)\r
-                        MergeArches(Pcds,  (K1, K2, K3, K4, K5, IncludeFile[4]), Arch)\r
+                        MergeArches(Pcds, (K1, K2, K3, K4, K5, IncludeFile[4]), Arch)\r
                         self.PcdToken[Record[3]] = (K2, K1)\r
 \r
             for Record in RecordSet:\r
                 if Record[1] == Arch or Record[1] == TAB_ARCH_COMMON.upper():\r
                     (K1, K2, K3, K4, K5) = GetDynamicVpdPcd(Record[0], Type, ContainerFile, Record[2])\r
-                    MergeArches(Pcds,  (K1, K2, K3, K4, K5, Record[4]), Arch)\r
+                    MergeArches(Pcds, (K1, K2, K3, K4, K5, Record[4]), Arch)\r
                     self.PcdToken[Record[3]] = (K2, K1)\r
 \r
         for Key in Pcds:\r
             (Status, SkuInfoList) = self.GenSkuInfoList(Key[5], self.Platform.SkuInfos.SkuInfoList, '', '', '', '', Key[2], '')\r
             if Status == False:\r
                 ErrorMsg = "The SKUID '%s' used in section '%s' is not defined in section [SkuIds]" % (SkuInfoList, Type)\r
-                EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, ContainerFile, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, ContainerFile, RaiseError=EdkLogger.IsRaiseError)\r
             Pcd = PcdClass(Key[0], '', Key[1], '', Key[3], '', Key[4], [], SkuInfoList, [])\r
             Pcd.SupArchList = Pcds[Key]\r
             self.Platform.DynamicPcdBuildDefinitions.append(Pcd)\r
@@ -768,7 +764,7 @@ class Dsc(DscObject):
 \r
                     SubLibSet = QueryDscItem(self.TblDsc, MODEL_EFI_LIBRARY_CLASS, Record[3], self.FileID)\r
                     for SubLib in SubLibSet:\r
-                        Lib.append(TAB_VALUE_SPLIT.join([SubLib[0],SubLib[4]]))\r
+                        Lib.append(TAB_VALUE_SPLIT.join([SubLib[0], SubLib[4]]))\r
 \r
                     SubBoSet = QueryDscItem(self.TblDsc, MODEL_META_DATA_BUILD_OPTION, Record[3], self.FileID)\r
                     for SubBo in SubBoSet:\r
@@ -805,7 +801,7 @@ class Dsc(DscObject):
     #\r
     # @retval PlatformModuleClass() A instance for PlatformModuleClass\r
     #\r
-    def GenComponent(self, Item, ContainerFile, LineNo = -1):\r
+    def GenComponent(self, Item, ContainerFile, LineNo= -1):\r
         (InfFilename, ExecFilename) = GetExec(Item[0])\r
         LibraryClasses = Item[1]\r
         BuildOptions = Item[2]\r
@@ -893,9 +889,9 @@ class Dsc(DscObject):
     # @retval (False, SkuName)     Not found in section SkuId Dsc file\r
     # @retval (True, SkuInfoList)  Found in section SkuId of Dsc file\r
     #\r
-    def GenSkuInfoList(self, SkuNameList, SkuInfo, VariableName = '', VariableGuid = '', VariableOffset = '', HiiDefaultValue = '', VpdOffset = '', DefaultValue = ''):\r
+    def GenSkuInfoList(self, SkuNameList, SkuInfo, VariableName='', VariableGuid='', VariableOffset='', HiiDefaultValue='', VpdOffset='', DefaultValue=''):\r
         SkuNameList = GetSplitValueList(SkuNameList)\r
-        if SkuNameList == None or SkuNameList == [] or SkuNameList == ['']:\r
+        if SkuNameList is None or SkuNameList == [] or SkuNameList == ['']:\r
             SkuNameList = ['DEFAULT']\r
         SkuInfoList = {}\r
         for Item in SkuNameList:\r
@@ -963,7 +959,7 @@ class Dsc(DscObject):
         (Value1, Value2, Value3, Model, StartColumn, EndColumn, Enabled) = ('', '', '', -1, -1, -1, 0)\r
         if IfDefList == []:\r
             ErrorMsg = 'Not suited conditional statement in file %s' % Filename\r
-            EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, Filename, RaiseError = EdkLogger.IsRaiseError)\r
+            EdkLogger.error("DSC File Parser", PARSER_ERROR, ErrorMsg, Filename, RaiseError=EdkLogger.IsRaiseError)\r
         else:\r
             #\r
             # Get New Dsc item ID\r
@@ -988,10 +984,14 @@ class Dsc(DscObject):
             #\r
             elif PreviousIf[2] in (MODEL_META_DATA_CONDITIONAL_STATEMENT_IF, Model):\r
                 List = PreviousIf[0].split(' ')\r
-                Value1 = List[0]\r
-                Value2 = List[1]\r
-                Value3 = List[2]\r
-                Value3 = SplitString(Value3)\r
+                Value1, Value2, Value3 = '', '==', '0'\r
+                if len(List) == 3:\r
+                    Value1 = List[0]\r
+                    Value2 = List[1]\r
+                    Value3 = List[2]\r
+                    Value3 = SplitString(Value3)\r
+                if len(List) == 1:\r
+                    Value1 = List[0]\r
                 Model = PreviousIf[2]\r
                 self.TblDsc.Insert(Model, Value1, Value2, Value3, ArchList, BelongsToItem, self.FileID, PreviousIf[1], StartColumn, EndLine, EndColumn, Enabled)\r
             #\r
@@ -1040,11 +1040,11 @@ class Dsc(DscObject):
             #\r
             # Remove comment block\r
             #\r
-            if Line.find(TAB_COMMENT_R8_START) > -1:\r
-                ReservedLine = GetSplitValueList(Line, TAB_COMMENT_R8_START, 1)[0]\r
+            if Line.find(TAB_COMMENT_EDK_START) > -1:\r
+                ReservedLine = GetSplitList(Line, TAB_COMMENT_EDK_START, 1)[0]\r
                 IsFindBlockComment = True\r
-            if Line.find(TAB_COMMENT_R8_END) > -1:\r
-                Line = ReservedLine + GetSplitValueList(Line, TAB_COMMENT_R8_END, 1)[1]\r
+            if Line.find(TAB_COMMENT_EDK_END) > -1:\r
+                Line = ReservedLine + GetSplitList(Line, TAB_COMMENT_EDK_END, 1)[1]\r
                 ReservedLine = ''\r
                 IsFindBlockComment = False\r
             if IsFindBlockComment:\r
@@ -1082,7 +1082,7 @@ class Dsc(DscObject):
                         CurrentSection = ItemList[0]\r
                     else:\r
                         if CurrentSection != ItemList[0]:\r
-                            EdkLogger.error("Parser", PARSER_ERROR, "Different section names '%s' and '%s' are found in one section definition, this is not allowed." % (CurrentSection, ItemList[0]), File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            EdkLogger.error("Parser", PARSER_ERROR, "Different section names '%s' and '%s' are found in one section definition, this is not allowed." % (CurrentSection, ItemList[0]), File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
                     if CurrentSection.upper() not in self.KeyList:\r
                         RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
                         CurrentSection = TAB_UNKNOWN\r
@@ -1093,7 +1093,7 @@ class Dsc(DscObject):
                         RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
                     else:\r
                         if ItemList[1] != '' and ItemList[1].upper() not in ARCH_LIST_FULL:\r
-                            EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                            EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
                         ArchList.append(ItemList[1].upper())\r
                         ThirdList.append(ItemList[2])\r
 \r
@@ -1104,7 +1104,7 @@ class Dsc(DscObject):
             #\r
             if CurrentSection == TAB_UNKNOWN:\r
                 ErrorMsg = "%s is not in any defined section" % Line\r
-                EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo, RaiseError = EdkLogger.IsRaiseError)\r
+                EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo, RaiseError=EdkLogger.IsRaiseError)\r
 \r
             #\r
             # Add a section item\r
@@ -1156,7 +1156,7 @@ class Dsc(DscObject):
                          MODEL_META_DATA_DEFINE)\r
         RecordSet = self.TblDsc.Exec(SqlCommand)\r
         for Record in RecordSet:\r
-            SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" %(self.TblDsc.Table, Record[0], Record[1])\r
+            SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" % (self.TblDsc.Table, Record[0], Record[1])\r
             self.TblDsc.Exec(SqlCommand)\r
 \r
         #\r
@@ -1180,8 +1180,8 @@ class Dsc(DscObject):
                          MODEL_META_DATA_DEFINE)\r
         RecordSet = self.TblDsc.Exec(SqlCommand)\r
         for Record in RecordSet:\r
-            SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" %(self.TblDsc.Table, Record[0], Record[1])\r
-            EdkLogger.debug(4, "SqlCommand: %s" %SqlCommand)\r
+            SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" % (self.TblDsc.Table, Record[0], Record[1])\r
+            EdkLogger.debug(4, "SqlCommand: %s" % SqlCommand)\r
             self.Cur.execute(SqlCommand)\r
 \r
         #\r
@@ -1205,13 +1205,13 @@ class Dsc(DscObject):
         for Record in RecordSet:\r
             if Record[0] == MODEL_META_DATA_CONDITIONAL_STATEMENT_IF:\r
                 if not self.Compare(Record[6], Record[2], Record[3]):\r
-                    SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" %(self.TblDsc.Table, Record[4], Record[5])\r
+                    SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" % (self.TblDsc.Table, Record[4], Record[5])\r
                     self.TblDsc.Exec(SqlCommand)\r
                 else:\r
                     DisabledList.append(Record[1])\r
                 continue\r
             if Record[0] == MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE and Record[1] in DisabledList:\r
-                SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" %(self.TblDsc.Table, Record[4], Record[5])\r
+                SqlCommand = """Update %s set Enabled = -1 where StartLine >= %s and EndLine <= %s""" % (self.TblDsc.Table, Record[4], Record[5])\r
                 self.TblDsc.Exec(SqlCommand)\r
 \r
     ## Compare\r
@@ -1222,7 +1222,7 @@ class Dsc(DscObject):
     # @param Value2:\r
     #\r
     def Compare(self, Value1, CompareType, Value2):\r
-        Command = """Value1 %s Value2""" %CompareType\r
+        Command = """Value1 %s Value2""" % CompareType\r
         return eval(Command)\r
 \r
     ## First time to insert records to database\r
@@ -1254,7 +1254,7 @@ class Dsc(DscObject):
                 LineValue, StartLine, EndLine = SectionItem[0], SectionItem[1], SectionItem[1]\r
 \r
 \r
-                EdkLogger.debug(4, "Parsing %s ..." %LineValue)\r
+                EdkLogger.debug(4, "Parsing %s ..." % LineValue)\r
                 #\r
                 # Parse '!ifdef'\r
                 #\r
@@ -1332,10 +1332,10 @@ class Dsc(DscObject):
                 Components = []\r
                 GetComponent(SectionItemList, Components)\r
                 for Component in Components:\r
-                    EdkLogger.debug(4, "Parsing component %s ..." %Component)\r
+                    EdkLogger.debug(4, "Parsing component %s ..." % Component)\r
                     DscItmeID = self.TblDsc.Insert(MODEL_META_DATA_COMPONENT, Component[0], '', '', Arch, -1, FileID, StartLine, -1, StartLine, -1, 0)\r
                     for Item in Component[1]:\r
-                        List = GetSplitValueList(Item, MaxSplit = 2)\r
+                        List = GetSplitValueList(Item, MaxSplit=2)\r
                         LibName, LibIns = '', ''\r
                         if len(List) == 2:\r
                             LibName = List[0]\r