Bind NamespaceAST nodes.

This commit is contained in:
Roberto Raggi
2010-08-13 10:42:48 +02:00
parent af28f72e65
commit 9c7d70b02d

View File

@@ -1660,8 +1660,21 @@ bool Bind::visit(NamespaceAST *ast)
for (SpecifierListAST *it = ast->attribute_list; it; it = it->next) {
type = this->specifier(it->value, type);
}
unsigned sourceLocation = ast->firstToken();
const Name *namespaceName = 0;
if (ast->identifier_token) {
sourceLocation = ast->identifier_token;
namespaceName = control()->nameId(identifier(ast->identifier_token));
}
Namespace *ns = control()->newNamespace(sourceLocation, namespaceName);
ast->symbol = ns;
_scope->addMember(ns);
Scope *previousScope = switchScope(ns);
this->declaration(ast->linkage_body);
// Namespace *symbol = ast->symbol;
(void) switchScope(previousScope);
return false;
}