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 +++++++++++++---------- BaseTools/Source/Python/Common/RangeExpression.py | 27 +++------------------ 2 files changed, 20 insertions(+), 36 deletions(-) (limited to 'BaseTools/Source/Python/Common') diff --git a/BaseTools/Source/Python/Common/Expression.py b/BaseTools/Source/Python/Common/Expression.py index 9fec10d..d7903c9 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 4d07bd7..00c0c5e 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() -- cgit v1.1