#include "cdefs.h"
#include "mem.h"
extern cptr object_methods[meth_max];
extern cptr list_methods[meth_max];
extern cptr slist_methods[meth_max];
extern cptr map_methods[meth_max];
extern cptr boolean_methods[meth_max];
#include "cint.h"
extern cptr entset_methods[meth_max];
extern cptr intset_methods[meth_max];
extern cptr numset_methods[meth_max];
extern cptr strset_methods[meth_max];
extern cptr charset_methods[meth_max];
extern cptr boolset_methods[meth_max];
extern cptr strpool_methods[meth_max];
extern cptr predef_methods[meth_max];
extern cptr jscope_methods[meth_max];
extern cptr identifier_methods[meth_max];
extern cptr string_methods[meth_max];
extern cptr variable_methods[meth_max];

extern cint boolean_True;
extern cint strpool_str_5;
extern cint strpool_str_6;
extern cint strpool_str_8;
extern cint strpool_str_7;
extern cint object_Undefined;
extern cint entset_predef;
extern cint intset_predef;
extern cint numset_predef;
extern cint strset_predef;
extern cint strpool_str_13;
extern cint strpool_str_15;
extern cint strpool_str_17;
extern cint strpool_str_18;
extern cint strpool_str_67;
extern cint strpool_str_68;
extern cint boolean_False;
extern cint charset_predef;
extern cint strpool_str_160;
extern cint strpool_str_161;
extern cint strpool_str_162;
extern cint strpool_str_163;
extern cint strpool_str_164;
extern cint strpool_str_165;
extern cint strpool_str_166;
extern cint strpool_str_167;
extern cint strpool_str_168;
extern cint boolset_predef;
extern cint strpool_str_4;

cint scope_global;
cint scope_curr;
cint scope_last_imported;

cptr scope_methods[meth_max];

cint scope_init(){
  cint t1;
  scope_global = scope_global_scope();
  t1_label: return t1;
}

cint scope_fini(){
  cint t2;
  predef_fini();
  object_Dec_ref(scope_global);
  t2_label: return t2;
}

cint scope_alloc(cint scope_self, cint scope_escope, cint scope_params){
  cint scope_result;
  cint t3, t4, t5, t6;
  t4 = object_alloc((cint)scope_self);
  scope_result = t4;
  ((cptr)scope_result)[7] /* enclosing*/ = scope_escope;
  ((cptr)scope_result)[8] /* imports*/ = 0;
  t5 = mem_malloc(48); ((cptr)t5)[0] = map_methods;
  t6 = map_alloc((cint)t5);
  ((cptr)scope_result)[9] /* local_syms*/ = t6;
  ((cptr)scope_result)[10] /* imported_syms*/ = 0;
  ((cptr)scope_result)[11] /* actual_params*/ = scope_params;
  ((cptr)scope_result)[12] /* next_param*/ = 1;
  ((cptr)scope_result)[13] /* exported_ids*/ = 0;
  ((cptr)scope_result)[14] /* module_name*/ = 0;
  t3 = scope_result;
  goto t3_label;
  t3_label: return t3;
}

cint scope_alloc_new(cint scope_escope, cint scope_params, cint scope_mid){
  cint scope_result;
  cint t7, t8, t9;
  t8 = mem_malloc(60); ((cptr)t8)[0] = scope_methods;
  t9 = scope_alloc((cint)t8, (cint)scope_escope, (cint)scope_params);
  scope_result = t9;
  ((cptr)scope_result)[14] /* module_name*/ = scope_mid;
  t7 = scope_result;
  goto t7_label;
  t7_label: return t7;
}

cint scope_reclaim(cint scope_self){
  cint t10, t11, t12, t13, t14, t15;
  object_Dec_ref(((cptr)scope_self)[9] /* local_syms*/);
  t11 = ((cptr)scope_self)[8] /* imports*/ != 0;
  if (t11){
    object_Dec_ref(((cptr)scope_self)[8] /* imports*/);
  };
  t12 = ((cptr)scope_self)[10] /* imported_syms*/ != 0;
  if (t12){
    object_Dec_ref(((cptr)scope_self)[10] /* imported_syms*/);
  };
  t13 = ((cptr)scope_self)[11] /* actual_params*/ != 0;
  if (t13){
    object_Dec_ref(((cptr)scope_self)[11] /* actual_params*/);
  };
  t14 = ((cptr)scope_self)[13] /* exported_ids*/ != 0;
  if (t14){
    object_Dec_ref(((cptr)scope_self)[13] /* exported_ids*/);
  };
  t15 = ((cptr)scope_self)[14] /* module_name*/ != 0;
  if (t15){
    object_Dec_ref(((cptr)scope_self)[14] /* module_name*/);
  };
  object_reclaim((cint)scope_self);
  t10_label: return t10;
}

