#ifndef NQ_NQASM_H #define NQ_NQASM_H enum { ARG_INTEGER, ARG_LABEL, ARG_PC, ARG_UNARY_ADD, ARG_UNARY_SUB, ARG_UNARY_NOT, ARG_UNARY_INV, }; struct argument { int type; union { long value; char *label; const struct argument *children[1]; }; }; struct arguments { struct argument args[3]; }; struct instruction { int mnem; struct arguments args; }; void add_instruction(const struct instruction *); void add_label(const char *); struct argument *argdup(const struct argument *); #endif