clang  3.9.0
ArgumentsAdjusters.h
Go to the documentation of this file.
1 //===--- ArgumentsAdjusters.h - Command line arguments adjuster -*- 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 // This file declares typedef ArgumentsAdjuster and functions to create several
11 // useful argument adjusters.
12 // ArgumentsAdjusters modify command line arguments obtained from a compilation
13 // database before they are used to run a frontend action.
14 //
15 //===----------------------------------------------------------------------===//
16 
17 #ifndef LLVM_CLANG_TOOLING_ARGUMENTSADJUSTERS_H
18 #define LLVM_CLANG_TOOLING_ARGUMENTSADJUSTERS_H
19 
20 #include "clang/Basic/LLVM.h"
21 #include "llvm/ADT/StringRef.h"
22 #include <functional>
23 #include <string>
24 #include <vector>
25 
26 namespace clang {
27 namespace tooling {
28 
29 /// \brief A sequence of command line arguments.
30 typedef std::vector<std::string> CommandLineArguments;
31 
32 /// \brief A prototype of a command line adjuster.
33 ///
34 /// Command line argument adjuster is responsible for command line arguments
35 /// modification before the arguments are used to run a frontend action.
36 typedef std::function<CommandLineArguments(
38 
39 /// \brief Gets an argument adjuster that converts input command line arguments
40 /// to the "syntax check only" variant.
42 
43 /// \brief Gets an argument adjuster which removes output-related command line
44 /// arguments.
46 
48 
49 /// \brief Gets an argument adjuster which inserts \p Extra arguments in the
50 /// specified position.
53 
54 /// \brief Gets an argument adjuster which inserts an \p Extra argument in the
55 /// specified position.
57  const char *Extra,
59 
60 /// \brief Gets an argument adjuster which adjusts the arguments in sequence
61 /// with the \p First adjuster and then with the \p Second one.
63  ArgumentsAdjuster Second);
64 
65 } // namespace tooling
66 } // namespace clang
67 
68 #endif // LLVM_CLANG_TOOLING_ARGUMENTSADJUSTERS_H
69 
ArgumentsAdjuster getInsertArgumentAdjuster(const CommandLineArguments &Extra, ArgumentInsertPosition Pos)
Gets an argument adjuster which inserts Extra arguments in the specified position.
ArgumentsAdjuster combineAdjusters(ArgumentsAdjuster First, ArgumentsAdjuster Second)
Gets an argument adjuster which adjusts the arguments in sequence with the First adjuster and then wi...
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified...
StringRef Filename
Definition: Format.cpp:1194
ArgumentsAdjuster getClangStripOutputAdjuster()
Gets an argument adjuster which removes output-related command line arguments.
std::function< CommandLineArguments(const CommandLineArguments &, StringRef Filename)> ArgumentsAdjuster
A prototype of a command line adjuster.
std::vector< std::string > CommandLineArguments
A sequence of command line arguments.
ArgumentsAdjuster getClangSyntaxOnlyAdjuster()
Gets an argument adjuster that converts input command line arguments to the "syntax check only" varia...