cint scope_Apply(cint scope_self, cint scope_params){
  cint scope_result;
  cint t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31;
  ((cptr)((cptr)scope_self)[9] /* local_syms*/)[1] += 1;
  t17 = ((cptr)(((cptr)((cptr)scope_self)[9] /* local_syms*/)[0]))[9];
  t18 = ((f0)t17)((cint)((cptr)scope_self)[9] /* local_syms*/, (cint)scope_params); /* Apply*/
  scope_result = t18;
  t20 = scope_result == object_Undefined;
  t21 = t20;
  if (t21){
    t22 = ((cptr)scope_self)[10] /* imported_syms*/ != 0;
    t21 = t22;
  };
  if (t21){
    ((cptr)((cptr)scope_self)[10] /* imported_syms*/)[1] += 1;
    ((cptr)scope_params)[1] += 1;
    t23 = ((cptr)(((cptr)((cptr)scope_self)[10] /* imported_syms*/)[0]))[9];
    t24 = ((f0)t23)((cint)((cptr)scope_self)[10] /* imported_syms*/, (cint)scope_params); /* Apply*/
    scope_result = t24;
  };
  t26 = scope_result == object_Undefined;
  t27 = t26;
  if (t27){
    t28 = ((cptr)scope_self)[7] /* enclosing*/ != 0;
    t27 = t28;
  };
  if (t27){
    ((cptr)((cptr)scope_self)[7] /* enclosing*/)[1] += 1;
    ((cptr)scope_params)[1] += 1;
    t29 = ((cptr)(((cptr)((cptr)scope_self)[7] /* enclosing*/)[0]))[9];
    t30 = ((f0)t29)((cint)((cptr)scope_self)[7] /* enclosing*/, (cint)scope_params); /* Apply*/
    scope_result = t30;
  };
  object_Dec_ref(scope_self);
  t16 = scope_result;
  goto t16_label;
  t16_label: return t16;
}

cint scope_Apply_qualified(cint scope_self, cint scope_mid_str, cint scope_id_str){
  cint scope_result, scope_i, scope_ms;
  cint t32, t33, t35, t36, t37, t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49;
  scope_result = object_Undefined;
  t33 = ((cptr)scope_self)[8] /* imports*/ != 0;
  if (t33){
    for (scope_i = 1; scope_i <= ((cptr)((cptr)scope_self)[8] /* imports*/)[3] /* len*/; scope_i++){
      t35 = ((cptr)(((cptr)((cptr)scope_self)[8] /* imports*/)[0]))[62];
      t36 = ((f0)t35)((cint)((cptr)scope_self)[8] /* imports*/, (cint)scope_i); /* lookup*/
      scope_ms = t36;
      t38 = ((cptr)(((cptr)((cptr)scope_ms)[14] /* module_name*/)[0]))[37];
      t39 = ((f0)t38)((cint)((cptr)scope_ms)[14] /* module_name*/, (cint)scope_mid_str); /* equal*/
      t40 = t39 == 1;
      if (t40){
        ((cptr)scope_ms)[1] += 1;
        ((cptr)scope_id_str)[1] += 1;
        t41 = ((cptr)(((cptr)scope_ms)[0]))[9];
        t42 = ((f0)t41)((cint)scope_ms, (cint)scope_id_str); /* Apply*/
        scope_result = t42;
        goto t34;
      };
    };t34:;
  };
  t44 = ((cptr)scope_self)[7] /* enclosing*/ != 0;
  t45 = t44;
  if (t45){
    t46 = scope_result == object_Undefined;
    t45 = t46;
  };
  if (t45){
    ((cptr)((cptr)scope_self)[7] /* enclosing*/)[1] += 1;
    ((cptr)scope_mid_str)[1] += 1;
    ((cptr)scope_id_str)[1] += 1;
    t47 = ((cptr)(((cptr)((cptr)scope_self)[7] /* enclosing*/)[0]))[120];
    t48 = ((f0)t47)((cint)((cptr)scope_self)[7] /* enclosing*/, (cint)scope_mid_str, (cint)scope_id_str); /* Apply_qualified*/
    scope_result = t48;
  };
  object_Dec_ref(scope_self);
  object_Dec_ref(scope_mid_str);
  object_Dec_ref(scope_id_str);
  t32 = scope_result;
  goto t32_label;
  t32_label: return t32;
}

