/*!

\mainpage

\section what_is_args_4 Что такое args-4

args-4 -- это статическая библиотека классов для разбора аргументов командной
строки. Так же она может использоваться для разбора простых
конфигурационных файлов.

\subsection what_is_args_4__hist История

Основа библиотеки args была разработана в 1997-1998 годах в рамках
проекта Dss. Впоследствии библиотека подвергалась лишь небольшим
косметическим переделкам и добавлением некоторых классов аргументов
и потоков ошибок. Весь проектный дизайн практически не изменился
с момента первой реализации args.

\section args_and_params	Аргументы и параметры

Предполагается, что аргументы программы задаются в виде
<tt>имя [значение]</tt>. Например:

\verbatim
-c -f some-file.4xx -d DEBUG
\endverbatim

Здесь <tt>-c</tt>, <tt>-f</tt>, <tt>-d</tt> -- это аргументы,
<tt>some-file.4xx</tt>, <tt>DEBUG</tt> -- праметры (значения)
аргументов.

Именем аргумента и параметром аргументов являются \c слова --
последовательности непробельных символов. Если в качестве
параметра нужно указать последовательность слов, разделенных
пробелами (табуляцией, переводом строки), то эту последовательность
нужно взять в двойные кавычки -- т.е. сформировать строку:

\verbatim
-c -f "some file with spaces.4xx" -d DEBUG
\endverbatim

Когда параметр-строка указывается в командной строке, то правила
представления символов в строке определяет командный процессор
конкретной ОС. Если же параметр-строка указыватся в response-файле,
то для символов в строке действуют правила языка C и некоторые
символы (обратный слеш, двойная кавычка, перевод строки и т.д.)
необходимо записывать в виде escape-последовательностей:

\verbatim
-c
-f "c:\\program files\\some file.4xx"
-title "Annotation to \"Args-4\""
-http-header "Content-type: text/html\n\n"
\endverbatim

Аналогичные правила действуют и для конфигурационных
файлов.

\section usage Применение args-4

Процесс разбора аргументов состоит в выполнении следующих
шагов:
	- создания для каждого аргумента объекта класса,
производного от args_4::cmd_t;
	- создания объекта-парсера аргументов. Обычно класса
args_4::cmd_parser_t (или производного от него);
	- описания в объекте-парсере объектов-аргументов;
	- создания объекта входного потока слов. Объекта,
производного от args_4::word_container_t;
	- осуществления разбора путем вызова метода
args_4::cmd_parser_t::parse() у объекта-парсера;
	- последующего извлечения значений из
объектов-аргументов.

Подробнее см. <a href="examples.html">примеры</a>.

*/

