From 9c7d70b02d95c05ef0887eced8dbfea9057e990b Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 13 Aug 2010 10:42:48 +0200 Subject: Bind NamespaceAST nodes. --- src/shared/cplusplus/Bind.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/shared/cplusplus') diff --git a/src/shared/cplusplus/Bind.cpp b/src/shared/cplusplus/Bind.cpp index cb7dc7311a..1a048e6f23 100644 --- a/src/shared/cplusplus/Bind.cpp +++ b/src/shared/cplusplus/Bind.cpp @@ -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; } -- cgit v1.2.1