summaryrefslogtreecommitdiff
path: root/CIAO/CCF/CCF/CodeGenerationKit/CommandLineDescriptor.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/CCF/CCF/CodeGenerationKit/CommandLineDescriptor.hpp')
-rw-r--r--CIAO/CCF/CCF/CodeGenerationKit/CommandLineDescriptor.hpp338
1 files changed, 0 insertions, 338 deletions
diff --git a/CIAO/CCF/CCF/CodeGenerationKit/CommandLineDescriptor.hpp b/CIAO/CCF/CCF/CodeGenerationKit/CommandLineDescriptor.hpp
deleted file mode 100644
index a7c6961cf1f..00000000000
--- a/CIAO/CCF/CCF/CodeGenerationKit/CommandLineDescriptor.hpp
+++ /dev/null
@@ -1,338 +0,0 @@
-// file : CCF/CodeGenerationKit/CommandLineDescriptor.hpp
-// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
-// cvs-id : $Id$
-
-#ifndef COMMAND_LINE_DESCRIPTOR_H
-#define COMMAND_LINE_DESCRIPTOR_H
-
-#include <map>
-#include <list>
-#include <vector>
-#include <string>
-#include <ostream>
-#include <cassert>
-
-
-namespace CL
-{
- struct OptionType
- {
- enum Value
- {
- flag,
- value
- };
-
- OptionType (Value v)
- : v_ (v)
- {
- }
-
- operator Value () const
- {
- return v_;
- }
-
- private:
- Value v_;
- };
-
-
- class OptionDescription
- {
- public:
- OptionDescription (std::string name,
- std::string description,
- OptionType type,
- bool optional = true)
- : optional_ (optional),
- type_ (type),
- name_ (name),
- value_synopsis_ (),
- description_ (description)
- {
- // There should be value_synopsis for non-flag options.
- //
- assert (type == OptionType::flag);
- }
-
-
- OptionDescription (std::string name,
- std::string value_synopsis,
- std::string description,
- OptionType type,
- bool optional = true)
- : optional_ (optional),
- type_ (type),
- name_ (name),
- value_synopsis_ (value_synopsis),
- description_ (description)
- {
- }
-
- public:
- bool
- optional () const
- {
- return optional_;
- }
-
- OptionType
- type () const
- {
- return type_;
- }
-
- std::string
- name () const
- {
- return name_;
- }
-
- std::string
- value_synopsis () const
- {
- return value_synopsis_;
- }
-
- std::string
- description () const
- {
- return description_;
- }
-
-
- private:
- bool optional_;
- OptionType type_;
- std::string name_;
- std::string value_synopsis_;
- std::string description_;
- };
-
-
- class Description
- {
- public:
- Description (std::string command)
- : command_ (command)
- {
- }
-
- private:
- Description (Description const&);
-
- Description&
- operator= (Description const&);
-
- private:
- // We are storing pointer to elements in this list in the map below.
- // To prevent element moving we will use list instead of vector.
- //
- typedef
- std::list<OptionDescription>
- OptionDescriptionList;
-
- typedef
- std::map<std::string, OptionDescription*>
- OptionDescriptionMap;
-
- public:
-
- std::string
- command () const
- {
- return command_;
- }
-
-
- public:
- typedef
- OptionDescriptionList::const_iterator
- OptionIterator;
-
- OptionIterator
- begin_option () const
- {
- return options_.begin ();
- }
-
- OptionIterator
- end_option () const
- {
- return options_.end ();
- }
-
- typedef
- OptionDescriptionMap::const_iterator
- OptionMapIterator;
-
- OptionDescription const*
- find_option (std::string const& option) const
- {
- OptionDescriptionMap::const_iterator i (
- option_map_.find (option));
-
- return i == option_map_.end () ? 0 : i->second;
- }
-
- void
- add_option (OptionDescription const& od)
- {
- options_.push_back (od);
- option_map_[od.name ()] = &options_.back ();
- }
-
- private:
- typedef
- std::vector<std::string>
- ArgumentDescriptionList;
-
- public:
- typedef
- ArgumentDescriptionList::const_iterator
- ArgumentIterator;
-
- ArgumentIterator
- begin_argument () const
- {
- return arguments_.begin ();
- }
-
- ArgumentIterator
- end_argument () const
- {
- return arguments_.end ();
- }
-
- void
- add_argument (std::string arg)
- {
- arguments_.push_back (arg);
- }
-
- private:
- std::string command_;
- OptionDescriptionList options_;
- OptionDescriptionMap option_map_;
- ArgumentDescriptionList arguments_;
- };
-
- inline void
- print_text (std::ostream& os, Description const& d)
- {
- using std::endl;
-
- os << d.command ();
-
- Description::OptionIterator ob = d.begin_option ();
- Description::OptionIterator oe = d.end_option ();
-
- if (ob != oe)
- {
- os << " { OPTIONS }";
- }
-
- Description::ArgumentIterator ab = d.begin_argument ();
- Description::ArgumentIterator ae = d.end_argument ();
-
- for (; ab != ae; ab++)
- {
- os << " <" << *ab << ">";
- }
-
- os << endl << endl;
-
- for (; ob != oe; ob++)
- {
- bool flag (ob->type () == OptionType::flag);
- bool optional (ob->optional ());
- std::string prefix (ob->name ().length () == 1 ? "-" : "--");
-
- os << (optional ? "[" : "") << prefix << ob->name ()
- << (flag ? "" : " ") << ob->value_synopsis ()
- << (optional ? "]" : "")
- << endl;
-
- os << "\t\t" << ob->description () << endl << endl;
- }
-
- }
-
-
- inline void
- print_html (std::ostream& os, Description const& d)
- {
- using std::endl;
-
- os << "<html>" << endl
- << "<body>" << endl
- << "<div align=\"center\">" << endl
- << "<table width=\"700\" border=\"0\" cellspacing=\"0\" "
- << "cellpadding=\"0\">" << endl
- << "<tr>" << endl
- << "<td>" << endl;
-
- os << "<p>" << endl
- << "<code>" << endl;
-
- os << d.command ();
-
- Description::OptionIterator ob = d.begin_option ();
- Description::OptionIterator oe = d.end_option ();
-
- if (ob != oe)
- {
- os << " { OPTIONS }";
- }
-
- Description::ArgumentIterator ab = d.begin_argument ();
- Description::ArgumentIterator ae = d.end_argument ();
-
- for (; ab != ae; ab++)
- {
- os << " &lt;" << *ab << "&gt;";
- }
-
- os << endl
- << "</code>" << endl
- << "</p>" << endl;
-
-
- os << "<dl>" << endl;
-
- for (; ob != oe; ob++)
- {
- bool flag (ob->type () == OptionType::flag);
- bool optional (ob->optional ());
- std::string prefix (ob->name ().length () == 1 ? "-" : "--");
-
- os << "<dt>" << endl
- << "<code>" << endl
- << (optional ? "[" : "") << prefix << ob->name ()
- << (flag ? "" : " ") << ob->value_synopsis ()
- << (optional ? "]" : "") << endl
- << "</code>" << endl
- << "</dt>" << endl;
-
- os << "<dd>" << endl
- << "<p>" << endl
- << ob->description () << endl
- << "</p>" << endl
- << "</dd>" << endl;
- }
-
- os << "</dl>" << endl;
-
- os << "</td>" << endl
- << "</tr>" << endl
- << "</table>" << endl
- << "</div>" << endl
- << "</body>" << endl
- << "</html>" << endl;
-
- }
-}
-
-
-#endif // COMMAND_LINE_DESCRIPTOR_H