Make it possible to use the generalised 'case' construct in the cmd_line property.
[oota-llvm.git] / tools / llvmc2 / Action.h
1 //===--- Tools.h - The LLVM Compiler Driver ---------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open
6 // Source License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 //  Action - encapsulates a single shell command.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef LLVM_TOOLS_LLVMC2_ACTION_H
15 #define LLVM_TOOLS_LLVMC2_ACTION_H
16
17 #include <string>
18 #include <vector>
19
20 namespace llvmc {
21
22   typedef std::vector<std::string> StringVector;
23
24   /// Action - A class that encapsulates a single shell command.
25   class Action {
26     /// Command_ - The actual command (for example, 'ls').
27     std::string Command_;
28     /// Args_ - Command arguments. Stdout redirection ("> file") is allowed.
29     std::vector<std::string> Args_;
30   public:
31     Action() {}
32     Action (const std::string& C,
33             const StringVector& A)
34       : Command_(C), Args_(A)
35     {}
36
37     /// Execute - Executes the represented action.
38     int Execute() const;
39   };
40
41 }
42
43 #endif // LLVM_TOOLS_LLVMC2_ACTION_H