module ddmd.strictvisitor;

import ddmd.astbase;
import ddmd.astbasevisitor;

/** The StrictVisitor asserts 0 an all visiting functions in order to
  * make sure that all the nodes are visited.
  */
class StrictVisitor : Visitor
{
    alias visit = super.visit;

    override void visit(ASTBase.Dsymbol) { assert(0); }
    override void visit(ASTBase.AliasThis) { assert(0); }
    override void visit(ASTBase.Declaration) { assert(0); }
    override void visit(ASTBase.ScopeDsymbol) { assert(0); }
    override void visit(ASTBase.Import) { assert(0); }
    override void visit(ASTBase.AttribDeclaration) { assert(0); }
    override void visit(ASTBase.StaticAssert) { assert(0); }
    override void visit(ASTBase.DebugSymbol) { assert(0); }
    override void visit(ASTBase.VersionSymbol) { assert(0); }
    override void visit(ASTBase.VarDeclaration) { assert(0); }
    override void visit(ASTBase.FuncDeclaration) { assert(0); }
    override void visit(ASTBase.AliasDeclaration) { assert(0); }
    override void visit(ASTBase.TupleDeclaration) { assert(0); }
    override void visit(ASTBase.FuncLiteralDeclaration) { assert(0); }
    override void visit(ASTBase.PostBlitDeclaration) { assert(0); }
    override void visit(ASTBase.CtorDeclaration) { assert(0); }
    override void visit(ASTBase.DtorDeclaration) { assert(0); }
    override void visit(ASTBase.InvariantDeclaration) { assert(0); }
    override void visit(ASTBase.UnitTestDeclaration) { assert(0); }
    override void visit(ASTBase.NewDeclaration) { assert(0); }
    override void visit(ASTBase.DeleteDeclaration) { assert(0); }
    override void visit(ASTBase.StaticCtorDeclaration) { assert(0); }
    override void visit(ASTBase.StaticDtorDeclaration) { assert(0); }
    override void visit(ASTBase.SharedStaticCtorDeclaration) { assert(0); }
    override void visit(ASTBase.SharedStaticDtorDeclaration) { assert(0); }
    override void visit(ASTBase.Package) { assert(0); }
    override void visit(ASTBase.EnumDeclaration) { assert(0); }
    override void visit(ASTBase.AggregateDeclaration) { assert(0); }
    override void visit(ASTBase.TemplateDeclaration) { assert(0); }
    override void visit(ASTBase.TemplateInstance) { assert(0); }
    override void visit(ASTBase.Nspace) { assert(0); }
    override void visit(ASTBase.CompileDeclaration) { assert(0); }
    override void visit(ASTBase.UserAttributeDeclaration) { assert(0); }
    override void visit(ASTBase.LinkDeclaration) { assert(0); }
    override void visit(ASTBase.AnonDeclaration) { assert(0); }
    override void visit(ASTBase.AlignDeclaration) { assert(0); }
    override void visit(ASTBase.CPPMangleDeclaration) { assert(0); }
    override void visit(ASTBase.ProtDeclaration) { assert(0); }
    override void visit(ASTBase.PragmaDeclaration) { assert(0); }
    override void visit(ASTBase.StorageClassDeclaration) { assert(0); }
    override void visit(ASTBase.ConditionalDeclaration) { assert(0); }
    override void visit(ASTBase.DeprecatedDeclaration) { assert(0); }
    override void visit(ASTBase.StaticIfDeclaration) { assert(0); }
    override void visit(ASTBase.EnumMember) { assert(0); }
    override void visit(ASTBase.Module) { assert(0); }
    override void visit(ASTBase.StructDeclaration) { assert(0); }
    override void visit(ASTBase.UnionDeclaration) { assert(0); }
    override void visit(ASTBase.ClassDeclaration) { assert(0); }
    override void visit(ASTBase.InterfaceDeclaration) { assert(0); }
    override void visit(ASTBase.TemplateMixin) { assert(0); }
    override void visit(ASTBase.Parameter) { assert(0); }
    override void visit(ASTBase.Statement) { assert(0); }
    override void visit(ASTBase.ImportStatement) { assert(0); }
    override void visit(ASTBase.ScopeStatement) { assert(0); }
    override void visit(ASTBase.ReturnStatement) { assert(0); }
    override void visit(ASTBase.LabelStatement) { assert(0); }
    override void visit(ASTBase.StaticAssertStatement) { assert(0); }
    override void visit(ASTBase.CompileStatement) { assert(0); }
    override void visit(ASTBase.WhileStatement) { assert(0); }
    override void visit(ASTBase.ForStatement) { assert(0); }
    override void visit(ASTBase.DoStatement) { assert(0); }
    override void visit(ASTBase.ForeachRangeStatement) { assert(0); }
    override void visit(ASTBase.ForeachStatement) { assert(0); }
    override void visit(ASTBase.IfStatement) { assert(0); }
    override void visit(ASTBase.OnScopeStatement) { assert(0); }
    override void visit(ASTBase.ConditionalStatement) { assert(0); }
    override void visit(ASTBase.PragmaStatement) { assert(0); }
    override void visit(ASTBase.SwitchStatement) { assert(0); }
    override void visit(ASTBase.CaseRangeStatement) { assert(0); }
    override void visit(ASTBase.CaseStatement) { assert(0); }
    override void visit(ASTBase.DefaultStatement) { assert(0); }
    override void visit(ASTBase.BreakStatement) { assert(0); }
    override void visit(ASTBase.ContinueStatement) { assert(0); }
    override void visit(ASTBase.GotoDefaultStatement) { assert(0); }
    override void visit(ASTBase.GotoCaseStatement) { assert(0); }
    override void visit(ASTBase.GotoStatement) { assert(0); }
    override void visit(ASTBase.SynchronizedStatement) { assert(0); }
    override void visit(ASTBase.WithStatement) { assert(0); }
    override void visit(ASTBase.TryCatchStatement) { assert(0); }
    override void visit(ASTBase.TryFinallyStatement) { assert(0); }
    override void visit(ASTBase.ThrowStatement) { assert(0); }
    override void visit(ASTBase.AsmStatement) { assert(0); }
    override void visit(ASTBase.ExpStatement) { assert(0); }
    override void visit(ASTBase.CompoundStatement) { assert(0); }
    override void visit(ASTBase.CompoundDeclarationStatement) { assert(0); }
    override void visit(ASTBase.CompoundAsmStatement) { assert(0); }
    override void visit(ASTBase.Type) { assert(0); }
    override void visit(ASTBase.TypeBasic) { assert(0); }
    override void visit(ASTBase.TypeError) { assert(0); }
    override void visit(ASTBase.TypeNull) { assert(0); }
    override void visit(ASTBase.TypeVector) { assert(0); }
    override void visit(ASTBase.TypeEnum) { assert(0); }
    override void visit(ASTBase.TypeTuple) { assert(0); }
    override void visit(ASTBase.TypeClass) { assert(0); }
    override void visit(ASTBase.TypeStruct) { assert(0); }
    override void visit(ASTBase.TypeNext) { assert(0); }
    override void visit(ASTBase.TypeReference) { assert(0); }
    override void visit(ASTBase.TypeSlice) { assert(0); }
    override void visit(ASTBase.TypeDelegate) { assert(0); }
    override void visit(ASTBase.TypePointer) { assert(0); }
    override void visit(ASTBase.TypeFunction) { assert(0); }
    override void visit(ASTBase.TypeArray) { assert(0); }
    override void visit(ASTBase.TypeDArray) { assert(0); }
    override void visit(ASTBase.TypeAArray) { assert(0); }
    override void visit(ASTBase.TypeSArray) { assert(0); }
    override void visit(ASTBase.TypeQualified) { assert(0); }
    override void visit(ASTBase.TypeIdentifier) { assert(0); }
    override void visit(ASTBase.TypeReturn) { assert(0); }
    override void visit(ASTBase.TypeTypeof) { assert(0); }
    override void visit(ASTBase.TypeInstance) { assert(0); }
    override void visit(ASTBase.Expression) { assert(0); }
    override void visit(ASTBase.DeclarationExp) { assert(0); }
    override void visit(ASTBase.IntegerExp) { assert(0); }
    override void visit(ASTBase.NewAnonClassExp) { assert(0); }
    override void visit(ASTBase.IsExp) { assert(0); }
    override void visit(ASTBase.RealExp) { assert(0); }
    override void visit(ASTBase.NullExp) { assert(0); }
    override void visit(ASTBase.TypeidExp) { assert(0); }
    override void visit(ASTBase.TraitsExp) { assert(0); }
    override void visit(ASTBase.StringExp) { assert(0); }
    override void visit(ASTBase.NewExp) { assert(0); }
    override void visit(ASTBase.AssocArrayLiteralExp) { assert(0); }
    override void visit(ASTBase.ArrayLiteralExp) { assert(0); }
    override void visit(ASTBase.FuncExp) { assert(0); }
    override void visit(ASTBase.IntervalExp) { assert(0); }
    override void visit(ASTBase.TypeExp) { assert(0); }
    override void visit(ASTBase.ScopeExp) { assert(0); }
    override void visit(ASTBase.IdentifierExp) { assert(0); }
    override void visit(ASTBase.UnaExp) { assert(0); }
    override void visit(ASTBase.DefaultInitExp) { assert(0); }
    override void visit(ASTBase.BinExp) { assert(0); }
    override void visit(ASTBase.DsymbolExp) { assert(0); }
    override void visit(ASTBase.TemplateExp) { assert(0); }
    override void visit(ASTBase.SymbolExp) { assert(0); }
    override void visit(ASTBase.VarExp) { assert(0); }
    override void visit(ASTBase.TupleExp) { assert(0); }
    override void visit(ASTBase.DollarExp) { assert(0); }
    override void visit(ASTBase.ThisExp) { assert(0); }
    override void visit(ASTBase.SuperExp) { assert(0); }
    override void visit(ASTBase.AddrExp) { assert(0); }
    override void visit(ASTBase.PreExp) { assert(0); }
    override void visit(ASTBase.PtrExp) { assert(0); }
    override void visit(ASTBase.NegExp) { assert(0); }
    override void visit(ASTBase.UAddExp) { assert(0); }
    override void visit(ASTBase.NotExp) { assert(0); }
    override void visit(ASTBase.ComExp) { assert(0); }
    override void visit(ASTBase.DeleteExp) { assert(0); }
    override void visit(ASTBase.CastExp) { assert(0); }
    override void visit(ASTBase.CallExp) { assert(0); }
    override void visit(ASTBase.DotIdExp) { assert(0); }
    override void visit(ASTBase.AssertExp) { assert(0); }
    override void visit(ASTBase.CompileExp) { assert(0); }
    override void visit(ASTBase.ImportExp) { assert(0); }
    override void visit(ASTBase.DotTemplateInstanceExp) { assert(0); }
    override void visit(ASTBase.ArrayExp) { assert(0); }
    override void visit(ASTBase.FuncInitExp) { assert(0); }
    override void visit(ASTBase.PrettyFuncInitExp) { assert(0); }
    override void visit(ASTBase.FileInitExp) { assert(0); }
    override void visit(ASTBase.LineInitExp) { assert(0); }
    override void visit(ASTBase.ModuleInitExp) { assert(0); }
    override void visit(ASTBase.CommaExp) { assert(0); }
    override void visit(ASTBase.PostExp) { assert(0); }
    override void visit(ASTBase.PowExp) { assert(0); }
    override void visit(ASTBase.MulExp) { assert(0); }
    override void visit(ASTBase.DivExp) { assert(0); }
    override void visit(ASTBase.ModExp) { assert(0); }
    override void visit(ASTBase.AddExp) { assert(0); }
    override void visit(ASTBase.MinExp) { assert(0); }
    override void visit(ASTBase.CatExp) { assert(0); }
    override void visit(ASTBase.ShlExp) { assert(0); }
    override void visit(ASTBase.ShrExp) { assert(0); }
    override void visit(ASTBase.UshrExp) { assert(0); }
    override void visit(ASTBase.EqualExp) { assert(0); }
    override void visit(ASTBase.InExp) { assert(0); }
    override void visit(ASTBase.IdentityExp) { assert(0); }
    override void visit(ASTBase.CmpExp) { assert(0); }
    override void visit(ASTBase.AndExp) { assert(0); }
    override void visit(ASTBase.XorExp) { assert(0); }
    override void visit(ASTBase.OrExp) { assert(0); }
    override void visit(ASTBase.AndAndExp) { assert(0); }
    override void visit(ASTBase.OrOrExp) { assert(0); }
    override void visit(ASTBase.CondExp) { assert(0); }
    override void visit(ASTBase.AssignExp) { assert(0); }
    override void visit(ASTBase.BinAssignExp) { assert(0); }
    override void visit(ASTBase.AddAssignExp) { assert(0); }
    override void visit(ASTBase.MinAssignExp) { assert(0); }
    override void visit(ASTBase.MulAssignExp) { assert(0); }
    override void visit(ASTBase.DivAssignExp) { assert(0); }
    override void visit(ASTBase.ModAssignExp) { assert(0); }
    override void visit(ASTBase.PowAssignExp) { assert(0); }
    override void visit(ASTBase.AndAssignExp) { assert(0); }
    override void visit(ASTBase.OrAssignExp) { assert(0); }
    override void visit(ASTBase.XorAssignExp) { assert(0); }
    override void visit(ASTBase.ShlAssignExp) { assert(0); }
    override void visit(ASTBase.ShrAssignExp) { assert(0); }
    override void visit(ASTBase.UshrAssignExp) { assert(0); }
    override void visit(ASTBase.CatAssignExp) { assert(0); }
    override void visit(ASTBase.TemplateParameter) { assert(0); }
    override void visit(ASTBase.TemplateAliasParameter) { assert(0); }
    override void visit(ASTBase.TemplateTypeParameter) { assert(0); }
    override void visit(ASTBase.TemplateTupleParameter) { assert(0); }
    override void visit(ASTBase.TemplateValueParameter) { assert(0); }
    override void visit(ASTBase.TemplateThisParameter) { assert(0); }
    override void visit(ASTBase.Condition) { assert(0); }
    override void visit(ASTBase.StaticIfCondition) { assert(0); }
    override void visit(ASTBase.DVCondition) { assert(0); }
    override void visit(ASTBase.DebugCondition) { assert(0); }
    override void visit(ASTBase.VersionCondition) { assert(0); }
    override void visit(ASTBase.Initializer) { assert(0); }
    override void visit(ASTBase.ExpInitializer) { assert(0); }
    override void visit(ASTBase.StructInitializer) { assert(0); }
    override void visit(ASTBase.ArrayInitializer) { assert(0); }
    override void visit(ASTBase.VoidInitializer) { assert(0); }
}
