return MacroDict\r
\r
def __EvaluateConditional(self, Expression, Line, Op = None, Value = None):\r
- FileLineTuple = GetRealFileLine(self.FileName, Line)\r
MacroPcdDict = self.__CollectMacroPcd()\r
if Op == 'eval':\r
try:\r
" it must be defined in a [PcdsFixedAtBuild] or [PcdsFeatureFlag] section"\r
" of the DSC file (%s), and it is currently defined in this section:"\r
" %s, line #: %d." % (Excpt.Pcd, GlobalData.gPlatformOtherPcds['DSCFILE'], Info[0], Info[1]),\r
- *FileLineTuple)\r
+ self.FileName, Line)\r
else:\r
raise Warning("PCD (%s) is not defined in DSC file (%s)" % (Excpt.Pcd, GlobalData.gPlatformOtherPcds['DSCFILE']),\r
- *FileLineTuple)\r
+ self.FileName, Line)\r
else:\r
- raise Warning(str(Excpt), *FileLineTuple)\r
+ raise Warning(str(Excpt), self.FileName, Line)\r
else:\r
if Expression.startswith('$(') and Expression[-1] == ')':\r
Expression = Expression[2:-1] \r
\r
@staticmethod\r
def __Verify(Name, Value, Scope):\r
- if Scope in [TAB_UINT64, TAB_UINT8]:\r
- ValueNumber = 0\r
- try:\r
- ValueNumber = int (Value, 0)\r
- except:\r
- EdkLogger.error("FdfParser", FORMAT_INVALID, "The value is not valid dec or hex number for %s." % Name)\r
- if ValueNumber < 0:\r
- EdkLogger.error("FdfParser", FORMAT_INVALID, "The value can't be set to negative value for %s." % Name)\r
- if Scope == TAB_UINT64:\r
- if ValueNumber >= 0x10000000000000000:\r
- EdkLogger.error("FdfParser", FORMAT_INVALID, "Too large value for %s." % Name)\r
- if Scope == TAB_UINT8:\r
- if ValueNumber >= 0x100:\r
- EdkLogger.error("FdfParser", FORMAT_INVALID, "Too large value for %s." % Name)\r
- return True\r
+ # value verification only applies to numeric values.\r
+ if Scope not in TAB_PCD_NUMERIC_TYPES:\r
+ return\r
+\r
+ ValueNumber = 0\r
+ try:\r
+ ValueNumber = int(Value, 0)\r
+ except:\r
+ EdkLogger.error("FdfParser", FORMAT_INVALID, "The value is not valid dec or hex number for %s." % Name)\r
+ if ValueNumber < 0:\r
+ EdkLogger.error("FdfParser", FORMAT_INVALID, "The value can't be set to negative value for %s." % Name)\r
+ if ValueNumber > MAX_VAL_TYPE[Scope]:\r
+ EdkLogger.error("FdfParser", FORMAT_INVALID, "Too large value for %s." % Name)\r
+ return True\r
\r
## __UndoToken() method\r
#\r