nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge: curl: basic Unix domain socket support
[nit.git]
/
src
/
nitni
/
nitni_base.nit
diff --git
a/src/nitni/nitni_base.nit
b/src/nitni/nitni_base.nit
index
699a8d9
..
41197ef
100644
(file)
--- a/
src/nitni/nitni_base.nit
+++ b/
src/nitni/nitni_base.nit
@@
-67,7
+67,7
@@
redef class MType
# Representation of this type in pure C on the FFI extern side
# Object -> Object
# Pointer -> void*
# Representation of this type in pure C on the FFI extern side
# Object -> Object
# Pointer -> void*
- fun cname: String is abstract
+ fun cname: String do return cname_normal_class
# Representation of this type in C for the internal of the system
# Hides extern types.
# Representation of this type in C for the internal of the system
# Hides extern types.
@@
-83,6
+83,9
@@
redef class MType
# type Object is_primitive? false
# type Pointer is_primitive? true
fun is_cprimitive: Bool do return false
# type Object is_primitive? false
# type Pointer is_primitive? true
fun is_cprimitive: Bool do return false
+
+ # Name of this type in C for normal classes (not extern and not primitive)
+ protected fun cname_normal_class: String do return mangled_cname
end
redef class MClassType
end
redef class MClassType
@@
-94,7
+97,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 == "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 == "CString" then return "char*"
if mclass.kind == extern_kind then
var ctype = mclass.ctype
assert ctype != null
if mclass.kind == extern_kind then
var ctype = mclass.ctype
assert ctype != null
@@
-110,31
+118,32
@@
redef class MClassType
if name == "Float" then return "double"
if name == "Int" then return "long"
if name == "Byte" then return "unsigned char"
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 == "CString" then return "char*"
if mclass.kind == extern_kind then return "void*"
return super
end
if mclass.kind == extern_kind then return "void*"
return super
end
- # Name of this type in C for normal classes (not extern and not primitive)
- protected fun cname_normal_class: String do return mangled_cname
-
redef fun mangled_cname do return mclass.name
redef fun is_cprimitive do return mclass.kind == extern_kind or
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", "CString",
+ "Byte", "Int8", "Int16", "UInt16", "Int32", "UInt32"]).has(mclass.name)
end
redef class MNullableType
end
redef class MNullableType
- redef fun cname do return mangled_cname
redef fun mangled_cname do return "nullable_{mtype.mangled_cname}"
end
redef fun mangled_cname do return "nullable_{mtype.mangled_cname}"
end
-redef class MVirtualType
+redef class MFormalType
redef fun mangled_cname do return to_s
end
redef class MGenericType
redef fun mangled_cname do return to_s
end
redef class MGenericType
- redef fun cname do return mangled_cname
redef fun mangled_cname
do
var base = super
redef fun mangled_cname
do
var base = super