This machine mirrors various open-source projects.
20 Gbit/s uplink.
If there are any issues or you want another project mirrored, please contact
mirror-service -=AT=- netcologne DOT de !
00001 //===-- ast/DeclDumper.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 //===----------------------------------------------------------------------===// 00017 //===----------------------------------------------------------------------===// 00018 00019 #ifndef COMMA_AST_DECLDUMPER_HDR_GUARD 00020 #define COMMA_AST_DECLDUMPER_HDR_GUARD 00021 00022 #include "AstDumper.h" 00023 #include "TypeDumper.h" 00024 #include "StmtDumper.h" 00025 #include "comma/ast/DeclVisitor.h" 00026 00027 #include "llvm/Support/raw_ostream.h" 00028 00029 namespace comma { 00030 00031 class DeclDumper : public AstDumperBase, private DeclVisitor { 00032 00033 public: 00036 DeclDumper(llvm::raw_ostream &stream, AstDumper *dumper) 00037 : AstDumperBase(stream), 00038 dumper(dumper) { } 00039 00042 llvm::raw_ostream &dump(Decl *decl, unsigned level = 0); 00043 00044 private: 00046 AstDumper *dumper; 00047 00049 llvm::raw_ostream &dumpAST(Ast *node) { 00050 return dumper->dump(node, indentLevel); 00051 } 00052 00055 llvm::raw_ostream &printHeader(Ast *node); 00056 00063 void visitImportDecl(ImportDecl *node); 00064 void visitSignatureDecl(SignatureDecl *node); 00065 void visitVarietyDecl(VarietyDecl *node); 00066 void visitSigInstanceDecl(SigInstanceDecl *node); 00067 void visitAddDecl(AddDecl *node); 00068 void visitDomainDecl(DomainDecl *node); 00069 void visitFunctorDecl(FunctorDecl *node); 00070 void visitSubroutineDecl(SubroutineDecl *node); 00071 void visitFunctionDecl(FunctionDecl *node); 00072 void visitProcedureDecl(ProcedureDecl *node); 00073 void visitCarrierDecl(CarrierDecl *node); 00074 void visitDomainTypeDecl(DomainTypeDecl *node); 00075 void visitAbstractDomainDecl(AbstractDomainDecl *node); 00076 void visitDomainInstanceDecl(DomainInstanceDecl *node); 00077 void visitPercentDecl(PercentDecl *node); 00078 void visitLoopDecl(LoopDecl *node); 00079 void visitParamValueDecl(ParamValueDecl *node); 00080 void visitObjectDecl(ObjectDecl *node); 00081 void visitEnumLiteral(EnumLiteral *node); 00082 void visitEnumerationDecl(EnumerationDecl *node); 00083 void visitIntegerDecl(IntegerDecl *node); 00084 void visitArrayDecl(ArrayDecl *node); 00085 void visitExceptionDecl(ExceptionDecl *node); 00086 void visitIncompleteTypeDecl(IncompleteTypeDecl *node); 00087 }; 00088 00089 } // end comma namespace. 00090 00091 #endif