/
ColdCore-3.0a9.02/
ColdCore-3.0a9.02/src/
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());
};