]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/FdfParser.py
Sync BaseTools Branch (version r2149) to EDKII main trunk.
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / FdfParser.py
index 52d32a9e98779009ab97e9c1c77399dd822ffaa0..9e7771dc7de8b2c14cb266426c5400ad1130cb90 100644 (file)
@@ -564,7 +564,17 @@ class FdfParser:
 \r
         self.Rewind()\r
 \r
-    \r
+    def __GetIfListCurrentItemStat(self, IfList):\r
+        if len(IfList) == 0:\r
+            return True\r
+        \r
+        for Item in IfList:\r
+            if Item[1] == False:\r
+                return False\r
+        \r
+        return True\r
+                   \r
+\r
     ## PreprocessConditionalStatement() method\r
     #\r
     #   Preprocess conditional statement.\r
@@ -577,27 +587,28 @@ class FdfParser:
         IfList = []\r
         while self.__GetNextToken():\r
             if self.__Token == 'DEFINE':\r
-                DefineLine = self.CurrentLineNumber - 1\r
-                DefineOffset = self.CurrentOffsetWithinLine - len('DEFINE')\r
-                if not self.__GetNextToken():\r
-                    raise Warning("expected Macro name", self.FileName, self.CurrentLineNumber)\r
-                Macro = self.__Token\r
-                if not self.__IsToken( "="):\r
-                    raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
-\r
-                if not self.__GetNextToken():\r
-                    raise Warning("expected value", self.FileName, self.CurrentLineNumber)\r
-\r
-                if self.__GetStringData():\r
-                    pass\r
-                Value = self.__Token\r
-                if not Macro in InputMacroDict:\r
-                    FileLineTuple = GetRealFileLine(self.FileName, DefineLine + 1)\r
-                    MacProfile = MacroProfile(FileLineTuple[0], FileLineTuple[1])\r
-                    MacProfile.MacroName = Macro\r
-                    MacProfile.MacroValue = Value\r
-                    AllMacroList.append(MacProfile)\r
-                self.__WipeOffArea.append(((DefineLine, DefineOffset), (self.CurrentLineNumber - 1, self.CurrentOffsetWithinLine - 1)))\r
+                if self.__GetIfListCurrentItemStat(IfList):\r
+                    DefineLine = self.CurrentLineNumber - 1\r
+                    DefineOffset = self.CurrentOffsetWithinLine - len('DEFINE')\r
+                    if not self.__GetNextToken():\r
+                        raise Warning("expected Macro name", self.FileName, self.CurrentLineNumber)\r
+                    Macro = self.__Token\r
+                    if not self.__IsToken( "="):\r
+                        raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
+    \r
+                    if not self.__GetNextToken():\r
+                        raise Warning("expected value", self.FileName, self.CurrentLineNumber)\r
+    \r
+                    if self.__GetStringData():\r
+                        pass\r
+                    Value = self.__Token\r
+                    if not Macro in InputMacroDict:\r
+                        FileLineTuple = GetRealFileLine(self.FileName, DefineLine + 1)\r
+                        MacProfile = MacroProfile(FileLineTuple[0], FileLineTuple[1])\r
+                        MacProfile.MacroName = Macro\r
+                        MacProfile.MacroValue = Value\r
+                        AllMacroList.append(MacProfile)\r
+                    self.__WipeOffArea.append(((DefineLine, DefineOffset), (self.CurrentLineNumber - 1, self.CurrentOffsetWithinLine - 1)))\r
 \r
             elif self.__Token in ('!ifdef', '!ifndef', '!if'):\r
                 IfStartPos = (self.CurrentLineNumber - 1, self.CurrentOffsetWithinLine - len(self.__Token))\r