int load_mrb(struct VM *vm) { /* setup mrb program */ int ret = UNKNOWN_ERROR; char *pos = vm->mrb; do { if( check_str_4(pos, "RITE") ){ ret = load_header(vm, &pos); } else if( check_str_4(pos, "IREP") ){ ret = load_irep(vm, &pos); } else if( check_str_4(pos, "LVAR") ){ ret = load_lvar(vm, &pos); } else if( check_str_4(pos, "END\0") ){ break; } else { ret = UNKNOWN_ERROR; } } while( ret == NO_ERROR ); return ret; }
MRB_API mrb_value mrb_load_irep_file_cxt(mrb_state *mrb, FILE* fp, mrbc_context *c) { return load_irep(mrb, mrb_read_irep_file(mrb, fp), c); }
MRB_API mrb_value mrb_load_irep_cxt(mrb_state *mrb, const uint8_t *bin, mrbc_context *c) { return load_irep(mrb, mrb_read_irep(mrb, bin), c); }