# Copyright (C) 2022-2023 Exaloop Inc. <https://exaloop.io>
@__internal__
class __internal__:
pass
@tuple
class bool:
class byte:
class int:
MAX = 9223372036854775807
class float:
MIN_10_EXP = -307
class float32:
MIN_10_EXP = -37
class NoneType:
class type:
class Function[T, TR]:
class Callable[T, TR]:
class Ptr[T]:
cobj = Ptr[byte]
class Generator[T]:
class Optional:
T: type = NoneType
class Int[N: Static[int]]:
class UInt[N: Static[int]]:
class pyobj:
p: Ptr[byte]
class str:
ptr: Ptr[byte]
len: int
class Array:
ptr: Ptr[T]
T: type
@extend
def __new__(obj):
function = Function
class Ref[T]:
class Union[TU]:
# dummy
class TypeVar[T]: pass
class ByVal: pass
class ByRef: pass
class Tuple: pass
class ClassVar[T]:
class CVar[T]:
def __new__(name: Static[str]) -> T:
return T()
class __array__:
def __new__(sz: Static[int]) -> Array[T]:
def __ptr__(var):
def staticlen(obj):
def compile_error(msg: Static[str]):
def isinstance(obj, what):
@__attribute__
def overload():
def hasattr(obj, attr: Static[str], *args):
"""Special handling"""
@overload
def hasattr(obj, attr: Static[str]):
def getattr(obj, attr: Static[str]):
def tuple(iterable):
def super():
def superf(*args):
def __realized__(fn, args):
def statictuple(*args):
return args
def __static_print__(*args):