sym_add(&(p->syms), SF_TYPEDEF, "void", VoidType());
sym_add(&(p->syms), SF_TYPEDEF, "bool", UIntType(1u));
sym_add(&(p->syms), SF_TYPEDEF, "byte", UIntType(8u));
- sym_add(&(p->syms), SF_TYPEDEF, "uint", UIntType(64u));
- sym_add(&(p->syms), SF_TYPEDEF, "u8", UIntType(8u));
- sym_add(&(p->syms), SF_TYPEDEF, "u16", UIntType(16u));
- sym_add(&(p->syms), SF_TYPEDEF, "u32", UIntType(32u));
- sym_add(&(p->syms), SF_TYPEDEF, "u64", UIntType(64u));
- sym_add(&(p->syms), SF_TYPEDEF, "int", IntType(64u));
- sym_add(&(p->syms), SF_TYPEDEF, "i8", IntType(8u));
- sym_add(&(p->syms), SF_TYPEDEF, "i16", IntType(16u));
- sym_add(&(p->syms), SF_TYPEDEF, "i32", IntType(32u));
- sym_add(&(p->syms), SF_TYPEDEF, "i64", IntType(64u));
+ sym_add(&(p->syms), SF_TYPEDEF, "ushort", UIntType(16u));
+ sym_add(&(p->syms), SF_TYPEDEF, "short", IntType(16u));
+ sym_add(&(p->syms), SF_TYPEDEF, "uint", UIntType(32u));
+ sym_add(&(p->syms), SF_TYPEDEF, "int", IntType(32u));
+ sym_add(&(p->syms), SF_TYPEDEF, "ulong", UIntType(64u));
+ sym_add(&(p->syms), SF_TYPEDEF, "long", IntType(64u));
+ sym_add(&(p->syms), SF_TYPEDEF, "float", FloatType(32u));
+ sym_add(&(p->syms), SF_TYPEDEF, "double", FloatType(64u));
sym_add(&(p->syms), SF_TYPEDEF, "string",
ArrayOf(sym_get(&(p->syms), "byte")->type, -1));
}
/* Datatype Types
*****************************************************************************/
typedef enum {
- VOID, INT, UINT, ARRAY, REF, PTR, FUNC
+ VOID, INT, UINT, FLOAT, ARRAY, REF, PTR, FUNC
} Kind;
typedef struct Type {
Type* VoidType(void);
Type* IntType(size_t nbits);
Type* UIntType(size_t nbits);
+Type* FloatType(size_t nbits);
Type* ArrayOf(Type* type, size_t count);
Type* RefTo(Type* type);
Type* PtrTo(Type* type);