peon/src/peon/stdlib/builtins/values.pn

93 lines
1.5 KiB
Plaintext

# Stub type declarations for peon's intrinsic types
type int64* = object {
#pragma[magic: "int64"]
}
type int32* = object {
#pragma[magic: "int32"]
}
type int16* = object {
#pragma[magic: "int16"]
}
type int8* = object {
#pragma[magic: "int8"]
}
type uint64* = object {
#pragma[magic: "uint64"]
}
type uint32* = object {
#pragma[magic: "uint32"]
}
type uint16* = object {
#pragma[magic: "uint16"]
}
type uint8* = object {
#pragma[magic: "uint8"]
}
type float64* = object {
#pragma[magic: "float64"]
}
type float32* = object {
#pragma[magic: "float32"]
}
type bool* = object {
#pragma[magic: "bool"]
}
type string* = object {
#pragma[magic: "string"]
}
type any* = object {
#pragma[magic: "any"]
}
type inf* = object {
#pragma[magic: "inf"]
}
type nil* = object {
#pragma[magic: "nil"]
}
type nan* = object {
#pragma[magic: "nan"]
}
type auto* = object {
#pragma[magic: "auto"]
}
type typevar* = object {
#pragma[magic: "typevar"]
}
# Some convenience aliases
type int* = int64;
type float* = float64;
type i64* = int64;
type u64* = uint64;
type i32* = int32;
type u32* = uint32;
type i16* = int64;
type u16* = uint64;
type i8* = int32;
type u8* = uint32;
type f64* = float64;
type f32* = float32;
type SignedInteger* = int64 | int32 | int16 | int8;
type UnsignedInteger* = uint64 | uint32 | uint16 | uint8;
type Integer* = SignedInteger | UnsignedInteger;
type Number* = Integer | float64 | float32;