X-Git-Url: http://nitlanguage.org diff --git a/src/nitni/nitni_base.nit b/src/nitni/nitni_base.nit index f5cccc0..a43e1d7 100644 --- a/src/nitni/nitni_base.nit +++ b/src/nitni/nitni_base.nit @@ -82,7 +82,7 @@ redef class MType # # type Object is_primitive? false # type Pointer is_primitive? true - fun is_cprimitive: Bool is abstract + fun is_cprimitive: Bool do return false end redef class MClassType @@ -94,7 +94,12 @@ redef class MClassType if name == "Float" then return "double" if name == "Int" then return "long" if name == "Byte" then return "unsigned char" - if name == "NativeString" then return "unsigned char*" + if name == "Int8" then return "int8_t" + if name == "Int16" then return "int16_t" + if name == "UInt16" then return "uint16_t" + if name == "Int32" then return "int32_t" + if name == "UInt32" then return "uint32_t" + if name == "NativeString" then return "char*" if mclass.kind == extern_kind then var ctype = mclass.ctype assert ctype != null @@ -110,7 +115,12 @@ redef class MClassType if name == "Float" then return "double" if name == "Int" then return "long" if name == "Byte" then return "unsigned char" - if name == "NativeString" then return "unsigned char*" + if name == "Int8" then return "int8_t" + if name == "Int16" then return "int16_t" + if name == "UInt16" then return "uint16_t" + if name == "Int32" then return "int32_t" + if name == "UInt32" then return "uint32_t" + if name == "NativeString" then return "char*" if mclass.kind == extern_kind then return "void*" return super end @@ -121,13 +131,13 @@ redef class MClassType redef fun mangled_cname do return mclass.name redef fun is_cprimitive do return mclass.kind == extern_kind or - (once ["Bool", "Char", "Float", "Int", "NativeString", "Byte"]).has(mclass.name) + (once ["Bool", "Char", "Float", "Int", "NativeString", + "Byte", "Int8", "Int16", "UInt16", "Int32", "UInt32"]).has(mclass.name) end redef class MNullableType redef fun cname do return mangled_cname redef fun mangled_cname do return "nullable_{mtype.mangled_cname}" - redef fun is_cprimitive do return false end redef class MVirtualType