]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/UPT/Object/Parser/InfProtocolObject.py
BaseTools: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / BaseTools / Source / Python / UPT / Object / Parser / InfProtocolObject.py
index eb03095d6fecd4f994ea66b0d2bf917b065304b4..80bfca60775481be05b57d327d184ce0f2ff46ef 100644 (file)
@@ -1,16 +1,10 @@
 ## @file\r
-# This file is used to define class objects of INF file [Protocols] section. \r
-# It will consumed by InfParser. \r
+# This file is used to define class objects of INF file [Protocols] section.\r
+# It will consumed by InfParser.\r
 #\r
-# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
 #\r
-# This program and the accompanying materials are licensed and made available \r
-# under the terms and conditions of the BSD License which accompanies this \r
-# distribution. The full text of the license may be found at \r
-# http://opensource.org/licenses/bsd-license.php\r
-#\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 '''\r
 InfProtocolObject\r
@@ -18,8 +12,8 @@ InfProtocolObject
 \r
 from Library.ParserValidate import IsValidCVariableName\r
 from Library.CommentParsing import ParseComment\r
-from Library.ExpressionValidate import IsValidFeatureFlagExp \r
-                               \r
+from Library.ExpressionValidate import IsValidFeatureFlagExp\r
+\r
 from Library.Misc import Sdict\r
 \r
 from Object.Parser.InfMisc import ErrorInInf\r
@@ -40,20 +34,20 @@ def ParseProtocolComment(CommentsList, InfProtocolItemObj):
         CommentItemNotify, \\r
         CommentItemString, \\r
         CommentItemHelpText = \\r
