#define FOR_EACH_INSTR(V) \
V(ADD) \
V(SUB)
#define OTHER_FOR_EACH(V) \
V(DIV) \
V(MUL)
#define DECLARE_INSTR(op) #op,
#define DECLARE_OP_INSTR(op) op_##op,
enum op_code {
FOR_EACH_INSTR(DECLARE_OP_INSTR)
OTHER_FOR_EACH(DECLARE_OP_INSTR)
};
static const char *names[] = {
FOR_EACH_INSTR(DECLARE_INSTR)
OTHER_FOR_EACH(DECLARE_INSTR)