elif Item.startswith('UINT64'):\r
ItemSize = 8\r
ValueType = 'UINT64'\r
- elif Item.startswith('"') or Item.startswith("'") or Item.startswith('L'):\r
+ elif Item[0] in ['"',"'",'L']:\r
ItemSize = 0\r
ValueType = 'VOID*'\r
else:\r
\r
if ItemSize == 0:\r
try:\r
- tmpValue = int(Item, 16) if Item.upper().startswith('0X') else int(Item, 0)\r
+ tmpValue = int(Item, 0)\r
if tmpValue > 255:\r
raise BadExpression("Byte array number %s should less than 0xFF." % Item)\r
except BadExpression, Value:\r
ItemValue = ParseFieldValue(Item)[0]\r
\r
if type(ItemValue) == type(''):\r
- ItemValue = int(ItemValue, 16) if ItemValue.startswith('0x') else int(ItemValue)\r
+ ItemValue = int(ItemValue, 0)\r
\r
TmpValue = (ItemValue << (Size * 8)) | TmpValue\r
Size = Size + ItemSize\r
OffsetList = _ReOffset.findall(Item)\r
except:\r
pass\r
+ # replace each offset, except errors\r
for Offset in OffsetList:\r
- if Offset in LabelDict.keys():\r
- Re = re.compile('OFFSET_OF\(%s\)' % Offset)\r
- Item = Re.sub(LabelDict[Offset], Item)\r
- else:\r
+ try:\r
+ Item = Item.replace('OFFSET_OF({})'.format(Offset),LabelDict[Offset])\r
+ except:\r
raise BadExpression('%s not defined' % Offset)\r
+\r
NewPcdValueList.append(Item)\r
\r
AllPcdValueList = []\r