# ifndef _IROP_H_
# define _IROP_H_
+# include <stddef.h>
# include "ident.h"
typedef enum {
iro_Proj, iro_Tuple, iro_Id, iro_Bad
} opcode;
-typedef struct {
- opcode code;
- ident *name;
- size_t attr_size;
- int labeled;
-} ir_op;
+typedef struct ir_op ir_op;
extern ir_op *op_Block;
extern ir_op *op_Cond;
extern ir_op *op_Return;
extern ir_op *op_Raise;
-
extern ir_op *op_Sel;
extern ir_op *op_Const;
extern ir_op *op_Id;
extern ir_op *op_Bad;
-/* create a new ir operation */
-ir_op * new_ir_op (opcode code, ident *name, size_t attr_size, int labeled);
-/* initialize the irop module */
-void init_op (void);
+/* Returns the string for the opcode. */
+const char *get_op_name (ir_op *op);
+
+/* Returns the enum for the opcode */
+opcode get_op_code (ir_op *op);
+
+/* Returns the ident for the opcode name */
+ident *get_op_ident (ir_op *op);
+
+/* Returns the attribute size of the opcode.
+ Use not encouraged, internal feature. */
+int get_op_attr_size (ir_op *op);
# endif /* _IROP_H_ */