aboutsummaryrefslogtreecommitdiff
path: root/ql/types/undefined.py
diff options
context:
space:
mode:
authorBicker <bickerkards@tuta.io>2019-05-22 17:45:37 +0200
committerBicker <bickerkards@tuta.io>2019-05-22 17:45:37 +0200
commit25314fd2aed81aa5281bc3d93dbcc7919368ebe1 (patch)
tree1995521ee652e419926de5fced0f2e3b655e70fb /ql/types/undefined.py
Initial commitHEADmaster
Diffstat (limited to 'ql/types/undefined.py')
-rw-r--r--ql/types/undefined.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/ql/types/undefined.py b/ql/types/undefined.py
new file mode 100644
index 0000000..2deafe0
--- /dev/null
+++ b/ql/types/undefined.py
@@ -0,0 +1,40 @@
+from gui.widgets.label import Label
+from ql.ast.nodes.expressions.literals.undefined_literal import UndefinedNode
+from ql.types.boolean import QLBoolean
+from ql.types.type import QLType
+
+
+class QLUndefined(QLType):
+ def __init__(self, *unused):
+ super(QLUndefined, self).__init__()
+ self.__value = None
+
+ @property
+ def value(self):
+ return self.__value
+
+ def __bool__(self):
+ return False
+
+ def __repr__(self):
+ return 'Undefined'
+
+ def __eq__(self, other):
+ if isinstance(other, QLUndefined):
+ return QLBoolean(self.value == other.value)
+
+ return QLBoolean(False)
+
+ def __ne__(self, other):
+ return QLBoolean(not self == other)
+
+ def get_json_value(self):
+ return self.value
+
+ @staticmethod
+ def get_literal_node(unused):
+ return UndefinedNode(None, QLUndefined, QLUndefined(None))
+
+ @staticmethod
+ def pyqt5_default_widget():
+ return Label('Undefined')