From b2aeaf573ee5454c4dc3227da696286cdba35ac1 Mon Sep 17 00:00:00 2001 From: "Carsey, Jaben" Date: Sat, 28 Apr 2018 06:32:55 +0800 Subject: 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 Cc: Yonghong Zhu Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey Reviewed-by: Yonghong Zhu --- BaseTools/Source/Python/Common/Expression.py | 29 ++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) (limited to 'BaseTools/Source/Python/Common/Expression.py') 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) -- cgit v1.2.3