From 4afd3d042215afe68d00b9ab8c32f063a3a1c03f Mon Sep 17 00:00:00 2001 From: Liming Gao Date: Fri, 23 Aug 2013 02:18:16 +0000 Subject: Sync BaseTool trunk (version r2599) into EDKII BaseTools. Signed-off-by: Liming Gao Reviewed-by: Heshen Chen git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14591 6f19259b-4bc3-4df7-8a09-765794883524 --- BaseTools/Source/Python/Common/Expression.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'BaseTools/Source/Python/Common/Expression.py') diff --git a/BaseTools/Source/Python/Common/Expression.py b/BaseTools/Source/Python/Common/Expression.py index 80fad7563d..3c8d14e6ce 100644 --- a/BaseTools/Source/Python/Common/Expression.py +++ b/BaseTools/Source/Python/Common/Expression.py @@ -246,12 +246,14 @@ class ValueExpression(object): # @return: True or False if RealValue is False # Evaluated value of string format if RealValue is True # - def __call__(self, RealValue=False): + def __call__(self, RealValue=False, Depth=0): if self._NoProcess: return self._Expr + self._Depth = Depth + self._Expr = self._Expr.strip() - if RealValue: + if RealValue and Depth == 0: self._Token = self._Expr if self.__IsNumberToken(): return self._Expr @@ -471,7 +473,7 @@ class ValueExpression(object): Ex = BadExpression(ERR_PCD_RESOLVE % self._Token) Ex.Pcd = self._Token raise Ex - self._Token = ValueExpression(self._Symb[self._Token], self._Symb)(True) + self._Token = ValueExpression(self._Symb[self._Token], self._Symb)(True, self._Depth+1) if type(self._Token) != type(''): self._LiteralToken = hex(self._Token) return @@ -551,7 +553,7 @@ class ValueExpression(object): if Match and not Expr[Match.end():Match.end()+1].isalnum() \ and Expr[Match.end():Match.end()+1] != '_': self._Idx += Match.end() - self._Token = ValueExpression(GuidStringToGuidStructureString(Expr[0:Match.end()]))(True) + self._Token = ValueExpression(GuidStringToGuidStructureString(Expr[0:Match.end()]))(True, self._Depth+1) return self._Token elif self.__IsIdChar(Ch): return self.__GetIdToken() -- cgit v1.2.3