summaryrefslogtreecommitdiffstats
path: root/Include/compile.h
blob: 330693060bd76c66bf90bf7abc77edbcf2a2cad3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* Definitions for compiled intermediate code */


/* An intermediate code fragment contains:
   - a string that encodes the instructions,
   - a list of the constants,
   - and a list of the names used. */

typedef struct {
	OB_HEAD
	stringobject *co_code;	/* instruction opcodes */
	object *co_consts;	/* list of immutable constant objects */
	object *co_names;	/* list of stringobjects */
	object *co_filename;	/* string */
} codeobject;

extern typeobject Codetype;

#define is_codeobject(op) ((op)->ob_type == &Codetype)


/* Public interface */
codeobject *compile PROTO((struct _node *, char *));