//===--- ParseDeclCXX.cpp - C++ Declaration Parsing -----------------------===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file implements the C++ Declaration portions of the Parser interfaces.////===----------------------------------------------------------------------===//#include"clang/Basic/OperatorKinds.h"#include"clang/Parse/Parser.h"#include"clang/Parse/ParseDiagnostic.h"#include"clang/Parse/DeclSpec.h"#include"clang/Parse/Scope.h"#include"ExtensionRAIIObject.h"usingnamespaceclang;/// ParseNamespace - We know that the current token is a namespace keyword. This/// may either be a top level namespace or a block-level namespace alias.////// namespace-definition: [C++ 7.3: basic.namespace]/// named-namespace-definition/// unnamed-namespace-definition////// unnamed-namespace-definition:/// 'namespace' attributes[opt] '{' namespace-body '}'////// named-namespace-definition:/// original-namespace-definition/// extension-namespace-definition////// original-namespace-definition:/// 'namespace' identifier attributes[opt] '{' namespace-body '}'////// extension-namespace-definition:/// 'namespace' original-namespace-name '{' namespace-body '}'////// namespace-alias-definition: [C++ 7.3.2: namespace.alias]