1231200Smm//===--- ASTConsumers.h - ASTConsumer implementations -----------*- C++ -*-===// 2231200Smm// 3231200Smm// The LLVM Compiler Infrastructure 4231200Smm// 5231200Smm// This file is distributed under the University of Illinois Open Source 6231200Smm// License. See LICENSE.TXT for details. 7231200Smm// 8231200Smm//===----------------------------------------------------------------------===// 9231200Smm// 10231200Smm// AST Consumers. 11231200Smm// 12231200Smm//===----------------------------------------------------------------------===// 13231200Smm 14231200Smm#ifndef DRIVER_ASTCONSUMERS_H 15231200Smm#define DRIVER_ASTCONSUMERS_H 16231200Smm 17231200Smm#include "clang/Basic/LLVM.h" 18231200Smm 19231200Smmnamespace clang { 20231200Smm 21231200Smmclass ASTConsumer; 22231200Smmclass CodeGenOptions; 23231200Smmclass DiagnosticsEngine; 24231200Smmclass FileManager; 25231200Smmclass LangOptions; 26231200Smmclass Preprocessor; 27231200Smmclass TargetOptions; 28358090Smm 29358090Smm// AST pretty-printer: prints out the AST in a format that is close to the 30358090Smm// original C code. The output is intended to be in a format such that 31231200Smm// clang could re-parse the output back into the same AST, but the 32231200Smm// implementation is still incomplete. 33231200SmmASTConsumer *CreateASTPrinter(raw_ostream *OS, StringRef FilterString); 34231200Smm 35231200Smm// AST dumper: dumps the raw AST in human-readable form to stderr; this is 36231200Smm// intended for debugging. 37231200SmmASTConsumer *CreateASTDumper(StringRef FilterString, bool DumpLookups = false); 38231200Smm 39231200Smm// AST Decl node lister: prints qualified names of all filterable AST Decl 40231200Smm// nodes. 41231200SmmASTConsumer *CreateASTDeclNodeLister(); 42231200Smm 43231200Smm// Graphical AST viewer: for each function definition, creates a graph of 44231200Smm// the AST and displays it with the graph viewer "dotty". Also outputs 45231200Smm// function declarations to stderr. 46231200SmmASTConsumer *CreateASTViewer(); 47231200Smm 48231200Smm// DeclContext printer: prints out the DeclContext tree in human-readable form 49231200Smm// to stderr; this is intended for debugging. 50231200SmmASTConsumer *CreateDeclContextPrinter(); 51231200Smm 52231200Smm} // end clang namespace 53231200Smm 54231200Smm#endif 55231200Smm