1. Add -m and -s to support only scanning meta-data files or source code files
[people/mcb30/basetools.git] / Source / Python / Common / Parsing.py
index 71cf6d5..0bb0e11 100644 (file)
@@ -380,13 +380,20 @@ def CheckPcdTokenInfo(TokenInfoString, Section, File, LineNo = -1):
 # @retval (TokenInfo[1], TokenInfo[0], List[1], List[2], List[3], Type)\r
 #\r
 def GetPcd(Item, Type, ContainerFile, LineNo = -1):\r
+    TokenGuid, TokenName, Value, MaximumDatumSize, Token = '', '', '', '', ''\r
     List = GetSplitValueList(Item + TAB_VALUE_SPLIT * 2)\r
+    \r
     if len(List) < 4 or len(List) > 6:\r
         RaiseParserError(Item, 'Pcds' + Type, ContainerFile, '<PcdTokenSpaceGuidCName>.<TokenCName>|<Value>[|<Type>|<MaximumDatumSize>]', LineNo)\r
-    CheckPcdTokenInfo(List[0], 'Pcds' + Type, ContainerFile, LineNo)\r
-    TokenInfo = GetSplitValueList(List[0], TAB_SPLIT)\r
+    else:\r
+        Value = List[1]\r
+        MaximumDatumSize = List[2]\r
+        Token = List[3]\r
+        \r
+    if CheckPcdTokenInfo(List[0], 'Pcds' + Type, ContainerFile, LineNo):\r
+        (TokenGuid, TokenName) = GetSplitValueList(List[0], TAB_SPLIT)\r
     \r
-    return (TokenInfo[1], TokenInfo[0], List[1], List[2], List[3], Type)\r
+    return (TokenName, TokenGuid, Value, MaximumDatumSize, Token, Type)\r
 \r
 ## Get FeatureFlagPcd\r
 #\r
@@ -398,14 +405,16 @@ def GetPcd(Item, Type, ContainerFile, LineNo = -1):
 # @retval (TokenInfo[1], TokenInfo[0], List[1], Type)\r
 #\r
 def GetFeatureFlagPcd(Item, Type, ContainerFile, LineNo = -1):\r
+    TokenGuid, TokenName, Value = '', '', ''\r
     List = GetSplitValueList(Item)\r
     if len(List) != 2:\r
         RaiseParserError(Item, 'Pcds' + Type, ContainerFile, '<PcdTokenSpaceGuidCName>.<TokenCName>|TRUE/FALSE', LineNo)\r
-\r
-    CheckPcdTokenInfo(List[0], 'Pcds' + Type, ContainerFile, LineNo)\r
-    TokenInfo = GetSplitValueList(List[0], DataType.TAB_SPLIT)\r
+    else:\r
+        Value = List[1]\r
+    if CheckPcdTokenInfo(List[0], 'Pcds' + Type, ContainerFile, LineNo):\r
+        (TokenGuid, TokenName) = GetSplitValueList(List[0], DataType.TAB_SPLIT)\r
     \r
-    return (TokenInfo[1], TokenInfo[0], List[1], Type)\r
+    return (TokenName, TokenGuid, Value, Type)\r
 \r
 ## Get DynamicDefaultPcd\r
 #\r
@@ -417,14 +426,18 @@ def GetFeatureFlagPcd(Item, Type, ContainerFile, LineNo = -1):
 # @retval (TokenInfo[1], TokenInfo[0], List[1], List[2], List[3], Type)\r
 #\r
 def GetDynamicDefaultPcd(Item, Type, ContainerFile, LineNo = -1):\r
+    TokenGuid, TokenName, Value, DatumTyp, MaxDatumSize = '', '', '', '', ''\r
     List = GetSplitValueList(Item + TAB_VALUE_SPLIT * 2)\r
     if len(List) < 4 or len(List) > 8:\r
         RaiseParserError(Item, 'Pcds' + Type, ContainerFile, '<PcdTokenSpaceGuidCName>.<TokenCName>|<Value>[|<DatumTyp>[|<MaxDatumSize>]]', LineNo)\r
-\r
-    CheckPcdTokenInfo(List[0], 'Pcds' + Type, ContainerFile, LineNo)\r
-    TokenInfo = GetSplitValueList(List[0], TAB_SPLIT)\r
+    else:\r
+        Value = List[1]\r
+        DatumTyp = List[2]\r
+        MaxDatumSize = List[3]\r
+    if CheckPcdTokenInfo(List[0], 'Pcds' + Type, ContainerFile, LineNo):\r
+        (TokenGuid, TokenName) = GetSplitValueList(List[0], TAB_SPLIT)\r
     \r
-    return (TokenInfo[1], TokenInfo[0], List[1], List[2], List[3], Type)\r
+    return (TokenName, TokenGuid, Value, DatumTyp, MaxDatumSize, Type)\r
 \r
 ## Get DynamicHiiPcd\r
 #\r
@@ -436,14 +449,16 @@ def GetDynamicDefaultPcd(Item, Type, ContainerFile, LineNo = -1):
 # @retval (TokenInfo[1], TokenInfo[0], List[1], List[2], List[3], List[4], List[5], Type)\r
 #\r
 def GetDynamicHiiPcd(Item, Type, ContainerFile, LineNo = -1):\r
