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