be_util.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "be_util.h"
00016 #include "be_extern.h"
00017
00018 #include "ast_generator.h"
00019
00020 #include "ace/OS_NS_strings.h"
00021
00022
00023 void
00024 be_util::prep_be_arg (char *arg)
00025 {
00026 static const char WB_EXPORT_MACRO[] = "export_macro=";
00027 static const size_t SZ_WB_EXPORT_MACRO = sizeof(WB_EXPORT_MACRO) - 1;
00028 static const char WB_EXPORT_INCLUDE[] = "export_include=";
00029 static const size_t SZ_WB_EXPORT_INCLUDE = sizeof(WB_EXPORT_INCLUDE) - 1;
00030 static const char WB_VERSIONING_NAME[] = "versioning_name=";
00031 static const size_t SZ_WB_VERSIONING_NAME = sizeof(WB_VERSIONING_NAME) - 1;
00032 static const char WB_VERSIONING_BEGIN[] = "versioning_begin=";
00033 static const size_t SZ_WB_VERSIONING_BEGIN = sizeof(WB_VERSIONING_BEGIN) - 1;
00034 static const char WB_VERSIONING_END[] = "versioning_end=";
00035 static const size_t SZ_WB_VERSIONING_END = sizeof(WB_VERSIONING_END) - 1;
00036 static const char WB_PCH_INCLUDE[] = "pch_include=";
00037 static const size_t SZ_WB_PCH_INCLUDE = sizeof(WB_PCH_INCLUDE) - 1;
00038 static const char WB_JAVA[] = "java";
00039 static const size_t SZ_WB_JAVA = sizeof(WB_JAVA) - 1;
00040 static const char WB_TAO_INC_PRE[] = "tao_include_prefix=";
00041 static const size_t SZ_WB_TAO_INC_PRE = sizeof(WB_TAO_INC_PRE) - 1;
00042 static const char WB_V8[] = "v8";
00043 static const size_t SZ_WB_V8 = sizeof(WB_V8) - 1;
00044
00045 if (0 == ACE_OS::strncasecmp(arg, WB_EXPORT_MACRO, SZ_WB_EXPORT_MACRO)) {
00046 be_global->export_macro(arg + SZ_WB_EXPORT_MACRO);
00047
00048 } else if (0 == ACE_OS::strncasecmp(arg, WB_EXPORT_INCLUDE,
00049 SZ_WB_EXPORT_INCLUDE)) {
00050 be_global->export_include(arg + SZ_WB_EXPORT_INCLUDE);
00051
00052 } else if (0 == ACE_OS::strncasecmp(arg, WB_VERSIONING_NAME,
00053 SZ_WB_VERSIONING_NAME)) {
00054 be_global->versioning_name(arg + SZ_WB_VERSIONING_NAME);
00055
00056 } else if (0 == ACE_OS::strncasecmp(arg, WB_VERSIONING_BEGIN,
00057 SZ_WB_VERSIONING_BEGIN)) {
00058 be_global->versioning_begin(arg + SZ_WB_VERSIONING_BEGIN);
00059
00060 } else if (0 == ACE_OS::strncasecmp(arg, WB_VERSIONING_END,
00061 SZ_WB_VERSIONING_END)) {
00062 be_global->versioning_end(arg + SZ_WB_VERSIONING_END);
00063
00064 } else if (0 == ACE_OS::strncasecmp(arg, WB_PCH_INCLUDE, SZ_WB_PCH_INCLUDE)) {
00065 be_global->pch_include(arg + SZ_WB_PCH_INCLUDE);
00066
00067 } else if (0 == ACE_OS::strncasecmp(arg, WB_JAVA, SZ_WB_JAVA)) {
00068 be_global->java(true);
00069 if (ACE_OS::strlen(arg + SZ_WB_JAVA)) {
00070 be_global->java_arg(arg + SZ_WB_JAVA + 1 );
00071 }
00072
00073 } else if (0 == ACE_OS::strncasecmp(arg, WB_TAO_INC_PRE, SZ_WB_TAO_INC_PRE)) {
00074 be_global->tao_inc_pre_ = arg + SZ_WB_TAO_INC_PRE;
00075
00076 } else if (0 == ACE_OS::strncasecmp(arg, WB_V8, SZ_WB_V8)) {
00077 be_global->v8(true);
00078 }
00079 }
00080
00081 void
00082 be_util::arg_post_proc (void)
00083 {
00084 }
00085
00086 void
00087 be_util::usage (void)
00088 {
00089 ACE_DEBUG((LM_DEBUG,
00090 ACE_TEXT(" -o <dir>\t\tsets output directory for all files\n")
00091 ACE_TEXT(" -Lface\t\t\tgenerate FACE IDL to C++ mapping\n")
00092 ACE_TEXT(" -Lspcpp\t\t\tgenerate Safety Profile IDL to C++ mapping\n")
00093 ACE_TEXT(" -SI\t\t\tsuppress generation of *TypeSupport.idl\n")
00094 ACE_TEXT(" -Sa\t\t\tsuppress IDL any (ignored, for tao_idl compatibility)\n")
00095 ACE_TEXT(" -St\t\t\tsuppress IDL typecode when -L* option is present\n")
00096 ACE_TEXT(" -Gws\t\t\tgenerate wireshark sample dissector configuration\n")
00097 ACE_TEXT(" -Gitl\t\t\tgenerate ITL\n")
00098 ACE_TEXT(" -GfaceTS\t\tgenerate FACE TS API for DCPS data types\n")
00099 ACE_TEXT(" -Wb,export_macro=<macro name>\t\tsets export macro ")
00100 ACE_TEXT("for all files\n")
00101 ACE_TEXT(" -Wb,export_include=<include path>\tsets export include ")
00102 ACE_TEXT("file for all files\n")
00103 ACE_TEXT(" -Wb,versioning_name=<macro name>\tsets versioning name macro ")
00104 ACE_TEXT("for all files\n")
00105 ACE_TEXT(" -Wb,versioning_begin=<macro name>\tsets versioning begin macro ")
00106 ACE_TEXT("for all files\n")
00107 ACE_TEXT(" -Wb,versioning_end=<macro name>\tsets versioning end macro ")
00108 ACE_TEXT("for all files\n")
00109 ACE_TEXT(" -Wb,pch_include=<include path>\t\tsets include ")
00110 ACE_TEXT("file for precompiled header mechanism\n")
00111 ACE_TEXT(" -Wb,java[=<output_file>]\t\tenables Java support ")
00112 ACE_TEXT("for TypeSupport files. Do not specify an 'output_file' ")
00113 ACE_TEXT("except for special cases.\n")
00114 ACE_TEXT(" -Wb,tao_include_prefix=<path>\t\tPrefix for including the TAO-")
00115 ACE_TEXT("generated header file.\n")
00116 ACE_TEXT(" -Wb,v8\t\t\tgenerate TypeSupport for converting data samples ")
00117 ACE_TEXT("to v8 JavaScript objects\n")
00118 ACE_TEXT(" -ZC <include>\t\t\tadd <include> to *TypeSupportImpl.cpp\n")
00119 ));
00120 }
00121
00122 AST_Generator *
00123 be_util::generator_init (void)
00124 {
00125 AST_Generator* gen = 0;
00126 ACE_NEW_RETURN(gen, AST_Generator, 0);
00127 return gen;
00128 }