Returns the generated signature without a semicolon and curly brace,
e.g RES f(T0 p0, T1 p1, ..., TN pN)
Step 5
# Generate the code for the signature with an open curly brace
#
# Returns the generated signature without a semicolon and curly brace,
# e.g `RES f(T0 p0, T1 p1, ..., TN pN)`
# Step 5
protected fun signature_to_c(v: VISITOR): String
do
assert v.frame != null
var arguments = v.frame.arguments
var comment = new FlatBuffer
var selfvar = v.frame.selfvar
var c_ret = "void"
if has_return then
c_ret = "{return_mtype.ctype}"
end
var sig = new FlatBuffer
sig.append("{c_ret} {c_name}({recv_mtype.ctype} self")
comment.append("({selfvar}: {selfvar.mtype}")
for i in [0..arguments.length-1[ do
# Skip the receiver
var arg = arguments[i+1]
comment.append(", {arg.mtype}")
sig.append(", {arg.mtype.ctype} p{i}")
end
sig.append(")")
comment.append(")")
if has_return then
comment.append(": {return_mtype.as(not null)}")
end
v.add_decl("/* method {self} for {comment} */")
v.add_decl("{sig} \{")
return sig.to_s
end
src/compiler/abstract_compiler.nit:2175,2--2208,4