]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/FdfParser.py
BaseTools: Remove the "from __future__ import" items
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / FdfParser.py
index 4be790a819040ed8906b48dcecbfebf88dcf7691..d18b0a332830afda467b1dab4e377c73b3a4f98d 100644 (file)
@@ -16,8 +16,6 @@
 ##\r
 # Import Modules\r
 #\r
-from __future__ import print_function\r
-from __future__ import absolute_import\r
 import re\r
 \r
 from . import Fd\r
@@ -64,6 +62,7 @@ from Common.LongFilePathSupport import OpenLongFilePath as open
 from .Capsule import EFI_CERT_TYPE_PKCS7_GUID\r
 from .Capsule import EFI_CERT_TYPE_RSA2048_SHA256_GUID\r
 from Common.RangeExpression import RangeExpression\r
+from collections import OrderedDict\r
 \r
 ##define T_CHAR_SPACE                ' '\r
 ##define T_CHAR_NULL                 '\0'\r
@@ -227,8 +226,8 @@ class FileProfile :
             EdkLogger.error("FdfParser", FILE_OPEN_FAILURE, ExtraData=FileName)\r
 \r
         self.FileName = FileName\r
-        self.PcdDict = {}\r
-        self.PcdLocalDict = {}\r
+        self.PcdDict = OrderedDict()\r
+        self.PcdLocalDict = OrderedDict()\r
         self.InfList = []\r
         self.InfDict = {'ArchTBD':[]}\r
         # ECC will use this Dict and List information\r
@@ -274,7 +273,7 @@ class FdfParser:
         # Key: [section name, UI name, arch]\r
         # Value: {MACRO_NAME : MACRO_VALUE}\r
         self.__MacroDict = tdict(True, 3)\r
-        self.__PcdDict = {}\r
+        self.__PcdDict = OrderedDict()\r
 \r
         self.__WipeOffArea = []\r
         if GenFdsGlobalVariable.WorkSpaceDir == '':\r
@@ -423,6 +422,8 @@ class FdfParser:
 \r
     def __StringToList(self):\r
         self.Profile.FileLinesList = [list(s) for s in self.Profile.FileLinesList]\r
+        if not self.Profile.FileLinesList:\r
+            EdkLogger.error('FdfParser', FILE_READ_FAILURE, 'The file is empty!', File=self.FileName)\r
         self.Profile.FileLinesList[-1].append(' ')\r
 \r
     def __ReplaceFragment(self, StartPos, EndPos, Value = ' '):\r
@@ -1111,33 +1112,13 @@ class FdfParser:
         if self.CurrentLineNumber != StartLine:\r
             EndPos = len(self.Profile.FileLinesList[StartLine-1])\r
         self.__Token = self.Profile.FileLinesList[StartLine-1][StartPos : EndPos]\r
+        if self.__Token.lower() in [TAB_IF, TAB_END_IF, TAB_ELSE_IF, TAB_ELSE, TAB_IF_DEF, TAB_IF_N_DEF, TAB_ERROR, TAB_INCLUDE]:\r
+            self.__Token = self.__Token.lower()\r
         if StartPos != self.CurrentOffsetWithinLine:\r
             return True\r
         else:\r
             return False\r
 \r
-    def __GetNextOp(self):\r
-        # Skip leading spaces, if exist.\r
-        self.__SkipWhiteSpace()\r
-        if self.__EndOfFile():\r
-            return False\r
-        # Record the token start position, the position of the first non-space char.\r
-        StartPos = self.CurrentOffsetWithinLine\r
-        while not self.__EndOfLine():\r
-            TempChar = self.__CurrentChar()\r
-            # Try to find the end char that is not a space\r
-            if not str(TempChar).isspace():\r
-                self.__GetOneChar()\r
-            else:\r
-                break\r
-        else:\r
-            return False\r
-\r
-        if StartPos != self.CurrentOffsetWithinLine:\r
-            self.__Token = self.__CurrentLine()[StartPos : self.CurrentOffsetWithinLine]\r
-            return True\r
-        else:\r
-            return False\r
     ## __GetNextGuid() method\r
     #\r
     #   Get next token unit before a seperator\r
@@ -1243,28 +1224,6 @@ class FdfParser:
             self.__UndoToken()\r
             return False\r
 \r