cint scope_enter_into(cint scope_self, cint scope_id, cint scope_bndg){
  cint t50, t51, t52, t53;
  ((cptr)scope_id)[1] += 1;
  ((cptr)scope_bndg)[1] += 1;
  t51 = ((cptr)(((cptr)((cptr)scope_self)[9] /* local_syms*/)[0]))[15];
  t52 = ((f0)t51)((cint)((cptr)scope_self)[9] /* local_syms*/, (cint)scope_id, (cint)scope_bndg, (cint)0); /* Assign_to_component*/
  ((cptr)scope_self)[9] /* local_syms*/ = t52;
  t50_label: return t50;
}

cint scope_import_exports(cint scope_self, cint scope_other){
  cint scope_expids, scope_is, scope_i, scope_id, scope_ob;
  cint t54, t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t66, t67, t68, t69, t70, t71, t72, t73, t74;
  scope_last_imported = scope_other;
  t55 = ((cptr)scope_self)[8] /* imports*/ == 0;
  if (t55){
    t56 = mem_malloc(40); ((cptr)t56)[0] = slist_methods;
    t57 = slist_alloc((cint)t56, (cint)0);
    ((cptr)scope_self)[8] /* imports*/ = t57;
  };
  ((cptr)scope_other)[1] += 1;
  t58 = ((cptr)(((cptr)((cptr)scope_self)[8] /* imports*/)[0]))[7];
  t59 = ((f0)t58)((cint)((cptr)scope_self)[8] /* imports*/, (cint)scope_other); /* Append*/
  ((cptr)scope_self)[8] /* imports*/ = t59;
  scope_expids = ((cptr)scope_other)[13] /* exported_ids*/;
  t61 = scope_expids == 0;
  if (t61){
    goto t54_label;
  };
  scope_is = ((cptr)scope_self)[10] /* imported_syms*/;
  t62 = scope_is == 0;
  if (t62){
    t63 = mem_malloc(48); ((cptr)t63)[0] = map_methods;
    t64 = map_alloc((cint)t63);
    scope_is = t64;
  };
  for (scope_i = 1; scope_i <= ((cptr)scope_expids)[3] /* len*/; scope_i++){
    t66 = ((cptr)(((cptr)scope_expids)[0]))[62];
    t67 = ((f0)t66)((cint)scope_expids, (cint)scope_i); /* lookup*/
    scope_id = t67;
    ((cptr)scope_other)[1] += 1;
    ((cptr)scope_id)[1] += 1;
    t69 = ((cptr)(((cptr)scope_other)[0]))[9];
    t70 = ((f0)t69)((cint)scope_other, (cint)scope_id); /* Apply*/
    scope_ob = t70;
    ((cptr)scope_id)[1] += 1;
    t72 = ((cptr)(((cptr)scope_is)[0]))[15];
    t73 = ((f0)t72)((cint)scope_is, (cint)scope_id, (cint)scope_ob, (cint)0); /* Assign_to_component*/
    scope_is = t73;
  };t65:;
  ((cptr)scope_self)[10] /* imported_syms*/ = scope_is;
  t54_label: return t54;
}

