diff options
author | Carsey, Jaben <jaben.carsey@intel.com> | 2018-04-28 06:32:55 +0800 |
---|---|---|
committer | Yonghong Zhu <yonghong.zhu@intel.com> | 2018-05-04 13:07:56 +0800 |
commit | b2aeaf573ee5454c4dc3227da696286cdba35ac1 (patch) | |
tree | 0d028ab7b9667bd3e8187304d164f0cd2cc27055 /BaseTools/Source/Python/Common | |
parent | cf3062901d6e8574c6322bb6236d8b004694b8f1 (diff) | |
download | edk2-b2aeaf573ee5454c4dc3227da696286cdba35ac1.tar.gz edk2-b2aeaf573ee5454c4dc3227da696286cdba35ac1.tar.bz2 edk2-b2aeaf573ee5454c4dc3227da696286cdba35ac1.zip |
BaseTools: create base expression class
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 <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
Diffstat (limited to 'BaseTools/Source/Python/Common')
-rw-r--r-- | BaseTools/Source/Python/Common/Expression.py | 29 | ||||
-rw-r--r-- | 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 9fec10d2bb..d7903c98b1 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 4d07bd7523..00c0c5e94d 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()
|