#include "cdefs.h"
#include "mem.h"
extern cptr object_methods[meth_max];
extern cptr boolean_methods[meth_max];
extern cptr set_methods[meth_max];
extern cptr list_methods[meth_max];
extern cptr map_methods[meth_max];
extern cptr slist_methods[meth_max];
extern cptr string_methods[meth_max];
extern cptr sstring_methods[meth_max];
extern cptr scope_methods[meth_max];
extern cptr parameter_methods[meth_max];
extern cptr namelist_methods[meth_max];
extern cptr iterator_methods[meth_max];
extern cptr stdin_methods[meth_max];
#include "cstring.h"
#include "cfile.h"
extern cptr strpool_methods[meth_max];
extern cptr selector_methods[meth_max];
extern cptr entset_methods[meth_max];
extern cptr mapset_methods[meth_max];
extern cptr variable_methods[meth_max];
extern cptr procedure_methods[meth_max];
#include "croutine.h"
#include "cprocess.h"
extern cptr clib_methods[meth_max];
extern cptr debug_methods[meth_max];
extern cptr function_methods[meth_max];
extern cptr integer_methods[meth_max];

extern cint strpool_str_6;
extern cint boolean_True;
extern cint object_Undefined;
extern cint entset_predef;
extern cint scope_global;
extern cint clib_Trace;
extern cint scope_last_imported;
extern cint strpool_str_70;
extern cint strpool_str_80;
extern cint strpool_str_81;
extern cint strpool_str_82;
extern cint strpool_str_83;
extern cint strpool_str_84;
extern cint strpool_str_37;
extern cint strpool_str_59;
extern cint strpool_str_87;
extern cint strpool_str_79;
extern cint scope_curr;
extern cint stdin_last_item_was_quoted_string;


cptr identifier_methods[meth_max];

cint identifier_alloc(cint identifier_self, cint identifier_idchars){
  cint identifier_result, identifier_s;
  cint t1, t2, t3, t4;
  t2 = object_alloc((cint)identifier_self);
  identifier_result = t2;
  ((cptr)identifier_result)[4] /* class_of*/ = strpool_str_79;
  t3 = mem_malloc(40); ((cptr)t3)[0] = sstring_methods;
  t4 = sstring_stalloc((cint)t3, (cint)identifier_idchars);
  ((cptr)identifier_result)[7] /* name*/ = t4;
  t1 = identifier_result;
  goto t1_label;
  t1_label: return t1;
}

cint identifier_alloc_new(cint identifier_idstr){
  cint identifier_result;
  cint t5, t6, t7;
  t6 = mem_malloc(32); ((cptr)t6)[0] = identifier_methods;
  t7 = identifier_salloc((cint)t6, (cint)identifier_idstr);
  t5 = t7;
  goto t5_label;
  t5_label: return t5;
}

cint identifier_salloc(cint identifier_self, cint identifier_idstr){
  cint identifier_result;
  cint t8, t9;
  t9 = object_alloc((cint)identifier_self);
  identifier_result = t9;
  ((cptr)identifier_result)[4] /* class_of*/ = strpool_str_79;
  ((cptr)identifier_result)[7] /* name*/ = identifier_idstr;
  t8 = identifier_result;
  goto t8_label;
  t8_label: return t8;
}

cint identifier_reclaim(cint identifier_self){
  cint t10;
  object_Dec_ref(((cptr)identifier_self)[7] /* name*/);
  object_reclaim((cint)identifier_self);
  t10_label: return t10;
}

cint identifier_Apply(cint identifier_self, cint identifier_params){
  cint identifier_result, identifier_ob, identifier_b, identifier_f;
  cint t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26;
  t12 = ((cptr)(((cptr)identifier_params)[0]))[62];
  t13 = ((f0)t12)((cint)identifier_params, (cint)1); /* lookup*/
  identifier_ob = t13;
  t15 = ((cptr)(((cptr)identifier_self)[0]))[189];
  t16 = ((f0)t15)((cint)identifier_self, (cint)identifier_ob, (cint)((cptr)identifier_params)[3] /* len*/); /* lookup_in_given_scope_and_curr*/
  identifier_b = t16;
  t18 = ((cptr)(((cptr)identifier_b)[0]))[38];
  t19 = ((f0)t18)((cint)identifier_b); /* Eval*/
  identifier_f = t19;
  t21 = identifier_f == object_Undefined;
  if (t21){
    ((cptr)strpool_str_80)[1] += 1;
    ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
    t22 = ((cptr)(((cptr)strpool_str_80)[0]))[97];
    t23 = ((f0)t22)((cint)strpool_str_80, (cint)((cptr)identifier_self)[7] /* name*/); /* Plus*/
    debug_message((cint)t23);
    debug_interact();
    cprocess_exitt((cint)1);
  };
  object_Dec_ref(identifier_self);
  t24 = ((cptr)(((cptr)identifier_f)[0]))[9];
  t25 = ((f0)t24)((cint)identifier_f, (cint)identifier_params); /* Apply*/
  t11 = t25;
  goto t11_label;
  t11_label: return t11;
}