cint scope_incl(cint scope_self, cint scope_other){
  cint scope_result, scope_i;
  cint t75, t76, t77, t79, t80, t81, t82, t83, t84;
  t76 = scope_self == scope_other;
  if (t76){
    t75 = 1;
    goto t75_label;
  };
  t77 = ((cptr)scope_self)[8] /* imports*/ == 0;
  if (t77){
    t75 = 0;
    goto t75_label;
  };
  for (scope_i = 1; scope_i <= ((cptr)((cptr)scope_self)[8] /* imports*/)[3] /* len*/; scope_i++){
    t79 = ((cptr)(((cptr)((cptr)scope_self)[8] /* imports*/)[0]))[62];
    t80 = ((f0)t79)((cint)((cptr)scope_self)[8] /* imports*/, (cint)scope_i); /* lookup*/
    t82 = ((cptr)(((cptr)t80)[0]))[52];
    t83 = ((f0)t82)((cint)t80, (cint)scope_other); /* incl*/
    t84 = t83 == 1;
    if (t84){
      t75 = 1;
      goto t75_label;
    };
  };t78:;
  t75 = 0;
  goto t75_label;
  t75_label: return t75;
}

cint scope_join(cint scope_self, cint scope_other){
  cint scope_result;
  cint t85, t86, t87, t88, t89, t90, t91, t92, t93;
  t88 = scope_other == object_Undefined;
  t89 = t88;
  if (!t89){  t86 = ((cptr)(((cptr)scope_self)[0]))[52];
  t87 = ((f0)t86)((cint)scope_self, (cint)scope_other); /* incl*/
    t89 = t87;
  };
  if (t89){
    t85 = scope_self;
    goto t85_label;
  };
  t90 = ((cptr)(((cptr)scope_other)[0]))[52];
  t91 = ((f0)t90)((cint)scope_other, (cint)scope_self); /* incl*/
  if (t91){
    t85 = scope_other;
    goto t85_label;
  };
  t92 = mem_malloc(36); ((cptr)t92)[0] = jscope_methods;
  t93 = jscope_alloc((cint)t92, (cint)scope_self, (cint)scope_other);
  t85 = t93;
  goto t85_label;
  t85_label: return t85;
}

cint scope_global_scope(){
  cint scope_result;
  cint t94, t95, t96, t97, t98, t99, t100, t101, t102, t103, t104, t105, t106, t107, t108, t109, t110, t111, t112, t113, t114;
  t95 = mem_malloc(60); ((cptr)t95)[0] = scope_methods;
  t96 = scope_alloc((cint)t95, (cint)0, (cint)0);
  scope_curr = t96;
  t97 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t97)((cint)scope_curr, (cint)strpool_str_18, (cint)boolean_False);
  t98 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t98)((cint)scope_curr, (cint)strpool_str_160, (cint)boolean_False);
  t99 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t99)((cint)scope_curr, (cint)strpool_str_17, (cint)boolean_True);
  t100 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t100)((cint)scope_curr, (cint)strpool_str_161, (cint)boolean_True);
  t101 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t101)((cint)scope_curr, (cint)strpool_str_8, (cint)object_Undefined);
  t102 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t102)((cint)scope_curr, (cint)strpool_str_162, (cint)object_Undefined);
  t103 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t103)((cint)scope_curr, (cint)strpool_str_67, (cint)entset_predef);
  t104 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t104)((cint)scope_curr, (cint)strpool_str_163, (cint)entset_predef);
  t105 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t105)((cint)scope_curr, (cint)strpool_str_68, (cint)numset_predef);
  t106 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t106)((cint)scope_curr, (cint)strpool_str_164, (cint)numset_predef);
  t107 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t107)((cint)scope_curr, (cint)strpool_str_5, (cint)intset_predef);
  t108 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t108)((cint)scope_curr, (cint)strpool_str_165, (cint)intset_predef);
  t109 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t109)((cint)scope_curr, (cint)strpool_str_6, (cint)strset_predef);
  t110 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t110)((cint)scope_curr, (cint)strpool_str_166, (cint)strset_predef);
  t111 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t111)((cint)scope_curr, (cint)strpool_str_7, (cint)charset_predef);
  t112 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t112)((cint)scope_curr, (cint)strpool_str_167, (cint)charset_predef);
  t113 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t113)((cint)scope_curr, (cint)strpool_str_4, (cint)boolset_predef);
  t114 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t114)((cint)scope_curr, (cint)strpool_str_168, (cint)boolset_predef);
  predef_init();
  t94 = scope_curr;
  goto t94_label;
  t94_label: return t94;
}

