aboutsummaryrefslogtreecommitdiff
path: root/xsde/cxx/hybrid/generator.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'xsde/cxx/hybrid/generator.cxx')
-rw-r--r--xsde/cxx/hybrid/generator.cxx728
1 files changed, 207 insertions, 521 deletions
diff --git a/xsde/cxx/hybrid/generator.cxx b/xsde/cxx/hybrid/generator.cxx
index 3a61c95..c2289ae 100644
--- a/xsde/cxx/hybrid/generator.cxx
+++ b/xsde/cxx/hybrid/generator.cxx
@@ -54,10 +54,7 @@
#include "../../../libxsde/xsde/cxx/version.hxx"
-using std::endl;
-using std::wcerr;
-using std::wcout;
-
+using namespace std;
using namespace XSDFrontend::SemanticGraph;
//
@@ -110,103 +107,6 @@ namespace CXX
"//\n\n";
}
- namespace Hybrid
- {
- namespace CLI
- {
- extern Key char_encoding = "char-encoding";
- extern Key no_stl = "no-stl";
- extern Key no_iostream = "no-iostream";
- extern Key no_exceptions = "no-exceptions";
- extern Key no_long_long = "no-long-long";
- extern Key generate_parser = "generate-parser";
- extern Key generate_serializer = "generate-serializer";
- extern Key generate_aggregate = "generate-aggregate";
- extern Key suppress_validation = "suppress-validation";
- extern Key suppress_parser_val = "suppress-parser-val";
- extern Key suppress_serializer_val = "suppress-serializer-val";
- extern Key omit_default_attributes = "omit-default-attributes";
- extern Key suppress_enum = "suppress-enum";
- extern Key generate_clone = "generate-clone";
- extern Key generate_detach = "generate-detach";
- extern Key generate_insertion = "generate-insertion";
- extern Key generate_extraction = "generate-extraction";
- extern Key generate_inline = "generate-inline";
- extern Key generate_forward = "generate-forward";
- extern Key generate_xml_schema = "generate-xml-schema";
- extern Key extern_xml_schema = "extern-xml-schema";
- extern Key suppress_reset = "suppress-reset";
- extern Key custom_allocator = "custom-allocator";
- extern Key generate_polymorphic = "generate-polymorphic";
- extern Key runtime_polymorphic = "runtime-polymorphic";
- extern Key polymorphic_type = "polymorphic-type";
- extern Key generate_typeinfo = "generate-typeinfo";
- extern Key polymorphic_schema = "polymorphic-schema";
- extern Key reuse_style_mixin = "reuse-style-mixin";
- extern Key custom_data = "custom-data";
- extern Key custom_type = "custom-type";
- extern Key custom_parser = "custom-parser";
- extern Key custom_serializer = "custom-serializer";
- extern Key root_element_first = "root-element-first";
- extern Key root_element_last = "root-element-last";
- extern Key root_element_all = "root-element-all";
- extern Key root_element_none = "root-element-none";
- extern Key root_element = "root-element";
- extern Key root_type = "root-type";
- extern Key output_dir = "output-dir";
- extern Key pskel_type_suffix = "pskel-type-suffix";
- extern Key sskel_type_suffix = "sskel-type-suffix";
- extern Key pskel_file_suffix = "pskel-file-suffix";
- extern Key sskel_file_suffix = "sskel-file-suffix";
- extern Key pimpl_type_suffix = "pimpl-type-suffix";
- extern Key simpl_type_suffix = "simpl-type-suffix";
- extern Key pimpl_file_suffix = "pimpl-file-suffix";
- extern Key simpl_file_suffix = "simpl-file-suffix";
- extern Key paggr_type_suffix = "paggr-type-suffix";
- extern Key saggr_type_suffix = "saggr-type-suffix";
- extern Key namespace_map = "namespace-map";
- extern Key namespace_regex = "namespace-regex";
- extern Key namespace_regex_trace = "namespace-regex-trace";
- extern Key reserved_name = "reserved-name";
- extern Key include_with_brackets = "include-with-brackets";
- extern Key include_prefix = "include-prefix";
- extern Key include_regex = "include-regex";
- extern Key include_regex_trace = "include-regex-trace";
- extern Key guard_prefix = "guard-prefix";
- extern Key hxx_suffix = "hxx-suffix";
- extern Key ixx_suffix = "ixx-suffix";
- extern Key cxx_suffix = "cxx-suffix";
- extern Key fwd_suffix = "fwd-suffix";
- extern Key hxx_regex = "hxx-regex";
- extern Key ixx_regex = "ixx-regex";
- extern Key cxx_regex = "cxx-regex";
- extern Key fwd_regex = "fwd-regex";
- extern Key hxx_prologue = "hxx-prologue";
- extern Key ixx_prologue = "ixx-prologue";
- extern Key cxx_prologue = "cxx-prologue";
- extern Key fwd_prologue = "fwd-prologue";
- extern Key prologue = "prologue";
- extern Key hxx_epilogue = "hxx-epilogue";
- extern Key ixx_epilogue = "ixx-epilogue";
- extern Key cxx_epilogue = "cxx-epilogue";
- extern Key fwd_epilogue = "fwd-epilogue";
- extern Key epilogue = "epilogue";
- extern Key hxx_prologue_file = "hxx-prologue-file";
- extern Key ixx_prologue_file = "ixx-prologue-file";
- extern Key cxx_prologue_file = "cxx-prologue-file";
- extern Key fwd_prologue_file = "fwd-prologue-file";
- extern Key prologue_file = "prologue-file";
- extern Key hxx_epilogue_file = "hxx-epilogue-file";
- extern Key ixx_epilogue_file = "ixx-epilogue-file";
- extern Key cxx_epilogue_file = "cxx-epilogue-file";
- extern Key fwd_epilogue_file = "fwd-epilogue-file";
- extern Key epilogue_file = "epilogue-file";
- extern Key show_anonymous = "show-anonymous";
- extern Key show_sloc = "show-sloc";
- extern Key proprietary_license = "proprietary-license";
- }
- }
-
Void Hybrid::Generator::
usage ()
{
@@ -214,34 +114,6 @@ namespace CXX
CXX::options::print_usage (wcout);
}
- Hybrid::CLI::OptionsSpec Hybrid::Generator::
- options_spec ()
- {
- CLI::OptionsSpec spec;
-
- spec.option<CLI::char_encoding> ().default_value ("utf8");
-
- spec.option<CLI::pskel_file_suffix> ().default_value ("-pskel");
- spec.option<CLI::sskel_file_suffix> ().default_value ("-sskel");
- spec.option<CLI::pskel_type_suffix> ().default_value ("_pskel");
- spec.option<CLI::sskel_type_suffix> ().default_value ("_sskel");
-
- spec.option<CLI::pimpl_file_suffix> ().default_value ("-pimpl");
- spec.option<CLI::simpl_file_suffix> ().default_value ("-simpl");
- spec.option<CLI::pimpl_type_suffix> ().default_value ("_pimpl");
- spec.option<CLI::simpl_type_suffix> ().default_value ("_simpl");
-
- spec.option<CLI::paggr_type_suffix> ().default_value ("_paggr");
- spec.option<CLI::saggr_type_suffix> ().default_value ("_saggr");
-
- spec.option<CLI::hxx_suffix> ().default_value (".hxx");
- spec.option<CLI::ixx_suffix> ().default_value (".ixx");
- spec.option<CLI::cxx_suffix> ().default_value (".cxx");
- spec.option<CLI::fwd_suffix> ().default_value ("-fwd.hxx");
-
- return spec;
- }
-
namespace
{
typedef
@@ -253,12 +125,10 @@ namespace CXX
sloc_filter;
NarrowString
- find_value (Cult::Containers::Vector<NarrowString> const& v,
- Char const* key)
+ find_value (NarrowStrings const& v, Char const* key)
{
- typedef Cult::Containers::Vector<NarrowString> Values;
-
- for (Values::ConstIterator i (v.begin ()), e (v.end ()); i != e; ++i)
+ for (NarrowStrings::const_iterator i (v.begin ()), e (v.end ());
+ i != e; ++i)
{
Size p (i->find ('='));
@@ -292,13 +162,12 @@ namespace CXX
}
Void
- copy_values (Cult::Containers::Vector<NarrowString>& dst,
- Cult::Containers::Vector<NarrowString> const& src,
- Char const* key)
+ copy_values (NarrowStrings& dst, NarrowStrings const& src, Char const* key)
{
- typedef Cult::Containers::Vector<NarrowString> Values;
+ dst.clear ();
- for (Values::ConstIterator i (src.begin ()), e (src.end ()); i != e; ++i)
+ for (NarrowStrings::const_iterator i (src.begin ()), e (src.end ());
+ i != e; ++i)
{
Size p (i->find ('='));
@@ -340,8 +209,6 @@ namespace CXX
void
traverse (Type& ns)
{
- namespace CLI = Hybrid::CLI;
-
pre (ns);
os << "using ::xsde::cxx::hybrid::any_type;"
@@ -352,16 +219,16 @@ namespace CXX
if (type_ == 'p')
{
- skel = options.value<CLI::pskel_type_suffix> ();
- impl = options.value<CLI::pimpl_type_suffix> ();
+ skel = options.pskel_type_suffix ();
+ impl = options.pimpl_type_suffix ();
us = skel == L"_pskel";
ui = impl == L"_pimpl";
}
else
{
- skel = options.value<CLI::sskel_type_suffix> ();
- impl = options.value<CLI::simpl_type_suffix> ();
+ skel = options.sskel_type_suffix ();
+ impl = options.simpl_type_suffix ();
us = skel == L"_sskel";
ui = impl == L"_simpl";
@@ -387,85 +254,46 @@ namespace CXX
};
}
- Parser::CLI::Options* Hybrid::Generator::
- parser_options (CLI::Options const& h, Schema& schema, Path const& path)
+ auto_ptr<Parser::options> Hybrid::Generator::
+ parser_options (options const& h, Schema& schema, Path const& path)
{
- namespace H = CLI;
- namespace P = Parser::CLI;
-
- Evptr<P::Options> r (new P::Options);
-
- r->value<P::char_encoding> () = h.value<H::char_encoding> ();
- r->value<P::no_stl> () = h.value<H::no_stl> ();
- r->value<P::no_iostream> () = h.value<H::no_iostream> ();
- r->value<P::no_exceptions> () = h.value<H::no_exceptions> ();
- r->value<P::no_long_long> () = h.value<H::no_long_long> ();
- r->value<P::reuse_style_mixin> () = h.value<H::reuse_style_mixin> ();
- r->value<P::reuse_style_none> () = false;
- r->value<P::generate_inline> () = h.value<H::generate_inline> ();
- r->value<P::suppress_validation> () = h.value<H::suppress_validation> ()
- || h.value<H::suppress_parser_val> ();
- r->value<P::generate_xml_schema> () = h.value<H::generate_xml_schema> ();
- r->value<P::extern_xml_schema> () = h.value<H::extern_xml_schema> ();
- r->value<P::suppress_reset> () = h.value<H::suppress_reset> ();
- r->value<P::custom_allocator> () = h.value<H::custom_allocator> ();
- r->value<P::generate_polymorphic> () = h.value<H::generate_polymorphic> ();
- r->value<P::runtime_polymorphic> () = h.value<H::runtime_polymorphic> ();
- r->value<P::output_dir> () = h.value<H::output_dir> ();
- r->value<P::skel_file_suffix> () = h.value<H::pskel_file_suffix> ();
- r->value<P::skel_type_suffix> () = h.value<H::pskel_type_suffix> ();
- r->value<P::impl_type_suffix> () = h.value<H::pimpl_type_suffix> ();
- r->value<P::namespace_map> () = h.value<H::namespace_map> ();
- r->value<P::namespace_regex> () = h.value<H::namespace_regex> ();
- r->value<P::namespace_regex_trace> () = h.value<H::namespace_regex_trace> ();
- r->value<P::reserved_name> () = h.value<H::reserved_name> ();
- r->value<P::include_with_brackets> () = h.value<H::include_with_brackets> ();
- r->value<P::include_prefix> () = h.value<H::include_prefix> ();
- r->value<P::include_regex> () = h.value<H::include_regex> ();
- r->value<P::include_regex_trace> () = h.value<H::include_regex_trace> ();
- r->value<P::guard_prefix> () = h.value<H::guard_prefix> ();
-
- r->value<P::hxx_suffix> () = h.value<H::hxx_suffix> ();
- r->value<P::ixx_suffix> () = h.value<H::ixx_suffix> ();
- r->value<P::cxx_suffix> () = h.value<H::cxx_suffix> ();
+ auto_ptr<Parser::options> r (new Parser::options);
+
+ static_cast<CXX::options&> (*r) = h; // Assign common options.
+
+ r->reuse_style_mixin (h.reuse_style_mixin ());
+ r->suppress_validation (h.suppress_validation () ||
+ h.suppress_parser_val ());
+ r->generate_polymorphic (h.generate_polymorphic ());
+ r->runtime_polymorphic (h.runtime_polymorphic ());
+
+ r->skel_file_suffix (h.pskel_file_suffix ());
+ r->skel_type_suffix (h.pskel_type_suffix ());
+ r->impl_type_suffix (h.pimpl_type_suffix ());
Char const* k = "pskel";
- r->value<P::hxx_regex> () =
- find_value (h.value<H::hxx_regex> (), k);
- r->value<P::ixx_regex> () =
- find_value (h.value<H::ixx_regex> (), k);
- r->value<P::cxx_regex> () =
- find_value (h.value<H::cxx_regex> (), k);
-
- r->value<P::hxx_prologue_file> () = find_value (
- h.value<H::hxx_prologue_file> (), k);
- r->value<P::ixx_prologue_file> () = find_value (
- h.value<H::ixx_prologue_file> (), k);
- r->value<P::cxx_prologue_file> () = find_value (
- h.value<H::cxx_prologue_file> (), k);
- r->value<P::prologue_file> () = find_value (
- h.value<H::prologue_file> (), k);
- r->value<P::hxx_epilogue_file> () = find_value (
- h.value<H::hxx_epilogue_file> (), k);
- r->value<P::ixx_epilogue_file> () = find_value (
- h.value<H::ixx_epilogue_file> (), k);
- r->value<P::cxx_epilogue_file> () = find_value (
- h.value<H::cxx_epilogue_file> (), k);
- r->value<P::epilogue_file> () = find_value (
- h.value<H::epilogue_file> (), k);
-
- copy_values (r->value<P::hxx_prologue> (), h.value<H::hxx_prologue> (), k);
- copy_values (r->value<P::ixx_prologue> (), h.value<H::ixx_prologue> (), k);
- copy_values (r->value<P::cxx_prologue> (), h.value<H::cxx_prologue> (), k);
- copy_values (r->value<P::prologue> (), h.value<H::prologue> (), k);
- copy_values (r->value<P::hxx_epilogue> (), h.value<H::hxx_epilogue> (), k);
- copy_values (r->value<P::ixx_epilogue> (), h.value<H::ixx_epilogue> (), k);
- copy_values (r->value<P::cxx_epilogue> (), h.value<H::cxx_epilogue> (), k);
- copy_values (r->value<P::epilogue> (), h.value<H::epilogue> (), k);
-
- r->value<P::show_sloc> () = h.value<H::show_sloc> ();
- r->value<P::proprietary_license> () = h.value<H::proprietary_license> ();
+ r->hxx_regex (find_value (h.hxx_regex (), k));
+ r->ixx_regex (find_value (h.ixx_regex (), k));
+ r->cxx_regex (find_value (h.cxx_regex (), k));
+
+ r->prologue_file (find_value (h.prologue_file (), k));
+ r->epilogue_file (find_value (h.epilogue_file (), k));
+ r->hxx_prologue_file (find_value (h.hxx_prologue_file (), k));
+ r->ixx_prologue_file (find_value (h.ixx_prologue_file (), k));
+ r->cxx_prologue_file (find_value (h.cxx_prologue_file (), k));
+ r->hxx_epilogue_file (find_value (h.hxx_epilogue_file (), k));
+ r->ixx_epilogue_file (find_value (h.ixx_epilogue_file (), k));
+ r->cxx_epilogue_file (find_value (h.cxx_epilogue_file (), k));
+
+ copy_values (r->prologue (), h.prologue (), k);
+ copy_values (r->epilogue (), h.epilogue (), k);
+ copy_values (r->hxx_prologue (), h.hxx_prologue (), k);
+ copy_values (r->ixx_prologue (), h.ixx_prologue (), k);
+ copy_values (r->cxx_prologue (), h.cxx_prologue (), k);
+ copy_values (r->hxx_epilogue (), h.hxx_epilogue (), k);
+ copy_values (r->ixx_epilogue (), h.ixx_epilogue (), k);
+ copy_values (r->cxx_epilogue (), h.cxx_epilogue (), k);
// Add the anyType parser.
//
@@ -486,91 +314,52 @@ namespace CXX
ns.dispatch (ctx.xs_ns ());
}
- r->value<P::hxx_prologue> ().push_back (String (os.str ()).to_narrow ());
+ r->hxx_prologue ().push_back (String (os.str ()).to_narrow ());
}
- return r.release ();
+ return r;
}
- Serializer::CLI::Options* Hybrid::Generator::
- serializer_options (CLI::Options const& h, Schema& schema, Path const& path)
+ auto_ptr<Serializer::options> Hybrid::Generator::
+ serializer_options (options const& h, Schema& schema, Path const& path)
{
- namespace H = CLI;
- namespace S = Serializer::CLI;
-
- Evptr<S::Options> r (new S::Options);
-
- r->value<S::char_encoding> () = h.value<H::char_encoding> ();
- r->value<S::no_stl> () = h.value<H::no_stl> ();
- r->value<S::no_iostream> () = h.value<H::no_iostream> ();
- r->value<S::no_exceptions> () = h.value<H::no_exceptions> ();
- r->value<S::no_long_long> () = h.value<H::no_long_long> ();
- r->value<S::reuse_style_mixin> () = h.value<H::reuse_style_mixin> ();
- r->value<S::reuse_style_none> () = false;
- r->value<S::generate_inline> () = h.value<H::generate_inline> ();
- r->value<S::suppress_validation> () = h.value<H::suppress_validation> ()
- || h.value<H::suppress_serializer_val> ();
- r->value<S::generate_xml_schema> () = h.value<H::generate_xml_schema> ();
- r->value<S::extern_xml_schema> () = h.value<H::extern_xml_schema> ();
- r->value<S::suppress_reset> () = h.value<H::suppress_reset> ();
- r->value<S::custom_allocator> () = h.value<H::custom_allocator> ();
- r->value<S::generate_polymorphic> () = h.value<H::generate_polymorphic> ();
- r->value<S::runtime_polymorphic> () = h.value<H::runtime_polymorphic> ();
- r->value<S::output_dir> () = h.value<H::output_dir> ();
- r->value<S::skel_file_suffix> () = h.value<H::sskel_file_suffix> ();
- r->value<S::skel_type_suffix> () = h.value<H::sskel_type_suffix> ();
- r->value<S::impl_type_suffix> () = h.value<H::simpl_type_suffix> ();
- r->value<S::namespace_map> () = h.value<H::namespace_map> ();
- r->value<S::namespace_regex> () = h.value<H::namespace_regex> ();
- r->value<S::namespace_regex_trace> () = h.value<H::namespace_regex_trace> ();
- r->value<S::reserved_name> () = h.value<H::reserved_name> ();
- r->value<S::include_with_brackets> () = h.value<H::include_with_brackets> ();
- r->value<S::include_prefix> () = h.value<H::include_prefix> ();
- r->value<S::include_regex> () = h.value<H::include_regex> ();
- r->value<S::include_regex_trace> () = h.value<H::include_regex_trace> ();
- r->value<S::guard_prefix> () = h.value<H::guard_prefix> ();
-
- r->value<S::hxx_suffix> () = h.value<H::hxx_suffix> ();
- r->value<S::ixx_suffix> () = h.value<H::ixx_suffix> ();
- r->value<S::cxx_suffix> () = h.value<H::cxx_suffix> ();
-
- Char const* k = "sskel";
-
- r->value<S::hxx_regex> () =
- find_value (h.value<H::hxx_regex> (), k);
- r->value<S::ixx_regex> () =
- find_value (h.value<H::ixx_regex> (), k);
- r->value<S::cxx_regex> () =
- find_value (h.value<H::cxx_regex> (), k);
-
- r->value<S::hxx_prologue_file> () = find_value (
- h.value<H::hxx_prologue_file> (), k);
- r->value<S::ixx_prologue_file> () = find_value (
- h.value<H::ixx_prologue_file> (), k);
- r->value<S::cxx_prologue_file> () = find_value (
- h.value<H::cxx_prologue_file> (), k);
- r->value<S::prologue_file> () = find_value (
- h.value<H::prologue_file> (), k);
- r->value<S::hxx_epilogue_file> () = find_value (
- h.value<H::hxx_epilogue_file> (), k);
- r->value<S::ixx_epilogue_file> () = find_value (
- h.value<H::ixx_epilogue_file> (), k);
- r->value<S::cxx_epilogue_file> () = find_value (
- h.value<H::cxx_epilogue_file> (), k);
- r->value<S::epilogue_file> () = find_value (
- h.value<H::epilogue_file> (), k);
-
- copy_values (r->value<S::hxx_prologue> (), h.value<H::hxx_prologue> (), k);
- copy_values (r->value<S::ixx_prologue> (), h.value<H::ixx_prologue> (), k);
- copy_values (r->value<S::cxx_prologue> (), h.value<H::cxx_prologue> (), k);
- copy_values (r->value<S::prologue> (), h.value<H::prologue> (), k);
- copy_values (r->value<S::hxx_epilogue> (), h.value<H::hxx_epilogue> (), k);
- copy_values (r->value<S::ixx_epilogue> (), h.value<H::ixx_epilogue> (), k);
- copy_values (r->value<S::cxx_epilogue> (), h.value<H::cxx_epilogue> (), k);
- copy_values (r->value<S::epilogue> (), h.value<H::epilogue> (), k);
-
- r->value<S::show_sloc> () = h.value<H::show_sloc> ();
- r->value<S::proprietary_license> () = h.value<H::proprietary_license> ();
+ auto_ptr<Serializer::options> r (new Serializer::options);
+
+ static_cast<CXX::options&> (*r) = h; // Assign common options.
+
+ r->reuse_style_mixin (h.reuse_style_mixin ());
+ r->suppress_validation (h.suppress_validation () ||
+ h.suppress_serializer_val ());
+ r->generate_polymorphic (h.generate_polymorphic ());
+ r->runtime_polymorphic (h.runtime_polymorphic ());
+
+ r->skel_file_suffix (h.sskel_file_suffix ());
+ r->skel_type_suffix (h.sskel_type_suffix ());
+ r->impl_type_suffix (h.simpl_type_suffix ());
+
+ Char const* k = "pskel";
+
+ r->hxx_regex (find_value (h.hxx_regex (), k));
+ r->ixx_regex (find_value (h.ixx_regex (), k));
+ r->cxx_regex (find_value (h.cxx_regex (), k));
+
+ r->prologue_file (find_value (h.prologue_file (), k));
+ r->epilogue_file (find_value (h.epilogue_file (), k));
+ r->hxx_prologue_file (find_value (h.hxx_prologue_file (), k));
+ r->ixx_prologue_file (find_value (h.ixx_prologue_file (), k));
+ r->cxx_prologue_file (find_value (h.cxx_prologue_file (), k));
+ r->hxx_epilogue_file (find_value (h.hxx_epilogue_file (), k));
+ r->ixx_epilogue_file (find_value (h.ixx_epilogue_file (), k));
+ r->cxx_epilogue_file (find_value (h.cxx_epilogue_file (), k));
+
+ copy_values (r->prologue (), h.prologue (), k);
+ copy_values (r->epilogue (), h.epilogue (), k);
+ copy_values (r->hxx_prologue (), h.hxx_prologue (), k);
+ copy_values (r->ixx_prologue (), h.ixx_prologue (), k);
+ copy_values (r->cxx_prologue (), h.cxx_prologue (), k);
+ copy_values (r->hxx_epilogue (), h.hxx_epilogue (), k);
+ copy_values (r->ixx_epilogue (), h.ixx_epilogue (), k);
+ copy_values (r->cxx_epilogue (), h.cxx_epilogue (), k);
// Add the anyType parser.
//
@@ -591,14 +380,14 @@ namespace CXX
ns.dispatch (ctx.xs_ns ());
}
- r->value<S::hxx_prologue> ().push_back (String (os.str ()).to_narrow ());
+ r->hxx_prologue ().push_back (String (os.str ()).to_narrow ());
}
- return r.release ();
+ return r;
}
Void Hybrid::Generator::
- calculate_size (CLI::Options const& ops,
+ calculate_size (options const& ops,
XSDFrontend::SemanticGraph::Schema& schema,
XSDFrontend::SemanticGraph::Path const& file,
const WarningSet& disabled_warnings)
@@ -612,7 +401,7 @@ namespace CXX
}
Void Hybrid::Generator::
- process_tree_names (CLI::Options const& ops,
+ process_tree_names (options const& ops,
XSDFrontend::SemanticGraph::Schema& schema,
XSDFrontend::SemanticGraph::Path const& file)
{
@@ -621,7 +410,7 @@ namespace CXX
}
Void Hybrid::Generator::
- process_parser_names (CLI::Options const& ops,
+ process_parser_names (options const& ops,
XSDFrontend::SemanticGraph::Schema& schema,
XSDFrontend::SemanticGraph::Path const& file)
{
@@ -631,7 +420,7 @@ namespace CXX
}
Void Hybrid::Generator::
- process_serializer_names (CLI::Options const& ops,
+ process_serializer_names (options const& ops,
XSDFrontend::SemanticGraph::Schema& schema,
XSDFrontend::SemanticGraph::Path const& file)
{
@@ -690,19 +479,20 @@ namespace CXX
Void
append (WideOutputFileStream& os,
- Cult::Containers::Vector<NarrowString> const& primary,
- Cult::Containers::Vector<NarrowString> const& def,
+ NarrowStrings const& primary,
+ NarrowStrings const& def,
Char const* primary_key,
Char const* def_key)
{
- typedef Cult::Containers::Vector<NarrowString> Values;
-
- for (Values const* v = &primary; v != 0; v = (v == &def ? 0 : &def))
+ for (NarrowStrings const* v = &primary;
+ v != 0;
+ v = (v == &def ? 0 : &def))
{
Boolean found (false);
Char const* key (v == &primary ? primary_key : def_key);
- for (Values::ConstIterator i (v->begin ()), e (v->end ()); i != e; ++i)
+ for (NarrowStrings::const_iterator i (v->begin ()), e (v->end ());
+ i != e; ++i)
{
if (key == 0)
os << i->c_str () << endl;
@@ -747,8 +537,8 @@ namespace CXX
Void
append (WideOutputFileStream& os,
- Cult::Containers::Vector<NarrowString> const& primary,
- Cult::Containers::Vector<NarrowString> const& def,
+ NarrowStrings const& primary,
+ NarrowStrings const& def,
Char const* key)
{
append (os, primary, def, key, key);
@@ -757,7 +547,7 @@ namespace CXX
UnsignedLong Hybrid::Generator::
- generate_tree (Hybrid::CLI::Options const& ops,
+ generate_tree (Hybrid::options const& ops,
Schema& schema,
Path const& file_path,
Boolean fpt,
@@ -772,7 +562,7 @@ namespace CXX
try
{
- Boolean generate_xml_schema (ops.value<CLI::generate_xml_schema> ());
+ Boolean generate_xml_schema (ops.generate_xml_schema ());
// We could be compiling several schemas at once in which case
// handling of the --generate-xml-schema option gets tricky: we
@@ -781,7 +571,7 @@ namespace CXX
//
if (generate_xml_schema)
{
- if (NarrowString name = ops.value<CLI::extern_xml_schema> ())
+ if (NarrowString name = ops.extern_xml_schema ())
{
if (file_path.native_file_string () != name)
generate_xml_schema = false;
@@ -805,24 +595,20 @@ namespace CXX
// Generate code.
//
- Boolean inline_ (ops.value<CLI::generate_inline> () &&
- !generate_xml_schema);
-
- Boolean forward (ops.value<CLI::generate_forward> () &&
- !generate_xml_schema);
-
+ Boolean inline_ (ops.generate_inline () && !generate_xml_schema);
+ Boolean forward (ops.generate_forward () && !generate_xml_schema);
Boolean source (!generate_xml_schema);
NarrowString name (file_path.leaf ());
- NarrowString hxx_suffix (ops.value <CLI::hxx_suffix> ());
- NarrowString ixx_suffix (ops.value <CLI::ixx_suffix> ());
- NarrowString cxx_suffix (ops.value <CLI::cxx_suffix> ());
- NarrowString fwd_suffix (ops.value <CLI::fwd_suffix> ());
+ NarrowString hxx_suffix (ops.hxx_suffix ());
+ NarrowString ixx_suffix (ops.ixx_suffix ());
+ NarrowString cxx_suffix (ops.cxx_suffix ());
+ NarrowString fwd_suffix (ops.fwd_suffix ());
- NarrowString hxx_regex (find_value (ops.value <CLI::hxx_regex> (), ""));
- NarrowString ixx_regex (find_value (ops.value <CLI::ixx_regex> (), ""));
- NarrowString cxx_regex (find_value (ops.value <CLI::cxx_regex> (), ""));
+ NarrowString hxx_regex (find_value (ops.hxx_regex (), ""));
+ NarrowString ixx_regex (find_value (ops.ixx_regex (), ""));
+ NarrowString cxx_regex (find_value (ops.cxx_regex (), ""));
Regex hxx_expr (
hxx_regex.empty ()
@@ -840,9 +626,9 @@ namespace CXX
: cxx_regex);
Regex fwd_expr (
- ops.value <CLI::fwd_regex> ().empty ()
+ ops.fwd_regex ().empty ()
? "#^(.+?)(\\.[^./\\\\]+)?$#$1" + fwd_suffix + "#"
- : ops.value <CLI::fwd_regex> ());
+ : ops.fwd_regex ());
if (!hxx_expr.match (name))
{
@@ -888,7 +674,7 @@ namespace CXX
Path out_dir;
- if (NarrowString dir = ops.value<CLI::output_dir> ())
+ if (NarrowString dir = ops.output_dir ())
{
try
{
@@ -984,9 +770,7 @@ namespace CXX
// Print copyright and license.
//
Char const* copyright (
- ops.value<CLI::proprietary_license> ()
- ? copyright_proprietary
- : copyright_gpl);
+ ops.proprietary_license () ? copyright_proprietary : copyright_gpl);
if (forward)
fwd << copyright;
@@ -1003,8 +787,7 @@ namespace CXX
//
WideInputFileStream prologue;
{
- NarrowString name (
- find_value (ops.value<CLI::prologue_file> (), ""));
+ NarrowString name (find_value (ops.prologue_file (), ""));
if (name)
open (prologue, name);
@@ -1014,8 +797,7 @@ namespace CXX
//
WideInputFileStream epilogue;
{
- NarrowString name (
- find_value (ops.value<CLI::epilogue_file> (), ""));
+ NarrowString name (find_value (ops.epilogue_file (), ""));
if (name)
open (epilogue, name);
@@ -1023,14 +805,14 @@ namespace CXX
// SLOC counter.
//
- UnsignedLong sloc_total (0);
- Boolean show_sloc (ops.value<CLI::show_sloc> ());
+ size_t sloc_total (0);
+ Boolean show_sloc (ops.show_sloc ());
//
//
Regex guard_expr ("/([a-z])([A-Z])/$1_$2/"); // Split words.
- NarrowString guard_prefix (ops.value<CLI::guard_prefix> ());
+ NarrowString guard_prefix (ops.guard_prefix ());
if (!guard_prefix)
guard_prefix = file_path.branch_path ().native_directory_string ();
@@ -1073,12 +855,8 @@ namespace CXX
fwd << "// Begin prologue." << endl
<< "//" << endl;
- append (fwd,
- ops.value<CLI::fwd_prologue> (),
- ops.value<CLI::prologue> (),
- 0,
- "");
- append (fwd, ops.value<CLI::fwd_prologue_file> (), prologue);
+ append (fwd, ops.fwd_prologue (), ops.prologue (), 0, "");
+ append (fwd, ops.fwd_prologue_file (), prologue);
fwd << "//" << endl
<< "// End prologue." << endl
@@ -1096,12 +874,8 @@ namespace CXX
fwd << "// Begin epilogue." << endl
<< "//" << endl;
- append (fwd, ops.value<CLI::fwd_epilogue_file> (), epilogue);
- append (fwd,
- ops.value<CLI::fwd_epilogue> (),
- ops.value<CLI::epilogue> (),
- 0,
- "");
+ append (fwd, ops.fwd_epilogue_file (), epilogue);
+ append (fwd, ops.fwd_epilogue (), ops.epilogue (), 0, "");
fwd << "//" << endl
<< "// End epilogue." << endl
@@ -1155,7 +929,7 @@ namespace CXX
hxx << "#include <xsde/cxx/config.hxx>" << endl
<< endl;
- if (ops.value<CLI::char_encoding> () == "iso8859-1")
+ if (ops.char_encoding () == "iso8859-1")
{
hxx << "#ifndef XSDE_ENCODING_ISO8859_1" << endl
<< "#error the generated code uses the ISO-8859-1 encoding" <<
@@ -1174,7 +948,7 @@ namespace CXX
<< endl;
}
- if (ops.value<CLI::no_stl> ())
+ if (ops.no_stl ())
{
hxx << "#ifdef XSDE_STL" << endl
<< "#error the XSD/e runtime uses STL while the " <<
@@ -1193,7 +967,7 @@ namespace CXX
<< endl;
}
- if (ops.value<CLI::no_exceptions> ())
+ if (ops.no_exceptions ())
{
hxx << "#ifdef XSDE_EXCEPTIONS" << endl
<< "#error the XSD/e runtime uses exceptions while the " <<
@@ -1212,7 +986,7 @@ namespace CXX
<< endl;
}
- if (ops.value<CLI::no_long_long> ())
+ if (ops.no_long_long ())
{
hxx << "#ifdef XSDE_LONGLONG" << endl
<< "#error the XSD/e runtime uses long long while the " <<
@@ -1231,7 +1005,7 @@ namespace CXX
<< endl;
}
- if (ops.value<CLI::custom_allocator> ())
+ if (ops.custom_allocator ())
{
hxx << "#ifndef XSDE_CUSTOM_ALLOCATOR" << endl
<< "#error the generated code uses custom allocator while " <<
@@ -1261,13 +1035,8 @@ namespace CXX
hxx << "// Begin prologue." << endl
<< "//" << endl;
- append (hxx,
- ops.value<CLI::hxx_prologue> (),
- ops.value<CLI::prologue> (),
- "");
- append (hxx,
- find_value (ops.value<CLI::hxx_prologue_file> (), ""),
- prologue);
+ append (hxx, ops.hxx_prologue (), ops.prologue (), "");
+ append (hxx, find_value (ops.hxx_prologue_file (), ""), prologue);
hxx << "//" << endl
<< "// End prologue." << endl
@@ -1288,10 +1057,10 @@ namespace CXX
generate_tree_header (ctx);
- if (!ops.value<CLI::generate_insertion> ().empty ())
+ if (!ops.generate_insertion ().empty ())
generate_insertion_header (ctx);
- if (!ops.value<CLI::generate_extraction> ().empty ())
+ if (!ops.generate_extraction ().empty ())
generate_extraction_header (ctx);
}
else
@@ -1311,13 +1080,8 @@ namespace CXX
hxx << "// Begin epilogue." << endl
<< "//" << endl;
- append (hxx,
- find_value (ops.value<CLI::hxx_epilogue_file> (), ""),
- epilogue);
- append (hxx,
- ops.value<CLI::hxx_epilogue> (),
- ops.value<CLI::epilogue> (),
- "");
+ append (hxx, find_value (ops.hxx_epilogue_file (), ""), epilogue);
+ append (hxx, ops.hxx_epilogue (), ops.epilogue (), "");
hxx << "//" << endl
<< "// End epilogue." << endl
@@ -1358,13 +1122,8 @@ namespace CXX
ixx << "// Begin prologue." << endl
<< "//" << endl;
- append (ixx,
- ops.value<CLI::ixx_prologue> (),
- ops.value<CLI::prologue> (),
- "");
- append (ixx,
- find_value (ops.value<CLI::ixx_prologue_file> (), ""),
- prologue);
+ append (ixx, ops.ixx_prologue (), ops.prologue (), "");
+ append (ixx, find_value (ops.ixx_prologue_file (), ""), prologue);
ixx << "//" << endl
<< "// End prologue." << endl
@@ -1382,13 +1141,8 @@ namespace CXX
ixx << "// Begin epilogue." << endl
<< "//" << endl;
- append (ixx,
- find_value (ops.value<CLI::ixx_epilogue_file> (), ""),
- epilogue);
- append (ixx,
- ops.value<CLI::ixx_epilogue> (),
- ops.value<CLI::epilogue> (),
- "");
+ append (ixx, find_value (ops.ixx_epilogue_file (), ""), epilogue);
+ append (ixx, ops.ixx_epilogue (), ops.epilogue (), "");
ixx << "//" << endl
<< "// End epilogue." << endl
@@ -1419,13 +1173,8 @@ namespace CXX
cxx << "// Begin prologue." << endl
<< "//" << endl;
- append (cxx,
- ops.value<CLI::cxx_prologue> (),
- ops.value<CLI::prologue> (),
- "");
- append (cxx,
- find_value (ops.value<CLI::cxx_prologue_file> (), ""),
- prologue);
+ append (cxx, ops.cxx_prologue (), ops.prologue (), "");
+ append (cxx, find_value (ops.cxx_prologue_file (), ""), prologue);
cxx << "//" << endl
<< "// End prologue." << endl
@@ -1444,10 +1193,10 @@ namespace CXX
generate_tree_source (ctx);
- if (!ops.value<CLI::generate_insertion> ().empty ())
+ if (!ops.generate_insertion ().empty ())
generate_insertion_source (ctx);
- if (!ops.value<CLI::generate_extraction> ().empty ())
+ if (!ops.generate_extraction ().empty ())
generate_extraction_source (ctx);
}
@@ -1456,13 +1205,8 @@ namespace CXX
cxx << "// Begin epilogue." << endl
<< "//" << endl;
- append (cxx,
- find_value (ops.value<CLI::cxx_epilogue_file> (), ""),
- epilogue);
- append (cxx,
- ops.value<CLI::cxx_epilogue> (),
- ops.value<CLI::epilogue> (),
- "");
+ append (cxx, find_value (ops.cxx_epilogue_file (), ""), epilogue);
+ append (cxx, ops.cxx_epilogue (), ops.epilogue (), "");
cxx << "//" << endl
<< "// End epilogue." << endl
@@ -1480,15 +1224,14 @@ namespace CXX
// Populate the type maps if we are generating parsing or
// serialization code.
//
- if (ops.value<CLI::generate_parser> () ||
- ops.value<CLI::generate_serializer> ())
+ if (ops.generate_parser () || ops.generate_serializer ())
{
generate_tree_type_map (ops, schema, file_path, hxx_name,
parser_type_map, serializer_type_map);
// Re-map anyType.
//
- if (ops.value<CLI::generate_parser> ())
+ if (ops.generate_parser ())
{
parser_type_map.push_back (
TypeMap::Namespace ("http://www.w3.org/2001/XMLSchema"));
@@ -1497,7 +1240,7 @@ namespace CXX
xs.types_push_back ("anyType", xs_ns + L"::any_type*");
}
- if (ops.value<CLI::generate_serializer> ())
+ if (ops.generate_serializer ())
{
serializer_type_map.push_back (
TypeMap::Namespace ("http://www.w3.org/2001/XMLSchema"));
@@ -1546,7 +1289,7 @@ namespace CXX
}
UnsignedLong Hybrid::Generator::
- generate_parser (Hybrid::CLI::Options const& ops,
+ generate_parser (Hybrid::options const& ops,
Schema& schema,
Path const& file_path,
Boolean fpt,
@@ -1560,7 +1303,7 @@ namespace CXX
try
{
{
- Boolean gen_xml_schema (ops.value<CLI::generate_xml_schema> ());
+ Boolean gen_xml_schema (ops.generate_xml_schema ());
// We could be compiling several schemas at once in which case
// handling of the --generate-xml-schema option gets tricky: we
@@ -1569,7 +1312,7 @@ namespace CXX
//
if (gen_xml_schema)
{
- if (NarrowString name = ops.value<CLI::extern_xml_schema> ())
+ if (NarrowString name = ops.extern_xml_schema ())
{
if (file_path.native_file_string () != name)
gen_xml_schema = false;
@@ -1590,22 +1333,17 @@ namespace CXX
}
NarrowString name (file_path.leaf ());
- NarrowString skel_suffix (ops.value <CLI::pskel_file_suffix> ());
- NarrowString impl_suffix (ops.value <CLI::pimpl_file_suffix> ());
-
- NarrowString hxx_suffix (ops.value <CLI::hxx_suffix> ());
- NarrowString cxx_suffix (ops.value <CLI::cxx_suffix> ());
+ NarrowString skel_suffix (ops.pskel_file_suffix ());
+ NarrowString impl_suffix (ops.pimpl_file_suffix ());
- NarrowString hxx_obj_regex (
- find_value (ops.value <CLI::hxx_regex> (), ""));
+ NarrowString hxx_suffix (ops.hxx_suffix ());
+ NarrowString cxx_suffix (ops.cxx_suffix ());
- NarrowString hxx_skel_regex (
- find_value (ops.value <CLI::hxx_regex> (), "pskel"));
+ NarrowString hxx_obj_regex (find_value (ops.hxx_regex (), ""));
+ NarrowString hxx_skel_regex (find_value (ops.hxx_regex (), "pskel"));
- NarrowString hxx_regex (
- find_value (ops.value <CLI::hxx_regex> (), "pimpl"));
- NarrowString cxx_regex (
- find_value (ops.value <CLI::cxx_regex> (), "pimpl"));
+ NarrowString hxx_regex (find_value (ops.hxx_regex (), "pimpl"));
+ NarrowString cxx_regex (find_value (ops.cxx_regex (), "pimpl"));
// Here we need to make sure that hxx_obj_expr is the same
// as in generate().
@@ -1658,7 +1396,7 @@ namespace CXX
Path out_dir;
- if (NarrowString dir = ops.value<CLI::output_dir> ())
+ if (NarrowString dir = ops.output_dir ())
{
try
{
@@ -1713,9 +1451,7 @@ namespace CXX
// Print copyright and license.
//
Char const* copyright (
- ops.value<CLI::proprietary_license> ()
- ? copyright_proprietary
- : copyright_gpl);
+ ops.proprietary_license () ? copyright_proprietary : copyright_gpl);
hxx << copyright;
cxx << copyright;
@@ -1724,8 +1460,7 @@ namespace CXX
//
WideInputFileStream prologue;
{
- NarrowString name (
- find_value (ops.value<CLI::prologue_file> (), "pimpl"));
+ NarrowString name (find_value (ops.prologue_file (), "pimpl"));
if (name)
open (prologue, name);
@@ -1735,8 +1470,7 @@ namespace CXX
//
WideInputFileStream epilogue;
{
- NarrowString name (
- find_value (ops.value<CLI::epilogue_file> (), "pimpl"));
+ NarrowString name (find_value (ops.epilogue_file (), "pimpl"));
if (name)
open (epilogue, name);
@@ -1744,14 +1478,14 @@ namespace CXX
// SLOC counter.
//
- UnsignedLong sloc_total (0);
- Boolean show_sloc (ops.value<CLI::show_sloc> ());
+ size_t sloc_total (0);
+ Boolean show_sloc (ops.show_sloc ());
//
//
Regex guard_expr ("/([a-z])([A-Z])/$1_$2/"); // Split words.
- NarrowString guard_prefix (ops.value<CLI::guard_prefix> ());
+ NarrowString guard_prefix (ops.guard_prefix ());
if (!guard_prefix)
guard_prefix = file_path.branch_path ().native_directory_string ();
@@ -1759,7 +1493,7 @@ namespace CXX
if (guard_prefix)
guard_prefix += '_';
- Boolean aggr (ops.value<CLI::generate_aggregate> ());
+ Boolean aggr (ops.generate_aggregate ());
// HXX
//
@@ -1784,13 +1518,8 @@ namespace CXX
hxx << "// Begin prologue." << endl
<< "//" << endl;
- append (hxx,
- ops.value<CLI::hxx_prologue> (),
- ops.value<CLI::prologue> (),
- "pimpl");
- append (hxx,
- find_value (ops.value<CLI::hxx_prologue_file> (), "pimpl"),
- prologue);
+ append (hxx, ops.hxx_prologue (), ops.prologue (), "pimpl");
+ append (hxx, find_value (ops.hxx_prologue_file (), "pimpl"), prologue);
hxx << "//" << endl
<< "// End prologue." << endl
@@ -1838,13 +1567,8 @@ namespace CXX
hxx << "// Begin epilogue." << endl
<< "//" << endl;
- append (hxx,
- find_value (ops.value<CLI::hxx_epilogue_file> (), "pimpl"),
- epilogue);
- append (hxx,
- ops.value<CLI::hxx_epilogue> (),
- ops.value<CLI::epilogue> (),
- "pimpl");
+ append (hxx, find_value (ops.hxx_epilogue_file (), "pimpl"), epilogue);
+ append (hxx, ops.hxx_epilogue (), ops.epilogue (), "pimpl");
hxx << "//" << endl
<< "// End epilogue." << endl
@@ -1873,13 +1597,8 @@ namespace CXX
cxx << "// Begin prologue." << endl
<< "//" << endl;
- append (cxx,
- ops.value<CLI::cxx_prologue> (),
- ops.value<CLI::prologue> (),
- "pimpl");
- append (cxx,
- find_value (ops.value<CLI::cxx_prologue_file> (), "pimpl"),
- prologue);
+ append (cxx, ops.cxx_prologue (), ops.prologue (), "pimpl");
+ append (cxx, find_value (ops.cxx_prologue_file (), "pimpl"), prologue);
cxx << "//" << endl
<< "// End prologue." << endl
@@ -1904,13 +1623,8 @@ namespace CXX
cxx << "// Begin epilogue." << endl
<< "//" << endl;
- append (cxx,
- find_value (ops.value<CLI::cxx_epilogue_file> (), "pimpl"),
- epilogue);
- append (cxx,
- ops.value<CLI::cxx_epilogue> (),
- ops.value<CLI::epilogue> (),
- "pimpl");
+ append (cxx, find_value (ops.cxx_epilogue_file (), "pimpl"), epilogue);
+ append (cxx, ops.cxx_epilogue (), ops.epilogue (), "pimpl");
cxx << "//" << endl
<< "// End epilogue." << endl
@@ -1961,7 +1675,7 @@ namespace CXX
}
UnsignedLong Hybrid::Generator::
- generate_serializer (Hybrid::CLI::Options const& ops,
+ generate_serializer (Hybrid::options const& ops,
Schema& schema,
Path const& file_path,
Boolean fpt,
@@ -1975,7 +1689,7 @@ namespace CXX
try
{
{
- Boolean gen_xml_schema (ops.value<CLI::generate_xml_schema> ());
+ Boolean gen_xml_schema (ops.generate_xml_schema ());
// We could be compiling several schemas at once in which case
// handling of the --generate-xml-schema option gets tricky: we
@@ -1984,7 +1698,7 @@ namespace CXX
//
if (gen_xml_schema)
{
- if (NarrowString name = ops.value<CLI::extern_xml_schema> ())
+ if (NarrowString name = ops.extern_xml_schema ())
{
if (file_path.native_file_string () != name)
gen_xml_schema = false;
@@ -2005,21 +1719,17 @@ namespace CXX
}
NarrowString name (file_path.leaf ());
- NarrowString skel_suffix (ops.value <CLI::sskel_file_suffix> ());
- NarrowString impl_suffix (ops.value <CLI::simpl_file_suffix> ());
+ NarrowString skel_suffix (ops.sskel_file_suffix ());
+ NarrowString impl_suffix (ops.simpl_file_suffix ());
- NarrowString hxx_suffix (ops.value <CLI::hxx_suffix> ());
- NarrowString cxx_suffix (ops.value <CLI::cxx_suffix> ());
+ NarrowString hxx_suffix (ops.hxx_suffix ());
+ NarrowString cxx_suffix (ops.cxx_suffix ());
- NarrowString hxx_obj_regex (
- find_value (ops.value <CLI::hxx_regex> (), ""));
+ NarrowString hxx_obj_regex (find_value (ops.hxx_regex (), ""));
- NarrowString hxx_skel_regex (
- find_value (ops.value <CLI::hxx_regex> (), "sskel"));
- NarrowString hxx_regex (
- find_value (ops.value <CLI::hxx_regex> (), "simpl"));
- NarrowString cxx_regex (
- find_value (ops.value <CLI::cxx_regex> (), "simpl"));
+ NarrowString hxx_skel_regex (find_value (ops.hxx_regex (), "sskel"));
+ NarrowString hxx_regex (find_value (ops.hxx_regex (), "simpl"));
+ NarrowString cxx_regex (find_value (ops.cxx_regex (), "simpl"));
// Here we need to make sure that hxx_obj_expr is the same
// as in generate().
@@ -2072,7 +1782,7 @@ namespace CXX
Path out_dir;
- if (NarrowString dir = ops.value<CLI::output_dir> ())
+ if (NarrowString dir = ops.output_dir ())
{
try
{
@@ -2127,9 +1837,7 @@ namespace CXX
// Print copyright and license.
//
Char const* copyright (
- ops.value<CLI::proprietary_license> ()
- ? copyright_proprietary
- : copyright_gpl);
+ ops.proprietary_license () ? copyright_proprietary : copyright_gpl);
hxx << copyright;
cxx << copyright;
@@ -2138,8 +1846,7 @@ namespace CXX
//
WideInputFileStream prologue;
{
- NarrowString name (
- find_value (ops.value<CLI::prologue_file> (), "simpl"));
+ NarrowString name (find_value (ops.prologue_file (), "simpl"));
if (name)
open (prologue, name);
@@ -2149,8 +1856,7 @@ namespace CXX
//
WideInputFileStream epilogue;
{
- NarrowString name (
- find_value (ops.value<CLI::epilogue_file> (), "simpl"));
+ NarrowString name (find_value (ops.epilogue_file (), "simpl"));
if (name)
open (epilogue, name);
@@ -2158,14 +1864,14 @@ namespace CXX
// SLOC counter.
//
- UnsignedLong sloc_total (0);
- Boolean show_sloc (ops.value<CLI::show_sloc> ());
+ size_t sloc_total (0);
+ Boolean show_sloc (ops.show_sloc ());
//
//
Regex guard_expr ("/([a-z])([A-Z])/$1_$2/"); // Split words.
- NarrowString guard_prefix (ops.value<CLI::guard_prefix> ());
+ NarrowString guard_prefix (ops.guard_prefix ());
if (!guard_prefix)
guard_prefix = file_path.branch_path ().native_directory_string ();
@@ -2173,7 +1879,7 @@ namespace CXX
if (guard_prefix)
guard_prefix += '_';
- Boolean aggr (ops.value<CLI::generate_aggregate> ());
+ Boolean aggr (ops.generate_aggregate ());
// HXX
//
@@ -2198,13 +1904,8 @@ namespace CXX
hxx << "// Begin prologue." << endl
<< "//" << endl;
- append (hxx,
- ops.value<CLI::hxx_prologue> (),
- ops.value<CLI::prologue> (),
- "simpl");
- append (hxx,
- find_value (ops.value<CLI::hxx_prologue_file> (), "simpl"),
- prologue);
+ append (hxx, ops.hxx_prologue (), ops.prologue (), "simpl");
+ append (hxx, find_value (ops.hxx_prologue_file (), "simpl"), prologue);
hxx << "//" << endl
<< "// End prologue." << endl
@@ -2252,13 +1953,8 @@ namespace CXX
hxx << "// Begin epilogue." << endl
<< "//" << endl;
- append (hxx,
- find_value (ops.value<CLI::hxx_epilogue_file> (), "simpl"),
- epilogue);
- append (hxx,
- ops.value<CLI::hxx_epilogue> (),
- ops.value<CLI::epilogue> (),
- "simpl");
+ append (hxx, find_value (ops.hxx_epilogue_file (), "simpl"), epilogue);
+ append (hxx, ops.hxx_epilogue (), ops.epilogue (), "simpl");
hxx << "//" << endl
<< "// End epilogue." << endl
@@ -2287,13 +1983,8 @@ namespace CXX
cxx << "// Begin prologue." << endl
<< "//" << endl;
- append (cxx,
- ops.value<CLI::cxx_prologue> (),
- ops.value<CLI::prologue> (),
- "simpl");
- append (cxx,
- find_value (ops.value<CLI::cxx_prologue_file> (), "simpl"),
- prologue);
+ append (cxx, ops.cxx_prologue (), ops.prologue (), "simpl");
+ append (cxx, find_value (ops.cxx_prologue_file (), "simpl"), prologue);
cxx << "//" << endl
<< "// End prologue." << endl
@@ -2318,13 +2009,8 @@ namespace CXX
cxx << "// Begin epilogue." << endl
<< "//" << endl;
- append (cxx,
- find_value (ops.value<CLI::cxx_epilogue_file> (), "simpl"),
- epilogue);
- append (cxx,
- ops.value<CLI::cxx_epilogue> (),
- ops.value<CLI::epilogue> (),
- "simpl");
+ append (cxx, find_value (ops.cxx_epilogue_file (), "simpl"), epilogue);
+ append (cxx, ops.cxx_epilogue (), ops.epilogue (), "simpl");
cxx << "//" << endl
<< "// End epilogue." << endl