cint identifier_Call(cint identifier_self){
  cint identifier_p;
  cint t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37;
  ((cptr)scope_curr)[1] += 1;
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  t28 = ((cptr)(((cptr)scope_curr)[0]))[9];
  t29 = ((f0)t28)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/); /* Apply*/
  t31 = ((cptr)(((cptr)t29)[0]))[38];
  t32 = ((f0)t31)((cint)t29); /* Eval*/
  identifier_p = t32;
  t34 = ((cptr)identifier_p)[4] /* class_of*/ != strpool_str_81;
  if (t34){
    ((cptr)strpool_str_82)[1] += 1;
    ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
    t35 = ((cptr)(((cptr)strpool_str_82)[0]))[97];
    t36 = ((f0)t35)((cint)strpool_str_82, (cint)((cptr)identifier_self)[7] /* name*/); /* Plus*/
    debug_message((cint)t36);
    debug_interact();
    cprocess_exitt((cint)1);
  };
  t37 = (cptr)(((cptr)(((cptr)identifier_p)[0]))[18]); /* Call_with_params*/
  ((f0)t37)((cint)identifier_p, (cint)0);
  object_Dec_ref(identifier_self);
  t27_label: return t27;
}

cint identifier_Call_with_params(cint identifier_self, cint identifier_params){
  cint identifier_ob, identifier_b, identifier_p;
  cint t38, t39, t40, t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52;
  t39 = ((cptr)(((cptr)identifier_params)[0]))[62];
  t40 = ((f0)t39)((cint)identifier_params, (cint)1); /* lookup*/
  identifier_ob = t40;
  t42 = ((cptr)(((cptr)identifier_self)[0]))[189];
  t43 = ((f0)t42)((cint)identifier_self, (cint)identifier_ob, (cint)((cptr)identifier_params)[3] /* len*/); /* lookup_in_given_scope_and_curr*/
  identifier_b = t43;
  t45 = ((cptr)(((cptr)identifier_b)[0]))[38];
  t46 = ((f0)t45)((cint)identifier_b); /* Eval*/
  identifier_p = t46;
  t48 = ((cptr)identifier_p)[4] /* class_of*/ != strpool_str_81;
  if (t48){
    t49 = identifier_ob == object_Undefined;
    if (t49){
      object_Dec_ref(identifier_self);
      goto t38_label;
    };
    ((cptr)strpool_str_82)[1] += 1;
    ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
    t50 = ((cptr)(((cptr)strpool_str_82)[0]))[97];
    t51 = ((f0)t50)((cint)strpool_str_82, (cint)((cptr)identifier_self)[7] /* name*/); /* Plus*/
    debug_message((cint)t51);
    debug_interact();
    cprocess_exitt((cint)1);
  };
  object_Dec_ref(identifier_self);
  t52 = (cptr)(((cptr)(((cptr)identifier_p)[0]))[18]); /* Call_with_params*/
  ((f0)t52)((cint)identifier_p, (cint)identifier_params);
  t38_label: return t38;
}

