]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Common/RangeExpression.py
BaseTools: Clean up source files
[mirror_edk2.git] / BaseTools / Source / Python / Common / RangeExpression.py
index 014c75b8cebde26893395b38f15203da6e00d662..20581edadf3f5c9c14a1abe113bd1e309a1d614f 100644 (file)
@@ -43,7 +43,7 @@ ERR_IN_OPERAND = 'Macro after IN operator can only be: $(FAMILY), $(ARCH), $(TOO
 \r
 class RangeObject(object):\r
     def __init__(self, start, end, empty = False):\r
 \r
 class RangeObject(object):\r
     def __init__(self, start, end, empty = False):\r
-        \r
+\r
         if int(start) < int(end):\r
             self.start = int(start)\r
             self.end = int(end)\r
         if int(start) < int(end):\r
             self.start = int(start)\r
             self.end = int(end)\r
@@ -55,24 +55,24 @@ class RangeObject(object):
 class RangeContainer(object):\r
     def __init__(self):\r
         self.rangelist = []\r
 class RangeContainer(object):\r
     def __init__(self):\r
         self.rangelist = []\r
-        \r
+\r
     def push(self, RangeObject):\r
         self.rangelist.append(RangeObject)\r
         self.rangelist = sorted(self.rangelist, key = lambda rangeobj : rangeobj.start)\r
         self.merge()\r
     def push(self, RangeObject):\r
         self.rangelist.append(RangeObject)\r
         self.rangelist = sorted(self.rangelist, key = lambda rangeobj : rangeobj.start)\r
         self.merge()\r
-        \r
+\r
     def pop(self):\r
         for item in self.rangelist:\r
             yield item\r
     def pop(self):\r
         for item in self.rangelist:\r
             yield item\r
-   \r
-    def __clean__(self):   \r
+\r
+    def __clean__(self):\r
         newrangelist = []\r
         for rangeobj in self.rangelist:\r
             if rangeobj.empty == True:\r
                 continue\r
             else:\r
                 newrangelist.append(rangeobj)\r
         newrangelist = []\r
         for rangeobj in self.rangelist:\r
             if rangeobj.empty == True:\r
                 continue\r
             else:\r
                 newrangelist.append(rangeobj)\r
-        self.rangelist = newrangelist      \r
+        self.rangelist = newrangelist\r
     def merge(self):\r
         self.__clean__()\r
         for i in range(0, len(self.rangelist) - 1):\r
     def merge(self):\r
         self.__clean__()\r
         for i in range(0, len(self.rangelist) - 1):\r
@@ -80,23 +80,23 @@ class RangeContainer(object):
                 continue\r
             else:\r
                 self.rangelist[i + 1].start = self.rangelist[i].start\r
                 continue\r
             else:\r
                 self.rangelist[i + 1].start = self.rangelist[i].start\r
-                self.rangelist[i + 1].end = self.rangelist[i + 1].end > self.rangelist[i].end and self.rangelist[i + 1].end or self.rangelist[i].end \r
+                self.rangelist[i + 1].end = self.rangelist[i + 1].end > self.rangelist[i].end and self.rangelist[i + 1].end or self.rangelist[i].end\r
                 self.rangelist[i].empty = True\r
 \r
         self.__clean__()\r
                 self.rangelist[i].empty = True\r
 \r
         self.__clean__()\r
-        \r
+\r
     def dump(self):\r
         print("----------------------")\r
         rangelist = ""\r
         for object in self.rangelist:\r
             rangelist = rangelist + "[%d , %d]" % (object.start, object.end)\r
         print(rangelist)\r
     def dump(self):\r
         print("----------------------")\r
         rangelist = ""\r
         for object in self.rangelist:\r
             rangelist = rangelist + "[%d , %d]" % (object.start, object.end)\r
         print(rangelist)\r
-        \r
-        \r
-class XOROperatorObject(object):   \r
-    def __init__(self):     \r
+\r
+\r
+class XOROperatorObject(object):\r
+    def __init__(self):\r
         pass\r
         pass\r
