BaseTools: change hex parsing to use built in
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / FdfParser.py
index b3f83c072a9a3aeaaa72108ef9f43ce5a81dc651..4183f318b75b9369e0c7743e58b44940ec5ab2e1 100644 (file)
@@ -42,6 +42,7 @@ import ComponentStatement
 import OptionRom\r
 import OptRomInfStatement\r
 import OptRomFileStatement\r
+import string\r
 \r
 from GenFdsGlobalVariable import GenFdsGlobalVariable\r
 from Common.BuildToolError import *\r
@@ -1192,32 +1193,13 @@ class FdfParser:
 \r
         self.__GetOneChar()\r
 \r
-    ## __HexDigit() method\r
-    #\r
-    #   Whether char input is a Hex data bit\r
-    #\r
-    #   @param  self        The object pointer\r
-    #   @param  TempChar    The char to test\r
-    #   @retval True        The char is a Hex data bit\r
-    #   @retval False       The char is NOT a Hex data bit\r
-    #\r
-    def __HexDigit(self, TempChar):\r
-        if (TempChar >= 'a' and TempChar <= 'f') or (TempChar >= 'A' and TempChar <= 'F') \\r
-                or (TempChar >= '0' and TempChar <= '9'):\r
-                    return True\r
-        else:\r
-            return False\r
-\r
     def __IsHex(self, HexStr):\r
         if not HexStr.upper().startswith("0X"):\r
             return False\r
         if len(self.__Token) <= 2:\r
             return False\r
-        charList = [c for c in HexStr[2 : ] if not self.__HexDigit( c)]\r
-        if len(charList) == 0:\r
-            return True\r
-        else:\r
-            return False\r
+        return True if all(x in string.hexdigits for x in HexStr[2:]) else False\r
+\r
     ## __GetNextHexNumber() method\r
     #\r
     #   Get next HEX data before a seperator\r
@@ -4294,7 +4276,7 @@ class FdfParser:
             raise Warning("expected Component type", self.FileName, self.CurrentLineNumber)\r
         if self.__Token not in ("FIT", "PAL_B", "PAL_A", "OEM"):\r
             if not self.__Token.startswith("0x") or len(self.__Token) < 3 or len(self.__Token) > 4 or \\r
-                not self.__HexDigit(self.__Token[2]) or not self.__HexDigit(self.__Token[-1]):\r
+                not self.__Token[2] in string.hexdigits or not self.__Token[-1] in string.hexdigits:\r
                 raise Warning("Unknown location type '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)\r
         CompStatementObj.CompType = self.__Token\r
 \r