|
From: <yi...@us...> - 2012-07-03 02:53:35
|
Revision: 2544
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2544&view=rev
Author: yingke
Date: 2012-07-03 02:53:29 +0000 (Tue, 03 Jul 2012)
Log Message:
-----------
Support C format GUID and registry format GUID comparison in expression.
Reviewed-by: Su Jikui <jik...@in...>
Signed-off-by: Liu Yingke <yin...@in...>
Modified Paths:
--------------
trunk/BaseTools/Source/Python/Common/Expression.py
Modified: trunk/BaseTools/Source/Python/Common/Expression.py
===================================================================
--- trunk/BaseTools/Source/Python/Common/Expression.py 2012-07-02 22:12:26 UTC (rev 2543)
+++ trunk/BaseTools/Source/Python/Common/Expression.py 2012-07-03 02:53:29 UTC (rev 2544)
@@ -246,12 +246,14 @@
# @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 @@
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 @@
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()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|