#include <lestes/lang/cplus/lex/file_system.hh>#include <lestes/lang/cplus/lex/preprocessor.hh>#include <lestes/lang/cplus/sem/sa_statements.g.hh>#include <lestes/lang/cplus/sem/ss_misc.g.hh>#include <lestes/lang/cplus/sem/ss_ss2pi_base.hh>#include <lestes/lang/cplus/syn/hinter.hh>#include <lestes/lang/cplus/syn/manager.hh>#include <lestes/lang/cplus/syn/parse_result.hh>#include <lestes/lang/cplus/syn/parser.hh>#include <lestes/lang/cplus/syn/prefixer.hh>#include <lestes/msg/logger.hh>#include <lestes/package.hh>#include <lestes/std/data_types.hh>#include <lestes/std/dumper.hh>#include <lestes/backend/backend.g.hh>#include <vector>#include <iostream>#include <fstream>#include <cstdlib>Go to the source code of this file.
Namespaces | |
| namespace | lestes |
| namespace | lestes::lang |
| namespace | lestes::lang::cplus |
| namespace | lestes::lang::cplus::syn |
Classes | |
| struct | usage_and_exit |
Functions | |
| int | lestes::lang::cplus::syn::do_it (bool flat_dump, lstring filename, lstring ss_filename, bool hinter_on) |
| void | operator<< (::std::ostream &os, const usage_and_exit &) |
| int | main (int argc, char *argv[]) |
| int main | ( | int | argc, | |
| char * | argv[] | |||
| ) |
Definition at line 137 of file ss2pi.test.cc.
References lestes::lang::cplus::syn::do_it(), lestes::msg::logger::dump_skeleton(), lestes::msg::logger::finish(), and lestes::msg::logger::init().
00138 { 00139 vector<lstring> args( argv, argv+argc ); 00140 vector<lstring>::iterator it = args.begin(); 00141 ++it; 00142 lstring filename = ""; 00143 lstring ss_filename = ""; 00144 bool log_finish = false; 00145 bool o_seen = false; 00146 bool f_seen = false; 00147 bool l_seen = false; 00148 bool h_seen = false; 00149 while (it != args.end() && (*it)[0] == '-') { 00150 // option found 00151 if (*it == "-o") { 00152 if (o_seen) 00153 cout << "Error: -o option used multiple times." << usage_and_exit(); 00154 o_seen = true; 00155 ++it; 00156 if (it == args.end()) 00157 cout << "Argument to -o option is missing." << usage_and_exit(); 00158 filename = *it++; 00159 } else if (*it == "-f") { 00160 if (f_seen) 00161 cout << "Error: -f option used multiple times." << usage_and_exit(); 00162 f_seen = true; 00163 ++it; 00164 if (it == args.end()) 00165 cout << "Argument to -f option is missing." << usage_and_exit(); 00166 ss_filename = *it++; 00167 } else if (*it == "-l") { 00168 if (l_seen) 00169 cout << "Error: -l option used multiple times." << usage_and_exit(); 00170 l_seen = true; 00171 ++it; 00172 if (it == args.end()) 00173 cout << "Argument to -l option is missing." << usage_and_exit(); 00174 log_finish = ::lestes::msg::logger::init(*it++); 00175 if (!log_finish) 00176 cout << "Error, loggers will be off." << endl; 00177 } else if (*it == "-s") { 00178 // can be used multiple times 00179 ++it; 00180 if (it == args.end()) 00181 cout << "Argument to -s option is missing." << usage_and_exit(); 00182 ::std::ofstream of( it->c_str() ); 00183 ++it; 00184 ::lestes::msg::logger::dump_skeleton(of); 00185 of.close(); 00186 } else if (*it == "-h") { 00187 ++it; 00188 h_seen = true; 00189 } else 00190 cout << "Unknown option '" << *it << "'." << usage_and_exit(); 00191 } 00192 bool flat_dump = false; 00193 if (it != args.end()) { 00194 if (*it == "flat") 00195 flat_dump = true; 00196 else if (*it != "deep") 00197 cout << "Unknown dump type '" << *it << "'." << usage_and_exit(); 00198 ++it; 00199 if (it != args.end()) 00200 cout << "Too many arguments." << usage_and_exit(); 00201 } 00202 int result = ::lestes::lang::cplus::syn::do_it( flat_dump, filename, ss_filename, h_seen ); 00203 if (log_finish) 00204 ::lestes::msg::logger::finish(); 00205 return result; 00206 }
| void operator<< | ( | ::std::ostream & | os, | |
| const usage_and_exit & | ||||
| ) |
Definition at line 120 of file ss2pi.test.cc.
00121 { 00122 os << "\n\n" 00123 "Usage: parser_test [-h] [-l llc_file] [-s skel_file] [-o output_file] [-f filename] [dump_type]\n" 00124 "\n" 00125 "Logger configuration is read from llc_file, if specified.\n" 00126 "Logger configuration skeleton is dumped to skel_file, if specified.\n" 00127 "AS structures will be dumped into file specified by the -o option.\n" 00128 " When the option is missing, they will not be dumped at all.\n" 00129 "SS structures will be dumped into file specified by the -f option.\n" 00130 " When the option is missing, they will not be dumped at all.\n" 00131 "dump_type is either 'flat' or 'deep', the default is 'deep'.\n" 00132 "Hinter is turned on by the -h option.\n" 00133 << endl; 00134 return exit(1); 00135 }
1.5.1-20070107