1 2 /* Compiler implementation of the D programming language 3 * Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved 4 * written by Walter Bright 5 * https://www.digitalmars.com 6 * Distributed under the Boost Software License, Version 1.0. 7 * https://www.boost.org/LICENSE_1_0.txt 8 * https://github.com/dlang/dmd/blob/master/src/dmd/nspace.h 9 */ 10 11 #pragma once 12 13 #include "dsymbol.h" 14 15 /* A namespace corresponding to a C++ namespace. 16 * Implies extern(C++). 17 */ 18 19 class Nspace : public ScopeDsymbol 20 { 21 public: 22 Expression *identExp; 23 Nspace *syntaxCopy(Dsymbol *s); 24 void addMember(Scope *sc, ScopeDsymbol *sds); 25 void setScope(Scope *sc); 26 Dsymbol *search(const Loc &loc, Identifier *ident, int flags = SearchLocalsOnly); 27 bool hasPointers(); 28 void setFieldOffset(AggregateDeclaration *ad, FieldState& fieldState, bool isunion); 29 const char *kind() const; isNspace()30 Nspace *isNspace() { return this; } accept(Visitor * v)31 void accept(Visitor *v) { v->visit(this); } 32 }; 33