| 212 | } |
| 213 | |
| 214 | int parse(int argc, const char ** argv) { |
| 215 | bool options_parsing = true; |
| 216 | for (int i = 1, positional_args_i = 0; i < argc; ++i) { |
| 217 | int ret = parse_options_with_value(argc, argv, i, options_parsing); |
| 218 | if (ret == 0) { |
| 219 | continue; |
| 220 | } else if (ret == 1) { |
| 221 | return ret; |
| 222 | } |
| 223 | |
| 224 | ret = parse_options(argv, i, options_parsing); |
| 225 | if (ret == 0) { |
| 226 | continue; |
| 227 | } else if (ret == 1) { |
| 228 | return ret; |
| 229 | } |
| 230 | |
| 231 | if (parse_positional_args(argv, i, positional_args_i)) { |
| 232 | return 1; |
| 233 | } |
| 234 | } |
| 235 | |
| 236 | if (model_.empty()) { |
| 237 | return 1; |
| 238 | } |
| 239 | |
| 240 | return 0; |
| 241 | } |
| 242 | |
| 243 | void print_help() const { |
| 244 | printf( |