-                ParseComment(CommentItem, \r
-                             DT.PROTOCOL_USAGE_TOKENS, \r
-                             DT.PROTOCOL_NOTIFY_TOKENS, \r
-                             ['PROTOCOL'], \r
+                ParseComment(CommentItem,\r
+                             DT.PROTOCOL_USAGE_TOKENS,\r
+                             DT.PROTOCOL_NOTIFY_TOKENS,\r
+                             ['PROTOCOL'],\r
                              False)\r
-        \r
+\r
         if CommentItemString:\r
             pass\r
-        \r
+\r
         if CommentItemHelpText is None:\r
             CommentItemHelpText = ''\r
             if Count == len(CommentsList) and CommentItemUsage == CommentItemNotify == DT.ITEM_UNDEFINED:\r
                 CommentItemHelpText = DT.END_OF_LINE\r
-                                        \r
+\r
         if Count == len(CommentsList):\r
             if BlockFlag == 1 or BlockFlag == 2:\r
                 if CommentItemUsage == CommentItemNotify == DT.ITEM_UNDEFINED:\r
@@ -61,9 +55,9 @@ def ParseProtocolComment(CommentsList, InfProtocolItemObj):
                 else:\r
                     BlockFlag = 3\r
             elif BlockFlag == -1:\r
-                BlockFlag = 4  \r
-        \r
-        if BlockFlag == -1 or BlockFlag == 1 or BlockFlag == 2:                                   \r
+                BlockFlag = 4\r
+\r
+        if BlockFlag == -1 or BlockFlag == 1 or BlockFlag == 2:\r
             if CommentItemUsage == CommentItemNotify == DT.ITEM_UNDEFINED:\r
                 if BlockFlag == -1:\r
                     BlockFlag = 1\r
@@ -74,36 +68,36 @@ def ParseProtocolComment(CommentsList, InfProtocolItemObj):
                     BlockFlag = 3\r
                 elif BlockFlag == -1:\r
                     BlockFlag = 4\r
-                                                                          \r
+\r
         #\r
         # Combine two comment line if they are generic comment\r
-        #   \r
+        #\r
         if CommentItemUsage == CommentItemNotify == PreUsage == PreNotify == DT.ITEM_UNDEFINED:\r
             CommentItemHelpText = PreHelpText + DT.END_OF_LINE + CommentItemHelpText\r
-            \r
+\r
             PreHelpText = CommentItemHelpText\r
-            \r
-        if BlockFlag == 4:     \r
+\r
+        if BlockFlag == 4:\r
             CommentItemIns = InfProtocolItemCommentContent()\r
             CommentItemIns.SetUsageItem(CommentItemUsage)\r
             CommentItemIns.SetNotify(CommentItemNotify)\r
             CommentItemIns.SetHelpStringItem(CommentItemHelpText)\r
             CommentInsList.append(CommentItemIns)\r
-            \r
+\r
             BlockFlag = -1\r
             PreUsage = None\r
             PreNotify = None\r
             PreHelpText = ''\r
-            \r
+\r
         elif BlockFlag == 3:\r
             #\r
             # Add previous help string\r
-            # \r
+            #\r
             CommentItemIns = InfProtocolItemCommentContent()\r
             CommentItemIns.SetUsageItem(DT.ITEM_UNDEFINED)\r
             CommentItemIns.SetNotify(DT.ITEM_UNDEFINED)\r
             if PreHelpText == '' or PreHelpText.endswith(DT.END_OF_LINE):\r
-                PreHelpText += DT.END_OF_LINE            \r
+                PreHelpText += DT.END_OF_LINE\r
             CommentItemIns.SetHelpStringItem(PreHelpText)\r
             CommentInsList.append(CommentItemIns)\r
             #\r
@@ -114,25 +108,25 @@ def ParseProtocolComment(CommentsList, InfProtocolItemObj):
             CommentItemIns.SetNotify(CommentItemNotify)\r
             CommentItemIns.SetHelpStringItem(CommentItemHelpText)\r
             CommentInsList.append(CommentItemIns)\r
-            \r
+\r
             BlockFlag = -1\r
             PreUsage = None\r
             PreNotify = None\r
-            PreHelpText = ''    \r
-                                                                            \r
+            PreHelpText = ''\r
+\r
         else:\r
             PreUsage = CommentItemUsage\r
             PreNotify = CommentItemNotify\r
             PreHelpText = CommentItemHelpText\r
-            \r
+\r
     InfProtocolItemObj.SetCommentList(CommentInsList)\r
-    \r
+\r
     return InfProtocolItemObj\r
 \r
 class InfProtocolItemCommentContent():\r
     def __init__(self):\r
         #\r
-        # ## SOMETIMES_CONSUMES ## HelpString \r
+        # ## SOMETIMES_CONSUMES ## HelpString\r
         #\r
         self.UsageItem = ''\r
         #\r
@@ -141,44 +135,44 @@ class InfProtocolItemCommentContent():
         self.HelpStringItem = ''\r
         self.Notify = ''\r
         self.CommentList = []\r
-                \r
+\r
     def SetUsageItem(self, UsageItem):\r
         self.UsageItem = UsageItem\r
     def GetUsageItem(self):\r
         return self.UsageItem\r
-    \r
+\r
     def SetNotify(self, Notify):\r
         if Notify != DT.ITEM_UNDEFINED:\r
             self.Notify = 'true'\r
     def GetNotify(self):\r
         return self.Notify\r
-          \r
+\r
     def SetHelpStringItem(self, HelpStringItem):\r
         self.HelpStringItem = HelpStringItem\r
     def GetHelpStringItem(self):\r
         return self.HelpStringItem\r
-    \r
+\r
 class InfProtocolItem():\r
     def __init__(self):\r
         self.Name = ''\r
         self.FeatureFlagExp = ''\r
         self.SupArchList = []\r
         self.CommentList = []\r
-        \r
+\r
     def SetName(self, Name):\r
         self.Name = Name\r
     def GetName(self):\r
         return self.Name\r
-    \r
+\r
     def SetFeatureFlagExp(self, FeatureFlagExp):\r
         self.FeatureFlagExp = FeatureFlagExp\r
     def GetFeatureFlagExp(self):\r
         return self.FeatureFlagExp\r
-  \r
+\r
     def SetSupArchList(self, SupArchList):\r
         self.SupArchList = SupArchList\r
     def GetSupArchList(self):\r
-        return self.SupArchList      \r
+        return self.SupArchList\r
 \r
     def SetCommentList(self, CommentList):\r
         self.CommentList = CommentList\r
@@ -196,13 +190,13 @@ class InfProtocolObject():
         # Macro defined in this section should be only used in this section.\r
         #\r
         self.Macros = {}\r
-        \r
+\r
     def SetProtocol(self, ProtocolContent, Arch = None,):\r
         __SupArchList = []\r
         for ArchItem in Arch:\r
             #\r
             # Validate Arch\r
-            #            \r
+            #\r
             if (ArchItem == '' or ArchItem is None):\r
                 ArchItem = 'COMMON'\r
             __SupArchList.append(ArchItem)\r
@@ -233,7 +227,7 @@ class InfProtocolObject():
             if len(Item) == 2:\r
                 #\r
                 # Contained CName and Feature Flag Express\r
-                # <statements>           ::=  <CName> ["|" \r
+                # <statements>           ::=  <CName> ["|"\r
                 # <FeatureFlagExpress>]\r
                 # For Protocol Object\r
                 #\r
@@ -248,14 +242,14 @@ class InfProtocolObject():
                     ErrorInInf(ST.ERR_INF_PARSER_FEATURE_FLAG_EXP_SYNTAX_INVLID%(FeatureFlagRtv[1]),\r
                                LineInfo=LineInfo)\r
                 InfProtocolItemObj.SetFeatureFlagExp(Item[1])\r
-            \r
+\r
             if len(Item) < 1 or len(Item) > 2:\r
                 #\r
-                # Invalid format of Protocols statement \r
+                # Invalid format of Protocols statement\r
                 #\r
                 ErrorInInf(ST.ERR_INF_PARSER_GUID_PPI_PROTOCOL_SECTION_CONTENT_ERROR,\r
                            LineInfo=LineInfo)\r
-            \r
+\r
             #\r
             # Get/Set Usage and HelpString for Protocol entry\r
             #\r
@@ -266,20 +260,20 @@ class InfProtocolObject():
                 CommentItemIns.SetUsageItem(DT.ITEM_UNDEFINED)\r
                 CommentItemIns.SetNotify(DT.ITEM_UNDEFINED)\r
                 InfProtocolItemObj.SetCommentList([CommentItemIns])\r
-            \r
+\r
             InfProtocolItemObj.SetSupArchList(__SupArchList)\r
-            \r
+\r
             #\r
             # Determine protocol name duplicate. Follow below rule:\r
             #\r
-            # A protocol must not be duplicated within a [Protocols] section. \r
-            # A protocol may appear in multiple architectural [Protocols] \r
-            # sections. A protocol listed in an architectural [Protocols] \r
-            # section must not be listed in the common architectural \r
+            # A protocol must not be duplicated within a [Protocols] section.\r
+            # A protocol may appear in multiple architectural [Protocols]\r
+            # sections. A protocol listed in an architectural [Protocols]\r
+            # section must not be listed in the common architectural\r
             # [Protocols] section.\r
-            # \r
+            #\r
             # NOTE: This check will not report error now.\r
-            # \r
+            #\r
             for Item in self.Protocols:\r
                 if Item.GetName() == InfProtocolItemObj.GetName():\r
                     ItemSupArchList = Item.GetSupArchList()\r
@@ -294,9 +288,9 @@ class InfProtocolObject():
                                 #\r
                                 # ST.ERR_INF_PARSER_ITEM_DUPLICATE_COMMON\r
                                 #\r
-                                pass      \r
-                                      \r
-            if self.Protocols.has_key((InfProtocolItemObj)):           \r
+                                pass\r
+\r
+            if (InfProtocolItemObj) in self.Protocols:\r
                 ProcotolList = self.Protocols[InfProtocolItemObj]\r
                 ProcotolList.append(InfProtocolItemObj)\r
                 self.Protocols[InfProtocolItemObj] = ProcotolList\r
@@ -304,8 +298,8 @@ class InfProtocolObject():
                 ProcotolList = []\r
                 ProcotolList.append(InfProtocolItemObj)\r
                 self.Protocols[InfProtocolItemObj] = ProcotolList\r
-                \r
+\r
         return True\r
-    \r
+\r
     def GetProtocol(self):\r
         return self.Protocols\r