Added conditional statement support for DSC file
[people/mcb30/basetools.git] / Source / Python / Common / Misc.py
index b6cf632..4229d8a 100755 (executable)
@@ -23,6 +23,7 @@ import time
 import re\r
 import cPickle\r
 from UserDict import IterableUserDict\r
+from UserList import UserList\r
 \r
 from Common import EdkLogger as EdkLogger\r
 from BuildToolError import *\r
@@ -645,6 +646,26 @@ class tdict:
         if self._Level_ > 1:\r
             for Key in self.data:\r
                 self.data[Key].SetSingleMode()\r
+\r
+## Boolean chain list\r
+# \r
+class Blist(UserList):\r
+    def __init__(self, initlist=None):\r
+        UserList.__init__(self, initlist)\r
+    def __setitem__(self, i, item):\r
+        if item not in [True, False]:\r
+            if item == 0:\r
+                item = False\r
+            else:\r
+                item = True\r
+        self.data[i] = item\r
+    def _GetResult(self):\r
+        Value = True\r
+        for item in self.data:\r
+            Value &= item\r
+        return Value\r
+    Result = property(_GetResult)\r
+\r
 ##\r
 #\r
 # This acts like the main() function for the script, unless it is 'import'ed into another\r