]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Common/Expression.py
1. Update UpdateBuildVersion.py;
[mirror_edk2.git] / BaseTools / Source / Python / Common / Expression.py
index 80fad7563d17909bcdde8d6b6302ec60142b5493..3c8d14e6ce5448582773d0a03c24c7c05d4383fb 100644 (file)
@@ -246,12 +246,14 @@ class ValueExpression(object):
     #   @return: True or False if RealValue is False\r
     #            Evaluated value of string format if RealValue is True\r
     #\r
-    def __call__(self, RealValue=False):\r
+    def __call__(self, RealValue=False, Depth=0):\r
         if self._NoProcess:\r
             return self._Expr\r
 \r
+        self._Depth = Depth\r
+\r
         self._Expr = self._Expr.strip()\r
-        if RealValue:\r
+        if RealValue and Depth == 0:\r
             self._Token = self._Expr\r
             if self.__IsNumberToken():\r
                 return self._Expr\r
@@ -471,7 +473,7 @@ class ValueExpression(object):
                 Ex = BadExpression(ERR_PCD_RESOLVE % self._Token)\r
                 Ex.Pcd = self._Token\r
                 raise Ex\r
-            self._Token = ValueExpression(self._Symb[self._Token], self._Symb)(True)\r
+            self._Token = ValueExpression(self._Symb[self._Token], self._Symb)(True, self._Depth+1)\r
             if type(self._Token) != type(''):\r
                 self._LiteralToken = hex(self._Token)\r
                 return\r
@@ -551,7 +553,7 @@ class ValueExpression(object):
             if Match and not Expr[Match.end():Match.end()+1].isalnum() \\r
                 and Expr[Match.end():Match.end()+1] != '_':\r
                 self._Idx += Match.end()\r
-                self._Token = ValueExpression(GuidStringToGuidStructureString(Expr[0:Match.end()]))(True)\r
+                self._Token = ValueExpression(GuidStringToGuidStructureString(Expr[0:Match.end()]))(True, self._Depth+1)\r
                 return self._Token\r
             elif self.__IsIdChar(Ch):\r
                 return self.__GetIdToken()\r