cint identifier_Declare_as_constant(cint identifier_self, cint identifier_val){
  cint identifier_v;
  cint t53, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67, t68, t69;
  t54 = ((cptr)(((cptr)scope_curr)[0]))[124];
  t55 = ((f0)t54)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/); /* lookup_among_local_syms*/
  identifier_v = t55;
  t57 = identifier_v != object_Undefined;
  t58 = t57;
  if (t58){
    t59 = ((cptr)identifier_v)[4] /* class_of*/ == strpool_str_70;
    t58 = t59;
  };
  t60 = t58;
  if (t60){
    t61 = ((cptr)identifier_v)[9] /* flag*/ == -1;
    t60 = t61;
  };
  if (t60){
    t62 = (cptr)(((cptr)(((cptr)identifier_v)[0]))[13]); /* Assign*/
    ((f0)t62)((cint)identifier_v, (cint)identifier_val);
    ((cptr)identifier_v)[9] /* flag*/ = 0;
    object_Dec_ref(identifier_self);
    goto t53_label;
  }else{
  t63 = identifier_v != object_Undefined;
  if (t63){
    ((cptr)strpool_str_83)[1] += 1;
    ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
    t64 = ((cptr)(((cptr)strpool_str_83)[0]))[97];
    t65 = ((f0)t64)((cint)strpool_str_83, (cint)((cptr)identifier_self)[7] /* name*/); /* Plus*/
    debug_message((cint)t65);
    debug_interact();
    cprocess_exitt((cint)1);
  };};
  t66 = mem_malloc(40); ((cptr)t66)[0] = variable_methods;
  ((cptr)entset_predef)[1] += 1;
  t67 = variable_alloc((cint)t66, (cint)entset_predef, (cint)1);
  identifier_v = t67;
  t68 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t68)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/, (cint)identifier_v);
  t69 = (cptr)(((cptr)(((cptr)identifier_v)[0]))[13]); /* Assign*/
  ((f0)t69)((cint)identifier_v, (cint)identifier_val);
  ((cptr)identifier_v)[9] /* flag*/ = 0;
  object_Dec_ref(identifier_self);
  t53_label: return t53;
}

cint identifier_Declare_as_param(cint identifier_self, cint identifier_typ){
  cint identifier_v;
  cint t70, t71, t72, t73, t74, t75, t76;
  t71 = mem_malloc(40); ((cptr)t71)[0] = variable_methods;
  t72 = variable_alloc((cint)t71, (cint)identifier_typ, (cint)1);
  identifier_v = t72;
  t73 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t73)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/, (cint)identifier_v);
  t74 = ((cptr)(((cptr)scope_curr)[0]))[125];
  t75 = ((f0)t74)((cint)scope_curr); /* next_actual_parameter*/
  t76 = (cptr)(((cptr)(((cptr)identifier_v)[0]))[13]); /* Assign*/
  ((f0)t76)((cint)identifier_v, (cint)t75);
  object_Dec_ref(identifier_self);
  t70_label: return t70;
}

cint identifier_Declare_as_var(cint identifier_self, cint identifier_typ, cint identifier_lno){
  cint identifier_result, identifier_v;
  cint t77, t78, t79, t80, t81, t82, t83, t84, t85, t86, t87, t88, t89, t90;
  t78 = ((cptr)(((cptr)scope_curr)[0]))[124];
  t79 = ((f0)t78)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/); /* lookup_among_local_syms*/
  identifier_v = t79;
  t81 = identifier_v != object_Undefined;
  if (t81){
    t82 = ((cptr)identifier_v)[4] /* class_of*/ == strpool_str_70;
    t83 = t82;
    if (t83){
      t84 = ((cptr)identifier_v)[9] /* flag*/ == -1;
      t83 = t84;
    };
    if (t83){
      object_Dec_ref(((cptr)identifier_v)[7] /* type*/);
      ((cptr)identifier_v)[7] /* type*/ = identifier_typ;
      ((cptr)identifier_v)[9] /* flag*/ = 1;
      object_Dec_ref(identifier_v);
      t77 = identifier_self;
      goto t77_label;
    }else{
    t85 = ((cptr)identifier_v)[9] /* flag*/ == identifier_lno;
    if (t85){
      object_Dec_ref(identifier_typ);
      t77 = identifier_self;
      goto t77_label;
    }else{
      ((cptr)strpool_str_83)[1] += 1;
      ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
      t86 = ((cptr)(((cptr)strpool_str_83)[0]))[97];
      t87 = ((f0)t86)((cint)strpool_str_83, (cint)((cptr)identifier_self)[7] /* name*/); /* Plus*/
      debug_message((cint)t87);
      debug_interact();
      cprocess_exitt((cint)1);
    };};
  };
  t88 = mem_malloc(40); ((cptr)t88)[0] = variable_methods;
  t89 = variable_alloc((cint)t88, (cint)identifier_typ, (cint)identifier_lno);
  identifier_v = t89;
  t90 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
  ((f0)t90)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/, (cint)identifier_v);
  object_Dec_ref(identifier_v);
  t77 = identifier_self;
  goto t77_label;
  t77_label: return t77;
}

