1 #ifndef STAN_SERVICES_ARGUMENTS_CATEGORICAL_ARGUMENT_HPP
2 #define STAN_SERVICES_ARGUMENTS_CATEGORICAL_ARGUMENT_HPP
14 for (std::vector<argument*>::iterator it =
_subarguments.begin();
24 const std::string& prefix) {
26 w(prefix + indent +
_name);
28 for (std::vector<argument*>::iterator it =
_subarguments.begin();
30 (*it)->print(w, depth + 1, prefix);
43 ss << indent << subindent <<
"Valid subarguments:";
46 ss <<
" " << (*it)->name();
50 ss <<
", " << (*it)->name();
55 for (std::vector<argument*>::iterator it =
_subarguments.begin();
57 (*it)->print_help(w, depth + 1,
true);
69 bool valid_arg =
true;
77 std::string cat_name = args.back();
79 if (cat_name ==
"help") {
84 }
else if (cat_name ==
"help-all") {
97 for (std::vector<argument*>::iterator it =
_subarguments.begin();
99 if ((*it)->name() == cat_name) {
101 valid_arg &= (*it)->parse_args(args, info, err, help_flag);
104 }
else if ( (*it)->name() == val_name ) {
105 valid_arg &= (*it)->parse_args(args, info, err, help_flag);
118 for (std::vector<argument*>::iterator it =
_subarguments.begin();
120 (*it)->probe_args(base_arg, w);
125 const std::string& prefix,
126 std::vector<std::string>& valid_paths) {
129 std::string new_prefix = prefix +
_name +
" ";
130 for (std::vector<argument*>::iterator it =
_subarguments.begin();
132 (*it)->find_arg(name, new_prefix, valid_paths);
140 for (std::vector<argument*>::iterator it =
_subarguments.begin();
142 if ( name == (*it)->name() )
Probability, optimization and sampling library.
std::vector< argument * > & subarguments()
static void split_arg(const std::string &arg, std::string &name, std::string &value)
argument * arg(const std::string &name)
virtual ~categorical_argument()
void find_arg(const std::string &name, const std::string &prefix, std::vector< std::string > &valid_paths)
int compute_indent(const int depth)
base_writer is an abstract base class defining the interface for Stan writer callbacks.
void print_help(interface_callbacks::writer::base_writer &w, const int depth, const bool recurse)
bool parse_args(std::vector< std::string > &args, interface_callbacks::writer::base_writer &info, interface_callbacks::writer::base_writer &err, bool &help_flag)
void print(interface_callbacks::writer::base_writer &w, const int depth, const std::string &prefix)
virtual void find_arg(const std::string &name, const std::string &prefix, std::vector< std::string > &valid_paths)
std::vector< argument * > _subarguments
virtual void probe_args(argument *base_arg, interface_callbacks::writer::base_writer &w)