+    TokenGuid, TokenName, L1, L2, L3, L4, L5 = '', '', '', '', '', '', ''\r
     List = GetSplitValueList(Item + TAB_VALUE_SPLIT * 2)\r
     if len(List) < 6 or len(List) > 8:\r
         RaiseParserError(Item, 'Pcds' + Type, ContainerFile, '<PcdTokenSpaceGuidCName>.<TokenCName>|<String>|<VariableGuidCName>|<VariableOffset>[|<DefaultValue>[|<MaximumDatumSize>]]', LineNo)\r
-\r
-    CheckPcdTokenInfo(List[0], 'Pcds' + Type, ContainerFile, LineNo)\r
-    TokenInfo = GetSplitValueList(List[0], DataType.TAB_SPLIT)\r
+    else:\r
+        L1, L2, L3, L4, L5 = List[1], List[2], List[3], List[4], List[5]\r
+    if CheckPcdTokenInfo(List[0], 'Pcds' + Type, ContainerFile, LineNo):\r
+        (TokenGuid, TokenName) = GetSplitValueList(List[0], DataType.TAB_SPLIT)\r
     \r
-    return (TokenInfo[1], TokenInfo[0], List[1], List[2], List[3], List[4], List[5], Type)\r
+    return (TokenName, TokenGuid, L1, L2, L3, L4, L5, Type)\r
 \r
 ## Get DynamicVpdPcd\r
 #\r
@@ -455,14 +470,16 @@ def GetDynamicHiiPcd(Item, Type, ContainerFile, LineNo = -1):
 # @retval (TokenInfo[1], TokenInfo[0], List[1], List[2], Type)\r
 #\r
 def GetDynamicVpdPcd(Item, Type, ContainerFile, LineNo = -1):\r
+    TokenGuid, TokenName, L1, L2 = '', '', '', ''\r
     List = GetSplitValueList(Item + TAB_VALUE_SPLIT)\r
     if len(List) < 3 or len(List) > 4:\r
         RaiseParserError(Item, 'Pcds' + Type, ContainerFile, '<PcdTokenSpaceGuidCName>.<TokenCName>|<VpdOffset>[|<MaximumDatumSize>]', LineNo)\r
-\r
-    CheckPcdTokenInfo(List[0], 'Pcds' + Type, ContainerFile, LineNo)\r
-    TokenInfo = GetSplitValueList(List[0], DataType.TAB_SPLIT)\r
+    else:\r
+        L1, L2 = List[1], List[2]\r
+    if CheckPcdTokenInfo(List[0], 'Pcds' + Type, ContainerFile, LineNo):\r
+        (TokenGuid, TokenName) = GetSplitValueList(List[0], DataType.TAB_SPLIT)\r
     \r
-    return (TokenInfo[1], TokenInfo[0], List[1], List[2], Type)\r
+    return (TokenName, TokenGuid, L1, L2, Type)\r
 \r
 ## GetComponent\r
 #\r
@@ -772,7 +789,8 @@ def GetPackage(Item, ContainerFile, FileRelativePath, LineNo = -1):
 #\r
 def GetPcdOfInf(Item, Type, File, LineNo):\r
     Format = '<TokenSpaceGuidCName>.<PcdCName>[|<Value>]'\r
-    InfType = ''\r
+    TokenGuid, TokenName, Value, InfType = '', '', '', ''\r
+    \r
     if Type == TAB_PCDS_FIXED_AT_BUILD:\r
         InfType = TAB_INF_FIXED_PCD\r
     elif Type == TAB_PCDS_PATCHABLE_IN_MODULE:\r
@@ -786,11 +804,16 @@ def GetPcdOfInf(Item, Type, File, LineNo):
     List = GetSplitValueList(Item + DataType.TAB_VALUE_SPLIT)\r
     if len(List) < 2 or len(List) > 3:\r
         RaiseParserError(Item, InfType, File, Format, LineNo)\r
+    else:\r
+        Value = List[1]\r
     TokenInfo = GetSplitValueList(List[0], DataType.TAB_SPLIT)\r
     if len(TokenInfo) != 2:\r
         RaiseParserError(Item, InfType, File, Format, LineNo)\r
+    else:\r
+        TokenGuid = TokenInfo[0]\r
+        TokenName = TokenInfo[1]\r
 \r
-    return (TokenInfo[0], TokenInfo[1], List[1], Type)\r
+    return (TokenGuid, TokenName, Value, Type)\r
 \r
     \r
 ## Get Pcd Values of Dec\r
@@ -800,14 +823,22 @@ def GetPcdOfInf(Item, Type, File, LineNo):
 #\r
 def GetPcdOfDec(Item, Type, File, LineNo = -1):\r
     Format = '<TokenSpaceGuidCName>.<PcdCName>|<Value>|<DatumType>|<Token>'\r
+    TokenGuid, TokenName, Value, DatumType, Token = '', '', '', '', ''\r
     List = GetSplitValueList(Item)\r
     if len(List) != 4:\r
         RaiseParserError(Item, 'Pcds' + Type, File, Format, LineNo)\r
+    else:\r
+        Value = List[1]\r
+        DatumType = List[2]\r
+        Token = List[3]\r
     TokenInfo = GetSplitValueList(List[0], DataType.TAB_SPLIT)\r
     if len(TokenInfo) != 2:\r
         RaiseParserError(Item, 'Pcds' + Type, File, Format, LineNo)\r
+    else:\r
+        TokenGuid = TokenInfo[0]\r
+        TokenName = TokenInfo[1]\r
     \r
-    return (TokenInfo[0], TokenInfo[1], List[1], List[2], List[3], Type)\r
+    return (TokenGuid, TokenName, Value, DatumType, Token, Type)\r
 \r
 ## Parse DEFINE statement\r
 #\r