]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Common/Expression.py
BaseTools: use set instead of list for a variable to be used with in
[mirror_edk2.git] / BaseTools / Source / Python / Common / Expression.py
index 9a844b0417f203fd6c26a95fe283e81a56a2f1c3..462e8f93f883e3d765ccf4fefac02ff1e849bd6b 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
@@ -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
@@ -845,7 +845,7 @@ class ValueExpressionEx(ValueExpression):
 \r
                         if ItemSize == 0:\r
                             try:\r
-                                tmpValue = int(Item, 16) if Item.upper().startswith('0X') else int(Item, 0)\r
+                                tmpValue = int(Item, 0)\r
                                 if tmpValue > 255:\r
                                     raise BadExpression("Byte  array number %s should less than 0xFF." % Item)\r
                             except BadExpression, Value:\r
@@ -857,7 +857,7 @@ class ValueExpressionEx(ValueExpression):
                             ItemValue = ParseFieldValue(Item)[0]\r
 \r
                         if type(ItemValue) == type(''):\r
-                            ItemValue = int(ItemValue, 16) if ItemValue.startswith('0x') else int(ItemValue)\r
+                            ItemValue = int(ItemValue, 0)\r
 \r
                         TmpValue = (ItemValue << (Size * 8)) | TmpValue\r
                         Size = Size + ItemSize\r