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>
This commit is contained in:
committed by
Yonghong Zhu
parent
cf3062901d
commit
b2aeaf573e
@ -201,7 +201,22 @@ def IntToStr(Value):
|
|||||||
|
|
||||||
SupportedInMacroList = ['TARGET', 'TOOL_CHAIN_TAG', 'ARCH', 'FAMILY']
|
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
|
# Logical operator mapping
|
||||||
LogicalOperators = {
|
LogicalOperators = {
|
||||||
'&&' : 'and', '||' : 'or',
|
'&&' : 'and', '||' : 'or',
|
||||||
@ -307,6 +322,7 @@ class ValueExpression(object):
|
|||||||
return Val
|
return Val
|
||||||
|
|
||||||
def __init__(self, Expression, SymbolTable={}):
|
def __init__(self, Expression, SymbolTable={}):
|
||||||
|
super(ValueExpression, self).__init__(self, Expression, SymbolTable)
|
||||||
self._NoProcess = False
|
self._NoProcess = False
|
||||||
if type(Expression) != type(''):
|
if type(Expression) != type(''):
|
||||||
self._Expr = Expression
|
self._Expr = Expression
|
||||||
@ -780,17 +796,6 @@ class ValueExpression(object):
|
|||||||
self._Token = OpToken
|
self._Token = OpToken
|
||||||
return 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):
|
class ValueExpressionEx(ValueExpression):
|
||||||
def __init__(self, PcdValue, PcdType, SymbolTable={}):
|
def __init__(self, PcdValue, PcdType, SymbolTable={}):
|
||||||
ValueExpression.__init__(self, PcdValue, SymbolTable)
|
ValueExpression.__init__(self, PcdValue, SymbolTable)
|
||||||
|
@ -16,7 +16,7 @@ from Common.GlobalData import *
|
|||||||
from CommonDataClass.Exceptions import BadExpression
|
from CommonDataClass.Exceptions import BadExpression
|
||||||
from CommonDataClass.Exceptions import WrnExpression
|
from CommonDataClass.Exceptions import WrnExpression
|
||||||
import uuid
|
import uuid
|
||||||
from Common.Expression import PcdPattern
|
from Common.Expression import PcdPattern,BaseExpression
|
||||||
from Common.DataType import *
|
from Common.DataType import *
|
||||||
|
|
||||||
ERR_STRING_EXPR = 'This operator cannot be used in string expression: [%s].'
|
ERR_STRING_EXPR = 'This operator cannot be used in string expression: [%s].'
|
||||||
@ -186,7 +186,7 @@ def GetOperatorObject(Operator):
|
|||||||
else:
|
else:
|
||||||
raise BadExpression("Bad Operator")
|
raise BadExpression("Bad Operator")
|
||||||
|
|
||||||
class RangeExpression(object):
|
class RangeExpression(BaseExpression):
|
||||||
# Logical operator mapping
|
# Logical operator mapping
|
||||||
LogicalOperators = {
|
LogicalOperators = {
|
||||||
'&&' : 'and', '||' : 'or',
|
'&&' : 'and', '||' : 'or',
|
||||||
@ -347,6 +347,7 @@ class RangeExpression(object):
|
|||||||
|
|
||||||
|
|
||||||
def __init__(self, Expression, PcdDataType, SymbolTable = {}):
|
def __init__(self, Expression, PcdDataType, SymbolTable = {}):
|
||||||
|
super(RangeExpression, self).__init__(self, Expression, PcdDataType, SymbolTable)
|
||||||
self._NoProcess = False
|
self._NoProcess = False
|
||||||
if type(Expression) != type(''):
|
if type(Expression) != type(''):
|
||||||
self._Expr = Expression
|
self._Expr = Expression
|
||||||
@ -693,25 +694,3 @@ class RangeExpression(object):
|
|||||||
raise BadExpression(ERR_OPERATOR_UNSUPPORT % OpToken)
|
raise BadExpression(ERR_OPERATOR_UNSUPPORT % OpToken)
|
||||||
self._Token = OpToken
|
self._Token = OpToken
|
||||||
return 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()
|
|
||||||
|
Reference in New Issue
Block a user