# Compute _cstring and _cstring_length using string_text
protected fun compute_string_infos
do
- var len = 0
- var str = string_text
+ var str = n_string.text
+ if str.length >= 6 and str[0] == str[1] then
+ str = str.substring(3, str.length - 6)
+ else
+ str = str.substring(1, str.length - 2)
+ end
var res = new Buffer
+ var len = 0
var i = 0
while i < str.length do
var c = str[i]
res.add(c)
end
c = c2
+ else if c == '"' then
+ res.add('\\')
+ else if c == '\n' then
+ res.add('\\')
+ c = 'n'
end
len = len + 1
res.add(c)
redef class AArrayExpr
redef fun generate_icode(v)
do
- var recv = v.add_new_array(stype, n_exprs.length)
- for ne in n_exprs do
+ var nes = n_exprs.n_exprs
+ var recv = v.add_new_array(stype, nes.length)
+ for ne in nes do
var e = v.generate_expr(ne)
v.add_call_array_add(recv, e)
end
end
var args = new Array[IRegister].with_capacity(arity + 1)
args.add(v.iroutine.params[0])
- if n_args.length != arity then
+ var nas = n_args.n_exprs
+ if nas.length != arity then
for i in [0..arity[ do
args.add(v.iroutine.params[i + 1])
end
else
- for na in n_args do
+ for na in nas do
args.add(v.generate_expr(na))
end
end
return r
end
end
+
+redef class ADebugTypeExpr
+ redef fun generate_icode(v)
+ do
+ # Do nothing.
+ return null
+ end
+end