00001 //===-- ast/DeclVisitor.h ------------------------------------- -*- C++ -*-===// 00002 // 00003 // This file is distributed under the MIT license. See LICENSE.txt for details. 00004 // 00005 // Copyright (C) 2009-2010, Stephen Wilson 00006 // 00007 //===----------------------------------------------------------------------===// 00008 00009 //===----------------------------------------------------------------------===// 00015 //===----------------------------------------------------------------------===// 00016 00017 #ifndef COMMA_AST_DECLVISITOR_HDR_GUARD 00018 #define COMMA_AST_DECLVISITOR_HDR_GUARD 00019 00020 #include "comma/ast/AstBase.h" 00021 00022 namespace comma { 00023 00024 class DeclVisitor { 00025 00026 public: 00027 virtual ~DeclVisitor() { } 00028 00043 virtual void visitAst(Ast *node); 00044 virtual void visitDecl(Decl *node); 00045 virtual void visitModelDecl(ModelDecl *node); 00046 virtual void visitSigoid(Sigoid *node); 00047 virtual void visitDomoid(Domoid *node); 00048 virtual void visitSubroutineDecl(SubroutineDecl *node); 00049 virtual void visitTypeDecl(TypeDecl *node); 00050 virtual void visitDomainTypeDecl(DomainTypeDecl *node); 00051 virtual void visitValueDecl(ValueDecl *node); 00053 00065 virtual void visitImportDecl(ImportDecl *node); 00066 virtual void visitSignatureDecl(SignatureDecl *node); 00067 virtual void visitVarietyDecl(VarietyDecl *node); 00068 virtual void visitSigInstanceDecl(SigInstanceDecl *node); 00069 virtual void visitAddDecl(AddDecl *node); 00070 virtual void visitDomainDecl(DomainDecl *node); 00071 virtual void visitFunctorDecl(FunctorDecl *node); 00072 virtual void visitFunctionDecl(FunctionDecl *node); 00073 virtual void visitProcedureDecl(ProcedureDecl *node); 00074 virtual void visitCarrierDecl(CarrierDecl *node); 00075 virtual void visitAbstractDomainDecl(AbstractDomainDecl *node); 00076 virtual void visitDomainInstanceDecl(DomainInstanceDecl *node); 00077 virtual void visitPercentDecl(PercentDecl *node); 00078 virtual void visitLoopDecl(LoopDecl *node); 00079 virtual void visitParamValueDecl(ParamValueDecl *node); 00080 virtual void visitObjectDecl(ObjectDecl *node); 00081 virtual void visitRenamedObjectDecl(RenamedObjectDecl *node); 00082 virtual void visitEnumLiteral(EnumLiteral *node); 00083 virtual void visitEnumerationDecl(EnumerationDecl *node); 00084 virtual void visitIntegerDecl(IntegerDecl *node); 00085 virtual void visitArrayDecl(ArrayDecl *node); 00086 virtual void visitExceptionDecl(ExceptionDecl *node); 00087 virtual void visitIncompleteTypeDecl(IncompleteTypeDecl *node); 00089 }; 00090 00091 } // end comma namespace. 00092 00093 #endif