cint identifier_Eval(cint identifier_self){
  cint identifier_result, identifier_b;
  cint t91, t92, t93, t94, t95, t96, t97;
  ((cptr)scope_curr)[1] += 1;
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  t92 = ((cptr)(((cptr)scope_curr)[0]))[9];
  t93 = ((f0)t92)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/); /* Apply*/
  identifier_b = t93;
  object_Dec_ref(identifier_self);
  t95 = ((cptr)(((cptr)identifier_b)[0]))[38];
  t96 = ((f0)t95)((cint)identifier_b); /* Eval*/
  t91 = t96;
  goto t91_label;
  t91_label: return t91;
}

cint identifier_Export(cint identifier_self){
  cint identifier_expids;
  cint t98, t99, t100, t101, t102, t103, t104;
  identifier_expids = ((cptr)scope_curr)[13] /* exported_ids*/;
  t99 = identifier_expids == 0;
  if (t99){
    t100 = mem_malloc(40); ((cptr)t100)[0] = slist_methods;
    t101 = slist_alloc((cint)t100, (cint)0);
    identifier_expids = t101;
  };
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  t102 = ((cptr)(((cptr)identifier_expids)[0]))[7];
  t103 = ((f0)t102)((cint)identifier_expids, (cint)((cptr)identifier_self)[7] /* name*/); /* Append*/
  identifier_expids = t103;
  ((cptr)scope_curr)[13] /* exported_ids*/ = identifier_expids;
  object_Dec_ref(identifier_self);
  t98_label: return t98;
}

cint identifier_Export_from(cint identifier_self, cint identifier_scop){
  cint identifier_saved_curr_scope;
  cint t105, t106;
  identifier_saved_curr_scope = scope_curr;
  scope_curr = identifier_scop;
  t106 = (cptr)(((cptr)(((cptr)identifier_self)[0]))[43]); /* Export*/
  ((f0)t106)((cint)identifier_self);
  scope_curr = identifier_saved_curr_scope;
  t105_label: return t105;
}

cint identifier_Get(cint identifier_self){
  cint identifier_ob, identifier_num, identifier_v;
  cint t107, t108, t109, t110, t111, t112, t113, t114, t115, t116, t117, t118, t119, t120, t121, t122, t123, t124, t125, t126, t127, t128, t129;
  t108 = stdin_get_rest_of_line();
  identifier_ob = t108;
  t109 = ((cptr)identifier_ob)[4] /* class_of*/ != strpool_str_6;
  t110 = t109;
  if (!t110){    t111 = stdin_last_item_was_quoted_string == 1;
    t110 = t111;
  };
  if (t110){
    ((cptr)identifier_self)[1] += 1;
    t112 = (cptr)(((cptr)(((cptr)identifier_self)[0]))[96]); /* OpAssign*/
    ((f0)t112)((cint)identifier_self, (cint)identifier_ob, (cint)0);
  }else{
    ((cptr)identifier_ob)[1] += 1;
    t113 = ((cptr)(((cptr)identifier_ob)[0]))[87];
    t114 = ((f0)t113)((cint)identifier_ob); /* Mknum*/
    identifier_num = t114;
    t116 = identifier_num == object_Undefined;
    if (t116){
      ((cptr)identifier_self)[1] += 1;
      t117 = (cptr)(((cptr)(((cptr)identifier_self)[0]))[96]); /* OpAssign*/
      ((f0)t117)((cint)identifier_self, (cint)identifier_ob, (cint)0);
    }else{
      ((cptr)scope_curr)[1] += 1;
      ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
      t118 = ((cptr)(((cptr)scope_curr)[0]))[9];
      t119 = ((f0)t118)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/); /* Apply*/
      identifier_v = t119;
      t121 = identifier_v == object_Undefined;
      if (t121){
        t122 = mem_malloc(40); ((cptr)t122)[0] = variable_methods;
        ((cptr)entset_predef)[1] += 1;
        t123 = variable_alloc((cint)t122, (cint)entset_predef, (cint)1);
        identifier_v = t123;
        t124 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
        ((f0)t124)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/, (cint)identifier_v);
      };
      ((cptr)((cptr)identifier_v)[7] /* type*/)[1] += 1;
      ((cptr)identifier_num)[1] += 1;
      t125 = ((cptr)(((cptr)((cptr)identifier_v)[7] /* type*/)[0]))[20];
      t126 = ((f0)t125)((cint)((cptr)identifier_v)[7] /* type*/, (cint)identifier_num); /* Contains*/
      t127 = t126 == boolean_True;
      if (t127){
        t128 = (cptr)(((cptr)(((cptr)identifier_v)[0]))[96]); /* OpAssign*/
        ((f0)t128)((cint)identifier_v, (cint)identifier_num, (cint)0);
        object_Dec_ref(identifier_ob);
      }else{
        t129 = (cptr)(((cptr)(((cptr)identifier_v)[0]))[96]); /* OpAssign*/
        ((f0)t129)((cint)identifier_v, (cint)identifier_ob, (cint)0);
        object_Dec_ref(identifier_num);
      };
    };
  };
  object_Dec_ref(identifier_self);
  t107_label: return t107;
}

