
/* This file was automatically generated by pclu.*/

#include "pclu_err.h"
#include "pclu_sys.h"


/**** BEGIN CLUSTER dbg_info ****/

extern errcode arrayOPnew();
extern errcode g_envOPget_space();
extern errcode g_envOPget_time();
extern errcode idnOPget_str();
extern errcode recordOPget_5();
extern errcode charOPequal();
extern errcode stringOPfetch();
extern errcode stringOPrest();
extern errcode boolOPnot();
extern errcode stringOPequal();
extern errcode stringOPconcat();
extern errcode escape_ckeyword();
extern errcode g_envOPget_file_name();
extern errcode file_nameOPunparse();
extern errcode dbg_infoOPemit_extern();
extern errcode current_typeOPexists();
extern errcode current_typeOPparmd();
extern errcode dbg_infoOPemit_ptown_decl();
extern errcode current_typeOPget_formals();
extern errcode arrayOPsize();
extern errcode dbg_infoOPemit_own_decl();
extern errcode dbg_infoOPset_own_context();
extern errcode sequenceOPempty();
extern errcode recordOPget_8();
extern errcode current_applyOPget_formals();
extern errcode arrayOPaddh();
extern errcode oneofOPmake_2();
extern errcode oneofOPmake_1();
extern errcode g_envOPputl();
extern errcode dbg_infoOPemit_externs();
extern errcode dbg_infoOPemit_sub_typedefs();
extern errcode dbg_infoOPemit_typedef();
extern errcode dbg_infoOPemit_sub_decls();
extern errcode dbg_infoOPemit_decl();
extern errcode sequenceOPelements();
extern errcode recordOPget_11();
extern errcode dbg_infoOPemit_extern_typespec();
extern errcode sequenceOPindexes();
extern errcode recordOPget_9();
extern errcode recordOPget_2();
extern errcode sequenceOPfetch();
extern errcode g_envOPadd_extern();
extern errcode arrayOPelements();
extern errcode recordOPget_1();
extern errcode idnOPget_kind();
extern errcode compiler_logit();
extern errcode current_typeOPget();
extern errcode recordOPget_6();
extern errcode typespecOPget_abs();
extern errcode el_cont_type_parm();
extern errcode el_cont_op_parm();
extern errcode duOPget_common();
extern errcode s_expr4();
extern errcode fl_cont_type_parm();
extern errcode fl_cont_op_parm();
extern errcode make_sel_name();
extern errcode typespec_print();
extern errcode sequenceOPsize();
extern errcode intOPadd();
extern errcode dbg_infoOPidns_in_decls();
extern errcode current_applyOPparmd();
extern errcode dbg_infoOPvars_in_initlist();
extern errcode intOPgt();
extern errcode intOPequal();
extern errcode dbg_infoOPemit_vlist_typedef();
extern errcode g_envOPadd_vlist();
extern errcode intOPunparse();
extern errcode g_envOPputs();
extern errcode g_envOPindent();
extern errcode g_envOPoutdent();
extern errcode dbg_infoOPemit_sub_decl_typespec();
extern errcode sequenceOPnew();
extern errcode dbg_infoOPprocess_initlists();
extern errcode dbg_infoOPprocess_ownlists();
extern errcode dbg_infoOPemit_own_externs();
extern errcode dbg_infoOPowns_in_mixedlist();
extern errcode recordOPget_4();
extern errcode dbg_infoOPprocess_mixedlist();
extern errcode current_typeOPget_name();
extern errcode dbg_infoOPvars_in_decllist();
CLUREF STR_;
CLUREF STR_OP;
CLUREF STR_op;
CLUREF STR_type;
CLUREF STR_extern_040struct_040dbg_137info_052_040dbg_137info_137;
CLUREF STR__073;
CLUREF STR__043undef_040MY_137TRACE_137FLAG;
CLUREF STR__043define_040MY_137TRACE_137FLAG_040;
CLUREF STR__137TRACE;
CLUREF STR_int_040;
CLUREF STR__137TRACE_073;
CLUREF STR_struct_040dbg_137info_040_052DBG_137INFO_073;
CLUREF STR_int_040DBG_137LINE_073;
CLUREF STR_locals_056DBG_137INFO_040_075_040dbg_137info_137;
CLUREF STR_int_137ops;
CLUREF STR_extern_040struct_040OPS_040_052int_137ops_073;
CLUREF STR_NULL_137OPS;
CLUREF STR_unhandled_040idnkind_040in_040emit_137externs_040_050ownvar_051;
CLUREF STR_unhandled_040idnkind_040in_040emit_137externs;
CLUREF STR__137ops;
CLUREF STR__137of;
CLUREF STR__137;
CLUREF STR_unexpected_040typeabs_040value_040emit_137extern_137typespec;
CLUREF STR_extern_040struct_040OPS_040_052;
CLUREF STR_typedef_040struct_040_173;
CLUREF STR__040_040_040_040_040_040_040_040int_040hdr_073;
CLUREF STR__040_040_040_040_040_040_040_040int_040count_073;
CLUREF STR__040_040_040_040_040_040_040_040var_137desc_040vds_133;
CLUREF STR__135_073;
CLUREF STR__040_040_040_040_040_040_040_040_175_040Vlist;
CLUREF STR_int_040hdr_073;
CLUREF STR_int_040count_073;
CLUREF STR_char_040_052name_073;
CLUREF STR_char_040_052fname_073;
CLUREF STR_bool_040is_137iter_073;
CLUREF STR_int_040is_137parmd_073;
CLUREF STR_int_040addr_073;
CLUREF STR_int_040nargs_073;
CLUREF STR_Vlist;
CLUREF STR__040_052vals_073;
CLUREF STR_siglist;
CLUREF STR__040_052sigs_073;
CLUREF STR__040_052locals_073;
CLUREF STR__040_052owns_073;
CLUREF STR__040_052ptowns_073;
CLUREF STR__040_052popowns_073;
CLUREF STR_Slist;
CLUREF STR__040_052type_137formals_073;
CLUREF STR__040_052op_137formals_073;
CLUREF STR__175_040dbg_137info_137;
CLUREF STR__137actual_073;
CLUREF STR_static_040Vlist;
CLUREF STR__040vals_137;
CLUREF STR__040_075_040_173;
CLUREF STR_0_054_040;
CLUREF STR__054_040_173;
CLUREF STR__175;
CLUREF STR__175_073;
CLUREF STR_static_040sig_137desc;
CLUREF STR__040sig_137;
CLUREF STR__040_075_040_1730_054_040;
CLUREF STR__054_040;
CLUREF STR__042;
CLUREF STR__042_054_040_1730_054_040;
CLUREF STR__175_175_073;
CLUREF STR_static_040siglist;
CLUREF STR__040sigs_137;
CLUREF STR__054_040_050sig_137desc_052_051_046sig_137;
CLUREF STR__040locals_137;
CLUREF STR__054_173;
CLUREF STR__040_1730_054_0402_054_040_042;
CLUREF STR__042_054_040_046int_137ops_175;
CLUREF STR__054_040_1730_054_0402_054_040_042;
CLUREF STR__042_054_040_046;
CLUREF STR_NULL_137OPS_054_040;
CLUREF STR_unhandled_040idnkind_040in_040emit_137sub_137decls_040_050ownvar_051;
CLUREF STR_unhandled_040idnkind_040in_040emit_137sub_137decls;
CLUREF STR__040popowns_137;
CLUREF STR__040tformals_137;
CLUREF STR__054_040_042;
CLUREF STR__040opformals_137;
CLUREF STR__040ptowns_137;
CLUREF STR__040owns_137;
CLUREF STR__054;
CLUREF STR__1730_054_0402_054_040_042;
CLUREF STR__137init_042_054_040_046int_137ops_175;
CLUREF STR__042_054_040_046NULL_137OPS_175;
CLUREF STR__042_054_040;
CLUREF STR__046;
CLUREF STR__137ops_175;
CLUREF STR_zero_137ops_054_040_042;
CLUREF STR__137ops_042_175;
CLUREF STR_m1_137ops_175;
CLUREF STR_zero_137ops_054_040_042_042_175;
CLUREF STR_unexpected_040typeabs_040values_040emit_137sub_137decls_040vals;
CLUREF STR_dbg_137info_137;
CLUREF STR__137actual_040dbg_137info_137;
CLUREF STR__137data_040_075_040_1730_054_04012_054_040;
CLUREF STR_1_054_040;
CLUREF STR__054_040_050int_051;
CLUREF STR__046vals_137;
CLUREF STR__054_040_046sigs_137;
CLUREF STR__054_040_046locals_137;
CLUREF STR__054_040_046NO_137VALS;
CLUREF STR__054_040_046owns_137;
CLUREF STR__054_040_046ptowns_137;
CLUREF STR__054_040_046popowns_137;
CLUREF STR__054_040_046NO_137PARMS;
CLUREF STR__054_040_046tformals_137;
CLUREF STR__054_040_046opformals_137;
CLUREF STR_struct_040dbg_137info_040_052dbg_137info_137;
CLUREF STR__040_075_040_050struct_040dbg_137info_052_051_046dbg_137info_137;
CLUREF STR__137data_073;
static int dbg_info_own_init = 0;
OWN_req dbg_info_ownreqs = {0,0};
CLUREF dbg_infoOPap;
CLUREF dbg_infoOPyes;
CLUREF dbg_infoOPlocals_UNIQ;
CLUREF dbg_infoOPinternal_locals;
CLUREF dbg_infoOPnm;
CLUREF dbg_infoOPfnm;
CLUREF dbg_infoOPis_iter;
CLUREF dbg_infoOPown_defs_done;
CLUREF dbg_infoOPnvals;
CLUREF dbg_infoOPnsigs;
CLUREF dbg_infoOPnlocals;
CLUREF dbg_infoOPnowns;
CLUREF dbg_infoOPnptowns;
CLUREF dbg_infoOPnpopowns;
CLUREF dbg_infoOPpopowns;
CLUREF dbg_infoOPptowns;
CLUREF dbg_infoOPowns;
CLUREF dbg_infoOPtypeformals;
CLUREF dbg_infoOPopformals;
CLUREF dbg_infoOPntypeformals;
CLUREF dbg_infoOPnopformals;
CLUREF dbg_infoOPis_type_parmd;
CLUREF dbg_infoOPis_op_parmd;
errcode dbg_info_own_init_proc()
{
    errcode err;
    enter_own_init_proc();
        if (dbg_info_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("OP", CLU_1, CLU_2, &STR_OP);
        stringOPcons("op", CLU_1, CLU_2, &STR_op);
        stringOPcons("type", CLU_1, CLU_4, &STR_type);
        stringOPcons("extern struct dbg_info* dbg_info_", CLU_1, CLU_33, &STR_extern_040struct_040dbg_137info_052_040dbg_137info_137);
        stringOPcons(";", CLU_1, CLU_1, &STR__073);
        stringOPcons("#undef MY_TRACE_FLAG", CLU_1, CLU_20, &STR__043undef_040MY_137TRACE_137FLAG);
        stringOPcons("#define MY_TRACE_FLAG ", CLU_1, CLU_22, &STR__043define_040MY_137TRACE_137FLAG_040);
        stringOPcons("_TRACE", CLU_1, CLU_6, &STR__137TRACE);
        stringOPcons("int ", CLU_1, CLU_4, &STR_int_040);
        stringOPcons("_TRACE;", CLU_1, CLU_7, &STR__137TRACE_073);
        stringOPcons("struct dbg_info *DBG_INFO;", CLU_1, CLU_26, &STR_struct_040dbg_137info_040_052DBG_137INFO_073);
        stringOPcons("int DBG_LINE;", CLU_1, CLU_13, &STR_int_040DBG_137LINE_073);
        stringOPcons("locals.DBG_INFO = dbg_info_", CLU_1, CLU_27, &STR_locals_056DBG_137INFO_040_075_040dbg_137info_137);
        stringOPcons("int_ops", CLU_1, CLU_7, &STR_int_137ops);
        stringOPcons("extern struct OPS *int_ops;", CLU_1, CLU_27, &STR_extern_040struct_040OPS_040_052int_137ops_073);
        stringOPcons("NULL_OPS", CLU_1, CLU_8, &STR_NULL_137OPS);
        stringOPcons("unhandled idnkind in emit_externs (ownvar)", CLU_1, CLU_42, &STR_unhandled_040idnkind_040in_040emit_137externs_040_050ownvar_051);
        stringOPcons("unhandled idnkind in emit_externs", CLU_1, CLU_33, &STR_unhandled_040idnkind_040in_040emit_137externs);
        stringOPcons("_ops", CLU_1, CLU_4, &STR__137ops);
        stringOPcons("_of", CLU_1, CLU_3, &STR__137of);
        stringOPcons("_", CLU_1, CLU_1, &STR__137);
        stringOPcons("unexpected typeabs value emit_extern_typespec", CLU_1, CLU_45, &STR_unexpected_040typeabs_040value_040emit_137extern_137typespec);
        stringOPcons("extern struct OPS *", CLU_1, CLU_19, &STR_extern_040struct_040OPS_040_052);
        stringOPcons("typedef struct {", CLU_1, CLU_16, &STR_typedef_040struct_040_173);
        stringOPcons("        int hdr;", CLU_1, CLU_16, &STR__040_040_040_040_040_040_040_040int_040hdr_073);
        stringOPcons("        int count;", CLU_1, CLU_18, &STR__040_040_040_040_040_040_040_040int_040count_073);
        stringOPcons("        var_desc vds[", CLU_1, CLU_21, &STR__040_040_040_040_040_040_040_040var_137desc_040vds_133);
        stringOPcons("];", CLU_1, CLU_2, &STR__135_073);
        stringOPcons("        } Vlist", CLU_1, CLU_15, &STR__040_040_040_040_040_040_040_040_175_040Vlist);
        stringOPcons("int hdr;", CLU_1, CLU_8, &STR_int_040hdr_073);
        stringOPcons("int count;", CLU_1, CLU_10, &STR_int_040count_073);
        stringOPcons("char *name;", CLU_1, CLU_11, &STR_char_040_052name_073);
        stringOPcons("char *fname;", CLU_1, CLU_12, &STR_char_040_052fname_073);
        stringOPcons("bool is_iter;", CLU_1, CLU_13, &STR_bool_040is_137iter_073);
        stringOPcons("int is_parmd;", CLU_1, CLU_13, &STR_int_040is_137parmd_073);
        stringOPcons("int addr;", CLU_1, CLU_9, &STR_int_040addr_073);
        stringOPcons("int nargs;", CLU_1, CLU_10, &STR_int_040nargs_073);
        stringOPcons("Vlist", CLU_1, CLU_5, &STR_Vlist);
        stringOPcons(" *vals;", CLU_1, CLU_7, &STR__040_052vals_073);
        stringOPcons("siglist", CLU_1, CLU_7, &STR_siglist);
        stringOPcons(" *sigs;", CLU_1, CLU_7, &STR__040_052sigs_073);
        stringOPcons(" *locals;", CLU_1, CLU_9, &STR__040_052locals_073);
        stringOPcons(" *owns;", CLU_1, CLU_7, &STR__040_052owns_073);
        stringOPcons(" *ptowns;", CLU_1, CLU_9, &STR__040_052ptowns_073);
        stringOPcons(" *popowns;", CLU_1, CLU_10, &STR__040_052popowns_073);
        stringOPcons("Slist", CLU_1, CLU_5, &STR_Slist);
        stringOPcons(" *type_formals;", CLU_1, CLU_15, &STR__040_052type_137formals_073);
        stringOPcons(" *op_formals;", CLU_1, CLU_13, &STR__040_052op_137formals_073);
        stringOPcons("} dbg_info_", CLU_1, CLU_11, &STR__175_040dbg_137info_137);
        stringOPcons("_actual;", CLU_1, CLU_8, &STR__137actual_073);
        stringOPcons("static Vlist", CLU_1, CLU_12, &STR_static_040Vlist);
        stringOPcons(" vals_", CLU_1, CLU_6, &STR__040vals_137);
        stringOPcons(" = {", CLU_1, CLU_4, &STR__040_075_040_173);
        stringOPcons("0, ", CLU_1, CLU_3, &STR_0_054_040);
        stringOPcons(", {", CLU_1, CLU_3, &STR__054_040_173);
        stringOPcons("}", CLU_1, CLU_1, &STR__175);
        stringOPcons("};", CLU_1, CLU_2, &STR__175_073);
        stringOPcons("static sig_desc", CLU_1, CLU_15, &STR_static_040sig_137desc);
        stringOPcons(" sig_", CLU_1, CLU_5, &STR__040sig_137);
        stringOPcons(" = {0, ", CLU_1, CLU_7, &STR__040_075_040_1730_054_040);
        stringOPcons(", ", CLU_1, CLU_2, &STR__054_040);
        stringOPcons("\"", CLU_1, CLU_1, &STR__042);
        stringOPcons("\", {0, ", CLU_1, CLU_7, &STR__042_054_040_1730_054_040);
        stringOPcons("}};", CLU_1, CLU_3, &STR__175_175_073);
        stringOPcons("static siglist", CLU_1, CLU_14, &STR_static_040siglist);
        stringOPcons(" sigs_", CLU_1, CLU_6, &STR__040sigs_137);
        stringOPcons(", (sig_desc*)&sig_", CLU_1, CLU_18, &STR__054_040_050sig_137desc_052_051_046sig_137);
        stringOPcons(" locals_", CLU_1, CLU_8, &STR__040locals_137);
        stringOPcons(",{", CLU_1, CLU_2, &STR__054_173);
        stringOPcons(" {0, 2, \"", CLU_1, CLU_9, &STR__040_1730_054_0402_054_040_042);
        stringOPcons("\", &int_ops}", CLU_1, CLU_12, &STR__042_054_040_046int_137ops_175);
        stringOPcons(", {0, 2, \"", CLU_1, CLU_10, &STR__054_040_1730_054_0402_054_040_042);
        stringOPcons("\", &", CLU_1, CLU_4, &STR__042_054_040_046);
        stringOPcons("NULL_OPS, ", CLU_1, CLU_10, &STR_NULL_137OPS_054_040);
        stringOPcons("unhandled idnkind in emit_sub_decls (ownvar)", CLU_1, CLU_44, &STR_unhandled_040idnkind_040in_040emit_137sub_137decls_040_050ownvar_051);
        stringOPcons("unhandled idnkind in emit_sub_decls", CLU_1, CLU_35, &STR_unhandled_040idnkind_040in_040emit_137sub_137decls);
        stringOPcons(" popowns_", CLU_1, CLU_9, &STR__040popowns_137);
        stringOPcons(" tformals_", CLU_1, CLU_10, &STR__040tformals_137);
        stringOPcons(", \"", CLU_1, CLU_3, &STR__054_040_042);
        stringOPcons(" opformals_", CLU_1, CLU_11, &STR__040opformals_137);
        stringOPcons(" ptowns_", CLU_1, CLU_8, &STR__040ptowns_137);
        stringOPcons(" owns_", CLU_1, CLU_6, &STR__040owns_137);
        stringOPcons(",", CLU_1, CLU_1, &STR__054);
        stringOPcons("{0, 2, \"", CLU_1, CLU_8, &STR__1730_054_0402_054_040_042);
        stringOPcons("_init\", &int_ops}", CLU_1, CLU_17, &STR__137init_042_054_040_046int_137ops_175);
        stringOPcons("\", &NULL_OPS}", CLU_1, CLU_13, &STR__042_054_040_046NULL_137OPS_175);
        stringOPcons("\", ", CLU_1, CLU_3, &STR__042_054_040);
        stringOPcons("&", CLU_1, CLU_1, &STR__046);
        stringOPcons("_ops}", CLU_1, CLU_5, &STR__137ops_175);
        stringOPcons("zero_ops, \"", CLU_1, CLU_11, &STR_zero_137ops_054_040_042);
        stringOPcons("_ops\"}", CLU_1, CLU_6, &STR__137ops_042_175);
        stringOPcons("m1_ops}", CLU_1, CLU_7, &STR_m1_137ops_175);
        stringOPcons("zero_ops, \"\"}", CLU_1, CLU_13, &STR_zero_137ops_054_040_042_042_175);
        stringOPcons("unexpected typeabs values emit_sub_decls vals", CLU_1, CLU_45, &STR_unexpected_040typeabs_040values_040emit_137sub_137decls_040vals);
        stringOPcons("dbg_info_", CLU_1, CLU_9, &STR_dbg_137info_137);
        stringOPcons("_actual dbg_info_", CLU_1, CLU_17, &STR__137actual_040dbg_137info_137);
        stringOPcons("_data = {0, 12, ", CLU_1, CLU_16, &STR__137data_040_075_040_1730_054_04012_054_040);
        stringOPcons("1, ", CLU_1, CLU_3, &STR_1_054_040);
        stringOPcons(", (int)", CLU_1, CLU_7, &STR__054_040_050int_051);
        stringOPcons("&vals_", CLU_1, CLU_6, &STR__046vals_137);
        stringOPcons(", &sigs_", CLU_1, CLU_8, &STR__054_040_046sigs_137);
        stringOPcons(", &locals_", CLU_1, CLU_10, &STR__054_040_046locals_137);
        stringOPcons(", &NO_VALS", CLU_1, CLU_10, &STR__054_040_046NO_137VALS);
        stringOPcons(", &owns_", CLU_1, CLU_8, &STR__054_040_046owns_137);
        stringOPcons(", &ptowns_", CLU_1, CLU_10, &STR__054_040_046ptowns_137);
        stringOPcons(", &popowns_", CLU_1, CLU_11, &STR__054_040_046popowns_137);
        stringOPcons(", &NO_PARMS", CLU_1, CLU_11, &STR__054_040_046NO_137PARMS);
        stringOPcons(", &tformals_", CLU_1, CLU_12, &STR__054_040_046tformals_137);
        stringOPcons(", &opformals_", CLU_1, CLU_13, &STR__054_040_046opformals_137);
        stringOPcons("struct dbg_info *dbg_info_", CLU_1, CLU_26, &STR_struct_040dbg_137info_040_052dbg_137info_137);
        stringOPcons(" = (struct dbg_info*)&dbg_info_", CLU_1, CLU_31, &STR__040_075_040_050struct_040dbg_137info_052_051_046dbg_137info_137);
        stringOPcons("_data;", CLU_1, CLU_6, &STR__137data_073);
        dbg_info_own_init = 1;
        {
            {dbg_infoOPyes.tf = false;
            }
            }
        {
            {CLUREF T_0_1;
            err = arrayOPnew(&T_0_1);
            if (err != ERR_ok) goto ex_0;
            dbg_infoOPlocals_UNIQ.num = T_0_1.num;
            }
            }
        {
            {CLUREF T_0_2;
            err = arrayOPnew(&T_0_2);
            if (err != ERR_ok) goto ex_0;
            dbg_infoOPinternal_locals.num = T_0_2.num;
            }
            }
        {
            {dbg_infoOPown_defs_done.tf = false;
            }
            }
        {
            {dbg_infoOPnvals.num = 0;
            }
            }
        {
            {dbg_infoOPnsigs.num = 0;
            }
            }
        {
            {dbg_infoOPnlocals.num = 0;
            }
            }
        {
            {dbg_infoOPnowns.num = 0;
            }
            }
        {
            {dbg_infoOPnptowns.num = 0;
            }
            }
        {
            {dbg_infoOPnpopowns.num = 0;
            }
            }
        {
            {CLUREF T_0_3;
            err = arrayOPnew(&T_0_3);
            if (err != ERR_ok) goto ex_0;
            dbg_infoOPpopowns.num = T_0_3.num;
            }
            }
        {
            {CLUREF T_0_4;
            err = arrayOPnew(&T_0_4);
            if (err != ERR_ok) goto ex_0;
            dbg_infoOPptowns.num = T_0_4.num;
            }
            }
        {
            {CLUREF T_0_5;
            err = arrayOPnew(&T_0_5);
            if (err != ERR_ok) goto ex_0;
            dbg_infoOPowns.num = T_0_5.num;
            }
            }
        {
            {CLUREF T_0_6;
            err = arrayOPnew(&T_0_6);
            if (err != ERR_ok) goto ex_0;
            dbg_infoOPtypeformals.num = T_0_6.num;
            }
            }
        {
            {CLUREF T_0_7;
            err = arrayOPnew(&T_0_7);
            if (err != ERR_ok) goto ex_0;
            dbg_infoOPopformals.num = T_0_7.num;
            }
            }
        {
            {dbg_infoOPntypeformals.num = 0;
            }
            }
        {
            {dbg_infoOPnopformals.num = 0;
            }
            }
        {
            {dbg_infoOPis_type_parmd.tf = false;
            }
            }
        {
            {dbg_infoOPis_op_parmd.tf = false;
            }
            }
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(err); {signal(ERR_failure);}
        }
    }

