]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Common/Expression.py
BaseTools: refactor and remove un-needed use of .keys() on dictionaries
[mirror_edk2.git] / BaseTools / Source / Python / Common / Expression.py
index 8e1a9866e1eadd3b8de664450861b0822a4f01fc..9a3415ccaabe03bd29749f33a2895f88a91729a8 100644 (file)
@@ -43,6 +43,7 @@ ERR_IN_OPERAND          = 'Macro after IN operator can only be: $(FAMILY), $(ARC
 __ValidString = re.compile(r'[_a-zA-Z][_0-9a-zA-Z]*$')\r
 _ReLabel = re.compile('LABEL\((\w+)\)')\r
 _ReOffset = re.compile('OFFSET_OF\((\w+)\)')\r
+PcdPattern = re.compile(r'[_a-zA-Z][0-9A-Za-z_]*\.[_a-zA-Z][0-9A-Za-z_]*$')\r
 \r
 ## SplitString\r
 #  Split string to list according double quote\r
@@ -150,7 +151,7 @@ def ReplaceExprMacro(String, Macros, ExceptionList = None):
             InQuote = True\r
         MacroStartPos = String.find('$(')\r
         if MacroStartPos < 0:\r
-            for Pcd in gPlatformPcds.keys():\r
+            for Pcd in gPlatformPcds:\r
                 if Pcd in String:\r
                     if Pcd not in gConditionalPcds:\r
                         gConditionalPcds.append(Pcd)\r
@@ -214,7 +215,6 @@ class ValueExpression(object):
 \r
     NonLetterOpLst = ['+', '-', '*', '/', '%', '&', '|', '^', '~', '<<', '>>', '!', '=', '>', '<', '?', ':']\r
 \r
-    PcdPattern = re.compile(r'[_a-zA-Z][0-9A-Za-z_]*\.[_a-zA-Z][0-9A-Za-z_]*$')\r
 \r
     SymbolPattern = re.compile("("\r
                                  "\$\([A-Z][A-Z0-9_]*\)|\$\(\w+\.\w+\)|\w+\.\w+|"\r
@@ -616,7 +616,7 @@ class ValueExpression(object):
             raise BadExpression(ERR_EMPTY_TOKEN)\r
 \r
         # PCD token\r
-        if self.PcdPattern.match(self._Token):\r
+        if PcdPattern.match(self._Token):\r
             if self._Token not in self._Symb:\r
                 Ex = BadExpression(ERR_PCD_RESOLVE % self._Token)\r
                 Ex.Pcd = self._Token\r
@@ -835,7 +835,7 @@ class ValueExpressionEx(ValueExpression):
                         elif Item.startswith('UINT64'):\r
                             ItemSize = 8\r
                             ValueType = 'UINT64'\r
-                        elif Item.startswith('"') or Item.startswith("'") or Item.startswith('L'):\r
+                        elif Item[0] in ['"',"'",'L']:\r
                             ItemSize = 0\r
                             ValueType = 'VOID*'\r
                         else:\r
@@ -908,7 +908,7 @@ class ValueExpressionEx(ValueExpression):
                                 for Label in LabelList:\r
                                     if not IsValidCName(Label):\r
                                         raise BadExpression('%s is not a valid c variable name' % Label)\r
-                                    if Label not in LabelDict.keys():\r
+                                    if Label not in LabelDict:\r
                                         LabelDict[Label] = str(LabelOffset)\r
                             if Item.startswith('UINT8'):\r
                                 LabelOffset = LabelOffset + 1\r