BaseTools: change the Division Operator
PEP 238 -- Changing the Division Operator x/y to return a reasonable approximation of the mathematical result of the division ("true division") x//y to return the floor ("floor division") Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com> Tested-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Bob Feng <bob.c.feng@intel.com>
This commit is contained in:
@ -439,6 +439,13 @@ class ValueExpression(BaseExpression):
|
||||
else:
|
||||
Val = Val3
|
||||
continue
|
||||
#
|
||||
# PEP 238 -- Changing the Division Operator
|
||||
# x/y to return a reasonable approximation of the mathematical result of the division ("true division")
|
||||
# x//y to return the floor ("floor division")
|
||||
#
|
||||
if Op == '/':
|
||||
Op = '//'
|
||||
try:
|
||||
Val = self.Eval(Op, Val, EvalFunc())
|
||||
except WrnExpression as Warn:
|
||||
@ -912,7 +919,7 @@ class ValueExpressionEx(ValueExpression):
|
||||
if TmpValue.bit_length() == 0:
|
||||
PcdValue = '{0x00}'
|
||||
else:
|
||||
for I in range((TmpValue.bit_length() + 7) / 8):
|
||||
for I in range((TmpValue.bit_length() + 7) // 8):
|
||||
TmpList.append('0x%02x' % ((TmpValue >> I * 8) & 0xff))
|
||||
PcdValue = '{' + ', '.join(TmpList) + '}'
|
||||
except:
|
||||
|
@ -1025,7 +1025,7 @@ def ParseFieldValue (Value):
|
||||
if "{CODE(" in Value:
|
||||
return Value, len(Value.split(","))
|
||||
if isinstance(Value, type(0)):
|
||||
return Value, (Value.bit_length() + 7) / 8
|
||||
return Value, (Value.bit_length() + 7) // 8
|
||||
if not isinstance(Value, type('')):
|
||||
raise BadExpression('Type %s is %s' %(Value, type(Value)))
|
||||
Value = Value.strip()
|
||||
@ -1146,12 +1146,12 @@ def ParseFieldValue (Value):
|
||||
raise BadExpression("invalid hex value: %s" % Value)
|
||||
if Value == 0:
|
||||
return 0, 1
|
||||
return Value, (Value.bit_length() + 7) / 8
|
||||
return Value, (Value.bit_length() + 7) // 8
|
||||
if Value[0].isdigit():
|
||||
Value = int(Value, 10)
|
||||
if Value == 0:
|
||||
return 0, 1
|
||||
return Value, (Value.bit_length() + 7) / 8
|
||||
return Value, (Value.bit_length() + 7) // 8
|
||||
if Value.lower() == 'true':
|
||||
return 1, 1
|
||||
if Value.lower() == 'false':
|
||||
|
Reference in New Issue
Block a user