if(is_interface_qualifier(token) && tokenizer.peek_token(1)==";")
{
RefPtr<InterfaceLayout> iface_lo = create_node<InterfaceLayout>();
+ iface_lo->layout.source = layout->source;
+ iface_lo->layout.line = layout->line;
iface_lo->layout.qualifiers = layout->qualifiers;
iface_lo->interface = tokenizer.parse_token();
tokenizer.expect(";");
return iface_lo;
}
+ else if(is_interface_qualifier(token) && tokenizer.peek_token(2)=="{")
+ {
+ RefPtr<InterfaceBlock> iface = parse_interface_block();
+ iface->layout = layout;
+ return iface;
+ }
else
{
RefPtr<VariableDeclaration> var = parse_variable_declaration();
if(!is_interface_qualifier(iface->interface))
throw parse_error(tokenizer.get_location(), iface->interface, "an interface qualifier");
- iface->name = expect_identifier();
+ iface->block_name = expect_identifier();
iface->members = new Block;
parse_block(*iface->members, true, &Parser::parse_variable_declaration_with_layout);
if(!check(";"))