if(token=="import")
return parse_import();
else if(token=="layout")
- return parse_layout();
+ {
+ RefPtr<Layout> layout = parse_layout();
+ token = peek_token();
+ if(is_interface_qualifier(token) && peek_token(1)==";")
+ {
+ RefPtr<InterfaceLayout> iface_lo = new InterfaceLayout;
+ iface_lo->layout.qualifiers = layout->qualifiers;
+ iface_lo->interface = parse_token();
+ expect(";");
+ return iface_lo.release();
+ }
+ else
+ {
+ VariableDeclaration *var = parse_variable_declaration();
+ var->layout = layout.release();
+ return var;
+ }
+ }
else if(token=="struct")
return parse_struct_declaration();
else if(is_sampling_qualifier(token) || token=="const")
expect(",");
}
expect(")");
- layout->interface = parse_token();
- expect(";");
return layout.release();
}