cint scope_lookup_among_local_syms(cint scope_self, cint scope_params){
  cint scope_result;
  cint t115, t116, t117, t118;
  ((cptr)((cptr)scope_self)[9] /* local_syms*/)[1] += 1;
  ((cptr)scope_params)[1] += 1;
  t116 = ((cptr)(((cptr)((cptr)scope_self)[9] /* local_syms*/)[0]))[9];
  t117 = ((f0)t116)((cint)((cptr)scope_self)[9] /* local_syms*/, (cint)scope_params); /* Apply*/
  t115 = t117;
  goto t115_label;
  t115_label: return t115;
}

cint scope_Mkstr(cint scope_self){
  cint scope_result;
  cint t119, t120, t121, t122, t123, t124, t125, t126, t127, t128, t129, t130, t131, t132, t133, t134, t135, t136, t137, t138, t139, t140, t141, t142, t143, t144, t145, t146, t147, t148, t149, t150, t151, t152, t153, t154, t155, t156, t157, t158, t159, t160, t161, t162, t163, t164, t165, t166, t167, t168, t169, t170, t171, t172, t173, t174, t175;
  t120 = ((cptr)scope_self)[14] /* module_name*/ != 0;
  if (t120){
    ((cptr)((cptr)scope_self)[14] /* module_name*/)[1] += 1;
    ((cptr)strpool_str_13)[1] += 1;
    t121 = ((cptr)(((cptr)((cptr)scope_self)[14] /* module_name*/)[0]))[97];
    t122 = ((f0)t121)((cint)((cptr)scope_self)[14] /* module_name*/, (cint)strpool_str_13); /* Plus*/
    ((cptr)((cptr)scope_self)[9] /* local_syms*/)[1] += 1;
    t123 = ((cptr)(((cptr)((cptr)scope_self)[9] /* local_syms*/)[0]))[88];
    t124 = ((f0)t123)((cint)((cptr)scope_self)[9] /* local_syms*/); /* Mkstr*/
    t126 = ((cptr)(((cptr)t122)[0]))[97];
    t127 = ((f0)t126)((cint)t122, (cint)t124); /* Plus*/
    scope_result = t127;
  }else{
    ((cptr)strpool_str_13)[1] += 1;
    ((cptr)((cptr)scope_self)[9] /* local_syms*/)[1] += 1;
    t130 = ((cptr)(((cptr)((cptr)scope_self)[9] /* local_syms*/)[0]))[88];
    t131 = ((f0)t130)((cint)((cptr)scope_self)[9] /* local_syms*/); /* Mkstr*/
    t132 = ((cptr)(((cptr)strpool_str_13)[0]))[97];
    t133 = ((f0)t132)((cint)strpool_str_13, (cint)t131); /* Plus*/
    scope_result = t133;
  };
  t136 = ((cptr)scope_self)[8] /* imports*/ != 0;
  if (t136){
    ((cptr)((cptr)scope_self)[8] /* imports*/)[1] += 1;
    t137 = ((cptr)(((cptr)((cptr)scope_self)[8] /* imports*/)[0]))[88];
    t138 = ((f0)t137)((cint)((cptr)scope_self)[8] /* imports*/); /* Mkstr*/
    t139 = ((cptr)(((cptr)scope_result)[0]))[97];
    t140 = ((f0)t139)((cint)scope_result, (cint)t138); /* Plus*/
    scope_result = t140;
  };
  t143 = ((cptr)scope_self)[10] /* imported_syms*/ != 0;
  if (t143){
    ((cptr)((cptr)scope_self)[10] /* imported_syms*/)[1] += 1;
    t144 = ((cptr)(((cptr)((cptr)scope_self)[10] /* imported_syms*/)[0]))[88];
    t145 = ((f0)t144)((cint)((cptr)scope_self)[10] /* imported_syms*/); /* Mkstr*/
    t146 = ((cptr)(((cptr)scope_result)[0]))[97];
    t147 = ((f0)t146)((cint)scope_result, (cint)t145); /* Plus*/
    scope_result = t147;
  };
  t150 = ((cptr)scope_self)[11] /* actual_params*/ != 0;
  if (t150){
    ((cptr)((cptr)scope_self)[11] /* actual_params*/)[1] += 1;
    t151 = ((cptr)(((cptr)((cptr)scope_self)[11] /* actual_params*/)[0]))[88];
    t152 = ((f0)t151)((cint)((cptr)scope_self)[11] /* actual_params*/); /* Mkstr*/
    t153 = ((cptr)(((cptr)scope_result)[0]))[97];
    t154 = ((f0)t153)((cint)scope_result, (cint)t152); /* Plus*/
    scope_result = t154;
  };
  t157 = ((cptr)scope_self)[13] /* exported_ids*/ != 0;
  if (t157){
    ((cptr)((cptr)scope_self)[13] /* exported_ids*/)[1] += 1;
    t158 = ((cptr)(((cptr)((cptr)scope_self)[13] /* exported_ids*/)[0]))[88];
    t159 = ((f0)t158)((cint)((cptr)scope_self)[13] /* exported_ids*/); /* Mkstr*/
    t160 = ((cptr)(((cptr)scope_result)[0]))[97];
    t161 = ((f0)t160)((cint)scope_result, (cint)t159); /* Plus*/
    scope_result = t161;
  };
  t164 = ((cptr)scope_self)[7] /* enclosing*/ != 0;
  t165 = t164;
  if (t165){
    t166 = ((cptr)scope_self)[7] /* enclosing*/ != scope_global;
    t165 = t166;
  };
  if (t165){
    ((cptr)((cptr)scope_self)[7] /* enclosing*/)[1] += 1;
    t167 = ((cptr)(((cptr)((cptr)scope_self)[7] /* enclosing*/)[0]))[88];
    t168 = ((f0)t167)((cint)((cptr)scope_self)[7] /* enclosing*/); /* Mkstr*/
    t169 = ((cptr)(((cptr)scope_result)[0]))[97];
    t170 = ((f0)t169)((cint)scope_result, (cint)t168); /* Plus*/
    scope_result = t170;
  };
  ((cptr)strpool_str_15)[1] += 1;
  t173 = ((cptr)(((cptr)scope_result)[0]))[97];
  t174 = ((f0)t173)((cint)scope_result, (cint)strpool_str_15); /* Plus*/
  scope_result = t174;
  t119 = scope_result;
  goto t119_label;
  t119_label: return t119;
}

