if r != null then
icd.write "Result: {icd.register(r)}"
end
+ if std_slots_nb > 0 then
+ icd.write "StdSlots: {std_slots_nb}"
+ end
+ if tag_slots_nb > 0 then
+ icd.write "TagSlots: {tag_slots_nb}"
+ end
var closdecls = closure_decls
if closdecls != null then
for c in closdecls do
return s
else
_last_value += 1
- var s = "REG{i}(r{_last_value})"
+ var s: String
+ if e.in_tag_slots then
+ s = "BREG{i}(r{_last_value})"
+ else if e.is_local then
+ s = "LREG{i}(r{_last_value})"
+ else
+ s = "REG{i}(r{_last_value})"
+ end
_ids[e] = s
return s
end
var _last_label: Int = 0
# Return the name of e
# If e is unknown, a new name is gived
- fun lab(e: ISeq): String
+ fun lab(e: IEscapeMark): String
do
if _ids.has_key(e) then
return _ids[e]
end
# Is the label e known? (because we goto to it)
- fun has_lab(e: ISeq): Bool
+ fun has_lab(e: IEscapeMark): Bool
do
return _ids.has_key(e)
end
for ic in icodes do
ic.dump(icd)
end
- if icd.has_lab(self) then icd.write("{icd.lab(self)}:")
+ var mark = iescape_mark
+ if mark != null and icd.has_lab(mark) then icd.write("{icd.lab(mark)}:")
end
end
end
icd.unindent
icd.write "}"
- if icd.has_lab(self) then icd.write("{icd.lab(self)}:")
+ var mark = iescape_mark
+ if mark != null and icd.has_lab(mark) then icd.write("{icd.lab(mark)}:")
end
end
redef class IEscape
redef fun dump_intern(icd)
do
- return "ESCAPE {icd.lab(seq)}"
+ return "ESCAPE {icd.lab(iescape_mark)}"
end
end