summaryrefslogtreecommitdiffstats
path: root/Include/classobject.h
blob: 0514634a03dd2ec4d9c3f62dc87f2ef0663905e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/* Class object interface */

/*
Classes are really hacked in at the last moment.
It should be possible to use other object types as base classes,
but currently it isn't.  We'll see if we can fix that later, sigh...
*/

extern typeobject Classtype, Classmembertype, Classmethodtype;

#define is_classobject(op) ((op)->ob_type == &Classtype)
#define is_classmemberobject(op) ((op)->ob_type == &Classmembertype)
#define is_classmethodobject(op) ((op)->ob_type == &Classmethodtype)

extern object *newclassobject PROTO((node *, object *, object *));
extern object *newclassmemberobject PROTO((object *));
extern object *newclassmethodobject PROTO((object *, object *));

extern object *classmethodgetfunc PROTO((object *));
extern object *classmethodgetself PROTO((object *));