From 6780eef1f9ed0af24795708c3be7adafd7113691 Mon Sep 17 00:00:00 2001 From: lgao4 Date: Mon, 15 Nov 2010 02:51:34 +0000 Subject: Sync EDKII BaseTools to BaseTools project r2093. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11057 6f19259b-4bc3-4df7-8a09-765794883524 --- BaseTools/Source/Python/GenFds/FdfParser.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'BaseTools/Source/Python/GenFds/FdfParser.py') diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Source/Python/GenFds/FdfParser.py index d11af6c134..52d32a9e98 100644 --- a/BaseTools/Source/Python/GenFds/FdfParser.py +++ b/BaseTools/Source/Python/GenFds/FdfParser.py @@ -565,9 +565,9 @@ class FdfParser: self.Rewind() - ## PreprocessIncludeFile() method + ## PreprocessConditionalStatement() method # - # Preprocess file contents, replace !include statements with file contents. + # Preprocess conditional statement. # In the end, rewind the file buffer pointer to the beginning # # @param self The object pointer @@ -1264,6 +1264,12 @@ class FdfParser: raise Warning("expected ']'", self.FileName, self.CurrentLineNumber) while self.__GetNextWord(): + # handle the SET statement + if self.__Token == 'SET': + self.__UndoToken() + self.__GetSetStatement(None) + continue + Macro = self.__Token if not self.__IsToken("="): @@ -1489,7 +1495,7 @@ class FdfParser: for Item in Obj.BlockSizeList: if Item[0] == None or Item[1] == None: - raise Warning("expected block statement for Fd Section", self.FileName, self.CurrentLineNumber) + raise Warning("expected block statement", self.FileName, self.CurrentLineNumber) ## __GetBlockStatement() method # @@ -1508,7 +1514,7 @@ class FdfParser: raise Warning("expected '='", self.FileName, self.CurrentLineNumber) if not self.__GetNextHexNumber() and not self.__GetNextDecimalNumber(): - raise Warning("expected Hex block size", self.FileName, self.CurrentLineNumber) + raise Warning("expected Hex or Integer block size", self.FileName, self.CurrentLineNumber) BlockSize = self.__Token BlockSizePcd = None @@ -1609,7 +1615,8 @@ class FdfParser: raise Warning("expected '}'", self.FileName, self.CurrentLineNumber) Value += self.__SkippedChars - Obj.SetVarDict[PcdPair] = Value + if Obj: + Obj.SetVarDict[PcdPair] = Value self.Profile.PcdDict[PcdPair] = Value return True @@ -1904,7 +1911,8 @@ class FdfParser: self.__GetAddressStatements(FvObj) - self.__GetBlockStatement(FvObj) + while self.__GetBlockStatement(FvObj): + pass self.__GetSetStatements(FvObj) -- cgit v1.2.3