new object $adapter: $misc;
var $dmi_data descriptions = #[];
var $root created_on = 863769089;
var $root flags = ['variables, 'methods, 'code, 'core];
var $root inited = 1;
var $root managed = [$adapter];
var $root manager = $adapter;
public method .process_args() {
arg given_args, takes_args;
var final_args, converter, this_arg, this_arg_data, arg_list;
final_args = #[];
for this_arg in (takes_args.keys()) {
this_arg_data = takes_args[this_arg];
if (!(given_args.contains(this_arg))) {
if ((this_arg_data[1]) != [])
final_args = final_args.add(this_arg, (this_arg_data[1])[1]);
else
throw(~missingarg, ("Argument " + this_arg) + " was not specified.");
} else if (((this_arg_data[2]).length()) == 3) {
converter = this_arg_data[2];
final_args = final_args.add(this_arg, (> (converter[1]).(converter[2])(given_args[this_arg], @converter[3]) <));
} else {
final_args = final_args.add(this_arg, given_args[this_arg]);
}
}
return final_args.add('arg_list, given_args.keys());
};