def Start(self):\r
NmakeLine = ''\r
Content = ''\r
+ Usage = ''\r
try:\r
Content = open(str(self.MetaFile), 'r').readlines()\r
except:\r
IsFindBlockComment = False\r
\r
for Index in range(0, len(Content)):\r
+ if self._SectionType in [MODEL_EFI_GUID,\r
+ MODEL_EFI_PROTOCOL,\r
+ MODEL_EFI_PPI,\r
+ MODEL_PCD_FIXED_AT_BUILD,\r
+ MODEL_PCD_PATCHABLE_IN_MODULE,\r
+ MODEL_PCD_FEATURE_FLAG,\r
+ MODEL_PCD_DYNAMIC_EX,\r
+ MODEL_PCD_DYNAMIC]:\r
+ Line = Content[Index].strip()\r
+ if Line.startswith(TAB_SPECIAL_COMMENT):\r
+ Usage += ' ' + Line[Line.find(TAB_SPECIAL_COMMENT):]\r
+ continue\r
+ elif Line.startswith(TAB_COMMENT_SPLIT):\r
+ continue\r
+ elif Line.find(TAB_COMMENT_SPLIT) > 0:\r
+ Usage += ' ' + Line[Line.find(TAB_COMMENT_SPLIT):]\r
+ Line = Line[:Line.find(TAB_COMMENT_SPLIT)]\r
+ else:\r
# skip empty, commented, block commented lines\r
- Line = CleanString(Content[Index], AllowCppStyleComment=True)\r
+ Line = CleanString(Content[Index], AllowCppStyleComment=True)\r
+ Usage = ''\r
NextLine = ''\r
if Index + 1 < len(Content):\r
NextLine = CleanString(Content[Index + 1])\r
# LineBegin=-1, ColumnBegin=-1, LineEnd=-1, ColumnEnd=-1, Enabled=-1\r
#\r
self._ValueList[0] = self._ValueList[0].replace('/', '\\')\r
+ Usage = Usage.strip()\r
for Arch, Platform in self._Scope:\r
self._Store(self._SectionType,\r
self._ValueList[0],\r
-1,\r
self._LineIndex+1,\r
-1,\r
- 0\r
+ 0,\r
+ Usage\r
)\r
+ Usage = ''\r
if IsFindBlockComment:\r
EdkLogger.error("Parser", FORMAT_INVALID, "Open block comments (starting with /*) are expected to end with */", \r
File=self.MetaFile)\r
TAB_ELSE_IF.upper() : MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSEIF,\r
TAB_ELSE.upper() : MODEL_META_DATA_CONDITIONAL_STATEMENT_ELSE,\r
TAB_END_IF.upper() : MODEL_META_DATA_CONDITIONAL_STATEMENT_ENDIF,\r
+ TAB_ERROR.upper() : MODEL_META_DATA_CONDITIONAL_STATEMENT_ERROR,\r
}\r
\r
# Valid names in define section\r
MODEL_META_DATA_BUILD_OPTION : self.__ProcessBuildOption,\r
MODEL_UNKNOWN : self._Skip,\r
MODEL_META_DATA_USER_EXTENSION : self._Skip,\r
+ MODEL_META_DATA_CONDITIONAL_STATEMENT_ERROR : self._Skip,\r
}\r
\r
self._RawTable = self._Table\r
# Only catch expression evaluation error here. We need to report\r
# the precise number of line on which the error occurred\r
#\r
- EdkLogger.error('Parser', FORMAT_INVALID, "Invalid expression: %s" % str(Excpt),\r
- File=self._FileWithError, ExtraData=' '.join(self._ValueList), \r
- Line=self._LineIndex+1)\r
+ pass\r
+# EdkLogger.error('Parser', FORMAT_INVALID, "Invalid expression: %s" % str(Excpt),\r
+# File=self._FileWithError, ExtraData=' '.join(self._ValueList),\r
+# Line=self._LineIndex+1)\r
except MacroException, Excpt:\r
EdkLogger.error('Parser', FORMAT_INVALID, str(Excpt),\r
File=self._FileWithError, ExtraData=' '.join(self._ValueList), \r
# Load Fdf file if filename is not None\r
#\r
if Filename != None:\r
- self.LoadFdfFile(Filename)\r
+ try:\r
+ self.LoadFdfFile(Filename)\r
+ except Exception:\r
+ pass\r
\r
#\r
# Insert a FDF file record into database\r