blob: d37e5fcbe2702b09d2fefafd860881db5106f856 [file] [log] [blame]
Chris Lattnereb8c9632007-10-07 06:04:32 +00001//===--- ASTConsumers.h - ASTConsumer implementations -----------*- C++ -*-===//
Chris Lattner4b009652007-07-25 00:24:17 +00002//
3// The LLVM Compiler Infrastructure
4//
Chris Lattnereb8c9632007-10-07 06:04:32 +00005// This file was developed by Chris Lattner and is distributed under the
Chris Lattner4b009652007-07-25 00:24:17 +00006// University of Illinois Open Source License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
Chris Lattnereb8c9632007-10-07 06:04:32 +000010// AST Consumers.
Chris Lattner4b009652007-07-25 00:24:17 +000011//
12//===----------------------------------------------------------------------===//
13
Chris Lattnereb8c9632007-10-07 06:04:32 +000014#ifndef DRIVER_ASTCONSUMERS_H
15#define DRIVER_ASTCONSUMERS_H
Chris Lattner4b009652007-07-25 00:24:17 +000016
Ted Kremenekbe2ea3b2007-11-28 21:32:21 +000017#include <iosfwd>
Ted Kremeneke09391a2007-11-27 21:46:50 +000018
Ted Kremenek397de012007-12-13 00:37:31 +000019namespace llvm { namespace sys { class Path; }}
20
Chris Lattner4b009652007-07-25 00:24:17 +000021namespace clang {
22
Chris Lattner1cc01712007-09-15 22:56:56 +000023class ASTConsumer;
Chris Lattner52332d02007-09-15 23:21:08 +000024class Diagnostic;
Ted Kremenek923de592007-12-05 00:26:13 +000025class FileManager;
Chris Lattnerdb6be562007-11-28 05:34:05 +000026struct LangOptions;
Chris Lattner4b009652007-07-25 00:24:17 +000027
Ted Kremenekbe2ea3b2007-11-28 21:32:21 +000028ASTConsumer *CreateASTPrinter(std::ostream* OS = NULL);
Ted Kremenekd890f6a2007-12-19 22:24:34 +000029
Chris Lattnerb73abd52007-09-15 23:02:28 +000030ASTConsumer *CreateASTDumper();
Ted Kremenekd890f6a2007-12-19 22:24:34 +000031
Ted Kremenekb6976a22007-09-19 21:29:43 +000032ASTConsumer *CreateASTViewer();
Ted Kremenekd890f6a2007-12-19 22:24:34 +000033
Chris Lattner52332d02007-09-15 23:21:08 +000034ASTConsumer *CreateCFGDumper(bool ViewGraphs = false);
Ted Kremenekd890f6a2007-12-19 22:24:34 +000035
Chris Lattner52332d02007-09-15 23:21:08 +000036ASTConsumer *CreateLiveVarAnalyzer();
Ted Kremenekd890f6a2007-12-19 22:24:34 +000037
Chris Lattner52332d02007-09-15 23:21:08 +000038ASTConsumer *CreateDeadStoreChecker(Diagnostic &Diags);
Ted Kremenekd890f6a2007-12-19 22:24:34 +000039
Ted Kremenek0a03ce62007-09-17 20:49:30 +000040ASTConsumer *CreateUnitValsChecker(Diagnostic &Diags);
Ted Kremenekd890f6a2007-12-19 22:24:34 +000041
Chris Lattnerdb6be562007-11-28 05:34:05 +000042ASTConsumer *CreateLLVMEmitter(Diagnostic &Diags, const LangOptions &Features);
Ted Kremenekd890f6a2007-12-19 22:24:34 +000043
Chris Lattner258f26c2007-11-30 22:25:36 +000044ASTConsumer *CreateCodeRewriterTest(Diagnostic &Diags);
Ted Kremenekd890f6a2007-12-19 22:24:34 +000045
46ASTConsumer *CreateSerializationTest(Diagnostic &Diags,
47 FileManager& FMgr,
Ted Kremenek2939b8a2007-12-05 21:34:36 +000048 const LangOptions &LOpts);
Ted Kremenek397de012007-12-13 00:37:31 +000049
Ted Kremenekd890f6a2007-12-19 22:24:34 +000050ASTConsumer *CreateASTSerializer(const std::string& InFile,
51 Diagnostic &Diags,
52 const LangOptions &LOpts);
Ted Kremeneke805c4a2007-09-06 23:00:42 +000053
Chris Lattner4b009652007-07-25 00:24:17 +000054} // end clang namespace
55
56#endif