Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <mruby.h>
- #include <mruby/value.h>
- #include <mruby/array.h>
- #include <mruby/throw.h>
- #include <mruby/proc.h>
- #include <math.h>
- #include <stdio.h>
- #undef mrb_int
- typedef void *gproc;
- struct env2 {
- mrb_int v116;
- mrb_value v117;
- };
- struct env3 {
- struct env2 *prev;
- };
- struct cls0 {
- };
- mrb_value main_Object_0(mrb_state *, mrb_value self);
- mrb_value foo__Object__1(mrb_state *, mrb_value self, mrb_value v103);
- struct proc3 {
- int id;
- void *code[1];
- struct env2 *env;
- mrb_value self;
- };
- mrb_value p3_Object_0_2(mrb_state *,mrb_value mrbproc, mrb_value v122);
- int main(int argc, char **argv)
- {
- mrb_state *mrb = mrb_open();
- struct mrb_jmpbuf c_jmp;
- MRB_TRY(&c_jmp) {
- mrb->jmp = &c_jmp;
- main_Object_0(mrb, mrb_top_self(mrb));
- }
- MRB_CATCH(&c_jmp) {
- mrb_p(mrb, mrb_obj_value(mrb->exc));
- return 1;
- }
- MRB_END_EXC(&c_jmp);
- return 0;
- }
- mrb_value main_Object_0(mrb_state *mrb, mrb_value self) {
- mrb_value v14;
- mrb_value v17;
- mrb_value v20;
- L0:;
- v14 = foo__Object__1(mrb, self, mrb_nil_value());
- v17 = ((mrb_value (*)())(((void **)(MRB_PROC_CFUNC(mrb_proc_ptr(v14))))[0]))(mrb, v14, mrb_nil_value());
- v20 = ((mrb_value (*)())(((void **)(MRB_PROC_CFUNC(mrb_proc_ptr(v14))))[0]))(mrb, v14, mrb_nil_value());
- return v20;
- }
- mrb_value foo__Object__1(mrb_state *mrb, mrb_value self, mrb_value v103) {
- struct env2 env;
- struct REnv *venv = NULL;
- mrb_int v116;
- mrb_value vv118;
- mrb_value v141;
- mrb_value v143;
- mrb_value v149;
- L5:;
- v116 = 123;
- if (venv)
- venv->stack[1] = (mrb_fixnum_value(v116));
- if (venv)
- venv->stack[2] = mrb_nil_value();
- struct proc3 v118;
- v118.id = 3;
- v118.self = self;
- v118.env = &env;
- v118.code[0] = (void *)p3_Object_0_2;
- vv118 = ({
- mrb_value tmpval[3];
- struct RProc *tproc;
- {
- tmpval[0] = ((struct proc3 *)((gproc)&v118))->self;
- tmpval[1] = (mrb_fixnum_value(v116));
- tmpval[2] = mrb_nil_value();
- tproc = mrb_proc_new_cfunc_with_env(mrb, ((struct proc3 *)(gproc)&v118)->code, 3, tmpval);
- venv = tproc->e.env;
- }
- mrb_obj_value(tproc);
- });
- v141 = vv118;
- if (venv)
- venv->stack[2] = v141;
- v143 = ((mrb_value (*)())(((void **)(MRB_PROC_CFUNC(mrb_proc_ptr(vv118))))[0]))(mrb, vv118, mrb_nil_value());
- if (venv)
- venv->stack[1] = (mrb_fixnum_value((v116 + 32)));
- v149 = ((mrb_value (*)())(((void **)(MRB_PROC_CFUNC(mrb_proc_ptr(v141))))[0]))(mrb, v141, mrb_nil_value());
- return v141;
- }
- mrb_value p3_Object_0_2(mrb_state *mrb,mrb_value mrbproc, mrb_value v122) {
- struct RProc *proc;
- mrb_value self;
- struct env3 env;
- struct REnv *venv = NULL;
- mrb_int v130;
- mrb_int v133;
- mrb_int v135;
- mrb_value v137;
- mrb_value v139;
- proc = mrb_proc_ptr(mrbproc);
- self = proc->e.env->stack[0];
- L6:;
- v130 = (mrb_fixnum((mrb_proc_ptr(mrbproc))->e.env->stack[1]));
- (mrb_proc_ptr(mrbproc))->e.env->stack[1] = (mrb_fixnum_value((v130 + 1)));
- v133 = (mrb_fixnum((mrb_proc_ptr(mrbproc))->e.env->stack[1]));
- mrb_p(mrb, (mrb_fixnum_value(v133)));
- v135 = v133;
- v137 = (mrb_proc_ptr(mrbproc))->e.env->stack[2];
- mrb_p(mrb, v137);
- v139 = v137;
- return v139;
- }
Add Comment
Please, Sign In to add comment