-    def Calculate(self, Operand, DataType, SymbolTable): \r
+    def Calculate(self, Operand, DataType, SymbolTable):\r
         if isinstance(Operand, type('')) and not Operand.isalnum():\r
             Expr = "XOR ..."\r
             raise BadExpression(ERR_SNYTAX % Expr)\r
         if isinstance(Operand, type('')) and not Operand.isalnum():\r
             Expr = "XOR ..."\r
             raise BadExpression(ERR_SNYTAX % Expr)\r
@@ -108,9 +108,9 @@ class XOROperatorObject(object):
         return rangeId\r
 \r
 class LEOperatorObject(object):\r
         return rangeId\r
 \r
 class LEOperatorObject(object):\r
-    def __init__(self):     \r
+    def __init__(self):\r
         pass\r
         pass\r
-    def Calculate(self, Operand, DataType, SymbolTable): \r
+    def Calculate(self, Operand, DataType, SymbolTable):\r
         if isinstance(Operand, type('')) and not Operand.isalnum():\r
             Expr = "LE ..."\r
             raise BadExpression(ERR_SNYTAX % Expr)\r
         if isinstance(Operand, type('')) and not Operand.isalnum():\r
             Expr = "LE ..."\r
             raise BadExpression(ERR_SNYTAX % Expr)\r
@@ -120,22 +120,22 @@ class LEOperatorObject(object):
         SymbolTable[rangeId1] = rangeContainer\r
         return rangeId1\r
 class LTOperatorObject(object):\r
         SymbolTable[rangeId1] = rangeContainer\r
         return rangeId1\r
 class LTOperatorObject(object):\r
-    def __init__(self):     \r
+    def __init__(self):\r
         pass\r
     def Calculate(self, Operand, DataType, SymbolTable):\r
         if isinstance(Operand, type('')) and not Operand.isalnum():\r
         pass\r
     def Calculate(self, Operand, DataType, SymbolTable):\r
         if isinstance(Operand, type('')) and not Operand.isalnum():\r
-            Expr = "LT ..." \r
-            raise BadExpression(ERR_SNYTAX % Expr) \r
+            Expr = "LT ..."\r
+            raise BadExpression(ERR_SNYTAX % Expr)\r
         rangeId1 = str(uuid.uuid1())\r
         rangeContainer = RangeContainer()\r
         rangeContainer.push(RangeObject(0, int(Operand) - 1))\r
         SymbolTable[rangeId1] = rangeContainer\r
         rangeId1 = str(uuid.uuid1())\r
         rangeContainer = RangeContainer()\r
         rangeContainer.push(RangeObject(0, int(Operand) - 1))\r
         SymbolTable[rangeId1] = rangeContainer\r
-        return rangeId1   \r
+        return rangeId1\r
 \r
 class GEOperatorObject(object):\r
 \r
 class GEOperatorObject(object):\r
-    def __init__(self):     \r
+    def __init__(self):\r
         pass\r
         pass\r
-    def Calculate(self, Operand, DataType, SymbolTable): \r
+    def Calculate(self, Operand, DataType, SymbolTable):\r
         if isinstance(Operand, type('')) and not Operand.isalnum():\r
             Expr = "GE ..."\r
             raise BadExpression(ERR_SNYTAX % Expr)\r
         if isinstance(Operand, type('')) and not Operand.isalnum():\r
             Expr = "GE ..."\r
             raise BadExpression(ERR_SNYTAX % Expr)\r
@@ -143,12 +143,12 @@ class GEOperatorObject(object):
         rangeContainer = RangeContainer()\r
         rangeContainer.push(RangeObject(int(Operand), MAX_VAL_TYPE[DataType]))\r
         SymbolTable[rangeId1] = rangeContainer\r
         rangeContainer = RangeContainer()\r
         rangeContainer.push(RangeObject(int(Operand), MAX_VAL_TYPE[DataType]))\r
         SymbolTable[rangeId1] = rangeContainer\r
-        return rangeId1   \r
-      \r
+        return rangeId1\r
+\r
 class GTOperatorObject(object):\r
 class GTOperatorObject(object):\r
-    def __init__(self):     \r
+    def __init__(self):\r
         pass\r
         pass\r
