Go to the documentation of this file.
40 transform(result.begin(), result.end(), result.begin(), tolower);
45 int wmain(
int argc,
const wchar_t **argv_wide)
47 int main(
int argc,
const char **argv)
56 if(argv==
nullptr || argc<1)
58 std::cerr <<
"failed to determine base name\n";
64 std::string base_name=
70 if(base_name ==
"goto-cl" || base_name ==
"cl")
76 return ms_cl_mode.
main(argc, argv);
78 else if(base_name ==
"goto-link" || base_name ==
"link")
83 return ms_link_mode.
main(argc, argv);
85 else if(base_name==
"goto-cw" ||
86 base_name==
"goto-cw-link")
91 cw_modet cw_mode(cmdline, base_name);
92 return cw_mode.
main(argc, argv);
94 else if(base_name==
"goto-armcc" ||
95 base_name==
"goto-armlink")
100 return armcc_mode.
main(argc, argv);
104 else if(base_name==
"goto-clang" ||
105 base_name.find(
"goto-gcc")!=std::string::npos)
111 gcc_modet gcc_mode(cmdline, base_name,
true);
112 return gcc_mode.
main(argc, argv);
114 else if(base_name.find(
"goto-ld")!=std::string::npos)
118 ld_modet ld_mode(cmdline, base_name);
119 return ld_mode.
main(argc, argv);
121 else if(base_name.find(
"goto-bcc")!=std::string::npos)
127 gcc_modet gcc_mode(cmdline, base_name,
true);
128 return gcc_mode.
main(argc, argv);
130 else if(base_name.find(
"goto-as86")!=std::string::npos)
135 as_modet as_mode(cmdline, base_name,
false);
136 return as_mode.
main(argc, argv);
138 else if(base_name.find(
"goto-as")!=std::string::npos)
142 as_modet as_mode(cmdline, base_name,
true);
143 return as_mode.
main(argc, argv);
149 gcc_modet gcc_mode(cmdline, base_name,
false);
150 return gcc_mode.
main(argc, argv);
std::string get_base_name(const std::string &in, bool strip_suffix)
cleans a filename from path and extension
std::string to_lower_string(const std::string &s)
static abstract_object_pointert transform(const exprt &expr, const std::vector< abstract_object_pointert > &operands, const abstract_environmentt &environment, const namespacet &ns)
A special command line object for Bruce's C Compiler Author: Michael Tautschnig Date: July 2016.
A special command line object for the gcc-like options.
Base class for command line interpretation.
Base class for command line interpretation for CL.
std::vector< const char * > to_c_str_array(It b, It e)
A special command line object for LINK options.
A special command line object for the ld-like options.
output_type narrow(input_type input)
Run-time checked narrowing cast.
A special command line object for GNU Assembler Author: Michael Tautschnig Date: July 2016.
int main(int argc, const char **argv)
starts the compiler
A special command line object to mimic ARM's armcc.
int main(int argc, const char **argv)
Base class for command line interpretation.
std::vector< std::string > narrow_argv(int argc, const wchar_t **argv_wide)
A special command line object for the gcc-like options.
A special command line object for as86 (of Bruce's C Compiler) Author: Michael Tautschnig Date: July ...
Base class for command line interpretation.