00001 #ifndef COMMAND_LINE_PARSING_H_INCLUDED_
00002 #define COMMAND_LINE_PARSING_H_INCLUDED_
00003
00004 #include <vector>
00005 #include <string>
00006
00007 namespace risc {
00008
00009 class Design;
00010
00011 namespace tools {
00012
00013
00033 std::vector<std::string>
00034 preparsing_commandline_arguments(int &argc, char **&argv,
00035 std::vector<std::string> &input_files);
00036
00046 std::string instrumentor_output_filename(int &argc, char **&argv);
00047
00057 std::string dynamic_analysis_input_filename(int &argc, char **&argv);
00058
00063 class ParseStatus
00064 {
00065 public:
00069 unsigned int verbosityLevel;
00070
00074 unsigned int warningLevel;
00075
00079 std::string compilerName;
00080
00081 std::vector < std::string > input_psg_file_names;
00082 std::string output_psg_file_name;
00083
00087 bool mic;
00088
00089 ParseStatus();
00090 ParseStatus& operator=(const ParseStatus& copy);
00091 };
00092
00097 void
00098 ParseCommandlineOptions(int &argc, char** &argv, ParseStatus* status);
00099
00104 void
00105 AddCommandlineOption(int &argc, char** &argv, std::string option);
00106
00112 void
00113 AddCommandlineOption(risc::Design &design, std::string option);
00114
00120 void
00121 RemoveCommandlineOption(risc::Design &design, std::string option);
00122
00123 }
00124
00125 }
00126
00127 #endif
00128
00129