-    def Calculate(self, Operand, DataType, SymbolTable): \r
+    def Calculate(self, Operand, DataType, SymbolTable):\r
         if isinstance(Operand, type('')) and not Operand.isalnum():\r
             Expr = "GT ..."\r
             raise BadExpression(ERR_SNYTAX % Expr)\r
         if isinstance(Operand, type('')) and not Operand.isalnum():\r
             Expr = "GT ..."\r
             raise BadExpression(ERR_SNYTAX % Expr)\r
@@ -156,12 +156,12 @@ class GTOperatorObject(object):
         rangeContainer = RangeContainer()\r
         rangeContainer.push(RangeObject(int(Operand) + 1, MAX_VAL_TYPE[DataType]))\r
         SymbolTable[rangeId1] = rangeContainer\r
         rangeContainer = RangeContainer()\r
         rangeContainer.push(RangeObject(int(Operand) + 1, MAX_VAL_TYPE[DataType]))\r
         SymbolTable[rangeId1] = rangeContainer\r
-        return rangeId1   \r
-    \r
+        return rangeId1\r
+\r
 class EQOperatorObject(object):\r
 class EQOperatorObject(object):\r
-    def __init__(self):     \r
+    def __init__(self):\r
         pass\r
         pass\r
-    def Calculate(self, Operand, DataType, SymbolTable): \r
+    def Calculate(self, Operand, DataType, SymbolTable):\r
         if isinstance(Operand, type('')) and not Operand.isalnum():\r
             Expr = "EQ ..."\r
             raise BadExpression(ERR_SNYTAX % Expr)\r
         if isinstance(Operand, type('')) and not Operand.isalnum():\r
             Expr = "EQ ..."\r
             raise BadExpression(ERR_SNYTAX % Expr)\r
@@ -169,8 +169,8 @@ class EQOperatorObject(object):
         rangeContainer = RangeContainer()\r
         rangeContainer.push(RangeObject(int(Operand), int(Operand)))\r
         SymbolTable[rangeId1] = rangeContainer\r
         rangeContainer = RangeContainer()\r
         rangeContainer.push(RangeObject(int(Operand), int(Operand)))\r
         SymbolTable[rangeId1] = rangeContainer\r
-        return rangeId1   \r
-    \r
+        return rangeId1\r
+\r
 def GetOperatorObject(Operator):\r
     if Operator == '>':\r
         return GTOperatorObject()\r
 def GetOperatorObject(Operator):\r
     if Operator == '>':\r
         return GTOperatorObject()\r
@@ -214,8 +214,8 @@ class RangeExpression(BaseExpression):
             NumberDict[HexNumber] = Number\r
         for HexNum in NumberDict:\r
             expr = expr.replace(HexNum, NumberDict[HexNum])\r
             NumberDict[HexNumber] = Number\r
         for HexNum in NumberDict:\r
             expr = expr.replace(HexNum, NumberDict[HexNum])\r
-        \r
-        rangedict = {}    \r
+\r
+        rangedict = {}\r
         for validrange in self.RangePattern.findall(expr):\r
             start, end = validrange.split(" - ")\r
             start = start.strip()\r
         for validrange in self.RangePattern.findall(expr):\r
             start, end = validrange.split(" - ")\r
             start = start.strip()\r
@@ -225,19 +225,19 @@ class RangeExpression(BaseExpression):
             rangeContainer.push(RangeObject(start, end))\r
             self.operanddict[str(rangeid)] = rangeContainer\r
             rangedict[validrange] = str(rangeid)\r
             rangeContainer.push(RangeObject(start, end))\r
             self.operanddict[str(rangeid)] = rangeContainer\r
             rangedict[validrange] = str(rangeid)\r
-            \r
+\r
         for validrange in rangedict:\r
             expr = expr.replace(validrange, rangedict[validrange])\r
         for validrange in rangedict:\r
             expr = expr.replace(validrange, rangedict[validrange])\r
-         \r
-        self._Expr = expr    \r
+\r
+        self._Expr = expr\r
         return expr\r
         return expr\r
