dmd AST class hierarchy as dot file
Guillaume Chatelet via Digitalmars-d
digitalmars-d at puremagic.com
Sun Sep 20 02:26:34 PDT 2015
Not sure if it can be useful to someone else but I extracted the
dmd's class hierarchy as a DOT file:
digraph dlang_ast {
AddAssignExp -> BinAssignExp;
AddExp -> BinExp;
AddrExp -> UnaExp;
AggregateDeclaration -> ScopeDsymbol;
AliasDeclaration -> Declaration;
AliasThis -> Dsymbol;
AlignDeclaration -> AttribDeclaration;
AndAndExp -> BinExp;
AndAssignExp -> BinAssignExp;
AndExp -> BinExp;
AnonDeclaration -> AttribDeclaration;
ArrayExp -> UnaExp;
ArrayInitializer -> Initializer;
ArrayLengthExp -> UnaExp;
ArrayLiteralExp -> Expression;
ArrayScopeSymbol -> ScopeDsymbol;
AsmStatement -> Statement;
AssertExp -> UnaExp;
AssignExp -> BinExp;
AssocArrayLiteralExp -> Expression;
AttribDeclaration -> Dsymbol;
BinAssignExp -> BinExp;
BinExp -> Expression;
BlitExp -> AssignExp;
BoolExp -> UnaExp;
BreakStatement -> Statement;
CallExp -> UnaExp;
CaseRangeStatement -> Statement;
CaseStatement -> Statement;
CastExp -> UnaExp;
CatAssignExp -> BinAssignExp;
CatExp -> BinExp;
ClassDeclaration -> AggregateDeclaration;
ClassReferenceExp -> Expression;
CmpExp -> BinExp;
ComExp -> UnaExp;
CommaExp -> BinExp;
CompileDeclaration -> AttribDeclaration;
CompileExp -> UnaExp;
CompileStatement -> Statement;
ComplexExp -> Expression;
CompoundAsmStatement -> CompoundStatement;
CompoundDeclarationStatement -> CompoundStatement;
CompoundStatement -> Statement;
CondExp -> BinExp;
ConditionalDeclaration -> AttribDeclaration;
ConditionalStatement -> Statement;
ConstructExp -> AssignExp;
ContinueStatement -> Statement;
CtorDeclaration -> FuncDeclaration;
DVCondition -> Condition;
DebugCondition -> DVCondition;
DebugStatement -> Statement;
DebugSymbol -> Dsymbol;
Declaration -> Dsymbol;
DeclarationExp -> Expression;
DefaultInitExp -> Expression;
DefaultStatement -> Statement;
DelegateExp -> UnaExp;
DelegateFuncptrExp -> UnaExp;
DelegatePtrExp -> UnaExp;
DeleteDeclaration -> FuncDeclaration;
DeleteExp -> UnaExp;
DeprecatedDeclaration -> StorageClassDeclaration;
DivAssignExp -> BinAssignExp;
DivExp -> BinExp;
DoStatement -> Statement;
DollarExp -> IdentifierExp;
DotExp -> BinExp;
DotIdExp -> UnaExp;
DotTemplateExp -> UnaExp;
DotTemplateInstanceExp -> UnaExp;
DotTypeExp -> UnaExp;
DotVarExp -> UnaExp;
DsymbolExp -> Expression;
DtorDeclaration -> FuncDeclaration;
DtorExpStatement -> ExpStatement;
EnumDeclaration -> ScopeDsymbol;
EnumMember -> Dsymbol;
EqualExp -> BinExp;
ErrorExp -> Expression;
ErrorInitializer -> Initializer;
ErrorStatement -> Statement;
ExpInitializer -> Initializer;
ExpStatement -> Statement;
FileExp -> UnaExp;
FileInitExp -> DefaultInitExp;
ForStatement -> Statement;
ForeachRangeStatement -> Statement;
ForeachStatement -> Statement;
FuncAliasDeclaration -> FuncDeclaration;
FuncDeclaration -> Declaration;
FuncExp -> Expression;
FuncInitExp -> DefaultInitExp;
FuncLiteralDeclaration -> FuncDeclaration;
GotoCaseStatement -> Statement;
GotoDefaultStatement -> Statement;
GotoStatement -> Statement;
HaltExp -> Expression;
IdentifierExp -> Expression;
IdentityExp -> BinExp;
IfStatement -> Statement;
Import -> Dsymbol;
ImportStatement -> Statement;
InExp -> BinExp;
IndexExp -> BinExp;
IntegerExp -> Expression;
InterfaceDeclaration -> ClassDeclaration;
IntervalExp -> Expression;
InvariantDeclaration -> FuncDeclaration;
IsExp -> Expression;
LabelDsymbol -> Dsymbol;
LabelStatement -> Statement;
LineInitExp -> DefaultInitExp;
LinkDeclaration -> AttribDeclaration;
MinAssignExp -> BinAssignExp;
MinExp -> BinExp;
ModAssignExp -> BinAssignExp;
ModExp -> BinExp;
Module -> Package;
ModuleInitExp -> DefaultInitExp;
MulAssignExp -> BinAssignExp;
MulExp -> BinExp;
NegExp -> UnaExp;
NewAnonClassExp -> Expression;
NewDeclaration -> FuncDeclaration;
NewExp -> Expression;
NotExp -> UnaExp;
Nspace -> ScopeDsymbol;
NullExp -> Expression;
OnScopeStatement -> Statement;
OrAssignExp -> BinAssignExp;
OrExp -> BinExp;
OrOrExp -> BinExp;
OverDeclaration -> Declaration;
OverExp -> Expression;
OverloadSet -> Dsymbol;
Package -> ScopeDsymbol;
PeelStatement -> Statement;
PostBlitDeclaration -> FuncDeclaration;
PostExp -> BinExp;
PowAssignExp -> BinAssignExp;
PowExp -> BinExp;
PragmaDeclaration -> AttribDeclaration;
PragmaStatement -> Statement;
PreExp -> UnaExp;
PrettyFuncInitExp -> DefaultInitExp;
ProtDeclaration -> AttribDeclaration;
PtrExp -> UnaExp;
RealExp -> Expression;
RemoveExp -> BinExp;
ReturnStatement -> Statement;
ScopeDsymbol -> Dsymbol;
ScopeExp -> Expression;
ScopeStatement -> Statement;
SharedStaticCtorDeclaration -> StaticCtorDeclaration;
SharedStaticDtorDeclaration -> StaticDtorDeclaration;
ShlAssignExp -> BinAssignExp;
ShlExp -> BinExp;
ShrAssignExp -> BinAssignExp;
ShrExp -> BinExp;
SliceExp -> UnaExp;
StaticAssert -> Dsymbol;
StaticAssertStatement -> Statement;
StaticCtorDeclaration -> FuncDeclaration;
StaticDtorDeclaration -> FuncDeclaration;
StaticIfCondition -> Condition;
StaticIfDeclaration -> ConditionalDeclaration;
StorageClassDeclaration -> AttribDeclaration;
StringExp -> Expression;
StructDeclaration -> AggregateDeclaration;
StructInitializer -> Initializer;
StructLiteralExp -> Expression;
SuperExp -> ThisExp;
SwitchErrorStatement -> Statement;
SwitchStatement -> Statement;
SymOffExp -> SymbolExp;
SymbolDeclaration -> Declaration;
SymbolExp -> Expression;
SynchronizedStatement -> Statement;
TemplateAliasParameter -> TemplateParameter;
TemplateDeclaration -> ScopeDsymbol;
TemplateExp -> Expression;
TemplateInstance -> ScopeDsymbol;
TemplateMixin -> TemplateInstance;
TemplateThisParameter -> TemplateTypeParameter;
TemplateTupleParameter -> TemplateParameter;
TemplateTypeParameter -> TemplateParameter;
TemplateValueParameter -> TemplateParameter;
ThisDeclaration -> VarDeclaration;
ThisExp -> Expression;
ThrowStatement -> Statement;
ThrownExceptionExp -> Expression;
TraitsExp -> Expression;
TryCatchStatement -> Statement;
TryFinallyStatement -> Statement;
TupleDeclaration -> Declaration;
TupleExp -> Expression;
TypeAArray -> TypeArray;
TypeArray -> TypeNext;
TypeBasic -> Type;
TypeClass -> Type;
TypeDArray -> TypeArray;
TypeDelegate -> TypeNext;
TypeEnum -> Type;
TypeError -> Type;
TypeExp -> Expression;
TypeFunction -> TypeNext;
TypeIdentifier -> TypeQualified;
TypeInfoArrayDeclaration -> TypeInfoDeclaration;
TypeInfoAssociativeArrayDeclaration -> TypeInfoDeclaration;
TypeInfoClassDeclaration -> TypeInfoDeclaration;
TypeInfoConstDeclaration -> TypeInfoDeclaration;
TypeInfoDeclaration -> VarDeclaration;
TypeInfoDelegateDeclaration -> TypeInfoDeclaration;
TypeInfoEnumDeclaration -> TypeInfoDeclaration;
TypeInfoFunctionDeclaration -> TypeInfoDeclaration;
TypeInfoInterfaceDeclaration -> TypeInfoDeclaration;
TypeInfoInvariantDeclaration -> TypeInfoDeclaration;
TypeInfoPointerDeclaration -> TypeInfoDeclaration;
TypeInfoSharedDeclaration -> TypeInfoDeclaration;
TypeInfoStaticArrayDeclaration -> TypeInfoDeclaration;
TypeInfoStructDeclaration -> TypeInfoDeclaration;
TypeInfoTupleDeclaration -> TypeInfoDeclaration;
TypeInfoVectorDeclaration -> TypeInfoDeclaration;
TypeInfoWildDeclaration -> TypeInfoDeclaration;
TypeInstance -> TypeQualified;
TypeNext -> Type;
TypeNull -> Type;
TypePointer -> TypeNext;
TypeQualified -> Type;
TypeReference -> TypeNext;
TypeReturn -> TypeQualified;
TypeSArray -> TypeArray;
TypeSlice -> TypeNext;
TypeStruct -> Type;
TypeTuple -> Type;
TypeTypeof -> TypeQualified;
TypeVector -> Type;
TypeidExp -> Expression;
UAddExp -> UnaExp;
UnaExp -> Expression;
UnionDeclaration -> StructDeclaration;
UnitTestDeclaration -> FuncDeclaration;
UnrolledLoopStatement -> Statement;
UserAttributeDeclaration -> AttribDeclaration;
UshrAssignExp -> BinAssignExp;
UshrExp -> BinExp;
VarDeclaration -> Declaration;
VarExp -> SymbolExp;
VectorExp -> UnaExp;
VersionCondition -> DVCondition;
VersionSymbol -> Dsymbol;
VoidInitExp -> Expression;
VoidInitializer -> Initializer;
WhileStatement -> Statement;
WithScopeSymbol -> ScopeDsymbol;
WithStatement -> Statement;
XorAssignExp -> BinAssignExp;
XorExp -> BinExp;
}
More information about the Digitalmars-d
mailing list