enum { ASS_INT = 1, // = MIN_INT = 2, // - ADD_INT = 3, // + MUL_INT = 4, // * DIV_INT = 5, // / EQ_INT = 20, // == LT_INT = 21, // < LE_INT = 22, // <= GT_INT = 23, // > GE_INT = 24, // >= JUMP = 100, RETURN = 101, }; struct vm_Machine { struct vm_Stack *stack; // global memory struct vm_Function *func; // global functions }; struct vm_Stack { char *memory; int bytes; }; struct vm_Function { struct vm_Stack p_stack; // parameter storage struct vm_Stack v_stack; // "static" storage - i.e., explicitly defined numbers struct vm_Stack stack; // struct vm_Operation *ops; // array of ops int op_size; }; struct vm_Operation { int op; char *stack_a; int pos_a; char *stack_b; int pos_b; };