-            \r
-        \r
+\r
+\r
     def EvalRange(self, Operator, Oprand):\r
 \r
         operatorobj = GetOperatorObject(Operator)\r
         return operatorobj.Calculate(Oprand, self.PcdDataType, self.operanddict)\r
     def EvalRange(self, Operator, Oprand):\r
 \r
         operatorobj = GetOperatorObject(Operator)\r
         return operatorobj.Calculate(Oprand, self.PcdDataType, self.operanddict)\r
-        \r
+\r
     def Rangeintersection(self, Oprand1, Oprand2):\r
         rangeContainer1 = self.operanddict[Oprand1]\r
         rangeContainer2 = self.operanddict[Oprand2]\r
     def Rangeintersection(self, Oprand1, Oprand2):\r
         rangeContainer1 = self.operanddict[Oprand1]\r
         rangeContainer2 = self.operanddict[Oprand2]\r
@@ -266,35 +266,35 @@ class RangeExpression(BaseExpression):
                 elif end1 >= end2:\r
                     rangeid = str(uuid.uuid1())\r
                     rangeContainer.push(RangeObject(start2, end2))\r
                 elif end1 >= end2:\r
                     rangeid = str(uuid.uuid1())\r
                     rangeContainer.push(RangeObject(start2, end2))\r
-        \r
+\r
         self.operanddict[rangeid] = rangeContainer\r
 #        rangeContainer.dump()\r
         return rangeid\r
         self.operanddict[rangeid] = rangeContainer\r
 #        rangeContainer.dump()\r
         return rangeid\r
-            \r
+\r
     def Rangecollections(self, Oprand1, Oprand2):\r
 \r
         rangeContainer1 = self.operanddict[Oprand1]\r
         rangeContainer2 = self.operanddict[Oprand2]\r
         rangeContainer = RangeContainer()\r
     def Rangecollections(self, Oprand1, Oprand2):\r
 \r
         rangeContainer1 = self.operanddict[Oprand1]\r
         rangeContainer2 = self.operanddict[Oprand2]\r
         rangeContainer = RangeContainer()\r
-        \r
+\r
         for rangeobj in rangeContainer2.pop():\r
             rangeContainer.push(rangeobj)\r
         for rangeobj in rangeContainer1.pop():\r
             rangeContainer.push(rangeobj)\r
         for rangeobj in rangeContainer2.pop():\r
             rangeContainer.push(rangeobj)\r
         for rangeobj in rangeContainer1.pop():\r
             rangeContainer.push(rangeobj)\r
-        \r
+\r
         rangeid = str(uuid.uuid1())\r
         self.operanddict[rangeid] = rangeContainer\r
         rangeid = str(uuid.uuid1())\r
         self.operanddict[rangeid] = rangeContainer\r
-        \r
+\r
 #        rangeContainer.dump()\r
         return rangeid\r
 #        rangeContainer.dump()\r
         return rangeid\r
-        \r
-            \r
+\r
+\r
     def NegtiveRange(self, Oprand1):\r
         rangeContainer1 = self.operanddict[Oprand1]\r
     def NegtiveRange(self, Oprand1):\r
         rangeContainer1 = self.operanddict[Oprand1]\r
-        \r
-        \r
+\r
+\r
         rangeids = []\r
         rangeids = []\r
-        \r
+\r
         for rangeobj in rangeContainer1.pop():\r
             rangeContainer = RangeContainer()\r
             rangeid = str(uuid.uuid1())\r
         for rangeobj in rangeContainer1.pop():\r
             rangeContainer = RangeContainer()\r
             rangeid = str(uuid.uuid1())\r
@@ -321,13 +321,13 @@ class RangeExpression(BaseExpression):
         re = self.Rangeintersection(rangeids[0], rangeids[1])\r
         for i in range(2, len(rangeids)):\r
             re = self.Rangeintersection(re, rangeids[i])\r
         re = self.Rangeintersection(rangeids[0], rangeids[1])\r
         for i in range(2, len(rangeids)):\r
             re = self.Rangeintersection(re, rangeids[i])\r
-            \r
+\r
         rangeid2 = str(uuid.uuid1())\r
         self.operanddict[rangeid2] = self.operanddict[re]\r
         return rangeid2\r
         rangeid2 = str(uuid.uuid1())\r
         self.operanddict[rangeid2] = self.operanddict[re]\r
         return rangeid2\r
