parent $libraries
object $data
var $root dbref 'data
var $root child_index 0
var $root fertile 0
var $root manager $data
var $root owned [$data]
var $root owners [$data]
var $root writable []
var $root readable ['parameters, 'methods, 'code]
var $root inited 1
method unparse
arg data, [full];
var str, element, association, pos;
switch (type(data)) {
case 'integer:
return tostr(data);
case 'string:
return toliteral(data);
case 'symbol:
return toliteral(data);
case 'error:
return toliteral(data);
case 'buffer:
return toliteral(data);
case 'dbref:
if (full)
return $object.get_name(data, 'namef, ['xref]);
else
return $object.get_name(data, 'dbref);
case 'list:
if (!data)
return "[]";
str = "[";
for element in (sublist(data, 1, listlen(data) - 1)) {
str = str + ($data.unparse(element));
str = str + ", ";
}
str = str + ($data.unparse(data[listlen(data)]));
return str + "]";
case 'dictionary:
if (!data)
return "#[]";
str = "#[";
for association in (data) {
str = str + ($data.unparse(association));
str = str + ", ";
}
return substr(str, 1, strlen(str) - 2) + "]";
case 'frob:
return data.unparse();
}
.
method verify_type
arg value, type;
var elem, type_elem, ok_flag;
// returns true if type(value) is type, or in the case
// of lists and dicts it checks the elements
//
// If type is a list or dict, the elements it contains are possible types for value
// for example: .verify_value([['foo], 1],['integer, 'list, ['symbol]]) => 1
// To indicate that you don't care what the elements of a dict or list are,
// simply use 'list or 'dictionary.
if (type(value) == type)
return 1;
if ((type(type) in ['dictionary, 'list]) && (type(type) == type(value))) {
for elem in (value) {
ok_flag = 0;
for type_elem in (type) {
if (.verify_type(elem, type_elem)) {
ok_flag = 1;
break;
}
if (!ok_flag)
return 0;
}
}
return 1;
}
// value is not of type, or values elements are not of @type, or etc
return 0;
.