]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Added "apply"; added "SyntaxError"; changed table lay-out.
authorGuido van Rossum <guido@python.org>
Mon, 16 Dec 1991 13:03:00 +0000 (13:03 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 16 Dec 1991 13:03:00 +0000 (13:03 +0000)
Python/bltinmodule.c

index 25e8f42f5a20418927b2d0f780e2a519a8cc5c4f..5bdf5d98fdf51d9f075f7db55feeb20460564dfd 100644 (file)
@@ -53,6 +53,21 @@ builtin_abs(self, 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 *
 builtin_chr(self, v)
        object *self;
@@ -550,29 +565,30 @@ builtin_type(self, v)
 }
 
 static struct methodlist builtin_methods[] = {
-       {"abs", builtin_abs},
-       {"chr", builtin_chr},
-       {"dir", builtin_dir},
-       {"divmod", builtin_divmod},
-       {"eval", builtin_eval},
-       {"exec", builtin_exec},
-       {"float", builtin_float},
-       {"hex", builtin_hex},
-       {"input", builtin_input},
-       {"int", builtin_int},
-       {"len", builtin_len},
-       {"long", builtin_long},
-       {"max", builtin_max},
-       {"min", builtin_min},
-       {"oct", builtin_oct},
-       {"open", builtin_open}, /* XXX move to OS module */
-       {"ord", builtin_ord},
-       {"pow", builtin_pow},
-       {"range", builtin_range},
-       {"raw_input", builtin_raw_input},
-       {"reload", builtin_reload},
-       {"type", builtin_type},
-       {NULL, NULL},
+       {"abs",         builtin_abs},
+       {"apply",       builtin_apply},
+       {"chr",         builtin_chr},
+       {"dir",         builtin_dir},
+       {"divmod",      builtin_divmod},
+       {"eval",        builtin_eval},
+       {"exec",        builtin_exec},
+       {"float",       builtin_float},
+       {"hex",         builtin_hex},
+       {"input",       builtin_input},
+       {"int",         builtin_int},
+       {"len",         builtin_len},
+       {"long",        builtin_long},
+       {"max",         builtin_max},
+       {"min",         builtin_min},
+       {"oct",         builtin_oct},
+       {"open",        builtin_open}, /* XXX move to OS module */
+       {"ord",         builtin_ord},
+       {"pow",         builtin_pow},
+       {"range",       builtin_range},
+       {"raw_input",   builtin_raw_input},
+       {"reload",      builtin_reload},
+       {"type",        builtin_type},
+       {NULL,          NULL},
 };
 
 static object *builtin_dict;
@@ -602,6 +618,7 @@ object *IndexError;
 object *ValueError;
 object *KeyError;
 object *OverflowError;
+object *SyntaxError;
 
 static object *
 newstdexception(name, message)
@@ -636,6 +653,8 @@ initerrors()
        KeyError = newstdexception("KeyError", "invalid key");
        OverflowError =
                newstdexception("OverflowError", "arithmetic overflow");
+       SyntaxError =
+               newstdexception("SyntaxError", "syntax error");
 }
 
 void