static int dbg_infoOPstart_own_init = 0;

/**** BEGIN PROCEDURE start ****/

errcode dbg_infoOPstart(e, a, cname, iterp)
CLUREF e;
CLUREF a;
CLUREF cname;
CLUREF iterp;
    {
    errcode err;
    errcode ecode2;
    CLUREF f;
        if (dbg_infoOPstart_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPstart_own_init = 1;
    }
    enter_proc(40);

  LINE(41);
    {
    dbg_infoOPap.num = a.num;
    }

  LINE(42);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = g_envOPget_space(e, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_1.num = T_1_2.num;
    if (!T_1_2.num) {
        err = g_envOPget_time(e, &T_1_3);
        if (err != ERR_ok) goto ex_0;
        T_1_1.num = T_1_3.num;
    }
    if (T_1_1.num == true) {
        {
        dbg_infoOPyes.tf = false;
        }
        {
        {signal (ERR_ok);}}
        }
    else {
        {
        dbg_infoOPyes.tf = true;
        }
        }}/* end if */

  LINE(43);
    {
    CLUREF T_1_1;
    err = arrayOPnew(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    dbg_infoOPlocals_UNIQ.num = T_1_1.num;
    }

  LINE(44);
    {
    CLUREF T_1_1;
    err = arrayOPnew(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    dbg_infoOPinternal_locals.num = T_1_1.num;
    }

  LINE(45);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = dbg_infoOPap.vec->data[4];
    err = idnOPget_str(T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    dbg_infoOPnm.num = T_1_2.num;
    }

  LINE(46);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = stringOPfetch(dbg_infoOPnm, CLU_1, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    T_1_2.ch = '%';
    T_1_3.num = (T_1_1.ch == T_1_2.ch)? true : false;
    if (T_1_3.num == true) {
        {
        CLUREF T_2_1;
        err = stringOPrest(dbg_infoOPnm, CLU_2, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        dbg_infoOPnm.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(47);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = ((cname.str->size != STR_.str->size)? false :
        !(bcmp(cname.str->data, STR_.str->data, cname.str->size)));
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = stringOPconcat(cname, STR_OP, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, dbg_infoOPnm, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        dbg_infoOPnm.num = T_2_2.num;
        }
        }
        }/* end if */

  LINE(48);
    {
    CLUREF T_1_1;
    T_1_1.num = ((cname.str->size != STR_.str->size)? false :
        !(bcmp(cname.str->data, STR_.str->data, cname.str->size)));
    if (T_1_1.num == true) {
        {
        CLUREF T_2_1;
        err = escape_ckeyword(dbg_infoOPnm, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        dbg_infoOPnm.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(49);
    {
    dbg_infoOPis_iter.num = iterp.num;
    }

  LINE(50);
    {
        {CLUREF T_1_1;
        err = g_envOPget_file_name(e, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        f.num = T_1_1.num;
        }
        }

  LINE(51);
    {
    CLUREF T_1_1;
    err = file_nameOPunparse(f, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    dbg_infoOPfnm.num = T_1_1.num;
    }

  LINE(52);
    {
    err = dbg_infoOPemit_extern(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(53);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = current_typeOPexists(&T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_1.num = T_1_2.num;
    if (T_1_2.num) {
        T_1_3.num = dbg_infoOPown_defs_done.num ^ 1;
        T_1_1.num = T_1_3.num;
    }
    if (T_1_1.num == true) {

  LINE(54);
        {
        CLUREF T_2_1;
        err = current_typeOPparmd(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        if (T_2_1.num == true) {

  LINE(56);
            {
            dbg_infoOPown_defs_done.tf = true;
            }

  LINE(57);
            {
            err = dbg_infoOPemit_ptown_decl(e);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(58);
            {
            CLUREF T_3_1;
            err = current_typeOPget_formals(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            dbg_infoOPtypeformals.num = T_3_1.num;
            }

  LINE(59);
            {
            CLUREF T_3_1;
            T_3_1.num = dbg_infoOPtypeformals.array->ext_size;
            dbg_infoOPntypeformals.num = T_3_1.num;
            }
            }
        else {

  LINE(61);
            {
            dbg_infoOPown_defs_done.tf = true;
            }

  LINE(62);
            {
            err = dbg_infoOPemit_own_decl(e);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(63);
            {
            CLUREF T_3_1;
            err = arrayOPnew(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            dbg_infoOPtypeformals.num = T_3_1.num;
            }

  LINE(64);
            {
            dbg_infoOPntypeformals.num = 0;
            }
            }}/* end if */
        }
        }/* end if */

  LINE(67);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = current_typeOPexists(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {

  LINE(68);
        {
        err = dbg_infoOPemit_own_decl(e);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(70);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = a.vec->data[7];
    err = sequenceOPempty(T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_3.num = T_1_2.num ^ 1;
    err = dbg_infoOPset_own_context(e, STR_op, T_1_3);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(71);
    {
    CLUREF T_1_1;
    err = arrayOPnew(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    dbg_infoOPpopowns.num = T_1_1.num;
    }

  LINE(72);
    {
    CLUREF T_1_1;
    err = current_applyOPget_formals(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    dbg_infoOPopformals.num = T_1_1.num;
    }

  LINE(73);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPopformals.array->ext_size;
    dbg_infoOPnopformals.num = T_1_1.num;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE start ****/


/**** BEGIN PROCEDURE reset ****/

errcode dbg_infoOPreset()
    {
    errcode err;
    errcode ecode2;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(76);

  LINE(77);
    {
    dbg_infoOPown_defs_done.tf = false;
    }

  LINE(78);
    {
    dbg_infoOPis_type_parmd.tf = false;
    }

  LINE(79);
    {
    dbg_infoOPis_op_parmd.tf = false;
    }

  LINE(80);
    {
    CLUREF T_1_1;
    err = arrayOPnew(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    dbg_infoOPpopowns.num = T_1_1.num;
    }

  LINE(81);
    {
    CLUREF T_1_1;
    err = arrayOPnew(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    dbg_infoOPptowns.num = T_1_1.num;
    }

  LINE(82);
    {
    CLUREF T_1_1;
    err = arrayOPnew(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    dbg_infoOPowns.num = T_1_1.num;
    }

  LINE(83);
    {
    dbg_infoOPnowns.num = 0;
    }

  LINE(84);
    {
    dbg_infoOPnptowns.num = 0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE reset ****/


/**** BEGIN PROCEDURE active ****/

errcode dbg_infoOPactive(ret_1)
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(87);

  LINE(88);
    {
    {
    ret_1->num = dbg_infoOPyes.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE active ****/

static int dbg_infoOPset_own_context_own_init = 0;

/**** BEGIN PROCEDURE set_own_context ****/

errcode dbg_infoOPset_own_context(e, context, parmd)
CLUREF e;
CLUREF context;
CLUREF parmd;
    {
    errcode err;
    errcode ecode2;
        if (dbg_infoOPset_own_context_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPset_own_context_own_init = 1;
    }
    enter_proc(91);

  LINE(92);
    {
    CLUREF T_1_1;
    T_1_1.num = ((context.str->size != STR_type.str->size)? false :
        !(bcmp(context.str->data, STR_type.str->data, context.str->size)));
    if (T_1_1.num == true) {

  LINE(93);
        {
        dbg_infoOPis_type_parmd.num = parmd.num;
        }

  LINE(94);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        err = g_envOPget_space(e, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        T_2_1.num = T_2_2.num;
        if (!T_2_2.num) {
            err = g_envOPget_time(e, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            T_2_1.num = T_2_3.num;
        }
        if (T_2_1.num == true) {
            {
            dbg_infoOPyes.tf = false;
            }
            }
        else {
            {
            dbg_infoOPyes.tf = true;
            }
            }}/* end if */

  LINE(95);
        {
        CLUREF T_2_1;
        err = arrayOPnew(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        dbg_infoOPowns.num = T_2_1.num;
        }

  LINE(96);
        {
        CLUREF T_2_1;
        err = arrayOPnew(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        dbg_infoOPptowns.num = T_2_1.num;
        }

  LINE(97);
        {
        CLUREF T_2_1;
        err = arrayOPnew(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        dbg_infoOPpopowns.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(99);
    {
    CLUREF T_1_1;
    T_1_1.num = ((context.str->size != STR_op.str->size)? false :
        !(bcmp(context.str->data, STR_op.str->data, context.str->size)));
    if (T_1_1.num == true) {
        {
        dbg_infoOPis_op_parmd.num = parmd.num;
        }
        }
        }/* end if */
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE set_own_context ****/


/**** BEGIN PROCEDURE add_own ****/

errcode dbg_infoOPadd_own(entry)
CLUREF entry;
    {
    errcode err;
    errcode ecode2;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(102);

  LINE(103);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(104);
    {
    if (dbg_infoOPis_op_parmd.num == true) {

  LINE(107);
        {
        {
        if ((dbg_infoOPpopowns.array->int_low + dbg_infoOPpopowns.array->ext_size + 1) < dbg_infoOPpopowns.array->int_size) {
            dbg_infoOPpopowns.array->store->data[dbg_infoOPpopowns.array->int_low + dbg_infoOPpopowns.array->ext_size] = entry.num;
            dbg_infoOPpopowns.array->ext_size++; dbg_infoOPpopowns.array->ext_high++;}
        else {
            err = arrayOPaddh(dbg_infoOPpopowns, entry);
            if (err != ERR_ok) goto ex_0;}
        }
        }

  LINE(108);
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(110);
    {
    if (dbg_infoOPis_type_parmd.num == true) {

  LINE(112);
        {
        CLUREF T_2_1;
        CellAlloc(2, entry.num, T_2_1);
        {
        if ((dbg_infoOPptowns.array->int_low + dbg_infoOPptowns.array->ext_size + 1) < dbg_infoOPptowns.array->int_size) {
            dbg_infoOPptowns.array->store->data[dbg_infoOPptowns.array->int_low + dbg_infoOPptowns.array->ext_size] = T_2_1.num;
            dbg_infoOPptowns.array->ext_size++; dbg_infoOPptowns.array->ext_high++;}
        else {
            err = arrayOPaddh(dbg_infoOPptowns, T_2_1);
            if (err != ERR_ok) goto ex_0;}
        }
        }

  LINE(113);
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(115);
    {
    CLUREF T_1_1;
    err = current_typeOPexists(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(116);
        {
        CLUREF T_2_1;
        CellAlloc(2, entry.num, T_2_1);
        {
        if ((dbg_infoOPowns.array->int_low + dbg_infoOPowns.array->ext_size + 1) < dbg_infoOPowns.array->int_size) {
            dbg_infoOPowns.array->store->data[dbg_infoOPowns.array->int_low + dbg_infoOPowns.array->ext_size] = T_2_1.num;
            dbg_infoOPowns.array->ext_size++; dbg_infoOPowns.array->ext_high++;}
        else {
            err = arrayOPaddh(dbg_infoOPowns, T_2_1);
            if (err != ERR_ok) goto ex_0;}
        }
        }
        }
        }/* end if */
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE add_own ****/


/**** BEGIN PROCEDURE add_ilist ****/

errcode dbg_infoOPadd_ilist(entry)
CLUREF entry;
    {
    errcode err;
    errcode ecode2;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(120);

  LINE(121);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(122);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = current_typeOPexists(&T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_1.num = T_1_2.num;
    if (T_1_2.num) {
        err = current_typeOPparmd(&T_1_3);
        if (err != ERR_ok) goto ex_0;
        T_1_1.num = T_1_3.num;
    }
    if (T_1_1.num == true) {

  LINE(125);
        {
        CLUREF T_2_1;
        CellAlloc(1, entry.num, T_2_1);
        {
        if ((dbg_infoOPptowns.array->int_low + dbg_infoOPptowns.array->ext_size + 1) < dbg_infoOPptowns.array->int_size) {
            dbg_infoOPptowns.array->store->data[dbg_infoOPptowns.array->int_low + dbg_infoOPptowns.array->ext_size] = T_2_1.num;
            dbg_infoOPptowns.array->ext_size++; dbg_infoOPptowns.array->ext_high++;}
        else {
            err = arrayOPaddh(dbg_infoOPptowns, T_2_1);
            if (err != ERR_ok) goto ex_0;}
        }
        }
        }
    else {

  LINE(127);
        {
        CLUREF T_2_1;
        CellAlloc(1, entry.num, T_2_1);
        {
        if ((dbg_infoOPowns.array->int_low + dbg_infoOPowns.array->ext_size + 1) < dbg_infoOPowns.array->int_size) {
            dbg_infoOPowns.array->store->data[dbg_infoOPowns.array->int_low + dbg_infoOPowns.array->ext_size] = T_2_1.num;
            dbg_infoOPowns.array->ext_size++; dbg_infoOPowns.array->ext_high++;}
        else {
            err = arrayOPaddh(dbg_infoOPowns, T_2_1);
            if (err != ERR_ok) goto ex_0;}
        }
        }
        }}/* end if */
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE add_ilist ****/

static int dbg_infoOPemit_extern_own_init = 0;

/**** BEGIN PROCEDURE emit_extern ****/

errcode dbg_infoOPemit_extern(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (dbg_infoOPemit_extern_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPemit_extern_own_init = 1;
    }
    enter_proc(132);

  LINE(133);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(134);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = stringOPconcat(STR_extern_040struct_040dbg_137info_052_040dbg_137info_137, dbg_infoOPnm, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_1, STR__073, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(135);
    {
    err = g_envOPputl(e, STR__043undef_040MY_137TRACE_137FLAG);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(136);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = stringOPconcat(STR__043define_040MY_137TRACE_137FLAG_040, dbg_infoOPnm, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_1, STR__137TRACE, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(137);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = stringOPconcat(STR_int_040, dbg_infoOPnm, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_1, STR__137TRACE_073, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_extern ****/

static int dbg_infoOPemit_local_entry_own_init = 0;

/**** BEGIN PROCEDURE emit_local_entry ****/

errcode dbg_infoOPemit_local_entry(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (dbg_infoOPemit_local_entry_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPemit_local_entry_own_init = 1;
    }
    enter_proc(140);

  LINE(141);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(142);
    {
    err = g_envOPputl(e, STR_struct_040dbg_137info_040_052DBG_137INFO_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(143);
    {
    err = g_envOPputl(e, STR_int_040DBG_137LINE_073);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_local_entry ****/

static int dbg_infoOPinit_local_entry_own_init = 0;

/**** BEGIN PROCEDURE init_local_entry ****/

errcode dbg_infoOPinit_local_entry(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (dbg_infoOPinit_local_entry_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPinit_local_entry_own_init = 1;
    }
    enter_proc(146);

  LINE(147);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(148);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = stringOPconcat(STR_locals_056DBG_137INFO_040_075_040dbg_137info_137, dbg_infoOPnm, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_1, STR__073, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE init_local_entry ****/


/**** BEGIN PROCEDURE add_locals ****/

errcode dbg_infoOPadd_locals(lcls)
CLUREF lcls;
    {
    errcode err;
    errcode ecode2;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(152);

  LINE(153);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(154);
    {
    dbg_infoOPlocals_UNIQ.num = lcls.num;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE add_locals ****/


/**** BEGIN PROCEDURE extend_locals ****/

errcode dbg_infoOPextend_locals(d)
CLUREF d;
    {
    errcode err;
    errcode ecode2;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(158);

  LINE(159);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(160);
    {
    {
    if ((dbg_infoOPlocals_UNIQ.array->int_low + dbg_infoOPlocals_UNIQ.array->ext_size + 1) < dbg_infoOPlocals_UNIQ.array->int_size) {
        dbg_infoOPlocals_UNIQ.array->store->data[dbg_infoOPlocals_UNIQ.array->int_low + dbg_infoOPlocals_UNIQ.array->ext_size] = d.num;
        dbg_infoOPlocals_UNIQ.array->ext_size++; dbg_infoOPlocals_UNIQ.array->ext_high++;}
    else {
        err = arrayOPaddh(dbg_infoOPlocals_UNIQ, d);
        if (err != ERR_ok) goto ex_0;}
    }
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE extend_locals ****/


/**** BEGIN PROCEDURE add_local ****/

errcode dbg_infoOPadd_local(anelt)
CLUREF anelt;
    {
    errcode err;
    errcode ecode2;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(164);

  LINE(165);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(166);
    {
    {
    if ((dbg_infoOPinternal_locals.array->int_low + dbg_infoOPinternal_locals.array->ext_size + 1) < dbg_infoOPinternal_locals.array->int_size) {
        dbg_infoOPinternal_locals.array->store->data[dbg_infoOPinternal_locals.array->int_low + dbg_infoOPinternal_locals.array->ext_size] = anelt.num;
        dbg_infoOPinternal_locals.array->ext_size++; dbg_infoOPinternal_locals.array->ext_high++;}
    else {
        err = arrayOPaddh(dbg_infoOPinternal_locals, anelt);
        if (err != ERR_ok) goto ex_0;}
    }
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE add_local ****/


/**** BEGIN PROCEDURE emit_decls ****/

errcode dbg_infoOPemit_decls(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(169);

  LINE(170);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(171);
    {
    err = dbg_infoOPemit_externs(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(172);
    {
    err = dbg_infoOPemit_sub_typedefs(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(173);
    {
    err = dbg_infoOPemit_typedef(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(174);
    {
    err = dbg_infoOPemit_sub_decls(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(175);
    {
    err = dbg_infoOPemit_decl(e);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_decls ****/

static int dbg_infoOPemit_externs_own_init = 0;

/**** BEGIN PROCEDURE emit_externs ****/

errcode dbg_infoOPemit_externs(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
    CLUREF oname;
    CLUREF each_val;
    CLUREF i;
    CLUREF each_idn;
    CLUREF each_type;
    CLUREF t;
    CLUREF o;
    CLUREF tinit;
    CLUREF each_init;
    CLUREF d;
    CLUREF di;
    CLUREF opinit;
        if (dbg_infoOPemit_externs_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPemit_externs_own_init = 1;
    }
    enter_proc(178);

  LINE(181);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
        T_1_1.num = dbg_infoOPap.vec->data[10];
        T_1_3.num = T_1_1.vec->size; 
        T_1_4 = T_1_1;
        for (T_1_2.num = 1; T_1_2.num <= T_1_3.num; T_1_2.num++) {
            each_val.num = T_1_4.vec->data[T_1_2.num - 1];

  LINE(182);
            {
            err = dbg_infoOPemit_extern_typespec(e, each_val);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_1:;

  LINE(185);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_1.num = dbg_infoOPap.vec->data[8];
        T_1_3.num = T_1_1.vec->size; 
        for (T_1_2.num = 1; T_1_2.num <= T_1_3.num; T_1_2.num++) {
            i.num = T_1_2.num;

  LINE(186);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            CLUREF T_2_5;
            CLUREF T_2_6;
                T_2_1.num = dbg_infoOPap.vec->data[8];
                if (i.num < 1 || i.num > T_2_1.vec->size ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_2_2.num = T_2_1.vec->data[i.num - 1];
                T_2_3.num = T_2_2.vec->data[1];
                T_2_5.num = T_2_3.vec->size; 
                T_2_6 = T_2_3;
                for (T_2_4.num = 1; T_2_4.num <= T_2_5.num; T_2_4.num++) {
                    each_val.num = T_2_6.vec->data[T_2_4.num - 1];

  LINE(187);
                    {
                    err = dbg_infoOPemit_extern_typespec(e, each_val);
                    if (err != ERR_ok) goto ex_0;
                    }
                }
            }
            end_inline_for_3:;
        }
    }
    end_inline_for_2:;

  LINE(191);
    {
    CLUREF T_1_1;
    err = g_envOPadd_extern(STR_int_137ops, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(192);
        {
        err = g_envOPputl(e, STR_extern_040struct_040OPS_040_052int_137ops_073);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(194);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = dbg_infoOPlocals_UNIQ.array->ext_high; 
        T_1_3 = dbg_infoOPlocals_UNIQ;
        for (T_1_1.num = dbg_infoOPlocals_UNIQ.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            if (T_1_1.num > T_1_3.array->ext_high || T_1_1.num < T_1_3.array->ext_low) {
                err = ERR_failure;
                elist[0].str = array_bounds_exception_STRING;
                goto ex_0;}
            each_val.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(195);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
                T_2_1.num = each_val.vec->data[0];
                T_2_3.num = T_2_1.vec->size; 
                T_2_4 = T_2_1;
                for (T_2_2.num = 1; T_2_2.num <= T_2_3.num; T_2_2.num++) {
                    each_idn.num = T_2_4.vec->data[T_2_2.num - 1];

  LINE(196);
                    {

  LINE(198);
                        {
                        CLUREF T_5_1;
                        err = idnOPget_kind(each_idn, &T_5_1);
                        if (err != ERR_ok) goto ex_1;
                        switch (T_5_1.cell->tag) {
                        case 9: 
                             {CLUREF T_5_2;
                            T_5_2.num = T_5_1.cell->value;
                            t.num = T_5_2.num;

  LINE(200);
                                {
                                each_type.num = t.num;
                                }
                                break;
                                }
                        case 10: 
                             {CLUREF T_5_3;
                            T_5_3.num = T_5_1.cell->value;
                            t.num = T_5_3.num;

  LINE(202);
                                {
                                each_type.num = t.num;
                                }
                                break;
                                }
                        case 6: 
                        case 5: 
                             {CLUREF T_5_4;
                            T_5_4.num = T_5_1.cell->value;
                            o.num = T_5_4.num;

  LINE(204);
                                {
                                oname = STR_NULL_137OPS;
                                }

  LINE(205);
                                {
                                    err = "ERR_done";
                                    goto ex_1;
                                    }
                                break;
                                }
                        case 4: 
                             {

  LINE(207);
                                {
                                CLUREF T_6_1;
                                CLUREF T_6_2;
                                T_6_1.num = 200;
                                err = compiler_logit(T_6_1, STR_unhandled_040idnkind_040in_040emit_137externs_040_050ownvar_051, &T_6_2);
                                if (err != ERR_ok) goto ex_1;
                                }
                                break;
                                }
                        default: {

  LINE(209);
                            {
                            CLUREF T_6_1;
                            CLUREF T_6_2;
                            T_6_1.num = 201;
                            err = compiler_logit(T_6_1, STR_unhandled_040idnkind_040in_040emit_137externs, &T_6_2);
                            if (err != ERR_ok) goto ex_1;
                            }
                        }
                        }
                        }

  LINE(211);
                        {
                        err = dbg_infoOPemit_extern_typespec(e, each_type);
                        if (err != ERR_ok) goto ex_1;
                        }
                        }
                        goto end_1;
                        ex_1:
                            if (errcmp(err, "ERR_done")) {
                            }
                            else {
                                goto ex_0;
                            }
                        end_1:;
                }
            }
            end_inline_for_5:;
        }
    }
    end_inline_for_4:;

  LINE(217);
    {
    CLUREF T_1_1;
    err = current_typeOPexists(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(218);
        {
            {CLUREF T_2_1;
            CLUREF T_2_2;
            err = current_typeOPget(&T_2_1);
            if (err != ERR_ok) goto ex_0;
            T_2_2.num = T_2_1.vec->data[4];
            tinit.num = T_2_2.num;
            }
            }

  LINE(219);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
            T_2_2.num = tinit.vec->size; 
            T_2_3 = tinit;
            for (T_2_1.num = 1; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                each_init.num = T_2_3.vec->data[T_2_1.num - 1];

  LINE(220);
                {
                    {CLUREF T_3_1;
                    T_3_1.num = each_init.vec->data[1];
                    each_val.num = T_3_1.num;
                    }
                    }

  LINE(221);
                {
                switch (each_val.cell->tag) {
                case 1: 
                     {CLUREF T_3_1;
                    T_3_1.num = each_val.cell->value;
                    d.num = T_3_1.num;

  LINE(223);
                        {
                            {CLUREF T_4_1;
                            T_4_1.num = d.vec->data[1];
                            each_type.num = T_4_1.num;
                            }
                            }

  LINE(224);
                        {
                        err = dbg_infoOPemit_extern_typespec(e, each_type);
                        if (err != ERR_ok) goto ex_0;
                        }
                        break;
                        }
                case 2: 
                     {CLUREF T_3_2;
                    T_3_2.num = each_val.cell->value;
                    di.num = T_3_2.num;

  LINE(226);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        CLUREF T_4_3;
                        CLUREF T_4_4;
                            T_4_1.num = di.vec->data[1];
                            T_4_3.num = T_4_1.vec->size; 
                            T_4_4 = T_4_1;
                            for (T_4_2.num = 1; T_4_2.num <= T_4_3.num; T_4_2.num++) {
                                d.num = T_4_4.vec->data[T_4_2.num - 1];

  LINE(227);
                                {
                                    {CLUREF T_5_1;
                                    T_5_1.num = d.vec->data[1];
                                    each_type.num = T_5_1.num;
                                    }
                                    }

  LINE(228);
                                {
                                err = dbg_infoOPemit_extern_typespec(e, each_type);
                                if (err != ERR_ok) goto ex_0;
                                }
                            }
                        }
                        end_inline_for_7:;
                        break;
                        }
                }
                }
            }
        }
        end_inline_for_6:;

  LINE(233);
        {
            {CLUREF T_2_1;
            T_2_1.num = dbg_infoOPap.vec->data[5];
            opinit.num = T_2_1.num;
            }
            }

  LINE(234);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
            T_2_2.num = opinit.vec->size; 
            T_2_3 = opinit;
            for (T_2_1.num = 1; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                each_init.num = T_2_3.vec->data[T_2_1.num - 1];

  LINE(235);
                {
                    {CLUREF T_3_1;
                    T_3_1.num = each_init.vec->data[1];
                    each_val.num = T_3_1.num;
                    }
                    }

  LINE(236);
                {
                switch (each_val.cell->tag) {
                case 1: 
                     {CLUREF T_3_1;
                    T_3_1.num = each_val.cell->value;
                    d.num = T_3_1.num;

  LINE(238);
                        {
                            {CLUREF T_4_1;
                            T_4_1.num = d.vec->data[1];
                            each_type.num = T_4_1.num;
                            }
                            }

  LINE(239);
                        {
                        err = dbg_infoOPemit_extern_typespec(e, each_type);
                        if (err != ERR_ok) goto ex_0;
                        }
                        break;
                        }
                case 2: 
                     {CLUREF T_3_2;
                    T_3_2.num = each_val.cell->value;
                    di.num = T_3_2.num;

  LINE(241);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        CLUREF T_4_3;
                        CLUREF T_4_4;
                            T_4_1.num = di.vec->data[1];
                            T_4_3.num = T_4_1.vec->size; 
                            T_4_4 = T_4_1;
                            for (T_4_2.num = 1; T_4_2.num <= T_4_3.num; T_4_2.num++) {
                                d.num = T_4_4.vec->data[T_4_2.num - 1];

  LINE(242);
                                {
                                    {CLUREF T_5_1;
                                    T_5_1.num = d.vec->data[1];
                                    each_type.num = T_5_1.num;
                                    }
                                    }

  LINE(243);
                                {
                                err = dbg_infoOPemit_extern_typespec(e, each_type);
                                if (err != ERR_ok) goto ex_0;
                                }
                            }
                        }
                        end_inline_for_9:;
                        break;
                        }
                }
                }
            }
        }
        end_inline_for_8:;
        }
        }/* end if */
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_externs ****/

static int dbg_infoOPemit_own_externs_own_init = 0;

/**** BEGIN PROCEDURE emit_own_externs ****/

errcode dbg_infoOPemit_own_externs(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
    CLUREF oname;
    CLUREF each_anown;
    CLUREF il;
    CLUREF each_init;
    CLUREF each_val;
    CLUREF d;
    CLUREF each_type;
    CLUREF di;
        if (dbg_infoOPemit_own_externs_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPemit_own_externs_own_init = 1;
    }
    enter_proc(251);

  LINE(254);
    {
    CLUREF T_1_1;
    err = g_envOPadd_extern(STR_int_137ops, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(255);
        {
        err = g_envOPputl(e, STR_extern_040struct_040OPS_040_052int_137ops_073);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(257);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = dbg_infoOPowns.array->ext_high; 
        T_1_3 = dbg_infoOPowns;
        for (T_1_1.num = dbg_infoOPowns.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            if (T_1_1.num > T_1_3.array->ext_high || T_1_1.num < T_1_3.array->ext_low) {
                err = ERR_failure;
                elist[0].str = array_bounds_exception_STRING;
                goto ex_0;}
            each_anown.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(258);
            {
            switch (each_anown.cell->tag) {
            case 1: 
                 {CLUREF T_2_1;
                T_2_1.num = each_anown.cell->value;
                il.num = T_2_1.num;

  LINE(260);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                        T_3_2.num = il.vec->size; 
                        T_3_3 = il;
                        for (T_3_1.num = 1; T_3_1.num <= T_3_2.num; T_3_1.num++) {
                            each_init.num = T_3_3.vec->data[T_3_1.num - 1];

  LINE(261);
                            {
                                {CLUREF T_4_1;
                                T_4_1.num = each_init.vec->data[1];
                                each_val.num = T_4_1.num;
                                }
                                }

  LINE(262);
                            {
                            switch (each_val.cell->tag) {
                            case 1: 
                                 {CLUREF T_4_1;
                                T_4_1.num = each_val.cell->value;
                                d.num = T_4_1.num;

  LINE(264);
                                    {
                                        {CLUREF T_5_1;
                                        T_5_1.num = d.vec->data[1];
                                        each_type.num = T_5_1.num;
                                        }
                                        }

  LINE(265);
                                    {
                                    err = dbg_infoOPemit_extern_typespec(e, each_type);
                                    if (err != ERR_ok) goto ex_0;
                                    }
                                    break;
                                    }
                            case 2: 
                                 {CLUREF T_4_2;
                                T_4_2.num = each_val.cell->value;
                                di.num = T_4_2.num;

  LINE(267);
                                    {
                                    CLUREF T_5_1;
                                    CLUREF T_5_2;
                                    CLUREF T_5_3;
                                    CLUREF T_5_4;
                                        T_5_1.num = di.vec->data[1];
                                        T_5_3.num = T_5_1.vec->size; 
                                        T_5_4 = T_5_1;
                                        for (T_5_2.num = 1; T_5_2.num <= T_5_3.num; T_5_2.num++) {
                                            d.num = T_5_4.vec->data[T_5_2.num - 1];

  LINE(268);
                                            {
                                                {CLUREF T_6_1;
                                                T_6_1.num = d.vec->data[1];
                                                each_type.num = T_6_1.num;
                                                }
                                                }

  LINE(269);
                                            {
                                            err = dbg_infoOPemit_extern_typespec(e, each_type);
                                            if (err != ERR_ok) goto ex_0;
                                            }
                                        }
                                    }
                                    end_inline_for_3:;
                                    break;
                                    }
                            }
                            }
                        }
                    }
                    end_inline_for_2:;
                    break;
                    }
            default: {
            }
            }
            }
        }
    }
    end_inline_for_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_own_externs ****/

static int dbg_infoOPemit_extern_typespec_own_init = 0;

/**** BEGIN PROCEDURE emit_extern_typespec ****/

errcode dbg_infoOPemit_extern_typespec(e, each_val)
CLUREF e;
CLUREF each_val;
    {
    errcode err;
    errcode ecode2;
    CLUREF oname;
    CLUREF ct;
    CLUREF each_parm;
    CLUREF at;
    CLUREF xt;
    CLUREF id;
    CLUREF ty;
        if (dbg_infoOPemit_extern_typespec_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPemit_extern_typespec_own_init = 1;
    }
    enter_proc(278);

  LINE(280);
    {
    CLUREF T_1_1;
    err = typespecOPget_abs(each_val, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    switch (T_1_1.cell->tag) {
    case 3: 
    case 8: 
         {CLUREF T_1_2;
        T_1_2.num = T_1_1.cell->value;
        ct.num = T_1_2.num;

  LINE(282);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            CLUREF T_2_5;
            T_2_2.num = ct.vec->data[1];
            err = el_cont_type_parm(T_2_2, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            T_2_1.num = T_2_3.num;
            if (!T_2_3.num) {
                T_2_4.num = ct.vec->data[1];
                err = el_cont_op_parm(T_2_4, &T_2_5);
                if (err != ERR_ok) goto ex_0;
                T_2_1.num = T_2_5.num;
            }
            if (T_2_1.num == true) {

  LINE(283);
                {
                {signal (ERR_ok);}}
                }
                }/* end if */

  LINE(284);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ct.vec->data[1];
            err = sequenceOPempty(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            if (T_2_2.num == true) {

  LINE(286);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                T_3_1.num = ct.vec->data[0];
                err = duOPget_common(T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_2, STR__137ops, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                oname.num = T_3_3.num;
                }
                }
            else {

  LINE(288);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                T_3_1.num = ct.vec->data[0];
                err = duOPget_common(T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_2, STR__137of, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                oname.num = T_3_3.num;
                }

  LINE(289);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                    T_3_1.num = ct.vec->data[1];
                    T_3_3.num = T_3_1.vec->size; 
                    T_3_4 = T_3_1;
                    for (T_3_2.num = 1; T_3_2.num <= T_3_3.num; T_3_2.num++) {
                        each_parm.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(290);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        CLUREF T_4_3;
                        err = stringOPconcat(oname, STR__137, &T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        err = s_expr4(each_parm, &T_4_2);
                        if (err != ERR_ok) goto ex_0;
                        err = stringOPconcat(T_4_1, T_4_2, &T_4_3);
                        if (err != ERR_ok) goto ex_0;
                        oname.num = T_4_3.num;
                        }
                    }
                }
                end_inline_for_1:;

  LINE(292);
                {
                CLUREF T_3_1;
                err = stringOPconcat(oname, STR__137ops, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                oname.num = T_3_1.num;
                }
                }}/* end if */
            break;
            }
    case 2: 
         {CLUREF T_1_3;
        T_1_3.num = T_1_1.cell->value;
        at.num = T_1_3.num;

  LINE(297);
            {
            {signal (ERR_ok);}}
            break;
            }
    case 7: 
         {CLUREF T_1_4;
        T_1_4.num = T_1_1.cell->value;
        xt.num = T_1_4.num;

  LINE(299);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            CLUREF T_2_5;
            T_2_2.num = xt.vec->data[1];
            err = fl_cont_type_parm(T_2_2, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            T_2_1.num = T_2_3.num;
            if (!T_2_3.num) {
                T_2_4.num = xt.vec->data[1];
                err = fl_cont_op_parm(T_2_4, &T_2_5);
                if (err != ERR_ok) goto ex_0;
                T_2_1.num = T_2_5.num;
            }
            if (T_2_1.num == true) {

  LINE(300);
                {
                {signal (ERR_ok);}}
                }
                }/* end if */

  LINE(301);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            CLUREF T_2_5;
            CLUREF T_2_6;
            CLUREF T_2_7;
            T_2_1.num = xt.vec->data[0];
            err = duOPget_common(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_2, STR__137, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            T_2_4.num = xt.vec->data[1];
            err = make_sel_name(T_2_4, &T_2_5);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_3, T_2_5, &T_2_6);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_6, STR__137ops, &T_2_7);
            if (err != ERR_ok) goto ex_0;
            oname.num = T_2_7.num;
            }
            break;
            }
    case 5: 
         {CLUREF T_1_5;
        T_1_5.num = T_1_1.cell->value;
        id.num = T_1_5.num;

  LINE(303);
            {
            CLUREF T_2_1;
            err = idnOPget_kind(id, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            switch (T_2_1.cell->tag) {
            case 6: 
                 {

  LINE(305);
                    {
                    {signal (ERR_ok);}}
                    break;
                    }
            default: {

  LINE(307);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                err = idnOPget_str(id, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_1, STR__137ops, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                oname.num = T_3_2.num;
                }
            }
            }
            }
            break;
            }
    case 4: 
         {

  LINE(310);
            {
                {CLUREF T_2_1;
                CLUREF T_2_2;
                err = current_typeOPget(&T_2_1);
                if (err != ERR_ok) goto ex_0;
                T_2_2.num = T_2_1.vec->data[1];
                ty.num = T_2_2.num;
                }
                }

  LINE(311);
            {
            err = dbg_infoOPemit_extern_typespec(e, ty);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(312);
            {
            {signal (ERR_ok);}}
            break;
            }
    case 1: 
         {

  LINE(314);
            {
            {signal (ERR_ok);}}
            break;
            }
    default: {

  LINE(316);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 202;
        err = compiler_logit(T_2_1, STR_unexpected_040typeabs_040value_040emit_137extern_137typespec, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(317);
        {
        err = typespec_print(each_val);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(318);
        {
        {signal (ERR_ok);}}
    }
    }
    }

  LINE(320);
    {
    CLUREF T_1_1;
    err = g_envOPadd_extern(oname, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(321);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = stringOPconcat(STR_extern_040struct_040OPS_040_052, oname, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR__073, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputl(e, T_2_2);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_extern_typespec ****/


/**** BEGIN PROCEDURE emit_sub_typedefs ****/

errcode dbg_infoOPemit_sub_typedefs(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(326);

  LINE(327);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(328);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = dbg_infoOPap.vec->data[10];
    T_1_2.num = T_1_1.vec->size;
    dbg_infoOPnvals.num = T_1_2.num;
    }

  LINE(329);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = dbg_infoOPap.vec->data[8];
    T_1_2.num = T_1_1.vec->size;
    dbg_infoOPnsigs.num = T_1_2.num;
    }

  LINE(330);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = dbg_infoOPidns_in_decls(dbg_infoOPlocals_UNIQ, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    T_1_2.num = dbg_infoOPinternal_locals.array->ext_size;
    T_1_3.num = T_1_1.num + T_1_2.num;
     if ((T_1_3.num > 0 && T_1_1.num < 0 && T_1_2.num < 0) || 
         (T_1_3.num < 0 && T_1_1.num > 0 && T_1_2.num > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    dbg_infoOPnlocals.num = T_1_3.num;
    }

  LINE(331);
    {
    CLUREF T_1_1;
    err = current_typeOPexists(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(332);
        {
        CLUREF T_2_1;
        err = current_typeOPparmd(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        if (T_2_1.num == true) {

  LINE(333);
            {
            CLUREF T_3_1;
            err = current_applyOPparmd(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            if (T_3_1.num == true) {

  LINE(336);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                CLUREF T_4_4;
                T_4_1.num = dbg_infoOPap.vec->data[5];
                err = dbg_infoOPvars_in_initlist(T_4_1, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                T_4_3.num = dbg_infoOPpopowns.array->ext_size;
                T_4_4.num = T_4_2.num + T_4_3.num;
                 if ((T_4_4.num > 0 && T_4_2.num < 0 && T_4_3.num < 0) || 
                     (T_4_4.num < 0 && T_4_2.num > 0 && T_4_3.num > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                dbg_infoOPnpopowns.num = T_4_4.num;
                }

  LINE(337);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                CLUREF T_4_4;
                T_4_2.num = (dbg_infoOPnpopowns.num > 0)? true : false;
                T_4_1.num = T_4_2.num;
                if (T_4_2.num) {
                    T_4_3.num = dbg_infoOPpopowns.array->ext_size;
                    T_4_4.num = (dbg_infoOPnpopowns.num == T_4_3.num)? true : false;
                    T_4_1.num = T_4_4.num;
                }
                if (T_4_1.num == true) {

  LINE(338);
                    {
                    CLUREF T_5_1;
                    T_5_1.num = dbg_infoOPnpopowns.num + 1;
                     if ((T_5_1.num > 0 && dbg_infoOPnpopowns.num < 0 && 1 < 0) || 
                         (T_5_1.num < 0 && dbg_infoOPnpopowns.num > 0 && 1 > 0)) {
                        err = ERR_overflow;
                        goto ex_0;}
                    dbg_infoOPnpopowns.num = T_5_1.num;
                    }
                    }
                    }/* end if */
                }
            else {

  LINE(342);
                {
                dbg_infoOPnpopowns.num = 0;
                }
                }}/* end if */
            }
        else {

  LINE(345);
            {
            CLUREF T_3_1;
            err = current_applyOPparmd(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            if (T_3_1.num == true) {

  LINE(348);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                CLUREF T_4_4;
                T_4_1.num = dbg_infoOPap.vec->data[5];
                err = dbg_infoOPvars_in_initlist(T_4_1, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                T_4_3.num = dbg_infoOPpopowns.array->ext_size;
                T_4_4.num = T_4_2.num + T_4_3.num;
                 if ((T_4_4.num > 0 && T_4_2.num < 0 && T_4_3.num < 0) || 
                     (T_4_4.num < 0 && T_4_2.num > 0 && T_4_3.num > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                dbg_infoOPnpopowns.num = T_4_4.num;
                }

  LINE(349);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                CLUREF T_4_4;
                T_4_2.num = (dbg_infoOPnpopowns.num > 0)? true : false;
                T_4_1.num = T_4_2.num;
                if (T_4_2.num) {
                    T_4_3.num = dbg_infoOPpopowns.array->ext_size;
                    T_4_4.num = (dbg_infoOPnpopowns.num == T_4_3.num)? true : false;
                    T_4_1.num = T_4_4.num;
                }
                if (T_4_1.num == true) {

  LINE(350);
                    {
                    CLUREF T_5_1;
                    T_5_1.num = dbg_infoOPnpopowns.num + 1;
                     if ((T_5_1.num > 0 && dbg_infoOPnpopowns.num < 0 && 1 < 0) || 
                         (T_5_1.num < 0 && dbg_infoOPnpopowns.num > 0 && 1 > 0)) {
                        err = ERR_overflow;
                        goto ex_0;}
                    dbg_infoOPnpopowns.num = T_5_1.num;
                    }
                    }
                    }/* end if */
                }
            else {

  LINE(354);
                {
                dbg_infoOPnpopowns.num = 0;
                }
                }}/* end if */
            }}/* end if */
        }
    else {

  LINE(359);
        {
        CLUREF T_2_1;
        err = current_applyOPparmd(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        if (T_2_1.num == true) {

  LINE(362);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            CLUREF T_3_4;
            T_3_1.num = dbg_infoOPap.vec->data[5];
            err = dbg_infoOPvars_in_initlist(T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            T_3_3.num = dbg_infoOPpopowns.array->ext_size;
            T_3_4.num = T_3_2.num + T_3_3.num;
             if ((T_3_4.num > 0 && T_3_2.num < 0 && T_3_3.num < 0) || 
                 (T_3_4.num < 0 && T_3_2.num > 0 && T_3_3.num > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            dbg_infoOPnpopowns.num = T_3_4.num;
            }

  LINE(363);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            CLUREF T_3_4;
            T_3_2.num = (dbg_infoOPnpopowns.num > 0)? true : false;
            T_3_1.num = T_3_2.num;
            if (T_3_2.num) {
                T_3_3.num = dbg_infoOPpopowns.array->ext_size;
                T_3_4.num = (dbg_infoOPnpopowns.num == T_3_3.num)? true : false;
                T_3_1.num = T_3_4.num;
            }
            if (T_3_1.num == true) {

  LINE(364);
                {
                CLUREF T_4_1;
                T_4_1.num = dbg_infoOPnpopowns.num + 1;
                 if ((T_4_1.num > 0 && dbg_infoOPnpopowns.num < 0 && 1 < 0) || 
                     (T_4_1.num < 0 && dbg_infoOPnpopowns.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                dbg_infoOPnpopowns.num = T_4_1.num;
                }
                }
                }/* end if */
            }
        else {

  LINE(368);
            {
            dbg_infoOPnpopowns.num = 0;
            }
            }}/* end if */
        }}/* end if */

  LINE(371);
    {
    err = dbg_infoOPemit_vlist_typedef(e, dbg_infoOPnvals);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(372);
    {
    err = dbg_infoOPemit_vlist_typedef(e, dbg_infoOPnsigs);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(373);
    {
    err = dbg_infoOPemit_vlist_typedef(e, dbg_infoOPnlocals);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(374);
    {
    err = dbg_infoOPemit_vlist_typedef(e, dbg_infoOPnowns);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(375);
    {
    err = dbg_infoOPemit_vlist_typedef(e, dbg_infoOPnptowns);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(376);
    {
    err = dbg_infoOPemit_vlist_typedef(e, dbg_infoOPnpopowns);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_sub_typedefs ****/

static int dbg_infoOPemit_vlist_typedef_own_init = 0;

/**** BEGIN PROCEDURE emit_vlist_typedef ****/

errcode dbg_infoOPemit_vlist_typedef(e, n)
CLUREF e;
CLUREF n;
    {
    errcode err;
    errcode ecode2;
    CLUREF nstr;
        if (dbg_infoOPemit_vlist_typedef_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPemit_vlist_typedef_own_init = 1;
    }
    enter_proc(379);

  LINE(380);
    {
    CLUREF T_1_1;
    err = g_envOPadd_vlist(n, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(381);
        {
            {CLUREF T_2_1;
            err = intOPunparse(n, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            nstr.num = T_2_1.num;
            }
            }

  LINE(382);
        {
        err = g_envOPputl(e, STR_typedef_040struct_040_173);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(383);
        {
        err = g_envOPputl(e, STR__040_040_040_040_040_040_040_040int_040hdr_073);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(384);
        {
        err = g_envOPputl(e, STR__040_040_040_040_040_040_040_040int_040count_073);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(385);
        {
        err = g_envOPputs(e, STR__040_040_040_040_040_040_040_040var_137desc_040vds_133);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(386);
        {
        err = g_envOPputs(e, nstr);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(387);
        {
        err = g_envOPputl(e, STR__135_073);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(388);
        {
        err = g_envOPputs(e, STR__040_040_040_040_040_040_040_040_175_040Vlist);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(389);
        {
        err = g_envOPputs(e, nstr);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(390);
        {
        err = g_envOPputl(e, STR__073);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_vlist_typedef ****/

static int dbg_infoOPemit_typedef_own_init = 0;

/**** BEGIN PROCEDURE emit_typedef ****/

errcode dbg_infoOPemit_typedef(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (dbg_infoOPemit_typedef_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPemit_typedef_own_init = 1;
    }
    enter_proc(395);

  LINE(396);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(398);
    {
    err = g_envOPputl(e, STR_typedef_040struct_040_173);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(399);
    {
    err = g_envOPindent(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(401);
    {
    err = g_envOPputl(e, STR_int_040hdr_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(403);
    {
    err = g_envOPputl(e, STR_int_040count_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(405);
    {
    err = g_envOPputl(e, STR_char_040_052name_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(407);
    {
    err = g_envOPputl(e, STR_char_040_052fname_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(409);
    {
    err = g_envOPputl(e, STR_bool_040is_137iter_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(410);
    {
    err = g_envOPputl(e, STR_int_040is_137parmd_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(412);
    {
    err = g_envOPputl(e, STR_int_040addr_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(414);
    {
    err = g_envOPputl(e, STR_int_040nargs_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(417);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = intOPunparse(dbg_infoOPnvals, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_Vlist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040_052vals_073, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_3);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(418);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = intOPunparse(dbg_infoOPnsigs, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_siglist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040_052sigs_073, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_3);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(419);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = intOPunparse(dbg_infoOPnlocals, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_Vlist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040_052locals_073, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_3);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(420);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = intOPunparse(dbg_infoOPnowns, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_Vlist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040_052owns_073, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_3);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(421);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = intOPunparse(dbg_infoOPnptowns, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_Vlist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040_052ptowns_073, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_3);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(422);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = intOPunparse(dbg_infoOPnpopowns, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_Vlist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040_052popowns_073, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_3);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(423);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = intOPunparse(dbg_infoOPntypeformals, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_Slist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040_052type_137formals_073, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_3);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(424);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = intOPunparse(dbg_infoOPnopformals, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_Slist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040_052op_137formals_073, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_3);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(425);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = stringOPconcat(STR__175_040dbg_137info_137, dbg_infoOPnm, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_1, STR__137actual_073, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(426);
    {
    err = g_envOPoutdent(e);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_typedef ****/

static int dbg_infoOPemit_sub_decls_own_init = 0;

/**** BEGIN PROCEDURE emit_sub_decls ****/

errcode dbg_infoOPemit_sub_decls(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
    CLUREF oname;
    CLUREF first;
    CLUREF each_val;
    CLUREF i;
    CLUREF tsz;
    CLUREF each_idn;
    CLUREF each_type;
    CLUREF t;
    CLUREF o;
    CLUREF tyinit;
    CLUREF opinit;
    CLUREF tyexists;
    CLUREF each_formal;
        if (dbg_infoOPemit_sub_decls_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPemit_sub_decls_own_init = 1;
    }
    enter_proc(430);

  LINE(431);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(434);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    err = intOPunparse(dbg_infoOPnvals, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_static_040Vlist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040vals_137, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_3, dbg_infoOPnm, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_4, STR__040_075_040_173, &T_1_5);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_5);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(435);
    {
    err = g_envOPputs(e, STR_0_054_040);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(436);
    {
    CLUREF T_1_1;
    err = intOPunparse(dbg_infoOPnvals, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(437);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = (dbg_infoOPnvals.num == 0)? true : false;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {
        {
        err = g_envOPputs(e, STR__054_040_173);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(438);
    {
        {first.tf = true;
        }
        }

  LINE(439);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
        T_1_1.num = dbg_infoOPap.vec->data[10];
        T_1_3.num = T_1_1.vec->size; 
        T_1_4 = T_1_1;
        for (T_1_2.num = 1; T_1_2.num <= T_1_3.num; T_1_2.num++) {
            each_val.num = T_1_4.vec->data[T_1_2.num - 1];

  LINE(440);
            {
            CLUREF T_2_1;
            err = dbg_infoOPemit_sub_decl_typespec(e, STR_, each_val, first, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            first.num = T_2_1.num;
            }
        }
    }
    end_inline_for_1:;

  LINE(442);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = (dbg_infoOPnvals.num == 0)? true : false;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {
        {
        err = g_envOPputl(e, STR__175);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(443);
    {
    err = g_envOPputl(e, STR__175_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(446);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_1.num = dbg_infoOPap.vec->data[8];
        T_1_3.num = T_1_1.vec->size; 
        for (T_1_2.num = 1; T_1_2.num <= T_1_3.num; T_1_2.num++) {
            i.num = T_1_2.num;

  LINE(447);
            {
                {CLUREF T_2_1;
                CLUREF T_2_2;
                CLUREF T_2_3;
                CLUREF T_2_4;
                T_2_1.num = dbg_infoOPap.vec->data[8];
                if (i.num < 1 || i.num > T_2_1.vec->size ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_2_2.num = T_2_1.vec->data[i.num - 1];
                T_2_3.num = T_2_2.vec->data[1];
                T_2_4.num = T_2_3.vec->size;
                tsz.num = T_2_4.num;
                }
                }

  LINE(448);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            CLUREF T_2_5;
            CLUREF T_2_6;
            CLUREF T_2_7;
            CLUREF T_2_8;
            CLUREF T_2_9;
            CLUREF T_2_10;
            CLUREF T_2_11;
            CLUREF T_2_12;
            CLUREF T_2_13;
            CLUREF T_2_14;
            CLUREF T_2_15;
            CLUREF T_2_16;
            CLUREF T_2_17;
            CLUREF T_2_18;
            CLUREF T_2_19;
            CLUREF T_2_20;
            err = intOPunparse(tsz, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(STR_static_040sig_137desc, T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_2, STR__040sig_137, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_3, dbg_infoOPnm, &T_2_4);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_4, STR__137, &T_2_5);
            if (err != ERR_ok) goto ex_0;
            err = intOPunparse(i, &T_2_6);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_5, T_2_6, &T_2_7);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_7, STR__040_075_040_1730_054_040, &T_2_8);
            if (err != ERR_ok) goto ex_0;
            T_2_9.num = 3 + tsz.num;
             if ((T_2_9.num > 0 && 3 < 0 && tsz.num < 0) || 
                 (T_2_9.num < 0 && 3 > 0 && tsz.num > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            err = intOPunparse(T_2_9, &T_2_10);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_8, T_2_10, &T_2_11);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_11, STR__054_040, &T_2_12);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_12, STR__042, &T_2_13);
            if (err != ERR_ok) goto ex_0;
            T_2_14.num = dbg_infoOPap.vec->data[8];
            if (i.num < 1 || i.num > T_2_14.vec->size ) {
                err = ERR_bounds;
                goto ex_0;}
            T_2_15.num = T_2_14.vec->data[i.num - 1];
            T_2_16.num = T_2_15.vec->data[0];
            err = stringOPconcat(T_2_13, T_2_16, &T_2_17);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_17, STR__042_054_040_1730_054_040, &T_2_18);
            if (err != ERR_ok) goto ex_0;
            err = intOPunparse(tsz, &T_2_19);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_18, T_2_19, &T_2_20);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_2_20);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(453);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = (tsz.num == 0)? true : false;
            T_2_2.num = T_2_1.num ^ 1;
            if (T_2_2.num == true) {
                {
                err = g_envOPputs(e, STR__054_040_173);
                if (err != ERR_ok) goto ex_0;
                }
                }
                }/* end if */

  LINE(454);
            {
            first.tf = true;
            }

  LINE(455);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            CLUREF T_2_5;
            CLUREF T_2_6;
                T_2_1.num = dbg_infoOPap.vec->data[8];
                if (i.num < 1 || i.num > T_2_1.vec->size ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_2_2.num = T_2_1.vec->data[i.num - 1];
                T_2_3.num = T_2_2.vec->data[1];
                T_2_5.num = T_2_3.vec->size; 
                T_2_6 = T_2_3;
                for (T_2_4.num = 1; T_2_4.num <= T_2_5.num; T_2_4.num++) {
                    each_val.num = T_2_6.vec->data[T_2_4.num - 1];

  LINE(456);
                    {
                    CLUREF T_3_1;
                    err = dbg_infoOPemit_sub_decl_typespec(e, STR_, each_val, first, &T_3_1);
                    if (err != ERR_ok) goto ex_0;
                    first.num = T_3_1.num;
                    }
                }
            }
            end_inline_for_3:;

  LINE(458);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = (tsz.num == 0)? true : false;
            T_2_2.num = T_2_1.num ^ 1;
            if (T_2_2.num == true) {
                {
                err = g_envOPputs(e, STR__175);
                if (err != ERR_ok) goto ex_0;
                }
                }
                }/* end if */

  LINE(459);
            {
            err = g_envOPputl(e, STR__175_175_073);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_2:;

  LINE(462);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    err = intOPunparse(dbg_infoOPnsigs, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_static_040siglist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040sigs_137, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_3, dbg_infoOPnm, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_4, STR__040_075_040_173, &T_1_5);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_5);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(463);
    {
    err = g_envOPputs(e, STR_0_054_040);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(464);
    {
    CLUREF T_1_1;
    err = intOPunparse(dbg_infoOPnsigs, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(465);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_1.num = dbg_infoOPap.vec->data[8];
        T_1_3.num = T_1_1.vec->size; 
        for (T_1_2.num = 1; T_1_2.num <= T_1_3.num; T_1_2.num++) {
            i.num = T_1_2.num;

  LINE(466);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            err = stringOPconcat(STR__054_040_050sig_137desc_052_051_046sig_137, dbg_infoOPnm, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_1, STR__137, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = intOPunparse(i, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_2, T_2_3, &T_2_4);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_4);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_4:;

  LINE(468);
    {
    err = g_envOPputl(e, STR__175_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(471);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    err = intOPunparse(dbg_infoOPnlocals, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_static_040Vlist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040locals_137, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_3, dbg_infoOPnm, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_4, STR__040_075_040_173, &T_1_5);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_5);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(472);
    {
    err = g_envOPputs(e, STR_0_054_040);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(473);
    {
    CLUREF T_1_1;
    err = intOPunparse(dbg_infoOPnlocals, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(474);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = (dbg_infoOPnlocals.num == 0)? true : false;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {
        {
        err = g_envOPputs(e, STR__054_173);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(475);
    {
    first.tf = true;
    }

  LINE(476);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = dbg_infoOPinternal_locals.array->ext_high; 
        T_1_3 = dbg_infoOPinternal_locals;
        for (T_1_1.num = dbg_infoOPinternal_locals.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            if (T_1_1.num > T_1_3.array->ext_high || T_1_1.num < T_1_3.array->ext_low) {
                err = ERR_failure;
                elist[0].str = array_bounds_exception_STRING;
                goto ex_0;}
            each_val.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(477);
            {
            if (first.num == true) {
                {
                first.tf = false;
                }
                }
            else {

  LINE(478);
                {
                err = g_envOPputs(e, STR__054_040);
                if (err != ERR_ok) goto ex_0;
                }
                }}/* end if */

  LINE(479);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            err = stringOPconcat(STR__040_1730_054_0402_054_040_042, each_val, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_1, STR__042_054_040_046int_137ops_175, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_2);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_5:;

  LINE(481);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = dbg_infoOPlocals_UNIQ.array->ext_high; 
        T_1_3 = dbg_infoOPlocals_UNIQ;
        for (T_1_1.num = dbg_infoOPlocals_UNIQ.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            if (T_1_1.num > T_1_3.array->ext_high || T_1_1.num < T_1_3.array->ext_low) {
                err = ERR_failure;
                elist[0].str = array_bounds_exception_STRING;
                goto ex_0;}
            each_val.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(482);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
                T_2_1.num = each_val.vec->data[0];
                T_2_3.num = T_2_1.vec->size; 
                T_2_4 = T_2_1;
                for (T_2_2.num = 1; T_2_2.num <= T_2_3.num; T_2_2.num++) {
                    each_idn.num = T_2_4.vec->data[T_2_2.num - 1];

  LINE(483);
                    {

  LINE(485);
                        {
                        CLUREF T_5_1;
                        err = idnOPget_kind(each_idn, &T_5_1);
                        if (err != ERR_ok) goto ex_1;
                        switch (T_5_1.cell->tag) {
                        case 9: 
                             {CLUREF T_5_2;
                            T_5_2.num = T_5_1.cell->value;
                            t.num = T_5_2.num;

  LINE(487);
                                {
                                each_type.num = t.num;
                                }
                                break;
                                }
                        case 10: 
                             {CLUREF T_5_3;
                            T_5_3.num = T_5_1.cell->value;
                            t.num = T_5_3.num;

  LINE(489);
                                {
                                each_type.num = t.num;
                                }
                                break;
                                }
                        case 6: 
                        case 5: 
                             {CLUREF T_5_4;
                            T_5_4.num = T_5_1.cell->value;
                            o.num = T_5_4.num;

  LINE(491);
                                {
                                CLUREF T_6_1;
                                CLUREF T_6_2;
                                CLUREF T_6_3;
                                err = idnOPget_str(each_idn, &T_6_1);
                                if (err != ERR_ok) goto ex_1;
                                err = stringOPconcat(STR__054_040_1730_054_0402_054_040_042, T_6_1, &T_6_2);
                                if (err != ERR_ok) goto ex_1;
                                err = stringOPconcat(T_6_2, STR__042_054_040_046, &T_6_3);
                                if (err != ERR_ok) goto ex_1;
                                err = g_envOPputs(e, T_6_3);
                                if (err != ERR_ok) goto ex_1;
                                }

  LINE(492);
                                {
                                err = g_envOPputs(e, STR_NULL_137OPS_054_040);
                                if (err != ERR_ok) goto ex_1;
                                }

  LINE(493);
                                {
                                    err = "ERR_done";
                                    goto ex_1;
                                    }
                                break;
                                }
                        case 4: 
                             {

  LINE(495);
                                {
                                CLUREF T_6_1;
                                CLUREF T_6_2;
                                T_6_1.num = 203;
                                err = compiler_logit(T_6_1, STR_unhandled_040idnkind_040in_040emit_137sub_137decls_040_050ownvar_051, &T_6_2);
                                if (err != ERR_ok) goto ex_1;
                                }

  LINE(496);
                                continue;
                                break;
                                }
                        default: {

  LINE(498);
                            {
                            CLUREF T_6_1;
                            CLUREF T_6_2;
                            T_6_1.num = 204;
                            err = compiler_logit(T_6_1, STR_unhandled_040idnkind_040in_040emit_137sub_137decls, &T_6_2);
                            if (err != ERR_ok) goto ex_1;
                            }

  LINE(499);
                            continue;
                        }
                        }
                        }

  LINE(501);
                        {
                        CLUREF T_5_1;
                        CLUREF T_5_2;
                        err = idnOPget_str(each_idn, &T_5_1);
                        if (err != ERR_ok) goto ex_1;
                        err = dbg_infoOPemit_sub_decl_typespec(e, T_5_1, each_type, first, &T_5_2);
                        if (err != ERR_ok) goto ex_1;
                        first.num = T_5_2.num;
                        }
                        }
                        goto end_1;
                        ex_1:
                            if (errcmp(err, "ERR_done")) {
                            }
                            else {
                                goto ex_0;
                            }
                        end_1:;
                }
            }
            end_inline_for_7:;
        }
    }
    end_inline_for_6:;

  LINE(506);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = (dbg_infoOPnlocals.num == 0)? true : false;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {
        {
        err = g_envOPputl(e, STR__175);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(507);
    {
    err = g_envOPputl(e, STR__175_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(510);
    {
        {CLUREF T_1_1;
        err = sequenceOPnew(&T_1_1);
        if (err != ERR_ok) goto ex_0;
        tyinit.num = T_1_1.num;
        }
        }

  LINE(511);
    {
        {CLUREF T_1_1;
        err = sequenceOPnew(&T_1_1);
        if (err != ERR_ok) goto ex_0;
        opinit.num = T_1_1.num;
        }
        }

  LINE(512);
    {
        {tyexists.tf = false;
        }
        }

  LINE(526);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    err = intOPunparse(dbg_infoOPnpopowns, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_static_040Vlist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040popowns_137, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_3, dbg_infoOPnm, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_4, STR__040_075_040_173, &T_1_5);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_5);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(527);
    {
    err = g_envOPputs(e, STR_0_054_040);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(528);
    {
    CLUREF T_1_1;
    err = intOPunparse(dbg_infoOPnpopowns, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(529);
    {
    CLUREF T_1_1;
    T_1_1.num = (dbg_infoOPnpopowns.num > 0)? true : false;
    if (T_1_1.num == true) {

  LINE(530);
        {
        err = g_envOPputs(e, STR__054_173);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(531);
        {
        CLUREF T_2_1;
        err = sequenceOPnew(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        tyinit.num = T_2_1.num;
        }

  LINE(532);
        {
        CLUREF T_2_1;
        err = sequenceOPnew(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        opinit.num = T_2_1.num;
        }

  LINE(533);
        {
        tyexists.tf = false;
        }

  LINE(534);
        {
        CLUREF T_2_1;
        err = current_applyOPparmd(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        if (T_2_1.num == true) {

  LINE(535);
            {
            CLUREF T_3_1;
            T_3_1.num = dbg_infoOPap.vec->data[5];
            opinit.num = T_3_1.num;
            }
            }
            }/* end if */

  LINE(536);
        {
        CLUREF T_2_1;
        err = dbg_infoOPprocess_initlists(e, tyexists, tyinit, opinit, CLU_1, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(537);
        {
        err = dbg_infoOPprocess_ownlists(e, dbg_infoOPpopowns);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(538);
        {
        err = g_envOPputs(e, STR__175);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(540);
    {
    err = g_envOPputl(e, STR__175_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(543);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    err = intOPunparse(dbg_infoOPntypeformals, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_Slist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040tformals_137, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_3, dbg_infoOPnm, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_4, STR__040_075_040_173, &T_1_5);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_5);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(545);
    {
    err = g_envOPputs(e, STR_0_054_040);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(546);
    {
    CLUREF T_1_1;
    err = intOPunparse(dbg_infoOPntypeformals, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(547);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = dbg_infoOPtypeformals.array->ext_high; 
        T_1_3 = dbg_infoOPtypeformals;
        for (T_1_1.num = dbg_infoOPtypeformals.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            if (T_1_1.num > T_1_3.array->ext_high || T_1_1.num < T_1_3.array->ext_low) {
                err = ERR_failure;
                elist[0].str = array_bounds_exception_STRING;
                goto ex_0;}
            each_formal.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(548);
            {
            err = g_envOPputs(e, STR__054_040_042);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(549);
            {
            err = g_envOPputs(e, each_formal);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(550);
            {
            err = g_envOPputs(e, STR__042);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_8:;

  LINE(552);
    {
    err = g_envOPputl(e, STR__175_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(555);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    err = intOPunparse(dbg_infoOPnopformals, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_Slist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040opformals_137, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_3, dbg_infoOPnm, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_4, STR__040_075_040_173, &T_1_5);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_5);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(557);
    {
    err = g_envOPputs(e, STR_0_054_040);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(558);
    {
    CLUREF T_1_1;
    err = intOPunparse(dbg_infoOPnopformals, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(559);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = dbg_infoOPopformals.array->ext_high; 
        T_1_3 = dbg_infoOPopformals;
        for (T_1_1.num = dbg_infoOPopformals.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            if (T_1_1.num > T_1_3.array->ext_high || T_1_1.num < T_1_3.array->ext_low) {
                err = ERR_failure;
                elist[0].str = array_bounds_exception_STRING;
                goto ex_0;}
            each_formal.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(560);
            {
            err = g_envOPputs(e, STR__054_040_042);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(561);
            {
            err = g_envOPputs(e, each_formal);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(562);
            {
            err = g_envOPputs(e, STR__042);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_9:;

  LINE(564);
    {
    err = g_envOPputl(e, STR__175_073);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_sub_decls ****/

static int dbg_infoOPemit_ptown_decl_own_init = 0;

/**** BEGIN PROCEDURE emit_ptown_decl ****/

errcode dbg_infoOPemit_ptown_decl(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (dbg_infoOPemit_ptown_decl_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPemit_ptown_decl_own_init = 1;
    }
    enter_proc(569);

  LINE(571);
    {
    err = dbg_infoOPemit_own_externs(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(572);
    {
    CLUREF T_1_1;
    err = dbg_infoOPowns_in_mixedlist(dbg_infoOPptowns, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    dbg_infoOPnptowns.num = T_1_1.num;
    }

  LINE(573);
    {
    err = dbg_infoOPemit_vlist_typedef(e, dbg_infoOPnptowns);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(574);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    CLUREF T_1_6;
    CLUREF T_1_7;
    CLUREF T_1_8;
    err = intOPunparse(dbg_infoOPnptowns, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_static_040Vlist, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__040ptowns_137, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = current_typeOPget(&T_1_4);
    if (err != ERR_ok) goto ex_0;
    T_1_5.num = T_1_4.vec->data[3];
    err = idnOPget_str(T_1_5, &T_1_6);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_3, T_1_6, &T_1_7);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_7, STR__040_075_040_173, &T_1_8);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_8);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(575);
    {
    err = g_envOPputs(e, STR_0_054_040);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(576);
    {
    CLUREF T_1_1;
    err = intOPunparse(dbg_infoOPnptowns, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(577);
    {
    err = g_envOPputs(e, STR__054_173);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(578);
    {
    err = dbg_infoOPprocess_mixedlist(e, dbg_infoOPptowns);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(579);
    {
    err = g_envOPputl(e, STR__175_175_073);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_ptown_decl ****/

static int dbg_infoOPemit_own_decl_own_init = 0;

/**** BEGIN PROCEDURE emit_own_decl ****/

errcode dbg_infoOPemit_own_decl(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (dbg_infoOPemit_own_decl_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPemit_own_decl_own_init = 1;
    }
    enter_proc(582);

  LINE(584);
    {
    err = dbg_infoOPemit_own_externs(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(585);
    {
    CLUREF T_1_1;
    err = dbg_infoOPowns_in_mixedlist(dbg_infoOPowns, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    dbg_infoOPnowns.num = T_1_1.num;
    }

  LINE(586);
    {
    err = dbg_infoOPemit_vlist_typedef(e, dbg_infoOPnowns);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(587);
    {
    CLUREF T_1_1;
    err = current_typeOPexists(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(589);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        CLUREF T_2_5;
        CLUREF T_2_6;
        CLUREF T_2_7;
        CLUREF T_2_8;
        err = intOPunparse(dbg_infoOPnowns, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(STR_static_040Vlist, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_2, STR__040owns_137, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        err = current_typeOPget(&T_2_4);
        if (err != ERR_ok) goto ex_0;
        T_2_5.num = T_2_4.vec->data[3];
        err = idnOPget_str(T_2_5, &T_2_6);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_3, T_2_6, &T_2_7);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_7, STR__040_075_040_173, &T_2_8);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_8);
        if (err != ERR_ok) goto ex_0;
        }
        }
    else {

  LINE(591);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        CLUREF T_2_5;
        err = intOPunparse(dbg_infoOPnowns, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(STR_static_040Vlist, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_2, STR__040owns_137, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_3, dbg_infoOPnm, &T_2_4);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_4, STR__040_075_040_173, &T_2_5);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_5);
        if (err != ERR_ok) goto ex_0;
        }
        }}/* end if */

  LINE(593);
    {
    err = g_envOPputs(e, STR_0_054_040);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(594);
    {
    CLUREF T_1_1;
    err = intOPunparse(dbg_infoOPnowns, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(595);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = (dbg_infoOPnowns.num == 0)? true : false;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {
        {
        err = g_envOPputs(e, STR__054_173);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(596);
    {
    err = dbg_infoOPprocess_mixedlist(e, dbg_infoOPowns);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(597);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = (dbg_infoOPnowns.num == 0)? true : false;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {
        {
        err = g_envOPputl(e, STR__175);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(598);
    {
    err = g_envOPputl(e, STR__175_073);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_own_decl ****/

static int dbg_infoOPprocess_mixedlist_own_init = 0;

/**** BEGIN PROCEDURE process_mixedlist ****/

errcode dbg_infoOPprocess_mixedlist(e, list)
CLUREF e;
CLUREF list;
    {
    errcode err;
    errcode ecode2;
    CLUREF oname;
    CLUREF first_pass;
    CLUREF first;
    CLUREF each_item;
    CLUREF il;
    CLUREF s;
        if (dbg_infoOPprocess_mixedlist_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPprocess_mixedlist_own_init = 1;
    }
    enter_proc(602);

  LINE(604);
    {
        {first_pass.tf = true;
        }
        }

  LINE(605);
    {
        {first.tf = true;
        }
        }

  LINE(606);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = list.array->ext_high; 
        T_1_3 = list;
        for (T_1_1.num = list.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            if (T_1_1.num > T_1_3.array->ext_high || T_1_1.num < T_1_3.array->ext_low) {
                err = ERR_failure;
                elist[0].str = array_bounds_exception_STRING;
                goto ex_0;}
            each_item.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(607);
            {
            switch (each_item.cell->tag) {
            case 1: 
                 {CLUREF T_2_1;
                T_2_1.num = each_item.cell->value;
                il.num = T_2_1.num;

  LINE(609);
                    {
                    if (first_pass.num == true) {

  LINE(611);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        err = sequenceOPnew(&T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        err = dbg_infoOPprocess_initlists(e, CLU_1, il, T_4_1, first, &T_4_2);
                        if (err != ERR_ok) goto ex_0;
                        }

  LINE(612);
                        {
                        first_pass.tf = false;
                        }

  LINE(613);
                        {
                        first.tf = false;
                        }
                        }
                    else {

  LINE(615);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        err = sequenceOPnew(&T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        err = dbg_infoOPprocess_initlists(e, CLU_0, T_4_1, il, first, &T_4_2);
                        if (err != ERR_ok) goto ex_0;
                        }

  LINE(616);
                        {
                        first.tf = false;
                        }
                        }}/* end if */
                    break;
                    }
            case 2: 
                 {CLUREF T_2_2;
                T_2_2.num = each_item.cell->value;
                s.num = T_2_2.num;

  LINE(619);
                    {
                    if (first.num == true) {
                        {
                        first.tf = false;
                        }
                        }
                    else {

  LINE(620);
                        {
                        err = g_envOPputs(e, STR__054);
                        if (err != ERR_ok) goto ex_0;
                        }
                        }}/* end if */

  LINE(621);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    err = stringOPconcat(STR__1730_054_0402_054_040_042, s, &T_3_1);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(T_3_1, STR__042_054_040_046int_137ops_175, &T_3_2);
                    if (err != ERR_ok) goto ex_0;
                    err = g_envOPputl(e, T_3_2);
                    if (err != ERR_ok) goto ex_0;
                    }
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE process_mixedlist ****/

static int dbg_infoOPprocess_initlists_own_init = 0;

/**** BEGIN PROCEDURE process_initlists ****/

errcode dbg_infoOPprocess_initlists(e, tyexists, tylist, oplist, first, ret_1)
CLUREF e;
CLUREF tyexists;
CLUREF tylist;
CLUREF oplist;
CLUREF first;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF oname;
    CLUREF each_init;
    CLUREF each_val;
    CLUREF d;
    CLUREF each_type;
    CLUREF each_idn;
    CLUREF di;
        if (dbg_infoOPprocess_initlists_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPprocess_initlists_own_init = 1;
    }
    enter_proc(626);

  LINE(629);
    {
    if (first.num == true) {
        {
        first.tf = false;
        }
        }
    else {

  LINE(630);
        {
        err = g_envOPputs(e, STR__054);
        if (err != ERR_ok) goto ex_0;
        }
        }}/* end if */

  LINE(631);
    {
    if (tyexists.num == true) {

  LINE(633);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        err = current_typeOPget_name(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(STR__040_1730_054_0402_054_040_042, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_2, STR__137init_042_054_040_046int_137ops_175, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputl(e, T_2_3);
        if (err != ERR_ok) goto ex_0;
        }
        }
    else {

  LINE(635);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = stringOPconcat(STR__040_1730_054_0402_054_040_042, dbg_infoOPnm, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR__137init_042_054_040_046int_137ops_175, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputl(e, T_2_2);
        if (err != ERR_ok) goto ex_0;
        }
        }}/* end if */

  LINE(637);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = tylist.vec->size; 
        T_1_3 = tylist;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            each_init.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(638);
            {
                {CLUREF T_2_1;
                T_2_1.num = each_init.vec->data[1];
                each_val.num = T_2_1.num;
                }
                }

  LINE(639);
            {
            switch (each_val.cell->tag) {
            case 1: 
                 {CLUREF T_2_1;
                T_2_1.num = each_val.cell->value;
                d.num = T_2_1.num;

  LINE(641);
                    {
                        {CLUREF T_3_1;
                        T_3_1.num = d.vec->data[1];
                        each_type.num = T_3_1.num;
                        }
                        }

  LINE(642);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                        T_3_1.num = d.vec->data[0];
                        T_3_3.num = T_3_1.vec->size; 
                        T_3_4 = T_3_1;
                        for (T_3_2.num = 1; T_3_2.num <= T_3_3.num; T_3_2.num++) {
                            each_idn.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(643);
                            {
                            CLUREF T_4_1;
                            CLUREF T_4_2;
                            err = idnOPget_str(each_idn, &T_4_1);
                            if (err != ERR_ok) goto ex_0;
                            err = dbg_infoOPemit_sub_decl_typespec(e, T_4_1, each_type, CLU_0, &T_4_2);
                            if (err != ERR_ok) goto ex_0;
                            }
                        }
                    }
                    end_inline_for_2:;
                    break;
                    }
            case 2: 
                 {CLUREF T_2_2;
                T_2_2.num = each_val.cell->value;
                di.num = T_2_2.num;

  LINE(646);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                        T_3_1.num = di.vec->data[1];
                        T_3_3.num = T_3_1.vec->size; 
                        T_3_4 = T_3_1;
                        for (T_3_2.num = 1; T_3_2.num <= T_3_3.num; T_3_2.num++) {
                            d.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(647);
                            {
                                {CLUREF T_4_1;
                                T_4_1.num = d.vec->data[1];
                                each_type.num = T_4_1.num;
                                }
                                }

  LINE(648);
                            {
                            CLUREF T_4_1;
                            CLUREF T_4_2;
                            CLUREF T_4_3;
                            CLUREF T_4_4;
                                T_4_1.num = d.vec->data[0];
                                T_4_3.num = T_4_1.vec->size; 
                                T_4_4 = T_4_1;
                                for (T_4_2.num = 1; T_4_2.num <= T_4_3.num; T_4_2.num++) {
                                    each_idn.num = T_4_4.vec->data[T_4_2.num - 1];

  LINE(649);
                                    {
                                    CLUREF T_5_1;
                                    CLUREF T_5_2;
                                    err = idnOPget_str(each_idn, &T_5_1);
                                    if (err != ERR_ok) goto ex_0;
                                    err = dbg_infoOPemit_sub_decl_typespec(e, T_5_1, each_type, CLU_0, &T_5_2);
                                    if (err != ERR_ok) goto ex_0;
                                    }
                                }
                            }
                            end_inline_for_4:;
                        }
                    }
                    end_inline_for_3:;
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_1:;

  LINE(655);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = oplist.vec->size; 
        T_1_3 = oplist;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            each_init.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(656);
            {
                {CLUREF T_2_1;
                T_2_1.num = each_init.vec->data[1];
                each_val.num = T_2_1.num;
                }
                }

  LINE(657);
            {
            switch (each_val.cell->tag) {
            case 1: 
                 {CLUREF T_2_1;
                T_2_1.num = each_val.cell->value;
                d.num = T_2_1.num;

  LINE(659);
                    {
                        {CLUREF T_3_1;
                        T_3_1.num = d.vec->data[1];
                        each_type.num = T_3_1.num;
                        }
                        }

  LINE(660);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                        T_3_1.num = d.vec->data[0];
                        T_3_3.num = T_3_1.vec->size; 
                        T_3_4 = T_3_1;
                        for (T_3_2.num = 1; T_3_2.num <= T_3_3.num; T_3_2.num++) {
                            each_idn.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(662);
                            {
                            CLUREF T_4_1;
                            CLUREF T_4_2;
                            err = idnOPget_str(each_idn, &T_4_1);
                            if (err != ERR_ok) goto ex_0;
                            err = dbg_infoOPemit_sub_decl_typespec(e, T_4_1, each_type, CLU_0, &T_4_2);
                            if (err != ERR_ok) goto ex_0;
                            }
                        }
                    }
                    end_inline_for_6:;
                    break;
                    }
            case 2: 
                 {CLUREF T_2_2;
                T_2_2.num = each_val.cell->value;
                di.num = T_2_2.num;

  LINE(665);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                        T_3_1.num = di.vec->data[1];
                        T_3_3.num = T_3_1.vec->size; 
                        T_3_4 = T_3_1;
                        for (T_3_2.num = 1; T_3_2.num <= T_3_3.num; T_3_2.num++) {
                            d.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(666);
                            {
                                {CLUREF T_4_1;
                                T_4_1.num = d.vec->data[1];
                                each_type.num = T_4_1.num;
                                }
                                }

  LINE(667);
                            {
                            CLUREF T_4_1;
                            CLUREF T_4_2;
                            CLUREF T_4_3;
                            CLUREF T_4_4;
                                T_4_1.num = d.vec->data[0];
                                T_4_3.num = T_4_1.vec->size; 
                                T_4_4 = T_4_1;
                                for (T_4_2.num = 1; T_4_2.num <= T_4_3.num; T_4_2.num++) {
                                    each_idn.num = T_4_4.vec->data[T_4_2.num - 1];

  LINE(669);
                                    {
                                    CLUREF T_5_1;
                                    CLUREF T_5_2;
                                    err = idnOPget_str(each_idn, &T_5_1);
                                    if (err != ERR_ok) goto ex_0;
                                    err = dbg_infoOPemit_sub_decl_typespec(e, T_5_1, each_type, CLU_0, &T_5_2);
                                    if (err != ERR_ok) goto ex_0;
                                    }
                                }
                            }
                            end_inline_for_8:;
                        }
                    }
                    end_inline_for_7:;
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_5:;

  LINE(674);
    {
    {
    ret_1->tf = false;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE process_initlists ****/

static int dbg_infoOPprocess_ownlists_own_init = 0;

/**** BEGIN PROCEDURE process_ownlists ****/

errcode dbg_infoOPprocess_ownlists(e, own_list)
CLUREF e;
CLUREF own_list;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_own;
        if (dbg_infoOPprocess_ownlists_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPprocess_ownlists_own_init = 1;
    }
    enter_proc(678);

  LINE(679);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = own_list.array->ext_high; 
        T_1_3 = own_list;
        for (T_1_1.num = own_list.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            if (T_1_1.num > T_1_3.array->ext_high || T_1_1.num < T_1_3.array->ext_low) {
                err = ERR_failure;
                elist[0].str = array_bounds_exception_STRING;
                goto ex_0;}
            each_own.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(680);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            err = stringOPconcat(STR__054_040_1730_054_0402_054_040_042, each_own, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_1, STR__042_054_040_046NULL_137OPS_175, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_2);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE process_ownlists ****/

static int dbg_infoOPemit_sub_decl_typespec_own_init = 0;

/**** BEGIN PROCEDURE emit_sub_decl_typespec ****/

errcode dbg_infoOPemit_sub_decl_typespec(e, id, each_val, first, ret_1)
CLUREF e;
CLUREF id;
CLUREF each_val;
CLUREF first;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF ty;
    CLUREF oname;
    CLUREF ct;
    CLUREF each_parm;
    CLUREF xt;
    CLUREF i;
        if (dbg_infoOPemit_sub_decl_typespec_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPemit_sub_decl_typespec_own_init = 1;
    }
    enter_proc(684);

  LINE(686);
    {
    CLUREF T_1_1;
    err = typespecOPget_abs(each_val, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    switch (T_1_1.cell->tag) {
    case 4: 
         {

  LINE(688);
            {
                {CLUREF T_2_1;
                CLUREF T_2_2;
                err = current_typeOPget(&T_2_1);
                if (err != ERR_ok) goto ex_0;
                T_2_2.num = T_2_1.vec->data[1];
                ty.num = T_2_2.num;
                }
                }

  LINE(689);
            {
            {
            CLUREF T_2_1;
            err = dbg_infoOPemit_sub_decl_typespec(e, id, ty, first, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            ret_1->num = T_2_1.num;
            }
            {signal (ERR_ok);}}
            break;
            }
    default: {
    }
    }
    }

  LINE(693);
    {
    if (first.num == true) {
        {
        first.tf = false;
        }
        }
    else {

  LINE(694);
        {
        err = g_envOPputs(e, STR__054_040);
        if (err != ERR_ok) goto ex_0;
        }
        }}/* end if */

  LINE(695);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = stringOPconcat(STR__040_1730_054_0402_054_040_042, id, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_1, STR__042_054_040, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(696);
    {
    CLUREF T_1_1;
    err = typespecOPget_abs(each_val, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    switch (T_1_1.cell->tag) {
    case 3: 
    case 8: 
         {CLUREF T_1_2;
        T_1_2.num = T_1_1.cell->value;
        ct.num = T_1_2.num;

  LINE(698);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ct.vec->data[0];
            err = duOPget_common(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            oname.num = T_2_2.num;
            }

  LINE(699);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ct.vec->data[1];
            err = sequenceOPempty(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            if (T_2_2.num == true) {

  LINE(701);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                err = stringOPconcat(STR__046, oname, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_1, STR__137ops_175, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputs(e, T_3_2);
                if (err != ERR_ok) goto ex_0;
                }
                }
            else {

  LINE(703);
                {
                CLUREF T_3_1;
                err = stringOPconcat(oname, STR__137of, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                oname.num = T_3_1.num;
                }

  LINE(704);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                    T_3_1.num = ct.vec->data[1];
                    T_3_3.num = T_3_1.vec->size; 
                    T_3_4 = T_3_1;
                    for (T_3_2.num = 1; T_3_2.num <= T_3_3.num; T_3_2.num++) {
                        each_parm.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(705);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        CLUREF T_4_3;
                        err = stringOPconcat(oname, STR__137, &T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        err = s_expr4(each_parm, &T_4_2);
                        if (err != ERR_ok) goto ex_0;
                        err = stringOPconcat(T_4_1, T_4_2, &T_4_3);
                        if (err != ERR_ok) goto ex_0;
                        oname.num = T_4_3.num;
                        }
                    }
                }
                end_inline_for_1:;

  LINE(707);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                CLUREF T_3_5;
                T_3_2.num = ct.vec->data[1];
                err = el_cont_type_parm(T_3_2, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                T_3_1.num = T_3_3.num;
                if (!T_3_3.num) {
                    T_3_4.num = ct.vec->data[1];
                    err = el_cont_op_parm(T_3_4, &T_3_5);
                    if (err != ERR_ok) goto ex_0;
                    T_3_1.num = T_3_5.num;
                }
                if (T_3_1.num == true) {

  LINE(709);
                    {
                    CLUREF T_4_1;
                    CLUREF T_4_2;
                    err = stringOPconcat(STR_zero_137ops_054_040_042, oname, &T_4_1);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(T_4_1, STR__137ops_042_175, &T_4_2);
                    if (err != ERR_ok) goto ex_0;
                    err = g_envOPputs(e, T_4_2);
                    if (err != ERR_ok) goto ex_0;
                    }
                    }
                else {

  LINE(711);
                    {
                    CLUREF T_4_1;
                    CLUREF T_4_2;
                    err = stringOPconcat(STR__046, oname, &T_4_1);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(T_4_1, STR__137ops_175, &T_4_2);
                    if (err != ERR_ok) goto ex_0;
                    err = g_envOPputs(e, T_4_2);
                    if (err != ERR_ok) goto ex_0;
                    }
                    }}/* end if */
                }}/* end if */
            break;
            }
    case 2: 
         {

  LINE(715);
            {
            err = g_envOPputs(e, STR_m1_137ops_175);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    case 7: 
         {CLUREF T_1_3;
        T_1_3.num = T_1_1.cell->value;
        xt.num = T_1_3.num;

  LINE(719);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            CLUREF T_2_5;
            T_2_2.num = xt.vec->data[1];
            err = fl_cont_type_parm(T_2_2, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            T_2_1.num = T_2_3.num;
            if (!T_2_3.num) {
                T_2_4.num = xt.vec->data[1];
                err = fl_cont_op_parm(T_2_4, &T_2_5);
                if (err != ERR_ok) goto ex_0;
                T_2_1.num = T_2_5.num;
            }
            if (T_2_1.num == true) {

  LINE(721);
                {
                err = g_envOPputs(e, STR_zero_137ops_054_040_042);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(722);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                CLUREF T_3_5;
                CLUREF T_3_6;
                CLUREF T_3_7;
                T_3_1.num = xt.vec->data[0];
                err = duOPget_common(T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_2, STR__137, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                T_3_4.num = xt.vec->data[1];
                err = make_sel_name(T_3_4, &T_3_5);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_3, T_3_5, &T_3_6);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_6, STR__137ops_042_175, &T_3_7);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputs(e, T_3_7);
                if (err != ERR_ok) goto ex_0;
                }
                }
            else {

  LINE(724);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                CLUREF T_3_5;
                CLUREF T_3_6;
                CLUREF T_3_7;
                CLUREF T_3_8;
                T_3_1.num = xt.vec->data[0];
                err = duOPget_common(T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(STR__046, T_3_2, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_3, STR__137, &T_3_4);
                if (err != ERR_ok) goto ex_0;
                T_3_5.num = xt.vec->data[1];
                err = make_sel_name(T_3_5, &T_3_6);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_4, T_3_6, &T_3_7);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_7, STR__137ops_175, &T_3_8);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputs(e, T_3_8);
                if (err != ERR_ok) goto ex_0;
                }
                }}/* end if */
            break;
            }
    case 5: 
         {CLUREF T_1_4;
        T_1_4.num = T_1_1.cell->value;
        i.num = T_1_4.num;

  LINE(727);
            {
            CLUREF T_2_1;
            err = idnOPget_kind(i, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            switch (T_2_1.cell->tag) {
            case 6: 
                 {

  LINE(729);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    err = idnOPget_str(i, &T_3_1);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(STR_zero_137ops_054_040_042, T_3_1, &T_3_2);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(T_3_2, STR__137ops_042_175, &T_3_3);
                    if (err != ERR_ok) goto ex_0;
                    err = g_envOPputs(e, T_3_3);
                    if (err != ERR_ok) goto ex_0;
                    }
                    break;
                    }
            default: {

  LINE(731);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                err = idnOPget_str(i, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(STR__046, T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_2, STR__137ops_175, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputs(e, T_3_3);
                if (err != ERR_ok) goto ex_0;
                }
            }
            }
            }
            break;
            }
    case 1: 
         {

  LINE(734);
            {
            err = g_envOPputs(e, STR_zero_137ops_054_040_042_042_175);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    default: {

  LINE(736);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 205;
        err = compiler_logit(T_2_1, STR_unexpected_040typeabs_040values_040emit_137sub_137decls_040vals, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(737);
        {
        err = typespec_print(each_val);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(738);
        {
        {
        ret_1->num = first.num;
        }
        {signal (ERR_ok);}}
    }
    }
    }

  LINE(740);
    {
    {
    ret_1->num = first.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE emit_sub_decl_typespec ****/

static int dbg_infoOPemit_decl_own_init = 0;

/**** BEGIN PROCEDURE emit_decl ****/

errcode dbg_infoOPemit_decl(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
    CLUREF is_parmd;
        if (dbg_infoOPemit_decl_own_init == 0) {
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_infoOPemit_decl_own_init = 1;
    }
    enter_proc(744);

  LINE(745);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_infoOPyes.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(747);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    err = stringOPconcat(STR_dbg_137info_137, dbg_infoOPnm, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_1, STR__137actual_040dbg_137info_137, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, dbg_infoOPnm, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_3, STR__137data_040_075_040_1730_054_04012_054_040, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_4);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(749);
    {
    err = g_envOPindent(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(752);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = stringOPconcat(STR__042, dbg_infoOPnm, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_1, STR__042_054_040, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(754);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = stringOPconcat(STR__042, dbg_infoOPfnm, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_1, STR__042_054_040, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(756);
    {
    if (dbg_infoOPis_iter.num == true) {
        {
        err = g_envOPputs(e, STR_1_054_040);
        if (err != ERR_ok) goto ex_0;
        }
        }
    else {

  LINE(757);
        {
        err = g_envOPputs(e, STR_0_054_040);
        if (err != ERR_ok) goto ex_0;
        }
        }}/* end if */

  LINE(758);
    {
        {is_parmd.num = 0;
        }
        }

  LINE(759);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = current_typeOPexists(&T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_1.num = T_1_2.num;
    if (T_1_2.num) {
        err = current_typeOPparmd(&T_1_3);
        if (err != ERR_ok) goto ex_0;
        T_1_1.num = T_1_3.num;
    }
    if (T_1_1.num == true) {

  LINE(760);
        {
        is_parmd.num = 2;
        }
        }
        }/* end if */

  LINE(761);
    {
    CLUREF T_1_1;
    err = current_applyOPparmd(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(762);
        {
        CLUREF T_2_1;
        T_2_1.num = is_parmd.num + 1;
         if ((T_2_1.num > 0 && is_parmd.num < 0 && 1 < 0) || 
             (T_2_1.num < 0 && is_parmd.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        is_parmd.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(764);
    {
    CLUREF T_1_1;
    err = intOPunparse(is_parmd, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(766);
    {
    err = g_envOPputs(e, STR__054_040_050int_051);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(767);
    {
    err = g_envOPputs(e, dbg_infoOPnm);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(769);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    T_1_1.num = dbg_infoOPap.vec->data[0];
    err = dbg_infoOPvars_in_decllist(T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = intOPunparse(T_1_2, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR__054_040, T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_4, STR__054_040, &T_1_5);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_5);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(771);
    {
    err = g_envOPputs(e, STR__046vals_137);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(772);
    {
    err = g_envOPputs(e, dbg_infoOPnm);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(773);
    {
    err = g_envOPputs(e, STR__054_040_046sigs_137);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(774);
    {
    err = g_envOPputs(e, dbg_infoOPnm);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(775);
    {
    err = g_envOPputs(e, STR__054_040_046locals_137);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(776);
    {
    err = g_envOPputs(e, dbg_infoOPnm);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(777);
    {
    CLUREF T_1_1;
    err = current_typeOPexists(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(779);
        {
        CLUREF T_2_1;
        err = current_typeOPparmd(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        if (T_2_1.num == true) {

  LINE(781);
            {
            err = g_envOPputs(e, STR__054_040_046NO_137VALS);
            if (err != ERR_ok) goto ex_0;
            }
            }
        else {

  LINE(783);
            {
            err = g_envOPputs(e, STR__054_040_046owns_137);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(784);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            err = current_typeOPget(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            T_3_2.num = T_3_1.vec->data[3];
            err = idnOPget_str(T_3_2, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_3_3);
            if (err != ERR_ok) goto ex_0;
            }
            }}/* end if */
        }
    else {

  LINE(787);
        {
        CLUREF T_2_1;
        err = current_applyOPparmd(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        if (T_2_1.num == true) {

  LINE(789);
            {
            err = g_envOPputs(e, STR__054_040_046NO_137VALS);
            if (err != ERR_ok) goto ex_0;
            }
            }
        else {

  LINE(791);
            {
            err = g_envOPputs(e, STR__054_040_046owns_137);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(792);
            {
            err = g_envOPputs(e, dbg_infoOPnm);
            if (err != ERR_ok) goto ex_0;
            }
            }}/* end if */
        }}/* end if */

  LINE(795);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = current_typeOPexists(&T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_1.num = T_1_2.num;
    if (T_1_2.num) {
        err = current_typeOPparmd(&T_1_3);
        if (err != ERR_ok) goto ex_0;
        T_1_1.num = T_1_3.num;
    }
    if (T_1_1.num == true) {

  LINE(797);
        {
        err = g_envOPputs(e, STR__054_040_046ptowns_137);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(798);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        err = current_typeOPget(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        T_2_2.num = T_2_1.vec->data[3];
        err = idnOPget_str(T_2_2, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_3);
        if (err != ERR_ok) goto ex_0;
        }
        }
    else {

  LINE(800);
        {
        err = g_envOPputs(e, STR__054_040_046NO_137VALS);
        if (err != ERR_ok) goto ex_0;
        }
        }}/* end if */

  LINE(802);
    {
    CLUREF T_1_1;
    err = current_applyOPparmd(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(804);
        {
        err = g_envOPputs(e, STR__054_040_046popowns_137);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(805);
        {
        err = g_envOPputs(e, dbg_infoOPnm);
        if (err != ERR_ok) goto ex_0;
        }
        }
    else {

  LINE(807);
        {
        err = g_envOPputs(e, STR__054_040_046NO_137VALS);
        if (err != ERR_ok) goto ex_0;
        }
        }}/* end if */

  LINE(809);
    {
    CLUREF T_1_1;
    T_1_1.num = (dbg_infoOPntypeformals.num == 0)? true : false;
    if (T_1_1.num == true) {

  LINE(811);
        {
        err = g_envOPputs(e, STR__054_040_046NO_137PARMS);
        if (err != ERR_ok) goto ex_0;
        }
        }
    else {

  LINE(813);
        {
        err = g_envOPputs(e, STR__054_040_046tformals_137);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(814);
        {
        err = g_envOPputs(e, dbg_infoOPnm);
        if (err != ERR_ok) goto ex_0;
        }
        }}/* end if */

  LINE(816);
    {
    CLUREF T_1_1;
    T_1_1.num = (dbg_infoOPnopformals.num == 0)? true : false;
    if (T_1_1.num == true) {

  LINE(818);
        {
        err = g_envOPputs(e, STR__054_040_046NO_137PARMS);
        if (err != ERR_ok) goto ex_0;
        }
        }
    else {

  LINE(820);
        {
        err = g_envOPputs(e, STR__054_040_046opformals_137);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(821);
        {
        err = g_envOPputs(e, dbg_infoOPnm);
        if (err != ERR_ok) goto ex_0;
        }
        }}/* end if */

  LINE(824);
    {
    err = g_envOPputl(e, STR__175_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(825);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    err = stringOPconcat(STR_struct_040dbg_137info_040_052dbg_137info_137, dbg_infoOPnm, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_1, STR__040_075_040_050struct_040dbg_137info_052_051_046dbg_137info_137, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, dbg_infoOPnm, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_3, STR__137data_073, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_4);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(827);
    {
    err = g_envOPoutdent(e);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE emit_decl ****/


/**** BEGIN PROCEDURE idns_in_decls ****/

errcode dbg_infoOPidns_in_decls(a, ret_1)
CLUREF a;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF count;
    CLUREF each_d;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(830);

  LINE(831);
    {
        {count.num = 0;
        }
        }

  LINE(832);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = a.array->ext_high; 
        T_1_3 = a;
        for (T_1_1.num = a.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            if (T_1_1.num > T_1_3.array->ext_high || T_1_1.num < T_1_3.array->ext_low) {
                err = ERR_failure;
                elist[0].str = array_bounds_exception_STRING;
                goto ex_0;}
            each_d.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(833);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            T_2_1.num = each_d.vec->data[0];
            T_2_2.num = T_2_1.vec->size;
            T_2_3.num = count.num + T_2_2.num;
             if ((T_2_3.num > 0 && count.num < 0 && T_2_2.num < 0) || 
                 (T_2_3.num < 0 && count.num > 0 && T_2_2.num > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            count.num = T_2_3.num;
            }
        }
    }
    end_inline_for_1:;

  LINE(835);
    {
    {
    ret_1->num = count.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE idns_in_decls ****/


/**** BEGIN PROCEDURE owns_in_mixedlist ****/

errcode dbg_infoOPowns_in_mixedlist(it, ret_1)
CLUREF it;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF count;
    CLUREF each_item;
    CLUREF il;
    CLUREF delta;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(838);

  LINE(839);
    {
        {count.num = 0;
        }
        }

  LINE(841);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = it.array->ext_high; 
        T_1_3 = it;
        for (T_1_1.num = it.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            if (T_1_1.num > T_1_3.array->ext_high || T_1_1.num < T_1_3.array->ext_low) {
                err = ERR_failure;
                elist[0].str = array_bounds_exception_STRING;
                goto ex_0;}
            each_item.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(842);
            {
            switch (each_item.cell->tag) {
            case 2: 
                 {

  LINE(844);
                    {
                    CLUREF T_3_1;
                    T_3_1.num = count.num + 1;
                     if ((T_3_1.num > 0 && count.num < 0 && 1 < 0) || 
                         (T_3_1.num < 0 && count.num > 0 && 1 > 0)) {
                        err = ERR_overflow;
                        goto ex_0;}
                    count.num = T_3_1.num;
                    }
                    break;
                    }
            case 1: 
                 {CLUREF T_2_1;
                T_2_1.num = each_item.cell->value;
                il.num = T_2_1.num;

  LINE(847);
                    {
                        {CLUREF T_3_1;
                        err = dbg_infoOPvars_in_initlist(il, &T_3_1);
                        if (err != ERR_ok) goto ex_0;
                        delta.num = T_3_1.num;
                        }
                        }

  LINE(848);
                    {
                    CLUREF T_3_1;
                    T_3_1.num = (delta.num == 0)? true : false;
                    if (T_3_1.num == true) {

  LINE(849);
                        {
                        CLUREF T_4_1;
                        T_4_1.num = count.num + 1;
                         if ((T_4_1.num > 0 && count.num < 0 && 1 < 0) || 
                             (T_4_1.num < 0 && count.num > 0 && 1 > 0)) {
                            err = ERR_overflow;
                            goto ex_0;}
                        count.num = T_4_1.num;
                        }
                        }
                    else {

  LINE(850);
                        {
                        CLUREF T_4_1;
                        T_4_1.num = count.num + delta.num;
                         if ((T_4_1.num > 0 && count.num < 0 && delta.num < 0) || 
                             (T_4_1.num < 0 && count.num > 0 && delta.num > 0)) {
                            err = ERR_overflow;
                            goto ex_0;}
                        count.num = T_4_1.num;
                        }
                        }}/* end if */
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_1:;

  LINE(855);
    {
    {
    ret_1->num = count.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE owns_in_mixedlist ****/


/**** BEGIN PROCEDURE vars_in_mixedlist ****/

errcode dbg_infoOPvars_in_mixedlist(it, ret_1)
CLUREF it;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF count;
    CLUREF each_item;
    CLUREF il;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(858);

  LINE(859);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = it.array->ext_size;
    T_1_2.num = (T_1_1.num == 0)? true : false;
    if (T_1_2.num == true) {
        {
        {
        ret_1->num = 0;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(860);
    {
        {count.num = 0;
        }
        }

  LINE(861);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = it.array->ext_high; 
        T_1_3 = it;
        for (T_1_1.num = it.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            if (T_1_1.num > T_1_3.array->ext_high || T_1_1.num < T_1_3.array->ext_low) {
                err = ERR_failure;
                elist[0].str = array_bounds_exception_STRING;
                goto ex_0;}
            each_item.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(862);
            {
            switch (each_item.cell->tag) {
            case 2: 
                 {

  LINE(864);
                    {
                    CLUREF T_3_1;
                    T_3_1.num = count.num + 1;
                     if ((T_3_1.num > 0 && count.num < 0 && 1 < 0) || 
                         (T_3_1.num < 0 && count.num > 0 && 1 > 0)) {
                        err = ERR_overflow;
                        goto ex_0;}
                    count.num = T_3_1.num;
                    }
                    break;
                    }
            case 1: 
                 {CLUREF T_2_1;
                T_2_1.num = each_item.cell->value;
                il.num = T_2_1.num;

  LINE(866);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    err = dbg_infoOPvars_in_initlist(il, &T_3_1);
                    if (err != ERR_ok) goto ex_0;
                    T_3_2.num = count.num + T_3_1.num;
                     if ((T_3_2.num > 0 && count.num < 0 && T_3_1.num < 0) || 
                         (T_3_2.num < 0 && count.num > 0 && T_3_1.num > 0)) {
                        err = ERR_overflow;
                        goto ex_0;}
                    count.num = T_3_2.num;
                    }
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_1:;

  LINE(869);
    {
    {
    ret_1->num = count.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE vars_in_mixedlist ****/


/**** BEGIN PROCEDURE vars_in_initlist ****/

errcode dbg_infoOPvars_in_initlist(it, ret_1)
CLUREF it;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF count;
    CLUREF each_init;
    CLUREF each_val;
    CLUREF d;
    CLUREF di;
    CLUREF each_d;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(872);

  LINE(873);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = it.vec->size;
    T_1_2.num = (T_1_1.num == 0)? true : false;
    if (T_1_2.num == true) {
        {
        {
        ret_1->num = 0;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(874);
    {
        {count.num = 0;
        }
        }

  LINE(875);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = it.vec->size; 
        T_1_3 = it;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            each_init.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(876);
            {
                {CLUREF T_2_1;
                T_2_1.num = each_init.vec->data[1];
                each_val.num = T_2_1.num;
                }
                }

  LINE(877);
            {
            switch (each_val.cell->tag) {
            case 1: 
                 {CLUREF T_2_1;
                T_2_1.num = each_val.cell->value;
                d.num = T_2_1.num;

  LINE(879);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    T_3_1.num = d.vec->data[0];
                    T_3_2.num = T_3_1.vec->size;
                    T_3_3.num = count.num + T_3_2.num;
                     if ((T_3_3.num > 0 && count.num < 0 && T_3_2.num < 0) || 
                         (T_3_3.num < 0 && count.num > 0 && T_3_2.num > 0)) {
                        err = ERR_overflow;
                        goto ex_0;}
                    count.num = T_3_3.num;
                    }
                    break;
                    }
            case 2: 
                 {CLUREF T_2_2;
                T_2_2.num = each_val.cell->value;
                di.num = T_2_2.num;

  LINE(881);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                        T_3_1.num = di.vec->data[1];
                        T_3_3.num = T_3_1.vec->size; 
                        T_3_4 = T_3_1;
                        for (T_3_2.num = 1; T_3_2.num <= T_3_3.num; T_3_2.num++) {
                            each_d.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(882);
                            {
                            CLUREF T_4_1;
                            CLUREF T_4_2;
                            CLUREF T_4_3;
                            T_4_1.num = each_d.vec->data[0];
                            T_4_2.num = T_4_1.vec->size;
                            T_4_3.num = count.num + T_4_2.num;
                             if ((T_4_3.num > 0 && count.num < 0 && T_4_2.num < 0) || 
                                 (T_4_3.num < 0 && count.num > 0 && T_4_2.num > 0)) {
                                err = ERR_overflow;
                                goto ex_0;}
                            count.num = T_4_3.num;
                            }
                        }
                    }
                    end_inline_for_2:;
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_1:;

  LINE(886);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = count.num + 1;
     if ((T_1_1.num > 0 && count.num < 0 && 1 < 0) || 
         (T_1_1.num < 0 && count.num > 0 && 1 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE vars_in_initlist ****/


/**** BEGIN PROCEDURE vars_in_decllist ****/

errcode dbg_infoOPvars_in_decllist(dl, ret_1)
CLUREF dl;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF count;
    CLUREF each_d;
        if (dbg_info_own_init == 0) {
            err = dbg_info_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(889);

  LINE(890);
    {
        {count.num = 0;
        }
        }

  LINE(891);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = dl.vec->size; 
        T_1_3 = dl;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            each_d.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(892);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            T_2_1.num = each_d.vec->data[0];
            T_2_2.num = T_2_1.vec->size;
            T_2_3.num = count.num + T_2_2.num;
             if ((T_2_3.num > 0 && count.num < 0 && T_2_2.num < 0) || 
                 (T_2_3.num < 0 && count.num > 0 && T_2_2.num > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            count.num = T_2_3.num;
            }
        }
    }
    end_inline_for_1:;

  LINE(894);
    {
    {
    ret_1->num = count.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE vars_in_decllist ****/

typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[13];
} dbg_info_OPS;

CLU_proc dbg_info_oe_active = {{0,0,0,0}, dbg_infoOPactive, 0};
CLU_proc dbg_info_oe_add_ilist = {{0,0,0,0}, dbg_infoOPadd_ilist, 0};
CLU_proc dbg_info_oe_add_local = {{0,0,0,0}, dbg_infoOPadd_local, 0};
CLU_proc dbg_info_oe_add_locals = {{0,0,0,0}, dbg_infoOPadd_locals, 0};
CLU_proc dbg_info_oe_add_own = {{0,0,0,0}, dbg_infoOPadd_own, 0};
CLU_proc dbg_info_oe_emit_decls = {{0,0,0,0}, dbg_infoOPemit_decls, 0};
CLU_proc dbg_info_oe_emit_extern = {{0,0,0,0}, dbg_infoOPemit_extern, 0};
CLU_proc dbg_info_oe_emit_local_entry = {{0,0,0,0}, dbg_infoOPemit_local_entry, 0};
CLU_proc dbg_info_oe_extend_locals = {{0,0,0,0}, dbg_infoOPextend_locals, 0};
CLU_proc dbg_info_oe_init_local_entry = {{0,0,0,0}, dbg_infoOPinit_local_entry, 0};
CLU_proc dbg_info_oe_reset = {{0,0,0,0}, dbg_infoOPreset, 0};
CLU_proc dbg_info_oe_set_own_context = {{0,0,0,0}, dbg_infoOPset_own_context, 0};
CLU_proc dbg_info_oe_start = {{0,0,0,0}, dbg_infoOPstart, 0};

dbg_info_OPS dbg_info_ops_actual = {13, (OWNPTR)&dbg_info_own_init, (OWNPTR)&dbg_info_own_init, {
    {&dbg_info_oe_active, "active"},
    {&dbg_info_oe_add_ilist, "add_ilist"},
    {&dbg_info_oe_add_local, "add_local"},
    {&dbg_info_oe_add_locals, "add_locals"},
    {&dbg_info_oe_add_own, "add_own"},
    {&dbg_info_oe_emit_decls, "emit_decls"},
    {&dbg_info_oe_emit_extern, "emit_extern"},
    {&dbg_info_oe_emit_local_entry, "emit_local_entry"},
    {&dbg_info_oe_extend_locals, "extend_locals"},
    {&dbg_info_oe_init_local_entry, "init_local_entry"},
    {&dbg_info_oe_reset, "reset"},
    {&dbg_info_oe_set_own_context, "set_own_context"},
    {&dbg_info_oe_start, "start"}}};

struct OPS *dbg_info_ops = (struct OPS *)&dbg_info_ops_actual;

/**** END CLUSTER dbg_info ****/

CLUREF STR_auto;
CLUREF STR_case;
CLUREF STR_const;
CLUREF STR_default;
CLUREF STR_double;
CLUREF STR_enum;
CLUREF STR_extern;
CLUREF STR_float;
CLUREF STR_goto;
CLUREF STR_long;
CLUREF STR_register;
CLUREF STR_short;
CLUREF STR_signed;
CLUREF STR_sizeof;
CLUREF STR_static;
CLUREF STR_switch;
CLUREF STR_typedef;
CLUREF STR_union;
CLUREF STR_unsigned;
CLUREF STR_void;
CLUREF STR_volatile;
CLUREF STR_word;
CLUREF STR_err;
CLUREF STR_locals;
CLUREF STR_elist;
CLUREF STR_ecode;
CLUREF STR_ecode2;
CLUREF STR_errcode;
CLUREF STR_user_137locals;
static int escape_ckeyword_own_init = 0;
CLUREF escape_ckeywordOPreserved;

/**** BEGIN PROCEDURE escape_ckeyword ****/

errcode escape_ckeyword(nm, ret_1)
CLUREF nm;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_st;
    CLUREF new;
        if (escape_ckeyword_own_init == 0) {
        stringOPcons("auto", CLU_1, CLU_4, &STR_auto);
        stringOPcons("case", CLU_1, CLU_4, &STR_case);
        stringOPcons("const", CLU_1, CLU_5, &STR_const);
        stringOPcons("default", CLU_1, CLU_7, &STR_default);
        stringOPcons("double", CLU_1, CLU_6, &STR_double);
        stringOPcons("enum", CLU_1, CLU_4, &STR_enum);
        stringOPcons("extern", CLU_1, CLU_6, &STR_extern);
        stringOPcons("float", CLU_1, CLU_5, &STR_float);
        stringOPcons("goto", CLU_1, CLU_4, &STR_goto);
        stringOPcons("long", CLU_1, CLU_4, &STR_long);
        stringOPcons("register", CLU_1, CLU_8, &STR_register);
        stringOPcons("short", CLU_1, CLU_5, &STR_short);
        stringOPcons("signed", CLU_1, CLU_6, &STR_signed);
        stringOPcons("sizeof", CLU_1, CLU_6, &STR_sizeof);
        stringOPcons("static", CLU_1, CLU_6, &STR_static);
        stringOPcons("switch", CLU_1, CLU_6, &STR_switch);
        stringOPcons("typedef", CLU_1, CLU_7, &STR_typedef);
        stringOPcons("union", CLU_1, CLU_5, &STR_union);
        stringOPcons("unsigned", CLU_1, CLU_8, &STR_unsigned);
        stringOPcons("void", CLU_1, CLU_4, &STR_void);
        stringOPcons("volatile", CLU_1, CLU_8, &STR_volatile);
        stringOPcons("word", CLU_1, CLU_4, &STR_word);
        stringOPcons("err", CLU_1, CLU_3, &STR_err);
        stringOPcons("locals", CLU_1, CLU_6, &STR_locals);
        stringOPcons("elist", CLU_1, CLU_5, &STR_elist);
        stringOPcons("ecode", CLU_1, CLU_5, &STR_ecode);
        stringOPcons("ecode2", CLU_1, CLU_6, &STR_ecode2);
        stringOPcons("errcode", CLU_1, CLU_7, &STR_errcode);
        stringOPcons("user_locals", CLU_1, CLU_11, &STR_user_137locals);
        stringOPcons("OP", CLU_1, CLU_2, &STR_OP);
        escape_ckeyword_own_init = 1;
        {
            {CLUREF T_0_1;
            sequenceOPnew2(CLU_29, &T_0_1);
            T_0_1.vec->data[0] = STR_auto.num;
            T_0_1.vec->data[1] = STR_case.num;
            T_0_1.vec->data[2] = STR_const.num;
            T_0_1.vec->data[3] = STR_default.num;
            T_0_1.vec->data[4] = STR_double.num;
            T_0_1.vec->data[5] = STR_enum.num;
            T_0_1.vec->data[6] = STR_extern.num;
            T_0_1.vec->data[7] = STR_float.num;
            T_0_1.vec->data[8] = STR_goto.num;
            T_0_1.vec->data[9] = STR_long.num;
            T_0_1.vec->data[10] = STR_register.num;
            T_0_1.vec->data[11] = STR_short.num;
            T_0_1.vec->data[12] = STR_signed.num;
            T_0_1.vec->data[13] = STR_sizeof.num;
            T_0_1.vec->data[14] = STR_static.num;
            T_0_1.vec->data[15] = STR_switch.num;
            T_0_1.vec->data[16] = STR_typedef.num;
            T_0_1.vec->data[17] = STR_union.num;
            T_0_1.vec->data[18] = STR_unsigned.num;
            T_0_1.vec->data[19] = STR_void.num;
            T_0_1.vec->data[20] = STR_volatile.num;
            T_0_1.vec->data[21] = STR_word.num;
            T_0_1.vec->data[22] = STR_err.num;
            T_0_1.vec->data[23] = STR_locals.num;
            T_0_1.vec->data[24] = STR_elist.num;
            T_0_1.vec->data[25] = STR_ecode.num;
            T_0_1.vec->data[26] = STR_ecode2.num;
            T_0_1.vec->data[27] = STR_errcode.num;
            T_0_1.vec->data[28] = STR_user_137locals.num;
            escape_ckeywordOPreserved.num = T_0_1.num;
            }
            }
    }
    enter_proc(899);

  LINE(909);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = escape_ckeywordOPreserved.vec->size; 
        T_1_3 = escape_ckeywordOPreserved;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            each_st.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(910);
            {
            CLUREF T_2_1;
            T_2_1.num = ((nm.str->size != each_st.str->size)? false :
                !(bcmp(nm.str->data, each_st.str->data, nm.str->size)));
            if (T_2_1.num == true) {

  LINE(911);
                {
                    {CLUREF T_3_1;
                    err = stringOPconcat(STR_OP, nm, &T_3_1);
                    if (err != ERR_ok) goto ex_0;
                    new.num = T_3_1.num;
                    }
                    }

  LINE(913);
                {
                {
                ret_1->num = new.num;
                }
                {signal (ERR_ok);}}
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(916);
    {
    {
    ret_1->num = nm.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE escape_ckeyword ****/

