1 
2 /* Compiler implementation of the D programming language
3  * Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
4  * written by Walter Bright
5  * http://www.digitalmars.com
6  * Distributed under the Boost Software License, Version 1.0.
7  * http://www.boost.org/LICENSE_1_0.txt
8  * https://github.com/dlang/dmd/blob/master/src/version.h
9  */
10 
11 #pragma once
12 
13 #include "dsymbol.h"
14 
15 class DebugSymbol : public Dsymbol
16 {
17 public:
18     unsigned level;
19 
20     DebugSymbol(Loc loc, Identifier *ident);
21     DebugSymbol(Loc loc, unsigned level);
22     Dsymbol *syntaxCopy(Dsymbol *);
23 
24     const char *toChars();
25     void addMember(Scope *sc, ScopeDsymbol *sds);
26     const char *kind() const;
isDebugSymbol()27     DebugSymbol *isDebugSymbol() { return this; }
accept(Visitor * v)28     void accept(Visitor *v) { v->visit(this); }
29 };
30 
31 class VersionSymbol : public Dsymbol
32 {
33 public:
34     unsigned level;
35 
36     VersionSymbol(Loc loc, Identifier *ident);
37     VersionSymbol(Loc loc, unsigned level);
38     Dsymbol *syntaxCopy(Dsymbol *);
39 
40     const char *toChars();
41     void addMember(Scope *sc, ScopeDsymbol *sds);
42     const char *kind() const;
isVersionSymbol()43     VersionSymbol *isVersionSymbol() { return this; }
accept(Visitor * v)44     void accept(Visitor *v) { v->visit(this); }
45 };
46