cint identifier_Import(cint identifier_self){
  cint identifier_Saved_module, identifier_init;
  cint t130, t131, t132, t133, t134, t135;
  t131 = debug_get_module();
  identifier_Saved_module = t131;
  ((cptr)scope_global)[1] += 1;
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  t132 = ((cptr)(((cptr)scope_global)[0]))[9];
  t133 = ((f0)t132)((cint)scope_global, (cint)((cptr)identifier_self)[7] /* name*/); /* Apply*/
  identifier_init = t133;
  t135 = identifier_init == object_Undefined;
  if (t135){
    object_Dec_ref(identifier_self);
    goto t130_label;
  };
  croutine_call((cint)((cptr)identifier_init)[9] /* body*/);
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  ((cptr)scope_last_imported)[14] /* module_name*/ = ((cptr)identifier_self)[7] /* name*/;
  debug_set_module((cint)identifier_Saved_module);
  object_Dec_ref(identifier_init);
  object_Dec_ref(identifier_self);
  t130_label: return t130;
}

cint identifier_Import_into(cint identifier_self, cint identifier_scop){
  cint identifier_saved_curr;
  cint t136, t137;
  identifier_saved_curr = scope_curr;
  scope_curr = identifier_scop;
  t137 = (cptr)(((cptr)(((cptr)identifier_self)[0]))[49]); /* Import*/
  ((f0)t137)((cint)identifier_self);
  scope_curr = identifier_saved_curr;
  t136_label: return t136;
}

cint identifier_Lazy_eval(cint identifier_self){
  cint identifier_result, identifier_b;
  cint t138, t139, t140, t141, t142, t143, t144, t145, t146, t147, t148, t149;
  ((cptr)scope_curr)[1] += 1;
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  t139 = ((cptr)(((cptr)scope_curr)[0]))[9];
  t140 = ((f0)t139)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/); /* Apply*/
  identifier_b = t140;
  t142 = identifier_b == object_Undefined;
  if (t142){
    t143 = mem_malloc(40); ((cptr)t143)[0] = variable_methods;
    ((cptr)entset_predef)[1] += 1;
    t144 = variable_alloc((cint)t143, (cint)entset_predef, (cint)-1);
    identifier_b = t144;
    t145 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
    ((f0)t145)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/, (cint)identifier_b);
  };
  object_Dec_ref(identifier_self);
  t146 = ((cptr)identifier_b)[4] /* class_of*/ != strpool_str_70;
  if (t146){
    t147 = ((cptr)(((cptr)identifier_b)[0]))[38];
    t148 = ((f0)t147)((cint)identifier_b); /* Eval*/
    t138 = t148;
    goto t138_label;
  };
  t138 = identifier_b;
  goto t138_label;
  t138_label: return t138;
}

cint identifier_Lazy_evaluate(cint identifier_self, cint identifier_scop){
  cint identifier_result, identifier_b;
  cint t150, t151, t152, t153, t154, t155, t156, t157, t158, t159, t160, t161;
  ((cptr)identifier_scop)[1] += 1;
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  t151 = ((cptr)(((cptr)identifier_scop)[0]))[9];
  t152 = ((f0)t151)((cint)identifier_scop, (cint)((cptr)identifier_self)[7] /* name*/); /* Apply*/
  identifier_b = t152;
  t154 = identifier_b == object_Undefined;
  if (t154){
    t155 = mem_malloc(40); ((cptr)t155)[0] = variable_methods;
    ((cptr)entset_predef)[1] += 1;
    t156 = variable_alloc((cint)t155, (cint)entset_predef, (cint)-1);
    identifier_b = t156;
    t157 = (cptr)(((cptr)(((cptr)identifier_scop)[0]))[121]); /* enter_into*/
    ((f0)t157)((cint)identifier_scop, (cint)((cptr)identifier_self)[7] /* name*/, (cint)identifier_b);
  };
  object_Dec_ref(identifier_self);
  t158 = ((cptr)identifier_b)[4] /* class_of*/ != strpool_str_70;
  if (t158){
    t159 = ((cptr)(((cptr)identifier_b)[0]))[38];
    t160 = ((f0)t159)((cint)identifier_b); /* Eval*/
    t150 = t160;
    goto t150_label;
  };
  t150 = identifier_b;
  goto t150_label;
  t150_label: return t150;
}

