linc 0.7
Linc is a general-purpose programming language inspired by C
Loading...
Searching...
No Matches
linc::Types Class Referencefinal

Classes

struct  _invalid_type
 
struct  _void_type
 
class  type
 

Public Types

enum class  Kind : LINC_TYPES_KIND_TYPE {
  invalid , u8 , u16 , u32 ,
  u64 , i8 , i16 , i32 ,
  i64 , f32 , f64 , string ,
  type , _char , _bool , _void
}
 
enum  Size : LINC_TYPES_KIND_TYPE {
  Zero = 0 , Byte = 1 , Word = 2 , DoubleWord = 4 ,
  QuadWord = 8
}
 
using u8 = std::uint8_t
 
using u16 = std::uint16_t
 
using u32 = std::uint32_t
 
using u64 = std::uint64_t
 
using i8 = std::int8_t
 
using i16 = std::int16_t
 
using i32 = std::int32_t
 
using i64 = std::int64_t
 
using f32 = std::float32_t
 
using f64 = std::float64_t
 
using _char = char
 
using _bool = bool
 
using string = std::string
 
using Variant = std::variant<_invalid_type, _void_type, _bool, _char, u8, u16, u32, u64, i8, i16, i32, i64, f32, f64, string, type>
 
using TypeMap = std::unordered_map<std::string, Kind>
 

Static Public Member Functions

template<typename To , typename From >
static const std::unique_ptr< To > uniqueCastDynamic (std::unique_ptr< From > p)
 
template<typename To , typename From >
static const std::unique_ptr< To > uniqueCast (std::unique_ptr< From > p)
 
static Variant toVariant (Kind type, const std::string &value)
 
static std::string kindToString (Kind kind)
 
static type fromKind (Kind kind)
 
static Kind kindFromString (const std::string &value)
 
static Kind kindFromUserString (const std::string &value)
 
static Kind kindFromUserStringSuffix (const std::string &value)
 
static Size sizeFromKind (Kind kind)
 
static Types::_bool parseBoolean (const std::string &str)
 
static Types::_char parseUserCharacter (const std::string &str)
 
static bool isNumeric (Kind type)
 
static bool isIntegral (Kind type)
 
static bool isSigned (Kind type)
 
static bool isUnsigned (Kind type)
 
static bool isFloating (Kind type)
 

Static Public Attributes

static type voidType = Types::fromKind(Kind::_void)
 
static type invalidType = Types::fromKind(Kind::invalid)
 

The documentation for this class was generated from the following files: