00001 //===-- ast/TypeVisitor.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 //===---------------------------------------------------------------------===// 00014 //===----------------------------------------------------------------------===// 00015 00016 #ifndef COMMA_AST_TYPEVISITOR_HDR_GUARD 00017 #define COMMA_AST_TYPEVISITOR_HDR_GUARD 00018 00019 #include "comma/ast/AstBase.h" 00020 00021 namespace comma { 00022 00023 class TypeVisitor { 00024 00025 public: 00026 virtual ~TypeVisitor() { } 00027 00038 00039 virtual void visitType(Type *node); 00040 virtual void visitSubroutineType(SubroutineType *node); 00042 00048 00049 virtual void visitDomainType(DomainType *node); 00050 virtual void visitFunctionType(FunctionType *node); 00051 virtual void visitProcedureType(ProcedureType *node); 00052 virtual void visitEnumerationType(EnumerationType *node); 00053 virtual void visitIntegerType(IntegerType *node); 00054 virtual void visitArrayType(ArrayType *node); 00055 virtual void visitRecordType(RecordType *node); 00056 virtual void visitAccessType(AccessType *node); 00057 virtual void visitIncompleteType(IncompleteType *node); 00059 }; 00060 00061 } // end comma namespace. 00062 00063 #endif