cint scope_next_actual_parameter(cint scope_self){
  cint scope_result;
  cint t176, t177, t178, t179, t180, t181, t182, t183;
  t177 = ((cptr)scope_self)[11] /* actual_params*/ == 0;
  t178 = t177;
  if (!t178){    t179 = ((cptr)scope_self)[12] /* next_param*/ > ((cptr)((cptr)scope_self)[11] /* actual_params*/)[3] /* len*/;
    t178 = t179;
  };
  if (t178){
    t176 = object_Undefined;
    goto t176_label;
  };
  t182 = ((cptr)(((cptr)((cptr)scope_self)[11] /* actual_params*/)[0]))[62];
  t181 = ((f0)t182)((cint)((cptr)scope_self)[11] /* actual_params*/, (cint)((cptr)scope_self)[12] /* next_param*/); /* lookup*/
  ((cptr)t181)[1] += 1;
  scope_result = t181;
  t183 = ((cptr)scope_self)[12] /* next_param*/ + 1;
  ((cptr)scope_self)[12] /* next_param*/ = t183;
  t176 = scope_result;
  goto t176_label;
  t176_label: return t176;
}

void init_scope(){
  copy_meth_table(scope_methods, object_methods);
  scope_methods[0] = 60;
  scope_methods[1] = scope_init;
  scope_methods[2] = scope_fini;
  scope_methods[3] = scope_alloc;
  scope_methods[119] = scope_alloc_new;
  scope_methods[4] = scope_reclaim;
  scope_methods[9] = scope_Apply;
  scope_methods[120] = scope_Apply_qualified;
  scope_methods[121] = scope_enter_into;
  scope_methods[122] = scope_import_exports;
  scope_methods[52] = scope_incl;
  scope_methods[56] = scope_join;
  scope_methods[123] = scope_global_scope;
  scope_methods[124] = scope_lookup_among_local_syms;
  scope_methods[88] = scope_Mkstr;
  scope_methods[125] = scope_next_actual_parameter;
}
