Ejemplo n.º 1
0
  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;
    }

  }
Ejemplo n.º 2
0
  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;

  }