32 lines
949 B
Python
32 lines
949 B
Python
"""
|
|
Type (constructors) that are used integral to the compiler.
|
|
|
|
These cannot be changed as there is compiler logic depending on them.
|
|
|
|
For mode documentation, see base.py.
|
|
"""
|
|
from ..type3.types import (
|
|
Type3,
|
|
TypeApplication_Nullary,
|
|
TypeConstructor_DynamicArray,
|
|
TypeConstructor_Function,
|
|
TypeConstructor_StaticArray,
|
|
TypeConstructor_Struct,
|
|
TypeConstructor_Tuple,
|
|
)
|
|
from ..type5.kindexpr import Star
|
|
from ..type5.typeexpr import TypeConstructor as Type5Constructor
|
|
|
|
dynamic_array = TypeConstructor_DynamicArray('dynamic_array')
|
|
function = TypeConstructor_Function('function')
|
|
static_array = TypeConstructor_StaticArray('static_array')
|
|
struct = TypeConstructor_Struct('struct')
|
|
tuple_ = TypeConstructor_Tuple('tuple')
|
|
|
|
bool_ = Type3('bool', TypeApplication_Nullary(None, None))
|
|
none_ = Type3('None', TypeApplication_Nullary(None, None))
|
|
|
|
s = Star()
|
|
|
|
static_array5 = Type5Constructor(name="static_array", kind=s >> s)
|