this class has a fucntion to share between Exception and RangeExpression
change both classes to call this function init in their init

Cc: Liming Gao <[email protected]>
Cc: Yonghong Zhu <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <[email protected]>
---
 BaseTools/Source/Python/Common/Expression.py      | 29 ++++++++++++--------
 BaseTools/Source/Python/Common/RangeExpression.py | 27 ++----------------
 2 files changed, 20 insertions(+), 36 deletions(-)

diff --git a/BaseTools/Source/Python/Common/Expression.py 
b/BaseTools/Source/Python/Common/Expression.py
index 53504c110d6d..b5f76d860773 100644
--- a/BaseTools/Source/Python/Common/Expression.py
+++ b/BaseTools/Source/Python/Common/Expression.py
@@ -201,7 +201,22 @@ def IntToStr(Value):
 
 SupportedInMacroList = ['TARGET', 'TOOL_CHAIN_TAG', 'ARCH', 'FAMILY']
 
-class ValueExpression(object):
+class BaseExpression(object):
+    def __init__(self, *args, **kwargs):
+        super(BaseExpression, self).__init__()
+
+    # Check if current token matches the operators given from parameter
+    def _IsOperator(self, OpSet):
+        Idx = self._Idx
+        self._GetOperator()
+        if self._Token in OpSet:
+            if self._Token in self.LogicalOperators:
+                self._Token = self.LogicalOperators[self._Token]
+            return True
+        self._Idx = Idx
+        return False
+
+class ValueExpression(BaseExpression):
     # Logical operator mapping
     LogicalOperators = {
         '&&' : 'and', '||' : 'or',
@@ -307,6 +322,7 @@ class ValueExpression(object):
         return Val
 
     def __init__(self, Expression, SymbolTable={}):
+        super(ValueExpression, self).__init__(self, Expression, SymbolTable)
         self._NoProcess = False
         if type(Expression) != type(''):
             self._Expr = Expression
@@ -780,17 +796,6 @@ class ValueExpression(object):
         self._Token = OpToken
         return OpToken
 
-    # Check if current token matches the operators given from OpList
-    def _IsOperator(self, OpList):
-        Idx = self._Idx
-        self._GetOperator()
-        if self._Token in OpList:
-            if self._Token in self.LogicalOperators:
-                self._Token = self.LogicalOperators[self._Token]
-            return True
-        self._Idx = Idx
-        return False
-
 class ValueExpressionEx(ValueExpression):
     def __init__(self, PcdValue, PcdType, SymbolTable={}):
         ValueExpression.__init__(self, PcdValue, SymbolTable)
diff --git a/BaseTools/Source/Python/Common/RangeExpression.py 
b/BaseTools/Source/Python/Common/RangeExpression.py
index 35b35e4893bc..a37d0ca70d87 100644
--- a/BaseTools/Source/Python/Common/RangeExpression.py
+++ b/BaseTools/Source/Python/Common/RangeExpression.py
@@ -16,7 +16,7 @@ from Common.GlobalData import *
 from CommonDataClass.Exceptions import BadExpression
 from CommonDataClass.Exceptions import WrnExpression
 import uuid
-from Common.Expression import PcdPattern
+from Common.Expression import PcdPattern,BaseExpression
 from Common.DataType import *
 
 ERR_STRING_EXPR = 'This operator cannot be used in string expression: [%s].'
@@ -186,7 +186,7 @@ def GetOperatorObject(Operator):
     else:
         raise BadExpression("Bad Operator")
 
-class RangeExpression(object):
+class RangeExpression(BaseExpression):
     # Logical operator mapping
     LogicalOperators = {
         '&&' : 'and', '||' : 'or',
@@ -347,6 +347,7 @@ class RangeExpression(object):
 
 
     def __init__(self, Expression, PcdDataType, SymbolTable = {}):
+        super(RangeExpression, self).__init__(self, Expression, PcdDataType, 
SymbolTable)
         self._NoProcess = False
         if type(Expression) != type(''):
             self._Expr = Expression
@@ -693,25 +694,3 @@ class RangeExpression(object):
             raise BadExpression(ERR_OPERATOR_UNSUPPORT % OpToken)
         self._Token = OpToken
         return OpToken
-
-    # Check if current token matches the operators given from OpList
-    def _IsOperator(self, OpList):
-        Idx = self._Idx
-        self._GetOperator()
-        if self._Token in OpList:
-            if self._Token in self.LogicalOperators:
-                self._Token = self.LogicalOperators[self._Token]
-            return True
-        self._Idx = Idx
-        return False
-
-
-
-
-
-
-
-
-
-
-#    UTRangeList()
-- 
2.16.2.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to