00001 //===-- ast/DiagPrint.h --------------------------------------- -*- C++ -*-===// 00002 // 00003 // This file is distributed under the MIT license. See LICENSE.txt for details. 00004 // 00005 // Copyright (C) 2009, Stephen Wilson 00006 // 00007 //===----------------------------------------------------------------------===// 00008 00009 //===----------------------------------------------------------------------===// 00014 //===----------------------------------------------------------------------===// 00015 00016 #ifndef COMMA_AST_DIAGPRINT_HDR_GUARD 00017 #define COMMA_AST_SIAGPRINT_HDR_GUARD 00018 00019 #include "comma/basic/Diagnostic.h" 00020 00021 namespace comma { 00022 00023 class Expr; 00024 class Type; 00025 class Decl; 00026 00027 namespace diag { 00028 00029 class PrintType : public DiagnosticComponent { 00030 comma::Type *type; 00031 public: 00032 PrintType(comma::Type *type) : type(type) { } 00033 void print(llvm::raw_ostream &stream) const; 00034 }; 00035 00036 class PrintDecl : public DiagnosticComponent { 00037 comma::Decl *decl; 00038 public: 00039 PrintDecl(comma::Decl *decl) : decl(decl) { } 00040 void print(llvm::raw_ostream &stream) const; 00041 }; 00042 00043 } // end diag namespace 00044 00045 } // end comma namespace 00046 00047 #endif