Home | History | Annotate | Line # | Download | only in dmd
      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;
     30     Nspace *isNspace() { return this; }
     31     void accept(Visitor *v) { v->visit(this); }
     32 };
     33