-    ## __GetNextPcdName() method\r
-    #\r
-    #   Get next PCD token space C name and PCD C name pair before a seperator\r
-    #   If found, the decimal data is put into self.__Token\r
-    #\r
-    #   @param  self        The object pointer\r
-    #   @retval Tuple       PCD C name and PCD token space C name pair\r
-    #\r
-    def __GetNextPcdName(self):\r
-        if not self.__GetNextWord():\r
-            raise Warning("expected format of <PcdTokenSpaceCName>.<PcdCName>", self.FileName, self.CurrentLineNumber)\r
-        pcdTokenSpaceCName = self.__Token\r
-\r
-        if not self.__IsToken( "."):\r
-            raise Warning("expected format of <PcdTokenSpaceCName>.<PcdCName>", self.FileName, self.CurrentLineNumber)\r
-\r
-        if not self.__GetNextWord():\r
-            raise Warning("expected format of <PcdTokenSpaceCName>.<PcdCName>", self.FileName, self.CurrentLineNumber)\r
-        pcdCName = self.__Token\r
-\r
-        return (pcdCName, pcdTokenSpaceCName)\r
-\r
     def __GetNextPcdSettings(self):\r
         if not self.__GetNextWord():\r
             raise Warning("expected format of <PcdTokenSpaceCName>.<PcdCName>", self.FileName, self.CurrentLineNumber)\r
@@ -3677,7 +3636,6 @@ class FdfParser:
                               ModuleType.upper()     + \\r
                               '.'                    + \\r
                               TemplateName.upper() ] = RuleObj\r
-#        self.Profile.RuleList.append(rule)\r
         return True\r
 \r
     ## __GetModuleType() method\r
@@ -4135,7 +4093,6 @@ class FdfParser:
     #   @retval False       Not able to find section statement\r
     #\r
     def __GetRuleEncapsulationSection(self, Rule):\r
-\r
         if self.__IsKeyword( "COMPRESS"):\r
             Type = "PI_STD"\r
             if self.__IsKeyword("PI_STD") or self.__IsKeyword("PI_NONE"):\r
@@ -4203,7 +4160,6 @@ class FdfParser:
     #   @retval False       Not able to find a VTF\r
     #\r
     def __GetVtf(self):\r
-\r
         if not self.__GetNextToken():\r
             return False\r
 \r
@@ -4275,7 +4231,6 @@ class FdfParser:
     #   @retval False       Not able to find a component\r
     #\r
     def __GetComponentStatement(self, VtfObj):\r
-\r
         if not self.__IsKeyword("COMP_NAME"):\r
             return False\r
 \r
@@ -4409,7 +4364,6 @@ class FdfParser:
     #   @retval False       Not able to find a OptionROM\r
     #\r
     def __GetOptionRom(self):\r
-\r
         if not self.__GetNextToken():\r
             return False\r
 \r
@@ -4450,7 +4404,6 @@ class FdfParser:
     #   @retval False       Not able to find inf statement\r
     #\r
     def __GetOptRomInfStatement(self, Obj):\r
-\r
         if not self.__IsKeyword( "INF"):\r
             return False\r
 \r
@@ -4553,7 +4506,6 @@ class FdfParser:
     #   @retval False       Not able to find FILE statement\r
     #\r
     def __GetOptRomFileStatement(self, Obj):\r
-\r
         if not self.__IsKeyword( "FILE"):\r
             return False\r
 \r
@@ -4588,7 +4540,6 @@ class FdfParser:
     #   @retval CapList     List of Capsule in FD\r
     #\r
     def __GetCapInFd (self, FdName):\r
-\r
         CapList = []\r
         if FdName.upper() in self.Profile.FdDict:\r
             FdObj = self.Profile.FdDict[FdName.upper()]\r
@@ -4611,7 +4562,6 @@ class FdfParser:
     #   @param  RefFvList   referenced FV by section\r
     #\r
     def __GetReferencedFdCapTuple(self, CapObj, RefFdList = [], RefFvList = []):\r
-\r
         for CapsuleDataObj in CapObj.CapsuleDataList :\r
             if hasattr(CapsuleDataObj, 'FvName') and CapsuleDataObj.FvName is not None and CapsuleDataObj.FvName.upper() not in RefFvList:\r
                 RefFvList.append (CapsuleDataObj.FvName.upper())\r
@@ -4635,7 +4585,6 @@ class FdfParser:
     #   @retval FvList      list of FV in FD\r
     #\r
     def __GetFvInFd (self, FdName):\r
-\r
         FvList = []\r
         if FdName.upper() in self.Profile.FdDict:\r
             FdObj = self.Profile.FdDict[FdName.upper()]\r
@@ -4658,7 +4607,6 @@ class FdfParser:
     #   @param  RefFvList   referenced FV by section\r
     #\r
     def __GetReferencedFdFvTuple(self, FvObj, RefFdList = [], RefFvList = []):\r
-\r
         for FfsObj in FvObj.FfsList:\r
             if isinstance(FfsObj, FfsFileStatement.FileStatement):\r
                 if FfsObj.FvName is not None and FfsObj.FvName.upper() not in RefFvList:\r
@@ -4678,7 +4626,6 @@ class FdfParser:
     #   @param  FvList      referenced FV by section\r
     #\r
     def __GetReferencedFdFvTupleFromSection(self, FfsFile, FdList = [], FvList = []):\r
-\r
         SectionStack = []\r
         SectionStack.extend(FfsFile.SectionList)\r
         while SectionStack != []:\r