Added "apply"; added "SyntaxError"; changed table lay-out.

This commit is contained in:
Guido van Rossum 1991-12-16 13:03:00 +00:00
parent d39e412482
commit c02e15c45e

View file

@ -53,6 +53,21 @@ builtin_abs(self, v)
return (*nm->nb_absolute)(v); return (*nm->nb_absolute)(v);
} }
static object *
builtin_apply(self, v)
object *self;
object *v;
{
object *func, *args;
if (v == NULL || !is_tupleobject(v) || gettuplesize(v) != 2) {
err_setstr(TypeError, "apply() requires (func,args)");
return NULL;
}
func = gettupleitem(v, 0);
args = gettupleitem(v, 1);
return call_object(func, args);
}
static object * static object *
builtin_chr(self, v) builtin_chr(self, v)
object *self; object *self;
@ -551,6 +566,7 @@ builtin_type(self, v)
static struct methodlist builtin_methods[] = { static struct methodlist builtin_methods[] = {
{"abs", builtin_abs}, {"abs", builtin_abs},
{"apply", builtin_apply},
{"chr", builtin_chr}, {"chr", builtin_chr},
{"dir", builtin_dir}, {"dir", builtin_dir},
{"divmod", builtin_divmod}, {"divmod", builtin_divmod},
@ -602,6 +618,7 @@ object *IndexError;
object *ValueError; object *ValueError;
object *KeyError; object *KeyError;
object *OverflowError; object *OverflowError;
object *SyntaxError;
static object * static object *
newstdexception(name, message) newstdexception(name, message)
@ -636,6 +653,8 @@ initerrors()
KeyError = newstdexception("KeyError", "invalid key"); KeyError = newstdexception("KeyError", "invalid key");
OverflowError = OverflowError =
newstdexception("OverflowError", "arithmetic overflow"); newstdexception("OverflowError", "arithmetic overflow");
SyntaxError =
newstdexception("SyntaxError", "syntax error");
} }
void void