void DumpTree::visit(MemberAccess &memacc)
{
- annotated_branch(format("Member access: .%s", memacc.member), *memacc.left);
+ string text = "Member access:";
+ if(memacc.declaration)
+ text += format(" %%%d", get_label(*memacc.declaration));
+ text += format(" .%s", memacc.member);
+ annotated_branch(text, *memacc.left);
}
void DumpTree::visit(UnaryExpression &unary)
if(!var.init_expression)
last_branch();
if(var.array)
- annotated_branch("Array []", *var.array_size);
+ {
+ if(var.array_size)
+ annotated_branch("Array []", *var.array_size);
+ else
+ append("Array []");
+ }
last_branch();
if(var.init_expression)
end_sub();
}
+void DumpTree::visit(Passthrough &pass)
+{
+ append("passthrough");
+ if(pass.subscript)
+ {
+ begin_sub();
+ last_branch();
+ pass.subscript->visit(*this);
+ end_sub();
+ }
+}
+
void DumpTree::visit(Return &ret)
{
if(ret.expression)