cint identifier_lookup_in_given_scope_and_curr(cint identifier_self, cint identifier_s, cint identifier_n){
  cint identifier_result;
  cint t162, t163, t164, t165, t166, t167, t168, t169, t170, t171, t172, t173, t174, t175;
  t163 = identifier_s == object_Undefined;
  t164 = t163;
  if (t164){
    t165 = identifier_n > 0;
    t164 = t165;
  };
  t166 = t164;
  if (t166){
    t167 = ((cptr)clib_Trace)[2] /* hashval*/ > -1;
    t166 = t167;
  };
  if (t166){
    ((cptr)strpool_str_84)[1] += 1;
    debug_message((cint)strpool_str_84);
    debug_interact();
    cprocess_exitt((cint)1);
  };
  identifier_s = ((cptr)identifier_s)[6] /* name_space*/;
  t168 = identifier_s != object_Undefined;
  if (t168){
    ((cptr)identifier_s)[1] += 1;
    ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
    t169 = ((cptr)(((cptr)identifier_s)[0]))[9];
    t170 = ((f0)t169)((cint)identifier_s, (cint)((cptr)identifier_self)[7] /* name*/); /* Apply*/
    identifier_result = t170;
    t172 = identifier_result != object_Undefined;
    if (t172){
      t162 = identifier_result;
      goto t162_label;
    };
  };
  ((cptr)scope_curr)[1] += 1;
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  t173 = ((cptr)(((cptr)scope_curr)[0]))[9];
  t174 = ((f0)t173)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/); /* Apply*/
  t162 = t174;
  goto t162_label;
  t162_label: return t162;
}

cint identifier_Make_iterator(cint identifier_self, cint identifier_ob){
  cint identifier_result;
  cint t176, t177, t178;
  t177 = mem_malloc(52); ((cptr)t177)[0] = iterator_methods;
  t178 = iterator_alloc((cint)t177, (cint)identifier_self, (cint)identifier_ob);
  t176 = t178;
  goto t176_label;
  t176_label: return t176;
}

cint identifier_Make_name_list(cint identifier_self, cint identifier_ob){
  cint identifier_result;
  cint t179, t180, t181;
  t180 = mem_malloc(32); ((cptr)t180)[0] = namelist_methods;
  t181 = namelist_alloc((cint)t180, (cint)identifier_self, (cint)identifier_ob);
  t179 = t181;
  goto t179_label;
  t179_label: return t179;
}

cint identifier_Make_parameter(cint identifier_self, cint identifier_ob){
  cint identifier_result, identifier_b, identifier_f, identifier_v, identifier_t;
  cint t182, t183, t184, t185, t186, t187, t188, t189, t190, t191, t192, t193, t194, t195, t196, t197, t198, t199, t200, t201;
  t183 = ((cptr)(((cptr)identifier_self)[0]))[189];
  t184 = ((f0)t183)((cint)identifier_self, (cint)identifier_ob, (cint)1); /* lookup_in_given_scope_and_curr*/
  identifier_b = t184;
  t186 = ((cptr)(((cptr)identifier_b)[0]))[38];
  t187 = ((f0)t186)((cint)identifier_b); /* Eval*/
  identifier_f = t187;
  t189 = identifier_f == object_Undefined;
  t190 = t189;
  if (t190){
    t191 = ((cptr)identifier_b)[4] /* class_of*/ == strpool_str_70;
    t190 = t191;
  };
  if (t190){
    identifier_v = identifier_b;
    ((cptr)((cptr)identifier_v)[7] /* type*/)[1] += 1;
    t192 = ((cptr)(((cptr)((cptr)identifier_v)[7] /* type*/)[0]))[38];
    t193 = ((f0)t192)((cint)((cptr)identifier_v)[7] /* type*/); /* Eval*/
    identifier_t = t193;
    t195 = ((cptr)identifier_t)[5] /* representation*/ == strpool_str_59;
    if (t195){
      ((cptr)identifier_b)[1] += 1;
      identifier_f = identifier_b;
    };
  };
  t196 = identifier_f == object_Undefined;
  if (t196){
    t197 = identifier_ob == object_Undefined;
    if (t197){
      object_Dec_ref(identifier_self);
      t182 = object_Undefined;
      goto t182_label;
    };
    ((cptr)strpool_str_80)[1] += 1;
    ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
    t198 = ((cptr)(((cptr)strpool_str_80)[0]))[97];
    t199 = ((f0)t198)((cint)strpool_str_80, (cint)((cptr)identifier_self)[7] /* name*/); /* Plus*/
    debug_message((cint)t199);
    debug_interact();
    cprocess_exitt((cint)1);
  };
  object_Dec_ref(identifier_self);
  t200 = mem_malloc(36); ((cptr)t200)[0] = parameter_methods;
  t201 = parameter_alloc((cint)t200, (cint)identifier_f, (cint)identifier_ob);
  t182 = t201;
  goto t182_label;
  t182_label: return t182;
}

