## Import Modules\r
#\r
from __future__ import print_function\r
+from __future__ import absolute_import\r
from Common.GlobalData import *\r
from CommonDataClass.Exceptions import BadExpression\r
from CommonDataClass.Exceptions import WrnExpression\r
-from Misc import GuidStringToGuidStructureString, ParseFieldValue, IsFieldValueAnArray\r
+from .Misc import GuidStringToGuidStructureString, ParseFieldValue\r
import Common.EdkLogger as EdkLogger\r
import copy\r
from Common.DataType import *\r
ERR_STRING_TOKEN = 'Bad string token: [%s].'\r
ERR_MACRO_TOKEN = 'Bad macro token: [%s].'\r
ERR_EMPTY_TOKEN = 'Empty token is not allowed.'\r
-ERR_PCD_RESOLVE = 'PCD token cannot be resolved: [%s].'\r
+ERR_PCD_RESOLVE = 'The PCD should be FeatureFlag type or FixedAtBuild type: [%s].'\r
ERR_VALID_TOKEN = 'No more valid token found from rest of string: [%s].'\r
ERR_EXPR_TYPE = 'Different types found in expression.'\r
ERR_OPERATOR_UNSUPPORT = 'Unsupported operator: [%s]'\r
InputValue = 'L"' + PcdValue[1:] + '"'\r
else:\r
InputValue = PcdValue\r
- if IsFieldValueAnArray(InputValue):\r
- try:\r
- PcdValue = ValueExpressionEx(InputValue, TAB_VOID, GuidDict)(True)\r
- except:\r
- pass\r
+ try:\r
+ PcdValue = ValueExpressionEx(InputValue, TAB_VOID, GuidDict)(True)\r
+ except:\r
+ pass\r
+\r
return PcdValue\r
\r
## ReplaceExprMacro\r
OpToken = ''\r
for Ch in Expr:\r
if Ch in self.NonLetterOpLst:\r
- if '!' == Ch and OpToken:\r
+ if Ch in ['!', '~'] and OpToken:\r
break\r
self._Idx += 1\r
OpToken += Ch\r