ASTConsumers.h revision 218893
1//===--- ASTConsumers.h - ASTConsumer implementations -----------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// AST Consumers.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef DRIVER_ASTCONSUMERS_H
15#define DRIVER_ASTCONSUMERS_H
16
17#include <string>
18
19namespace llvm {
20  class raw_ostream;
21  namespace sys { class Path; }
22}
23namespace clang {
24
25class ASTConsumer;
26class CodeGenOptions;
27class Diagnostic;
28class FileManager;
29class LangOptions;
30class Preprocessor;
31class TargetOptions;
32
33// AST pretty-printer: prints out the AST in a format that is close to the
34// original C code.  The output is intended to be in a format such that
35// clang could re-parse the output back into the same AST, but the
36// implementation is still incomplete.
37ASTConsumer *CreateASTPrinter(llvm::raw_ostream *OS);
38
39// AST XML-printer: prints out the AST in a XML format
40// The output is intended to be in a format such that
41// clang or any other tool could re-parse the output back into the same AST,
42// but the implementation is still incomplete.
43ASTConsumer *CreateASTPrinterXML(llvm::raw_ostream *OS);
44
45// AST dumper: dumps the raw AST in human-readable form to stderr; this is
46// intended for debugging.
47ASTConsumer *CreateASTDumper();
48
49// AST XML-dumper: dumps out the AST to stderr in a very detailed XML
50// format; this is intended for particularly intense debugging.
51ASTConsumer *CreateASTDumperXML(llvm::raw_ostream &OS);
52
53// Graphical AST viewer: for each function definition, creates a graph of
54// the AST and displays it with the graph viewer "dotty".  Also outputs
55// function declarations to stderr.
56ASTConsumer *CreateASTViewer();
57
58// DeclContext printer: prints out the DeclContext tree in human-readable form
59// to stderr; this is intended for debugging.
60ASTConsumer *CreateDeclContextPrinter();
61
62} // end clang namespace
63
64#endif
65