# pylint: disable=unused-argument
[docs]class Top:
__slots__ = ("size",)
def __init__(self, size):
self.size = size
@property
def bits(self):
return self.size * 8
def __add__(self, other):
return self
def __and__(self, other):
return self
def __sub__(self, other):
return self
def __rsub__(self, other):
return self
def __radd__(self, other):
return self
def __ror__(self, other):
return self
def __rand__(self, other):
return self
def __mul__(self, other):
return self
def __rmul__(self, other):
return self
def __floordiv__(self, other):
return self
def __rfloordiv__(self, other):
return self
def __invert__(self):
return self
def __rshift__(self, other):
return self
def __rlshift__(self, other):
return self
def __rrshift__(self, other):
return self
def __lshift__(self, other):
return self
def __xor__(self, other):
return self
def __rxor__(self, other):
return self
def __or__(self, other):
return self
def __repr__(self):
return "TOP"
def __eq__(self, other):
return Top(1)
def __le__(self, other):
return Top(1)
def __lt__(self, other):
return Top(1)
def __gt__(self, other):
return Top(1)
def __ge__(self, other):
return Top(1)
def __neg__(self):
return self
def __hash__(self):
return hash((Top, self.size))
[docs]class Bottom:
def __add__(self, other):
return self
def __sub__(self, other):
return self
def __and__(self, other):
return self
def __rshift__(self, other):
return self
def __repr__(self):
return "BOTTOM"
def __eq__(self, other):
return type(other) is Bottom
def __hash__(self):
return hash(Bottom)