be_util.cpp

Go to the documentation of this file.
00001 
00002 //=============================================================================
00003 /**
00004  *  @file    be_util.cpp
00005  *
00006  *
00007  *  Static helper methods used by multiple visitors.
00008  *
00009  *
00010  *  @author Gary Maxey
00011  *  @author Jeff Parsons
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 // Prepare an argument for a BE
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 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1