cint identifier_Make_parameterless(cint identifier_self){
  cint identifier_result, identifier_b, identifier_f;
  cint t202, t203, t204, t205, t206, t207, t208, t209, t210, t211, t212, t213, t214, t215;
  ((cptr)scope_curr)[1] += 1;
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  t203 = ((cptr)(((cptr)scope_curr)[0]))[9];
  t204 = ((f0)t203)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/); /* Apply*/
  identifier_b = t204;
  t206 = ((cptr)(((cptr)identifier_b)[0]))[38];
  t207 = ((f0)t206)((cint)identifier_b); /* Eval*/
  identifier_f = t207;
  t209 = ((cptr)identifier_f)[4] /* class_of*/ != strpool_str_37;
  t210 = t209;
  if (t210){
    t211 = ((cptr)identifier_f)[4] /* class_of*/ != strpool_str_87;
    t210 = t211;
  };
  if (t210){
    ((cptr)strpool_str_80)[1] += 1;
    ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
    t212 = ((cptr)(((cptr)strpool_str_80)[0]))[97];
    t213 = ((f0)t212)((cint)strpool_str_80, (cint)((cptr)identifier_self)[7] /* name*/); /* Plus*/
    debug_message((cint)t213);
    debug_interact();
    cprocess_exitt((cint)1);
  };
  object_Dec_ref(identifier_self);
  t214 = mem_malloc(36); ((cptr)t214)[0] = parameter_methods;
  t215 = parameter_alloc((cint)t214, (cint)identifier_f, (cint)0);
  t202 = t215;
  goto t202_label;
  t202_label: return t202;
}

cint identifier_Make_selector(cint identifier_self, cint identifier_ob){
  cint identifier_result;
  cint t216, t217, t218;
  t217 = mem_malloc(36); ((cptr)t217)[0] = selector_methods;
  t218 = selector_alloc((cint)t217, (cint)identifier_self, (cint)identifier_ob);
  t216 = t218;
  goto t216_label;
  t216_label: return t216;
}

cint identifier_Mkstr(cint identifier_self){
  cint identifier_result;
  cint t219;
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  t219 = ((cptr)identifier_self)[7] /* name*/;
  goto t219_label;
  t219_label: return t219;
}

cint identifier_New(cint identifier_self){
  cint identifier_result, identifier_b;
  cint t220, t221, t222, t223, t224, t225, t226;
  ((cptr)scope_curr)[1] += 1;
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  t221 = ((cptr)(((cptr)scope_curr)[0]))[9];
  t222 = ((f0)t221)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/); /* Apply*/
  identifier_b = t222;
  t224 = ((cptr)(((cptr)identifier_b)[0]))[93];
  t225 = ((f0)t224)((cint)identifier_b); /* New*/
  identifier_result = t225;
  object_Dec_ref(identifier_self);
  t220 = identifier_result;
  goto t220_label;
  t220_label: return t220;
}

