From d40b2ee60ef161044bcaf05a8b36aa60eac633cc Mon Sep 17 00:00:00 2001 From: lgao4 Date: Wed, 9 Nov 2011 04:32:08 +0000 Subject: =?UTF-8?q?Sync=20BaseTool=20trunk=20(version=20r2397)=20into=20ED?= =?UTF-8?q?KII=20BaseTools.=20=20The=20change=20mainly=20includes=201.=20F?= =?UTF-8?q?ix=20the=20issue=20that=20root=20directory=20of=20disk=20can?= =?UTF-8?q?=E2=80=99t=20be=20used=20as=20WORKSPACE.=202.=20Update=20AutoGe?= =?UTF-8?q?n=20code=20style=20to=20pass=20C++=20compiler.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lgao4 Reviewed-by: jsu1 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12676 6f19259b-4bc3-4df7-8a09-765794883524 --- BaseTools/Source/Python/GenFds/FdfParser.py | 49 +++++++++++++++++------------ 1 file changed, 29 insertions(+), 20 deletions(-) (limited to 'BaseTools/Source/Python/GenFds') diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Source/Python/GenFds/FdfParser.py index e3a018c66c..358215d662 100644 --- a/BaseTools/Source/Python/GenFds/FdfParser.py +++ b/BaseTools/Source/Python/GenFds/FdfParser.py @@ -1118,6 +1118,34 @@ class FdfParser: def SetFileBufferPos(self, Pos): (self.CurrentLineNumber, self.CurrentOffsetWithinLine) = Pos + ## Preprocess() method + # + # Preprocess comment, conditional directive, include directive, replace macro. + # Exception will be raised if syntax error found + # + # @param self The object pointer + # + def Preprocess(self): + self.__StringToList() + self.PreprocessFile() + self.PreprocessIncludeFile() + self.__StringToList() + self.PreprocessFile() + self.PreprocessConditionalStatement() + self.__StringToList() + for Pos in self.__WipeOffArea: + self.__ReplaceFragment(Pos[0], Pos[1]) + self.Profile.FileLinesList = ["".join(list) for list in self.Profile.FileLinesList] + + while self.__GetDefines(): + pass + + Index = 0 + while Index < len(self.Profile.FileLinesList): + FileLineTuple = GetRealFileLine(self.FileName, Index + 1) + self.Profile.FileLinesList[Index] = self.__ReplaceMacros(self.Profile.FileLinesList[Index], FileLineTuple[0], FileLineTuple[1]) + Index += 1 + ## ParseFile() method # # Parse the file profile buffer to extract fd, fv ... information @@ -1128,26 +1156,7 @@ class FdfParser: def ParseFile(self): try: - self.__StringToList() - self.PreprocessFile() - self.PreprocessIncludeFile() - self.__StringToList() - self.PreprocessFile() - self.PreprocessConditionalStatement() - self.__StringToList() - for Pos in self.__WipeOffArea: - self.__ReplaceFragment(Pos[0], Pos[1]) - self.Profile.FileLinesList = ["".join(list) for list in self.Profile.FileLinesList] - - while self.__GetDefines(): - pass - - Index = 0 - while Index < len(self.Profile.FileLinesList): - FileLineTuple = GetRealFileLine(self.FileName, Index + 1) - self.Profile.FileLinesList[Index] = self.__ReplaceMacros(self.Profile.FileLinesList[Index], FileLineTuple[0], FileLineTuple[1]) - Index += 1 - + self.Preprocess() while self.__GetFd(): pass -- cgit v1.2.3