source_line(1),
indent(0),
parameter_list(false),
- omit_builtin(false)
+ omit_builtin(false),
+ r_empty_name(false)
{ }
-const string &Formatter::apply(Stage &s)
+string Formatter::apply(Stage &s)
{
stage = &s;
omit_builtin = true;
void Formatter::visit(VariableReference &var)
{
append(var.name);
+ r_empty_name = false;
}
void Formatter::visit(InterfaceBlockReference &iface)
{
- append(iface.name);
+ r_empty_name = iface.declaration->instance_name.empty();
+ if(!r_empty_name)
+ append(iface.declaration->instance_name);
}
void Formatter::visit(MemberAccess &memacc)
{
visit_expression(*memacc.left, memacc.oper, false);
- append(format(".%s", memacc.member));
+ if(!r_empty_name)
+ append('.');
+ append(memacc.member);
}
void Formatter::visit(Swizzle &swizzle)