cint identifier_OpAssign(cint identifier_self, cint identifier_val, cint identifier_op){
  cint identifier_b, identifier_c;
  cint t227, t228, t229, t230, t231, t232, t233, t234, t235, t236, t237, t238, t239, t240;
  ((cptr)scope_curr)[1] += 1;
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  t228 = ((cptr)(((cptr)scope_curr)[0]))[9];
  t229 = ((f0)t228)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/); /* Apply*/
  identifier_b = t229;
  t231 = ((cptr)identifier_b)[4] /* class_of*/ != strpool_str_70;
  if (t231){
    t232 = ((cptr)(((cptr)scope_curr)[0]))[124];
    t233 = ((f0)t232)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/); /* lookup_among_local_syms*/
    identifier_c = t233;
    t235 = identifier_c == object_Undefined;
    if (t235){
      object_Dec_ref(identifier_b);
      identifier_b = object_Undefined;
    };
    object_Dec_ref(identifier_c);
  };
  t236 = identifier_b == object_Undefined;
  if (t236){
    t237 = mem_malloc(40); ((cptr)t237)[0] = variable_methods;
    ((cptr)entset_predef)[1] += 1;
    t238 = variable_alloc((cint)t237, (cint)entset_predef, (cint)1);
    identifier_b = t238;
    t239 = (cptr)(((cptr)(((cptr)scope_curr)[0]))[121]); /* enter_into*/
    ((f0)t239)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/, (cint)identifier_b);
  };
  object_Dec_ref(identifier_self);
  t240 = (cptr)(((cptr)(((cptr)identifier_b)[0]))[96]); /* OpAssign*/
  ((f0)t240)((cint)identifier_b, (cint)identifier_val, (cint)identifier_op);
  t227_label: return t227;
}

cint identifier_Qual(cint identifier_self, cint identifier_id, cint identifier_scop){
  cint identifier_result, identifier_b;
  cint t241, t242, t243, t244;
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  ((cptr)((cptr)identifier_id)[7] /* name*/)[1] += 1;
  t242 = ((cptr)(((cptr)identifier_scop)[0]))[120];
  t243 = ((f0)t242)((cint)identifier_scop, (cint)((cptr)identifier_self)[7] /* name*/, (cint)((cptr)identifier_id)[7] /* name*/); /* Apply_qualified*/
  identifier_b = t243;
  object_Dec_ref(identifier_self);
  t241 = identifier_b;
  goto t241_label;
  t241_label: return t241;
}

cint identifier_Qualify(cint identifier_self, cint identifier_id){
  cint identifier_result, identifier_b;
  cint t245, t246, t247, t248;
  ((cptr)scope_curr)[1] += 1;
  ((cptr)((cptr)identifier_self)[7] /* name*/)[1] += 1;
  ((cptr)((cptr)identifier_id)[7] /* name*/)[1] += 1;
  t246 = ((cptr)(((cptr)scope_curr)[0]))[120];
  t247 = ((f0)t246)((cint)scope_curr, (cint)((cptr)identifier_self)[7] /* name*/, (cint)((cptr)identifier_id)[7] /* name*/); /* Apply_qualified*/
  identifier_b = t247;
  object_Dec_ref(identifier_self);
  t245 = identifier_b;
  goto t245_label;
  t245_label: return t245;
}

void init_identifier(){
  copy_meth_table(identifier_methods, object_methods);
  identifier_methods[0] = 32;
  identifier_methods[3] = identifier_alloc;
  identifier_methods[119] = identifier_alloc_new;
  identifier_methods[186] = identifier_salloc;
  identifier_methods[4] = identifier_reclaim;
  identifier_methods[9] = identifier_Apply;
  identifier_methods[16] = identifier_Call;
  identifier_methods[18] = identifier_Call_with_params;
  identifier_methods[24] = identifier_Declare_as_constant;
  identifier_methods[25] = identifier_Declare_as_param;
  identifier_methods[27] = identifier_Declare_as_var;
  identifier_methods[38] = identifier_Eval;
  identifier_methods[43] = identifier_Export;
  identifier_methods[187] = identifier_Export_from;
  identifier_methods[45] = identifier_Get;
  identifier_methods[49] = identifier_Import;
  identifier_methods[126] = identifier_Import_into;
  identifier_methods[57] = identifier_Lazy_eval;
  identifier_methods[188] = identifier_Lazy_evaluate;
  identifier_methods[189] = identifier_lookup_in_given_scope_and_curr;
  identifier_methods[67] = identifier_Make_iterator;
  identifier_methods[69] = identifier_Make_name_list;
  identifier_methods[77] = identifier_Make_parameter;
  identifier_methods[78] = identifier_Make_parameterless;
  identifier_methods[73] = identifier_Make_selector;
  identifier_methods[88] = identifier_Mkstr;
  identifier_methods[93] = identifier_New;
  identifier_methods[96] = identifier_OpAssign;
  identifier_methods[190] = identifier_Qual;
  identifier_methods[191] = identifier_Qualify;
}
