git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9946
6f19259b-4bc3-4df7-8a09-
765794883524
return [Name]\r
\r
Name = Str[0:Index + IndexInRemainingStr].strip()\r
return [Name]\r
\r
Name = Str[0:Index + IndexInRemainingStr].strip()\r
- Value = Str[Index+IndexInRemainingStr+len(Op):].strip()\r
+ Value = Str[Index+IndexInRemainingStr+len(Op):].strip().strip(')')\r
return [Name, Value]\r
\r
TmpStr = Str.rstrip(';').rstrip(')')\r
return [Name, Value]\r
\r
TmpStr = Str.rstrip(';').rstrip(')')\r
TmpStr = Str[0:Index - 1]\r
\r
def SplitPredicateStr(Str):\r
TmpStr = Str[0:Index - 1]\r
\r
def SplitPredicateStr(Str):\r
+ \r
+ Str = Str.lstrip('(')\r
IsFuncCalling = False\r
p = GetFuncDeclPattern()\r
TmpStr = Str.replace('.', '').replace('->', '')\r
IsFuncCalling = False\r
p = GetFuncDeclPattern()\r
TmpStr = Str.replace('.', '').replace('->', '')\r
Type = GetRealType(Type, TypedefDict, TargetType)\r
return Type\r
\r
Type = GetRealType(Type, TypedefDict, TargetType)\r
return Type\r
\r
+def GetTypeFromArray(Type, Var):\r
+ Count = Var.count('[')\r
+ \r
+ while Count > 0:\r
+ Type = Type.strip()\r
+ Type = Type.rstrip('*')\r
+ Count = Count - 1\r
+\r
+ return Type\r
+\r
def CheckFuncLayoutReturnType(FullFileName):\r
ErrorMsgList = []\r
\r
def CheckFuncLayoutReturnType(FullFileName):\r
ErrorMsgList = []\r
\r
FuncReturnTypeDict[PredVarStr] = Type\r
if Type == None:\r
continue\r
FuncReturnTypeDict[PredVarStr] = Type\r
if Type == None:\r
continue\r
+ Type = GetTypeFromArray(Type, PredVarStr)\r
if Type.find('*') != -1:\r
PrintErrorMsg(ERROR_PREDICATE_EXPRESSION_CHECK_COMPARISON_NULL_TYPE, 'Predicate Expression: %s' % Exp, FileTable, Str[2])\r
\r
if Type.find('*') != -1:\r
PrintErrorMsg(ERROR_PREDICATE_EXPRESSION_CHECK_COMPARISON_NULL_TYPE, 'Predicate Expression: %s' % Exp, FileTable, Str[2])\r
\r