append_subtree(branches);
}
-void DumpTree::visit(InterfaceBlock &block)
+void DumpTree::visit(InterfaceBlock &iface)
{
string head;
- if(!block.instance_name.empty())
- head += format("%%%d ", get_label(block));
- head += format("%s %s", block.interface, block.name);
- if(!block.instance_name.empty())
- head += format(" %s", block.instance_name);
- if(block.array)
+ if(!iface.instance_name.empty())
+ head += format("%%%d ", get_label(iface));
+ head += format("%s %s", iface.interface, iface.name);
+ if(!iface.instance_name.empty())
+ head += format(" %s", iface.instance_name);
+ if(iface.array)
head += "[]";
- if(block.source==BUILTIN_SOURCE)
+ if(iface.source==BUILTIN_SOURCE)
head += " (builtin)";
- else if(block.linked_block)
+ else if(iface.linked_block)
head += " (linked)";
append(head);
begin_sub();
last_branch();
- if(block.type_declaration)
- append(format("Type: %%%d %s", get_label(*block.type_declaration), block.type_declaration->name));
- else if(block.members)
- block.members->visit(*this);
+ if(iface.type_declaration)
+ append(format("Type: %%%d %s", get_label(*iface.type_declaration), iface.type_declaration->name));
+ else if(iface.members)
+ iface.members->visit(*this);
end_sub();
}
void DumpTree::visit(FunctionDeclaration &func)
{
- string text = format("%%%d %s %s", get_label(func), func.return_type, func.name);
+ string text = format("%%%d %s %s%s", get_label(func), func.return_type, func.name, (func.signature.empty() ? "(?)" : func.signature));
if(func.source==BUILTIN_SOURCE)
text += " (builtin)";
else if(!func.definition)
append(text);
begin_sub();
+ if(func.return_type_declaration)
+ append(format("Return type: %%%d %s", get_label(*func.return_type_declaration), func.return_type_declaration->name));
for(NodeArray<VariableDeclaration>::const_iterator i=func.parameters.begin(); i!=func.parameters.end(); ++i)
(*i)->visit(*this);
last_branch();