| /** | |
| * Provide the root object that classes in dmd inherit from. | |
| * | |
| * Copyright: Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved | |
| * Authors: Walter Bright, https://www.digitalmars.com | |
| * License: $(LINK2 https://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) | |
| * Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/root/rootobject.d, root/_rootobject.d) | |
| * Documentation: https://dlang.org/phobos/dmd_root_rootobject.html | |
| * Coverage: https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/rootobject.d | |
| */ | |
| module dmd.root.rootobject; | |
| import core.stdc.stdio; | |
| import dmd.common.outbuffer; | |
| /*********************************************************** | |
| */ | |
| enum DYNCAST : int | |
| { | |
| object, | |
| expression, | |
| dsymbol, | |
| type, | |
| identifier, | |
| tuple, | |
| parameter, | |
| statement, | |
| condition, | |
| templateparameter, | |
| initializer, | |
| } | |
| /*********************************************************** | |
| */ | |
| extern (C++) class RootObject | |
| { | |
| this() nothrow pure @nogc @safe | |
| { | |
| } | |
| bool equals(const RootObject o) const | |
| { | |
| return o is this; | |
| } | |
| const(char)* toChars() const | |
| { | |
| assert(0); | |
| } | |
| /// | |
| extern(D) const(char)[] toString() const | |
| { | |
| import core.stdc.string : strlen; | |
| auto p = this.toChars(); | |
| return p[0 .. strlen(p)]; | |
| } | |
| DYNCAST dyncast() const nothrow pure @nogc @safe | |
| { | |
| return DYNCAST.object; | |
| } | |
| } |