00001
00012 #ifndef _INSTR_H_
00013 #define _INSTR_H_
00014
00015 #include <gtk/gtk.h>
00016 #include "class.h"
00017 #include "op.h"
00018
00019
00020 struct s_instr {
00021 struct s_class class;
00023 op_t op;
00025 struct s_class *arg1;
00026 struct s_class *arg2;
00027 };
00028
00029
00030 #define INSTR(class) ((struct s_instr *)class)
00031 #define INSTR_TYPE(const) CLASS_TYPE(const)
00032
00033 #define instr_free(instr) (instr_free_from_list(instr, NULL))
00034
00035
00036 struct s_instr *instr_alloc(op_t, classtype_t,
00037 struct s_class *, struct s_class *);
00038 void instr_free_from_list(gpointer, gpointer);
00039 #ifdef DEBUG
00040 void instr_debug(gpointer, gpointer);
00041 gchar *instr_subdebug(struct s_instr *);
00042 #endif
00043 #endif