git-svn-id: svn://db.shs.com.ru/pip@860 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2019-10-28 09:10:18 +00:00
parent 604095672f
commit bbb7cbaf35
9 changed files with 191 additions and 39 deletions

View File

@@ -24,13 +24,18 @@ using namespace PICoutManipulators;
PICodeParser parser;
void usage() {
void header() {
piCout << Bold << "PIP Code model generator";
piCout << Cyan << "Version" << Bold << PIPVersion() << NewLine;
piCout << Green << Bold << "Usage:" << Default << "\"pip_cmg [-hqPpsAMEST] -o <output_file> [-I<include_dir1>] [-I<include_dir1>] [...] [-D<define1>] [-D<define1>] [...] <file1> [<file2>] [<file3>] [...]\"" << NewLine;
}
void usage() {
header();
piCout << Green << Bold << "Details:";
piCout << Bold << "Debug control";
piCout << "-h " << Green << "- display this message and exit";
piCout << "-H " << Green << "- display details help";
piCout << "-q " << Green << "- quiet, no debug output to console";
piCout << "-P " << Green << "- print list of all parsed files to console before exit";
piCout << "-p " << Green << "- print list of all parsed files without file with \"main\" function to console before exit";
@@ -38,7 +43,7 @@ void usage() {
piCout << Bold << "Parsing control";
piCout << "-s " << Green << "- single file (don`t follow includes)";
piCout << "-I<include_dir> " << Green << "- add include dir (e.g. -I.. -I../some_dir -I/usr/include)";
piCout << "-D<define> " << Green << "- add define to preprocessor, define PICODE is always defined (e.g. -DMY_DEFINE will add MY_DEFINE define)";
piCout << "-D<define> " << Green << "- add define to preprocessor, macro PICODE is always defined (e.g. -DMY_DEFINE will add MY_DEFINE define)";
piCout << "";
piCout << Bold << "Output control";
piCout << "-A " << Green << "- write all";
@@ -53,6 +58,12 @@ void usage() {
piCout << "<file> " << Green << "- add file to code model, all includes of this file will be proceed (e.g. \"main.cpp\")";
}
void help() {
header();
piCout << Bold << "Metainfo";
piCout << "-h " << Green << "- display this message and exit";
}
PIString toCName(const PIString &s) {
PIString ret(s.trimmed());
@@ -483,6 +494,7 @@ int main(int argc, char * argv[]) {
cli.setOptionalArgumentsCount(-1);
cli.addArgument("output", true);
cli.addArgument("help");
cli.addArgument("Help");
cli.addArgument("quiet");
cli.addArgument("All");
cli.addArgument("Metainfo");
@@ -493,6 +505,10 @@ int main(int argc, char * argv[]) {
cli.addArgument("print");
cli.addArgument("Print");
cli.addArgument("single");
if (cli.hasArgument("Help")) {
help();
return 0;
}
if (cli.hasArgument("help") || cli.argumentValue("output").isEmpty() || cli.optionalArguments().isEmpty()) {
usage();
return 0;
@@ -526,4 +542,4 @@ int main(int argc, char * argv[]) {
}
}
return 0;
};
}