1 #ifndef STAN_SERVICES_ARGUMENTS_LIST_ARGUMENT_HPP
2 #define STAN_SERVICES_ARGUMENTS_LIST_ARGUMENT_HPP
21 for (std::vector<argument*>::iterator it =
_values.begin();
31 const std::string& prefix) {
44 for (std::vector<argument*>::iterator it =
_values.begin();
46 (*it)->print_help(w, depth + 1,
true);
61 if (
_name ==
"help") {
66 }
else if (
_name ==
"help-all") {
71 }
else if (
_name == name) {
74 bool good_arg =
false;
75 bool valid_arg =
true;
77 for (
size_t i = 0; i <
_values.size(); ++i) {
88 std::stringstream message;
89 message << value <<
" is not a valid value for \""
97 return valid_arg && good_arg;
104 for (
size_t i = 0; i <
_values.size(); ++i) {
108 base_arg->
print(w, 0,
"");
111 _values.at(i)->probe_args(base_arg, w);
117 base_arg->
print(w, 0,
"");
125 const std::string& prefix,
126 std::vector<std::string>& valid_paths) {
128 valid_paths.push_back(prefix +
_name +
"=<list_element>");
131 for (std::vector<argument*>::iterator it =
_values.begin();
133 std::string value_prefix = prefix +
_name +
"=" + (*it)->name() +
" ";
134 (*it)->find_arg(name, value_prefix, valid_paths);
139 for (std::vector<argument*>::iterator it =
_values.begin();
141 if (name == (*it)->name())
160 std::string valid_values;
162 std::vector<argument*>::iterator it =
_values.begin();
163 valid_values +=
" " + (*it)->name();
166 for (; it !=
_values.end(); ++it)
167 valid_values +=
", " + (*it)->name();
virtual void print(interface_callbacks::writer::base_writer &w, const int depth, const std::string &prefix)
std::vector< argument * > _values
bool parse_args(std::vector< std::string > &args, interface_callbacks::writer::base_writer &info, interface_callbacks::writer::base_writer &err, bool &help_flag)
Probability, optimization and sampling library.
void print(interface_callbacks::writer::base_writer &w, int depth, const std::string &prefix)
static void split_arg(const std::string &arg, std::string &name, std::string &value)
virtual void print_help(interface_callbacks::writer::base_writer &w, const int depth, const bool recurse=false)
std::vector< argument * > & values()
argument * arg(const std::string &name)
base_writer is an abstract base class defining the interface for Stan writer callbacks.
std::string print_value()
virtual void print(interface_callbacks::writer::base_writer &w, const int depth, const std::string &prefix)=0
std::string print_valid()
bool valid_value(const std::string &name)
void find_arg(const std::string &name, const std::string &prefix, std::vector< std::string > &valid_paths)
void print_help(interface_callbacks::writer::base_writer &w, int depth, bool recurse)
virtual void probe_args(argument *base_arg, stan::interface_callbacks::writer::base_writer &w)