for(std::map<string, InterfaceBlock *>::const_iterator i=stage.interface_blocks.begin(); i!=stage.interface_blocks.end(); ++i)
if(seen_interfaces.insert(i->second).second)
{
- string text = format("Interface block: %%%d %s %s", get_label(*i->second), i->second->interface, i->second->name);
+ string text = format("Interface block: %%%d %s %s", get_label(*i->second), i->second->interface, i->second->block_name);
if(!i->second->instance_name.empty())
text += format(" %s", i->second->instance_name);
append(text);
append(format("Literal: %s -> %s", literal.token, format_type(literal.type)));
}
-void DumpTree::visit(ParenthesizedExpression &parexpr)
-{
- annotated_branch(format("(expr) -> %s", format_type(parexpr.type)), *parexpr.expression);
-}
-
void DumpTree::visit(VariableReference &var)
{
string text;
void DumpTree::visit(BinaryExpression &binary)
{
- append(format("Binary: %s -> %s", (binary.oper->token[0]=='[' ? "[]" : binary.oper->token), format_type(binary.type)));
+ append(format("Binary: %s%s -> %s", binary.oper->token, binary.oper->token2, format_type(binary.type)));
begin_sub();
binary.left->visit(*this);
last_branch();
end_sub();
}
+void DumpTree::visit(TernaryExpression &ternary)
+{
+ append(format("Ternary: %s%s -> %s", ternary.oper->token, ternary.oper->token2, format_type(ternary.type)));
+ begin_sub();
+ ternary.condition->visit(*this);
+ ternary.true_expr->visit(*this);
+ last_branch();
+ ternary.false_expr->visit(*this);
+ end_sub();
+}
+
void DumpTree::visit(FunctionCall &call)
{
string head = "Function call: ";
string head;
if(!iface.instance_name.empty())
head += format("%%%d ", get_label(iface));
- head += format("%s %s", iface.interface, iface.name);
+ head += format("%s %s", iface.interface, iface.block_name);
if(!iface.instance_name.empty())
head += format(" %s", iface.instance_name);
if(iface.array)