-        \r
+\r
     def Eval(self, Operator, Oprand1, Oprand2 = None):\r
     def Eval(self, Operator, Oprand1, Oprand2 = None):\r
-        \r
+\r
         if Operator in ["!", "NOT", "not"]:\r
             if not gGuidPattern.match(Oprand1.strip()):\r
                 raise BadExpression(ERR_STRING_EXPR % Operator)\r
         if Operator in ["!", "NOT", "not"]:\r
             if not gGuidPattern.match(Oprand1.strip()):\r
                 raise BadExpression(ERR_STRING_EXPR % Operator)\r
@@ -338,7 +338,7 @@ class RangeExpression(BaseExpression):
             elif Operator == 'and' :\r
                 if not gGuidPatternEnd.match(Oprand1.strip()) or not gGuidPatternEnd.match(Oprand2.strip()):\r
                     raise BadExpression(ERR_STRING_EXPR % Operator)\r
             elif Operator == 'and' :\r
                 if not gGuidPatternEnd.match(Oprand1.strip()) or not gGuidPatternEnd.match(Oprand2.strip()):\r
                     raise BadExpression(ERR_STRING_EXPR % Operator)\r
-                return self.Rangeintersection(Oprand1, Oprand2)    \r
+                return self.Rangeintersection(Oprand1, Oprand2)\r
             elif Operator == 'or':\r
                 if not gGuidPatternEnd.match(Oprand1.strip()) or not gGuidPatternEnd.match(Oprand2.strip()):\r
                     raise BadExpression(ERR_STRING_EXPR % Operator)\r
             elif Operator == 'or':\r
                 if not gGuidPatternEnd.match(Oprand1.strip()) or not gGuidPatternEnd.match(Oprand2.strip()):\r
                     raise BadExpression(ERR_STRING_EXPR % Operator)\r
@@ -369,11 +369,11 @@ class RangeExpression(BaseExpression):
         self._Len = len(self._Expr)\r
         self._Token = ''\r
         self._WarnExcept = None\r
         self._Len = len(self._Expr)\r
         self._Token = ''\r
         self._WarnExcept = None\r
-        \r
+\r
 \r
         # Literal token without any conversion\r
         self._LiteralToken = ''\r
 \r
         # Literal token without any conversion\r
         self._LiteralToken = ''\r
-        \r
+\r
         # store the operand object\r
         self.operanddict = {}\r
         # The Pcd max value depends on PcdDataType\r
         # store the operand object\r
         self.operanddict = {}\r
         # The Pcd max value depends on PcdDataType\r
@@ -393,9 +393,9 @@ class RangeExpression(BaseExpression):
         self._Depth = Depth\r
 \r
         self._Expr = self._Expr.strip()\r
         self._Depth = Depth\r
 \r
         self._Expr = self._Expr.strip()\r
-        \r
+\r
         self.preProcessRangeExpr(self._Expr)\r
         self.preProcessRangeExpr(self._Expr)\r
-        \r
+\r
         # check if the expression does not need to evaluate\r
         if RealValue and Depth == 0:\r
             self._Token = self._Expr\r
         # check if the expression does not need to evaluate\r
         if RealValue and Depth == 0:\r
             self._Token = self._Expr\r
@@ -407,12 +407,12 @@ class RangeExpression(BaseExpression):
 \r
         Val = self._OrExpr()\r
         RealVal = Val\r
 \r
         Val = self._OrExpr()\r
         RealVal = Val\r
-        \r
+\r
         RangeIdList = RealVal.split("or")\r
         RangeList = []\r
         for rangeid in RangeIdList:\r
             RangeList.append(self.operanddict[rangeid.strip()])\r
         RangeIdList = RealVal.split("or")\r
         RangeList = []\r
         for rangeid in RangeIdList:\r
             RangeList.append(self.operanddict[rangeid.strip()])\r
-            \r
+\r
         return RangeList\r
 \r
     # Template function to parse binary operators which have same precedence\r
         return RangeList\r
 \r
     # Template function to parse binary operators which have same precedence\r