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

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


extern errcode g_envOPnewdefn();
extern errcode g_applydefn();
extern errcode g_typedefn();
extern errcode g_envOPerror();
CLUREF STR_;
CLUREF STR_g_137definition_072_040others;
static int g_definition_own_init = 0;

/**** BEGIN PROCEDURE g_definition ****/

errcode g_definition(e, def)
CLUREF e;
CLUREF def;
    {
    errcode err;
    errcode ecode2;
    CLUREF d;
        if (g_definition_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("g_definition: others", CLU_1, CLU_20, &STR_g_137definition_072_040others);
        g_definition_own_init = 1;
    }
    enter_proc(10);

  LINE(11);
    {
    switch (def.cell->tag) {
    case 1: 
         {CLUREF T_1_1;
        T_1_1.num = def.cell->value;
        d.num = T_1_1.num;

  LINE(13);
            {
            err = g_envOPnewdefn(e);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(14);
            {
            err = g_applydefn(e, d, STR_);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    case 3: 
         {CLUREF T_1_2;
        T_1_2.num = def.cell->value;
        d.num = T_1_2.num;

  LINE(16);
            {
            err = g_envOPnewdefn(e);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(17);
            {
            err = g_typedefn(e, d);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    case 4: 
         {
            break;
            }
    default: {

  LINE(20);
        {
        err = g_envOPerror(e, STR_g_137definition_072_040others);
        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 g_definition ****/


extern errcode stringOPequal();
extern errcode duOPget_unique();
extern errcode recordOPget_4();
extern errcode exOPinit();
extern errcode ibOPinit();
extern errcode loop_contextOPinit();
extern errcode current_applyOPset();
extern errcode parmOPenter();
extern errcode recordOPget_8();
extern errcode boolOPnot();
extern errcode current_typeOPexists();
extern errcode current_applyOPparmd();
extern errcode dbg_infoOPadd_ilist();
extern errcode recordOPget_6();
extern errcode dbg_infoOPstart();
extern errcode reqsOPparms();
extern errcode recordOPget_5();
extern errcode reqsOPmore();
extern errcode recordOPget_13();
extern errcode sequenceOPnew();
extern errcode initlist_to_stmtlist();
extern errcode seq_extend();
extern errcode recordOPget_2();
extern errcode g_externs();
extern errcode g_tblOPfind_tables();
extern errcode oneofOPmake_1();
extern errcode g_constOPfind_consts();
extern errcode ownsOPsave();
extern errcode current_typeOPparmd();
extern errcode g_ownvars();
extern errcode g_pownvars();
extern errcode ibOPreset();
extern errcode g_envOPblankline();
extern errcode g_envOPputs();
extern errcode idnOPget_str();
extern errcode charOPequal();
extern errcode stringOPfetch();
extern errcode stringOPrest();
extern errcode g_envOPputl();
extern errcode stringOPconcat();
extern errcode g_iter_signature();
extern errcode g_proc_signature();
extern errcode g_envOPnewline();
extern errcode g_envOPindent();
extern errcode g_localvars();
extern errcode intOPunparse();
extern errcode recordOPget_7();
extern errcode sequenceOPelements();
extern errcode g_stmt();
extern errcode exOPget_current_end_label();
extern errcode exOPget_current_ex_label();
extern errcode g_err();
extern errcode g_envOPoutdent();
extern errcode intOPequal();
extern errcode sequenceOPsize();
extern errcode recordOPget_11();
extern errcode current_applyOPget();
extern errcode g_envOPensure_newline();
extern errcode dbg_infoOPemit_decls();
extern errcode ibOPgen_bodies();
extern errcode parmOPleave();
extern errcode current_applyOPreset();
extern errcode tvOPreset();
extern errcode ownsOPforget();
extern errcode typOPundo_local_idn_types();
extern errcode dbg_infoOPreset();
extern struct REQS *seq_extend_of_t_reqs;
extern struct OPS *stmt_ops;
extern OWN_req seq_extend_ownreqs;
struct OPS *seq_extend_of_stmt_table;
struct OPS *seq_extend_of_stmt_ops;
struct OPS *seq_extend_of_stmt_ops;
OWNPTR seq_extend_of_stmt_owns;
CLUREF STR_itertype;
CLUREF STR__057_052_052_052_052_040BEGIN_040;
CLUREF STR_ITERATOR_040;
CLUREF STR_PROCEDURE_040;
CLUREF STR__040_052_052_052_052_057;
CLUREF STR__173;
CLUREF STR_enter_137proc_050;
CLUREF STR__051_073;
CLUREF STR_goto_040;
CLUREF STR__073;
CLUREF STR__072;
CLUREF STR_if_040_050;
CLUREF STR__040_075_075_040ERR_137failure_051_040_173signal_050ERR_137failure_051_073_175;
CLUREF STR_elist_1330_135_040_075_040_137pclu_137erstr_050;
CLUREF STR__173signal_050ERR_137failure_051_073_175;
CLUREF STR__175;
CLUREF STR__072_040_173signal_050ERR_137ok_051_073_175;
CLUREF STR__072_040elist_1330_135_056str_040_075_040no_137return_137values_137STRING_073;
CLUREF STR__057_052_052_052_052_040END_040;
CLUREF STR_unhandled_040exception_072_040specs_137missing;
CLUREF STR_specs_137missing;
static int g_applydefn_own_init = 0;

/**** BEGIN PROCEDURE g_applydefn ****/

errcode g_applydefn(e, a, cname)
CLUREF e;
CLUREF a;
CLUREF cname;
    {
    errcode err;
    errcode ecode2;
    CLUREF iterp;
    CLUREF all_stmts;
    CLUREF more_stmts;
    CLUREF nm;
    CLUREF s;
        if (g_applydefn_own_init == 0) {
        add_parm_info_type(0, stmt_ops, seq_extend_of_t_reqs);
        find_prociter_instance(seq_extend, 1, &seq_extend_ownreqs, &(seq_extend_of_stmt_ops));
        stringOPcons("itertype", CLU_1, CLU_8, &STR_itertype);
        stringOPcons("/**** BEGIN ", CLU_1, CLU_12, &STR__057_052_052_052_052_040BEGIN_040);
        stringOPcons("ITERATOR ", CLU_1, CLU_9, &STR_ITERATOR_040);
        stringOPcons("PROCEDURE ", CLU_1, CLU_10, &STR_PROCEDURE_040);
        stringOPcons(" ****/", CLU_1, CLU_6, &STR__040_052_052_052_052_057);
        stringOPcons("{", CLU_1, CLU_1, &STR__173);
        stringOPcons("enter_proc(", CLU_1, CLU_11, &STR_enter_137proc_050);
        stringOPcons(");", CLU_1, CLU_2, &STR__051_073);
        stringOPcons("goto ", CLU_1, CLU_5, &STR_goto_040);
        stringOPcons(";", CLU_1, CLU_1, &STR__073);
        stringOPcons(":", CLU_1, CLU_1, &STR__072);
        stringOPcons("if (", CLU_1, CLU_4, &STR_if_040_050);
        stringOPcons(" == ERR_failure) {signal(ERR_failure);}", CLU_1, CLU_39, &STR__040_075_075_040ERR_137failure_051_040_173signal_050ERR_137failure_051_073_175);
        stringOPcons("elist[0] = _pclu_erstr(", CLU_1, CLU_23, &STR_elist_1330_135_040_075_040_137pclu_137erstr_050);
        stringOPcons("{signal(ERR_failure);}", CLU_1, CLU_22, &STR__173signal_050ERR_137failure_051_073_175);
        stringOPcons("}", CLU_1, CLU_1, &STR__175);
        stringOPcons(": {signal(ERR_ok);}", CLU_1, CLU_19, &STR__072_040_173signal_050ERR_137ok_051_073_175);
        stringOPcons(": elist[0].str = no_return_values_STRING;", CLU_1, CLU_41, &STR__072_040elist_1330_135_056str_040_075_040no_137return_137values_137STRING_073);
        stringOPcons("/**** END ", CLU_1, CLU_10, &STR__057_052_052_052_052_040END_040);
        stringOPcons("unhandled exception: specs_missing", CLU_1, CLU_34, &STR_unhandled_040exception_072_040specs_137missing);
        stringOPcons("specs_missing", CLU_1, CLU_13, &STR_specs_137missing);
        g_applydefn_own_init = 1;
    }
    enter_proc(24);

  LINE(40);
    {
        {iterp.tf = false;
        }
        }

  LINE(44);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = a.vec->data[3];
    err = duOPget_unique(T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_3.num = ((T_1_2.str->size != STR_itertype.str->size)? false :
        !(bcmp(T_1_2.str->data, STR_itertype.str->data, T_1_2.str->size)));
    if (T_1_3.num == true) {

  LINE(46);
        {
        iterp.tf = true;
        }
        }
        }/* end if */

  LINE(49);
    {

  LINE(50);
        {
        err = exOPinit();
        if (err != ERR_ok) goto ex_1;
        }

  LINE(51);
        {
        err = ibOPinit();
        if (err != ERR_ok) goto ex_1;
        }

  LINE(52);
        {
        err = loop_contextOPinit();
        if (err != ERR_ok) goto ex_1;
        }

  LINE(53);
        {
        err = current_applyOPset(a);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(54);
        {
        CLUREF T_3_1;
        T_3_1.num = a.vec->data[7];
        err = parmOPenter(T_3_1);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(55);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        err = current_typeOPexists(&T_3_2);
        if (err != ERR_ok) goto ex_1;
        T_3_3.num = T_3_2.num ^ 1;
        T_3_1.num = T_3_3.num;
        if (T_3_3.num) {
            err = current_applyOPparmd(&T_3_4);
            if (err != ERR_ok) goto ex_1;
            T_3_5.num = T_3_4.num ^ 1;
            T_3_1.num = T_3_5.num;
        }
        if (T_3_1.num == true) {

  LINE(56);
            {
            CLUREF T_4_1;
            T_4_1.num = a.vec->data[5];
            err = dbg_infoOPadd_ilist(T_4_1);
            if (err != ERR_ok) goto ex_1;
            }
            }
            }/* end if */

  LINE(57);
        {
        err = dbg_infoOPstart(e, a, cname, iterp);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(60);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = a.vec->data[4];
        T_3_2.num = a.vec->data[7];
        err = reqsOPparms(T_3_1, T_3_2);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(61);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = a.vec->data[4];
        T_3_2.num = a.vec->data[12];
        err = reqsOPmore(e, T_3_1, T_3_2);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(71);
        {
        CLUREF T_3_1;
        err = sequenceOPnew(&T_3_1);
        if (err != ERR_ok) goto ex_1;
        all_stmts.num = T_3_1.num;
        }

  LINE(73);
        {
            {CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.num = a.vec->data[5];
            err = initlist_to_stmtlist(T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_1;
            more_stmts.num = T_3_2.num;
            }
            }

  LINE(74);
        {
        CLUREF T_3_1;
        generic_CLU_proc.type_owns = 0;
        generic_CLU_proc.op_owns = (int)seq_extend_of_stmt_ops->op_owns;
        generic_CLU_proc.proc = seq_extend;
        CUR_PROC_VAR.proc = &generic_CLU_proc;
        err = seq_extend(all_stmts, more_stmts, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        all_stmts.num = T_3_1.num;
        }

  LINE(75);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = a.vec->data[1];
        generic_CLU_proc.type_owns = 0;
        generic_CLU_proc.op_owns = (int)seq_extend_of_stmt_ops->op_owns;
        generic_CLU_proc.proc = seq_extend;
        CUR_PROC_VAR.proc = &generic_CLU_proc;
        err = seq_extend(all_stmts, T_3_1, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        all_stmts.num = T_3_2.num;
        }

  LINE(76);
        {
        err = g_externs(e, all_stmts);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(77);
        {
        CLUREF T_3_1;
        CellAlloc(1, a.num, T_3_1);
        err = g_tblOPfind_tables(e, all_stmts, T_3_1);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(78);
        {
        err = g_constOPfind_consts(e, all_stmts);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(79);
        {
        CLUREF T_3_1;
        T_3_1.num = a.vec->data[5];
        err = ownsOPsave(T_3_1);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(80);
        {
        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;
        err = current_applyOPparmd(&T_3_2);
        if (err != ERR_ok) goto ex_1;
        T_3_3.num = T_3_2.num ^ 1;
        T_3_1.num = T_3_3.num;
        if (T_3_3.num) {
            err = current_typeOPexists(&T_3_5);
            if (err != ERR_ok) goto ex_1;
            T_3_6.num = T_3_5.num ^ 1;
            T_3_4.num = T_3_6.num;
            if (!T_3_6.num) {
                err = current_typeOPparmd(&T_3_7);
                if (err != ERR_ok) goto ex_1;
                T_3_8.num = T_3_7.num ^ 1;
                T_3_4.num = T_3_8.num;
            }
            T_3_1.num = T_3_4.num;
        }
        if (T_3_1.num == true) {

  LINE(82);
            {
            CLUREF T_4_1;
            T_4_1.num = a.vec->data[5];
            err = g_ownvars(e, T_4_1, CLU_1);
            if (err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_9;
        err = current_applyOPparmd(&T_3_9);
        if (err != ERR_ok) goto ex_1;
        if (T_3_9.num == true) {

  LINE(84);
            {
            CLUREF T_4_1;
            T_4_1.num = a.vec->data[5];
            err = g_pownvars(e, T_4_1, CLU_1);
            if (err != ERR_ok) goto ex_1;
            }
            }
        else {
            }}}/* end if */

  LINE(88);
        {
        err = ibOPreset();
        if (err != ERR_ok) goto ex_1;
        }

  LINE(93);
        {
        err = g_envOPblankline(e);
        if (err != ERR_ok) goto ex_1;
        }

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

  LINE(95);
        {
        if (iterp.num == true) {
            {
            err = g_envOPputs(e, STR_ITERATOR_040);
            if (err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(96);
            {
            err = g_envOPputs(e, STR_PROCEDURE_040);
            if (err != ERR_ok) goto ex_1;
            }
            }}/* end if */

  LINE(97);
        {
            {CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.num = a.vec->data[4];
            err = idnOPget_str(T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_1;
            nm.num = T_3_2.num;
            }
            }

  LINE(98);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        err = stringOPfetch(nm, CLU_1, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        T_3_2.ch = '%';
        T_3_3.num = (T_3_1.ch == T_3_2.ch)? true : false;
        if (T_3_3.num == true) {

  LINE(99);
            {
            CLUREF T_4_1;
            err = stringOPrest(nm, CLU_2, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            nm.num = T_4_1.num;
            }
            }
            }/* end if */

  LINE(100);
        {
        CLUREF T_3_1;
        err = stringOPconcat(nm, STR__040_052_052_052_052_057, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        err = g_envOPputl(e, T_3_1);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(101);
        {
        err = g_envOPblankline(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(103);
        {
        if (iterp.num == true) {

  LINE(105);
            {
            err = g_iter_signature(e, a, cname);
            if (err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(107);
            {
            err = g_proc_signature(e, a, cname);
            if (err != ERR_ok) goto ex_1;
            }
            }}/* end if */

  LINE(111);
        {
        err = g_envOPnewline(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(112);
        {
        err = g_envOPindent(e);
        if (err != ERR_ok) goto ex_1;
        }

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

  LINE(114);
        {
        err = g_localvars(e, a, iterp);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(115);
        {
        err = g_envOPnewline(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(119);
        {
        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;
        err = current_applyOPparmd(&T_3_2);
        if (err != ERR_ok) goto ex_1;
        T_3_3.num = T_3_2.num ^ 1;
        T_3_1.num = T_3_3.num;
        if (T_3_3.num) {
            err = current_typeOPexists(&T_3_5);
            if (err != ERR_ok) goto ex_1;
            T_3_6.num = T_3_5.num ^ 1;
            T_3_4.num = T_3_6.num;
            if (!T_3_6.num) {
                err = current_typeOPparmd(&T_3_7);
                if (err != ERR_ok) goto ex_1;
                T_3_8.num = T_3_7.num ^ 1;
                T_3_4.num = T_3_8.num;
            }
            T_3_1.num = T_3_4.num;
        }
        if (T_3_1.num == true) {

  LINE(122);
            {
            CLUREF T_4_1;
            T_4_1.num = a.vec->data[5];
            err = g_ownvars(e, T_4_1, CLU_2);
            if (err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(124);
            {
            CLUREF T_4_1;
            T_4_1.num = a.vec->data[5];
            err = g_pownvars(e, T_4_1, CLU_2);
            if (err != ERR_ok) goto ex_1;
            }
            }}/* end if */

  LINE(127);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        T_3_1.num = a.vec->data[6];
        err = intOPunparse(T_3_1, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        err = stringOPconcat(STR_enter_137proc_050, T_3_2, &T_3_3);
        if (err != ERR_ok) goto ex_1;
        err = stringOPconcat(T_3_3, STR__051_073, &T_3_4);
        if (err != ERR_ok) goto ex_1;
        err = g_envOPputl(e, T_3_4);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(129);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
            T_3_1.num = a.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++) {
                s.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(130);
                {
                err = g_stmt(e, s);
                if (err != ERR_ok) goto ex_1;
                }
            }
        }
        end_inline_for_1:;

  LINE(135);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        err = exOPget_current_end_label(&T_3_1);
        if (err != ERR_ok) goto ex_1;
        err = stringOPconcat(STR_goto_040, T_3_1, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        err = stringOPconcat(T_3_2, STR__073, &T_3_3);
        if (err != ERR_ok) goto ex_1;
        err = g_envOPputl(e, T_3_3);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(136);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        err = exOPget_current_ex_label(&T_3_1);
        if (err != ERR_ok) goto ex_1;
        err = stringOPconcat(T_3_1, STR__072, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        err = g_envOPputl(e, T_3_2);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(137);
        {
        err = g_envOPindent(e);
        if (err != ERR_ok) goto ex_1;
        }

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

  LINE(139);
        {
        err = g_envOPindent(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(140);
        {
        err = g_envOPnewline(e);
        if (err != ERR_ok) goto ex_1;
        }

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

  LINE(142);
        {
        err = g_err(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(143);
        {
        err = g_envOPputl(e, STR__040_075_075_040ERR_137failure_051_040_173signal_050ERR_137failure_051_073_175);
        if (err != ERR_ok) goto ex_1;
        }

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

  LINE(145);
        {
        err = g_err(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(146);
        {
        err = g_envOPputl(e, STR__051_073);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(147);
        {
        err = g_envOPputl(e, STR__173signal_050ERR_137failure_051_073_175);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(148);
        {
        err = g_envOPoutdent(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(149);
        {
        err = g_envOPputl(e, STR__175);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(150);
        {
        err = g_envOPnewline(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(151);
        {
        err = g_envOPoutdent(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(152);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        err = current_applyOPget(&T_3_2);
        if (err != ERR_ok) goto ex_1;
        T_3_3.num = T_3_2.vec->data[10];
        T_3_4.num = T_3_3.vec->size;
        T_3_5.num = (T_3_4.num == 0)? true : false;
        T_3_1.num = T_3_5.num;
        if (!T_3_5.num) {
            T_3_1.num = iterp.num;
        }
        if (T_3_1.num == true) {

  LINE(153);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            err = exOPget_current_end_label(&T_4_1);
            if (err != ERR_ok) goto ex_1;
            err = stringOPconcat(T_4_1, STR__072_040_173signal_050ERR_137ok_051_073_175, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            err = g_envOPputs(e, T_4_2);
            if (err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(155);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            err = exOPget_current_end_label(&T_4_1);
            if (err != ERR_ok) goto ex_1;
            err = stringOPconcat(T_4_1, STR__072_040elist_1330_135_056str_040_075_040no_137return_137values_137STRING_073, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            err = g_envOPputl(e, T_4_2);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(157);
            {
            err = g_envOPindent(e);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(158);
            {
            err = g_envOPputl(e, STR__173signal_050ERR_137failure_051_073_175);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(159);
            {
            err = g_envOPoutdent(e);
            if (err != ERR_ok) goto ex_1;
            }
            }}/* end if */

  LINE(161);
        {
        err = g_envOPensure_newline(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(164);
        {
        err = g_envOPputl(e, STR__175);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(165);
        {
        err = g_envOPblankline(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(166);
        {
        err = g_envOPoutdent(e);
        if (err != ERR_ok) goto ex_1;
        }

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

  LINE(168);
        {
        if (iterp.num == true) {
            {
            err = g_envOPputs(e, STR_ITERATOR_040);
            if (err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(169);
            {
            err = g_envOPputs(e, STR_PROCEDURE_040);
            if (err != ERR_ok) goto ex_1;
            }
            }}/* end if */

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

  LINE(171);
        {
        err = g_envOPputl(e, STR__040_052_052_052_052_057);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(172);
        {
        err = g_envOPblankline(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(174);
        {
        err = dbg_infoOPemit_decls(e);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(178);
        {
        CLUREF T_3_1;
        T_3_1.num = a.vec->data[4];
        err = ibOPgen_bodies(e, T_3_1);
        if (err != ERR_ok) goto ex_1;
        }
        }
        goto end_1;
        ex_1:
            if ((err == ERR_failure)) {
            CLUREF s;
            s.num = elist[0].num;

  LINE(181);
                {
                CLUREF T_2_1;
                CLUREF T_2_2;
                CLUREF T_2_3;
                CLUREF T_2_4;
                CLUREF T_2_5;
                T_2_2.num = ((s.str->size != STR_unhandled_040exception_072_040specs_137missing.str->size)? false :
                    !(bcmp(s.str->data, STR_unhandled_040exception_072_040specs_137missing.str->data, s.str->size)));
                T_2_3.num = T_2_2.num ^ 1;
                T_2_1.num = T_2_3.num;
                if (T_2_3.num) {
                    T_2_4.num = ((s.str->size != STR_specs_137missing.str->size)? false :
                        !(bcmp(s.str->data, STR_specs_137missing.str->data, s.str->size)));
                    T_2_5.num = T_2_4.num ^ 1;
                    T_2_1.num = T_2_5.num;
                }
                if (T_2_1.num == true) {

  LINE(183);
                    {
                    elist[0] = s;
                    {signal (ERR_failure);}}
                    }
                    }/* end if */
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(184);
    {
    err = parmOPleave();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(185);
    {
    err = current_applyOPreset();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(186);
    {
    err = tvOPreset();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(187);
    {
    err = ownsOPforget();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(188);
    {
    err = typOPundo_local_idn_types();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(189);
    {
    err = ibOPinit();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(190);
    {
    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) {
        {
        err = dbg_infoOPreset();
        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 g_applydefn ****/


extern errcode escape_ckeyword();
extern errcode g_arglist();
extern errcode recordOPget_1();
extern errcode g_retlist();
extern errcode g_argdecllist();
extern errcode g_retdecllist();
CLUREF STR_errcode_040;
CLUREF STR_OP;
CLUREF STR__050;
CLUREF STR__051;
static int g_proc_signature_own_init = 0;

/**** BEGIN PROCEDURE g_proc_signature ****/

errcode g_proc_signature(e, a, cname)
CLUREF e;
CLUREF a;
CLUREF cname;
    {
    errcode err;
    errcode ecode2;
    CLUREF nm;
        if (g_proc_signature_own_init == 0) {
        stringOPcons("errcode ", CLU_1, CLU_8, &STR_errcode_040);
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("OP", CLU_1, CLU_2, &STR_OP);
        stringOPcons("(", CLU_1, CLU_1, &STR__050);
        stringOPcons(")", CLU_1, CLU_1, &STR__051);
        g_proc_signature_own_init = 1;
    }
    enter_proc(194);

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

  LINE(197);
    {
    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;
        err = stringOPconcat(cname, STR_OP, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_1);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

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

  LINE(199);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = stringOPfetch(nm, 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(nm, CLU_2, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        nm.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(200);
    {
    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(nm, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_1);
        if (err != ERR_ok) goto ex_0;
        }
        }
    else {

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

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

  LINE(203);
    {
    CLUREF T_1_1;
    T_1_1.num = a.vec->data[0];
    err = g_arglist(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(204);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = a.vec->data[10];
    T_1_2.num = a.vec->data[0];
    T_1_3.num = T_1_2.vec->size;
    err = g_retlist(e, T_1_1, T_1_3);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(211);
    {
    CLUREF T_1_1;
    T_1_1.num = a.vec->data[0];
    err = g_argdecllist(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(212);
    {
    CLUREF T_1_1;
    T_1_1.num = a.vec->data[10];
    err = g_retdecllist(e, T_1_1);
    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 g_proc_signature ****/


extern errcode intOPgt();
CLUREF STR__054_040;
CLUREF STR_proc_054_040user_137locals_054_040iecode_051;
CLUREF STR_errcode_040_050_052proc_051_050_051_073;
CLUREF STR_char_040_052_052user_137locals_073;
CLUREF STR_errcode_040_052iecode_073;
static int g_iter_signature_own_init = 0;

/**** BEGIN PROCEDURE g_iter_signature ****/

errcode g_iter_signature(e, a, cname)
CLUREF e;
CLUREF a;
CLUREF cname;
    {
    errcode err;
    errcode ecode2;
    CLUREF nm;
        if (g_iter_signature_own_init == 0) {
        stringOPcons("errcode ", CLU_1, CLU_8, &STR_errcode_040);
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("OP", CLU_1, CLU_2, &STR_OP);
        stringOPcons("(", CLU_1, CLU_1, &STR__050);
        stringOPcons(", ", CLU_1, CLU_2, &STR__054_040);
        stringOPcons("proc, user_locals, iecode)", CLU_1, CLU_26, &STR_proc_054_040user_137locals_054_040iecode_051);
        stringOPcons("errcode (*proc)();", CLU_1, CLU_18, &STR_errcode_040_050_052proc_051_050_051_073);
        stringOPcons("char **user_locals;", CLU_1, CLU_19, &STR_char_040_052_052user_137locals_073);
        stringOPcons("errcode *iecode;", CLU_1, CLU_16, &STR_errcode_040_052iecode_073);
        g_iter_signature_own_init = 1;
    }
    enter_proc(216);

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

  LINE(219);
    {
    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;
        err = stringOPconcat(cname, STR_OP, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_1);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

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

  LINE(221);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = stringOPfetch(nm, 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(nm, CLU_2, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        nm.num = T_2_1.num;
        }
        }
        }/* end if */

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

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

  LINE(224);
    {
    CLUREF T_1_1;
    T_1_1.num = a.vec->data[0];
    err = g_arglist(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(225);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = a.vec->data[0];
    T_1_2.num = T_1_1.vec->size;
    T_1_3.num = (T_1_2.num > 0)? true : false;
    if (T_1_3.num == true) {

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

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

  LINE(232);
    {
    CLUREF T_1_1;
    T_1_1.num = a.vec->data[0];
    err = g_argdecllist(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

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

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

  LINE(235);
    {
    err = g_envOPputl(e, STR_errcode_040_052iecode_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 g_iter_signature ****/


extern errcode g_idnlit();
CLUREF STR__137ops;
static int g_parmlist_own_init = 0;

/**** BEGIN PROCEDURE g_parmlist ****/

errcode g_parmlist(e, parms)
CLUREF e;
CLUREF parms;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_d;
    CLUREF each_idn;
        if (g_parmlist_own_init == 0) {
        stringOPcons("_ops", CLU_1, CLU_4, &STR__137ops);
        stringOPcons(", ", CLU_1, CLU_2, &STR__054_040);
        g_parmlist_own_init = 1;
    }
    enter_proc(239);

  LINE(240);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = parms.vec->size; 
        T_1_3 = parms;
        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(241);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
                T_2_1.num = each_d.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(242);
                    {
                    err = g_idnlit(e, each_idn);
                    if (err != ERR_ok) goto ex_0;
                    }

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

  LINE(244);
                    {
                    err = g_envOPputs(e, STR__054_040);
                    if (err != ERR_ok) goto ex_0;
                    }
                }
            }
            end_inline_for_2:;
        }
    }
    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 g_parmlist ****/



/**** BEGIN PROCEDURE g_parm_types ****/

errcode g_parm_types(e, parms)
CLUREF e;
CLUREF parms;
    {
    errcode err;
    errcode ecode2;
    enter_proc(249);
    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 g_parm_types ****/


extern errcode idnOPsimilar();
extern errcode recordOPget_3();
CLUREF STR_struct_173;
CLUREF STR_int_040count_073;
CLUREF STR_errcode_040_050_052;
CLUREF STR__051_050_051_073;
CLUREF STR__175_040_052;
static int g_parmdecls_own_init = 0;

/**** BEGIN PROCEDURE g_parmdecls ****/

errcode g_parmdecls(e, a)
CLUREF e;
CLUREF a;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_d;
    CLUREF each_idn;
    CLUREF each_r;
    CLUREF ops;
    CLUREF h;
    CLUREF s;
    CLUREF each_opd;
    CLUREF each_op;
        if (g_parmdecls_own_init == 0) {
        stringOPcons("struct{", CLU_1, CLU_7, &STR_struct_173);
        stringOPcons("int count;", CLU_1, CLU_10, &STR_int_040count_073);
        stringOPcons("errcode (*", CLU_1, CLU_10, &STR_errcode_040_050_052);
        stringOPcons(")();", CLU_1, CLU_4, &STR__051_050_051_073);
        stringOPcons("} *", CLU_1, CLU_3, &STR__175_040_052);
        stringOPcons("_ops", CLU_1, CLU_4, &STR__137ops);
        stringOPcons(";", CLU_1, CLU_1, &STR__073);
        g_parmdecls_own_init = 1;
    }
    enter_proc(261);

  LINE(262);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
        T_1_1.num = a.vec->data[7];
        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_d.num = T_1_4.vec->data[T_1_2.num - 1];

  LINE(263);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
                T_2_1.num = each_d.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(264);
                    {
                    err = g_envOPputl(e, STR_struct_173);
                    if (err != ERR_ok) goto ex_0;
                    }

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

  LINE(266);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                        T_3_1.num = a.vec->data[12];
                        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_r.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(267);
                            {
                            CLUREF T_4_1;
                            CLUREF T_4_2;
                            CLUREF T_4_3;
                            T_4_1.num = each_r.vec->data[0];
                            err = idnOPsimilar(T_4_1, each_idn, &T_4_2);
                            if (err != ERR_ok) goto ex_0;
                            T_4_3.num = T_4_2.num ^ 1;
                            if (T_4_3.num == true) {
                                continue;
                                }
                                }/* end if */

  LINE(269);
                            {
                            CLUREF T_4_1;
                            T_4_1.num = each_r.vec->data[1];
                            switch (T_4_1.cell->tag) {
                            case 1: 
                                 {CLUREF T_4_2;
                                T_4_2.num = T_4_1.cell->value;
                                h.num = T_4_2.num;

  LINE(271);
                                    {
                                    ops.num = h.num;
                                    }
                                    break;
                                    }
                            case 2: 
                                 {
                                    break;
                                    }
                            case 3: 
                                 {CLUREF T_4_3;
                                T_4_3.num = T_4_1.cell->value;
                                s.num = T_4_3.num;

  LINE(274);
                                    {
                                    CLUREF T_5_1;
                                    T_5_1.num = s.vec->data[2];
                                    ops.num = T_5_1.num;
                                    }
                                    break;
                                    }
                            }
                            }

  LINE(276);
                            {
                            CLUREF T_4_1;
                            CLUREF T_4_2;
                            CLUREF T_4_3;
                                T_4_2.num = ops.vec->size; 
                                T_4_3 = ops;
                                for (T_4_1.num = 1; T_4_1.num <= T_4_2.num; T_4_1.num++) {
                                    each_opd.num = T_4_3.vec->data[T_4_1.num - 1];

  LINE(277);
                                    {
                                    CLUREF T_5_1;
                                    CLUREF T_5_2;
                                    CLUREF T_5_3;
                                    CLUREF T_5_4;
                                        T_5_1.num = each_opd.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++) {
                                            each_op.num = T_5_4.vec->data[T_5_2.num - 1];

  LINE(278);
                                            {
                                            CLUREF T_6_1;
                                            CLUREF T_6_2;
                                            CLUREF T_6_3;
                                            T_6_1.num = each_op.vec->data[0];
                                            err = stringOPconcat(STR_errcode_040_050_052, T_6_1, &T_6_2);
                                            if (err != ERR_ok) goto ex_0;
                                            err = stringOPconcat(T_6_2, STR__051_050_051_073, &T_6_3);
                                            if (err != ERR_ok) goto ex_0;
                                            err = g_envOPputl(e, T_6_3);
                                            if (err != ERR_ok) goto ex_0;
                                            }
                                        }
                                    }
                                    end_inline_for_5:;
                                }
                            }
                            end_inline_for_4:;
                        }
                    }
                    end_inline_for_3:;

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

  LINE(283);
                    {
                    err = g_idnlit(e, each_idn);
                    if (err != ERR_ok) goto ex_0;
                    }

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

  LINE(285);
                    {
                    err = g_envOPputl(e, STR__073);
                    if (err != ERR_ok) goto ex_0;
                    }
                }
            }
            end_inline_for_2:;
        }
    }
    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 g_parmdecls ****/


extern errcode current_typeOPget_name();
extern errcode g_pown();
extern errcode intOPadd();
extern errcode own_counter();
extern errcode g_parm_decls();
extern errcode parmOPget_base();
extern errcode own_defnOPstart();
extern errcode g_tblOPg_field_tables();
extern errcode own_defnOPstop();
CLUREF STR_OWN_137ptr_040;
CLUREF STR__137own_137init_073_040_057_052_040dummy_040_052_057;
CLUREF STR_typedef_040struct_040_173;
CLUREF STR_int_040;
CLUREF STR__137own_137init_073;
CLUREF STR__175_040;
CLUREF STR__137OWN_137DEFN_073;
CLUREF STR_OWN_137req_040;
CLUREF STR__137ownreqs;
CLUREF STR__040_075_040_173sizeof_050;
CLUREF STR__137OWN_137DEFN_051_054_040;
CLUREF STR__175_073;
static int g_ptypeownvars_own_init = 0;

/**** BEGIN PROCEDURE g_ptypeownvars ****/

errcode g_ptypeownvars(e, ti, aps)
CLUREF e;
CLUREF ti;
CLUREF aps;
    {
    errcode err;
    errcode ecode2;
    CLUREF own_count;
    CLUREF i;
    CLUREF a;
    CLUREF n;
        if (g_ptypeownvars_own_init == 0) {
        stringOPcons("OWN_ptr ", CLU_1, CLU_8, &STR_OWN_137ptr_040);
        stringOPcons("_own_init; /* dummy */", CLU_1, CLU_22, &STR__137own_137init_073_040_057_052_040dummy_040_052_057);
        stringOPcons("typedef struct {", CLU_1, CLU_16, &STR_typedef_040struct_040_173);
        stringOPcons("int ", CLU_1, CLU_4, &STR_int_040);
        stringOPcons("_own_init;", CLU_1, CLU_10, &STR__137own_137init_073);
        stringOPcons("} ", CLU_1, CLU_2, &STR__175_040);
        stringOPcons("_OWN_DEFN;", CLU_1, CLU_10, &STR__137OWN_137DEFN_073);
        stringOPcons("OWN_req ", CLU_1, CLU_8, &STR_OWN_137req_040);
        stringOPcons("_ownreqs", CLU_1, CLU_8, &STR__137ownreqs);
        stringOPcons(" = {sizeof(", CLU_1, CLU_11, &STR__040_075_040_173sizeof_050);
        stringOPcons("_OWN_DEFN), ", CLU_1, CLU_12, &STR__137OWN_137DEFN_051_054_040);
        stringOPcons("};", CLU_1, CLU_2, &STR__175_073);
        g_ptypeownvars_own_init = 1;
    }
    enter_proc(293);

  LINE(294);
    {
    err = g_envOPblankline(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(295);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = current_typeOPget_name(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_OWN_137ptr_040, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__137own_137init_073_040_057_052_040dummy_040_052_057, &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(296);
    {
    err = g_envOPputl(e, STR_typedef_040struct_040_173);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(298);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = current_typeOPget_name(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_int_040, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__137own_137init_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(299);
    {
        {own_count.num = 0;
        }
        }

  LINE(300);
    {
    err = dbg_infoOPadd_ilist(ti);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(302);
            {
            err = g_pown(e, i, CLU_1);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(303);
            {
            err = g_envOPnewline(e);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_1:;

  LINE(305);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = own_counter(ti, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    T_1_2.num = own_count.num + T_1_1.num;
     if ((T_1_2.num > 0 && own_count.num < 0 && T_1_1.num < 0) || 
         (T_1_2.num < 0 && own_count.num > 0 && T_1_1.num > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    own_count.num = T_1_2.num;
    }

  LINE(306);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = aps.vec->size; 
        T_1_3 = aps;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            a.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(307);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            T_2_1.num = a.vec->data[7];
            T_2_2.num = T_2_1.vec->size;
            T_2_3.num = (T_2_2.num == 0)? true : false;
            T_2_4.num = T_2_3.num ^ 1;
            if (T_2_4.num == true) {
                continue;
                }
                }/* end if */

  LINE(308);
            {
                {CLUREF T_2_1;
                CLUREF T_2_2;
                T_2_1.num = a.vec->data[4];
                err = idnOPget_str(T_2_1, &T_2_2);
                if (err != ERR_ok) goto ex_0;
                n.num = T_2_2.num;
                }
                }

  LINE(309);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            err = stringOPfetch(n, CLU_1, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            T_2_2.ch = '%';
            T_2_3.num = (T_2_1.ch == T_2_2.ch)? true : false;
            if (T_2_3.num == true) {
                {
                CLUREF T_3_1;
                err = stringOPrest(n, CLU_2, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                n.num = T_3_1.num;
                }
                }
                }/* end if */

  LINE(310);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            err = stringOPconcat(STR_int_040, n, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_1, STR__137own_137init_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;
            }

  LINE(312);
            {
            CLUREF T_2_1;
            T_2_1.num = a.vec->data[5];
            err = dbg_infoOPadd_ilist(T_2_1);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(313);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
                T_2_1.num = a.vec->data[5];
                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++) {
                    i.num = T_2_4.vec->data[T_2_2.num - 1];

  LINE(314);
                    {
                    err = g_pown(e, i, CLU_1);
                    if (err != ERR_ok) goto ex_0;
                    }

  LINE(315);
                    {
                    err = g_envOPnewline(e);
                    if (err != ERR_ok) goto ex_0;
                    }
                }
            }
            end_inline_for_3:;

  LINE(317);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            T_2_1.num = a.vec->data[5];
            err = own_counter(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            T_2_3.num = own_count.num + T_2_2.num;
             if ((T_2_3.num > 0 && own_count.num < 0 && T_2_2.num < 0) || 
                 (T_2_3.num < 0 && own_count.num > 0 && T_2_2.num > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            own_count.num = T_2_3.num;
            }
        }
    }
    end_inline_for_2:;

  LINE(319);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = parmOPget_base(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = sequenceOPnew(&T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = g_parm_decls(e, T_1_1, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(320);
    {
    err = own_defnOPstart();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(321);
    {
    err = g_tblOPg_field_tables(e, CLU_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(322);
    {
    err = g_envOPoutdent(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(323);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = current_typeOPget_name(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR__175_040, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__137OWN_137DEFN_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(324);
    {
    err = own_defnOPstop();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(325);
    {
    err = g_envOPblankline(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(326);
    {
    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;
    CLUREF T_1_9;
    CLUREF T_1_10;
    err = current_typeOPget_name(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_OWN_137req_040, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__137ownreqs, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_3, STR__040_075_040_173sizeof_050, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = current_typeOPget_name(&T_1_5);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_4, T_1_5, &T_1_6);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_6, STR__137OWN_137DEFN_051_054_040, &T_1_7);
    if (err != ERR_ok) goto ex_0;
    err = intOPunparse(own_count, &T_1_8);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_7, T_1_8, &T_1_9);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_9, STR__175_073, &T_1_10);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputl(e, T_1_10);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(329);
    {
    err = g_envOPblankline(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 g_ptypeownvars ****/


extern errcode dbg_infoOPactive();
extern errcode g_tblOPbuild_tables();
CLUREF STR__137own_137init_137proc_050_051;
CLUREF STR_struct_040_173;
CLUREF STR_errcode_040err_073;
CLUREF STR__137OWN_137DEFN_040_052type_137own_137ptr_073;
CLUREF STR__175_040locals_073;
CLUREF STR_locals_056type_137own_137ptr_040_075_040_050;
CLUREF STR__137OWN_137DEFN;
CLUREF STR__040_052_051_040CUR_137PROC_137VAR_056proc_055_076type_137owns_073;
CLUREF STR__137OWN_137DEFN_040_052type_137own_137ptr_040_075_040_050;
CLUREF STR_enter_137own_137init_137proc_050_051_073;
static int g_powninit_own_init = 0;

/**** BEGIN PROCEDURE g_powninit ****/

errcode g_powninit(e, ilist)
CLUREF e;
CLUREF ilist;
    {
    errcode err;
    errcode ecode2;
        if (g_powninit_own_init == 0) {
        stringOPcons("errcode ", CLU_1, CLU_8, &STR_errcode_040);
        stringOPcons("_own_init_proc()", CLU_1, CLU_16, &STR__137own_137init_137proc_050_051);
        stringOPcons("{", CLU_1, CLU_1, &STR__173);
        stringOPcons("struct {", CLU_1, CLU_8, &STR_struct_040_173);
        stringOPcons("errcode err;", CLU_1, CLU_12, &STR_errcode_040err_073);
        stringOPcons("_OWN_DEFN *type_own_ptr;", CLU_1, CLU_24, &STR__137OWN_137DEFN_040_052type_137own_137ptr_073);
        stringOPcons("} locals;", CLU_1, CLU_9, &STR__175_040locals_073);
        stringOPcons("locals.type_own_ptr = (", CLU_1, CLU_23, &STR_locals_056type_137own_137ptr_040_075_040_050);
        stringOPcons("_OWN_DEFN", CLU_1, CLU_9, &STR__137OWN_137DEFN);
        stringOPcons(" *) CUR_PROC_VAR.proc->type_owns;", CLU_1, CLU_33, &STR__040_052_051_040CUR_137PROC_137VAR_056proc_055_076type_137owns_073);
        stringOPcons("_OWN_DEFN *type_own_ptr = (", CLU_1, CLU_27, &STR__137OWN_137DEFN_040_052type_137own_137ptr_040_075_040_050);
        stringOPcons("enter_own_init_proc();", CLU_1, CLU_22, &STR_enter_137own_137init_137proc_050_051_073);
        stringOPcons("}", CLU_1, CLU_1, &STR__175);
        g_powninit_own_init = 1;
    }
    enter_proc(335);

  LINE(336);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = current_typeOPget_name(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_errcode_040, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__137own_137init_137proc_050_051, &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(338);
    {
    err = g_envOPputl(e, STR__173);
    if (err != ERR_ok) goto ex_0;
    }

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

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

  LINE(342);
    {
    err = g_tblOPbuild_tables(e, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

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

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

  LINE(345);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = current_typeOPget_name(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR__137OWN_137DEFN_040_052type_137own_137ptr_073, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_2);
        if (err != ERR_ok) goto ex_0;
        }

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

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

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

  LINE(351);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = current_typeOPget_name(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR__137OWN_137DEFN, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_2);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(352);
        {
        err = g_envOPputl(e, STR__040_052_051_040CUR_137PROC_137VAR_056proc_055_076type_137owns_073);
        if (err != ERR_ok) goto ex_0;
        }
        }
    else {

  LINE(354);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = current_typeOPget_name(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR__137OWN_137DEFN_040_052type_137own_137ptr_040_075_040_050, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_2);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(355);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = current_typeOPget_name(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR__137OWN_137DEFN, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_2);
        if (err != ERR_ok) goto ex_0;
        }

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

  LINE(358);
    {
    err = g_envOPblankline(e);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(360);
    {
    err = g_envOPoutdent(e);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(362);
    {
    err = g_pownvars(e, ilist, CLU_2);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(364);
    {
    err = g_envOPblankline(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 g_powninit ****/


extern errcode g_tblOPexist();
extern errcode g_constOPexist();
extern errcode own_init();
extern errcode current_applyOPget_name();
static int g_owninit_own_init = 0;

/**** BEGIN PROCEDURE g_owninit ****/

errcode g_owninit(e, ilist, ret_1)
CLUREF e;
CLUREF ilist;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (g_owninit_own_init == 0) {
        stringOPcons("errcode ", CLU_1, CLU_8, &STR_errcode_040);
        stringOPcons("_own_init_proc()", CLU_1, CLU_16, &STR__137own_137init_137proc_050_051);
        stringOPcons("{", CLU_1, CLU_1, &STR__173);
        stringOPcons("struct {", CLU_1, CLU_8, &STR_struct_040_173);
        stringOPcons("errcode err;", CLU_1, CLU_12, &STR_errcode_040err_073);
        stringOPcons("} locals;", CLU_1, CLU_9, &STR__175_040locals_073);
        stringOPcons("enter_own_init_proc();", CLU_1, CLU_22, &STR_enter_137own_137init_137proc_050_051_073);
        stringOPcons("}", CLU_1, CLU_1, &STR__175);
        g_owninit_own_init = 1;
    }
    enter_proc(370);

  LINE(371);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    err = g_tblOPexist(&T_1_3);
    if (err != ERR_ok) goto ex_0;
    T_1_2.num = T_1_3.num;
    if (!T_1_3.num) {
        err = g_constOPexist(&T_1_4);
        if (err != ERR_ok) goto ex_0;
        T_1_2.num = T_1_4.num;
    }
    T_1_1.num = T_1_2.num;
    if (!T_1_2.num) {
        err = own_init(ilist, &T_1_5);
        if (err != ERR_ok) goto ex_0;
        T_1_1.num = T_1_5.num;
    }
    if (T_1_1.num == true) {

  LINE(372);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        err = current_applyOPget_name(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(STR_errcode_040, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_2, STR__137own_137init_137proc_050_051, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputl(e, T_2_3);
        if (err != ERR_ok) goto ex_0;
        }

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

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

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

  LINE(378);
        {
        err = g_tblOPbuild_tables(e, CLU_0);
        if (err != ERR_ok) goto ex_0;
        }

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

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

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

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

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

  LINE(385);
        {
        err = g_ownvars(e, ilist, CLU_2);
        if (err != ERR_ok) goto ex_0;
        }

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

  LINE(387);
        {
        err = g_envOPoutdent(e);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(388);
        {
        err = g_envOPblankline(e);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(389);
        {
        {
        ret_1->tf = true;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(391);
    {
    {
    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 g_owninit ****/



/**** BEGIN PROCEDURE own_init ****/

errcode own_init(ilist, ret_1)
CLUREF ilist;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_init;
    enter_proc(397);

  LINE(398);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = ilist.vec->size; 
        T_1_3 = ilist;
        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(399);
            {
            CLUREF T_2_1;
            T_2_1.num = each_init.vec->data[1];
            switch (T_2_1.cell->tag) {
            case 1: 
                 {
                    break;
                    }
            case 2: 
                 {

  LINE(401);
                    {
                    {
                    ret_1->tf = true;
                    }
                    {signal (ERR_ok);}}
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_1:;

  LINE(404);
    {
    {
    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 own_init ****/


extern errcode current_applyOPget_short_name();
extern errcode s_locals();
extern errcode g_constOPg_consts();
extern errcode current_typeOPget();
extern errcode op_own_name();
CLUREF STR_op_137own_137ptr;
CLUREF STR_type_137own_137ptr;
CLUREF STR__055_076;
CLUREF STR__137own_137init_040_075_075_0400_051_040_173;
CLUREF STR_type_137own_137ptr_055_076;
CLUREF STR_generic_137CLU_137proc_056type_137owns_040_075_040_050OWNPTR_051;
CLUREF STR_type_137own_137ptr_073;
CLUREF STR_generic_137CLU_137proc_056op_137owns_040_075_0400_073;
CLUREF STR_generic_137CLU_137proc_056proc_040_075_040;
CLUREF STR__137own_137init_137proc_073;
CLUREF STR_err_040_075_040;
CLUREF STR_generic_137CLU_137proc;
CLUREF STR__056proc_050_051_073;
CLUREF STR_err_040_041_075_040ERR_137ok_051_040goto_040ex_1370_073;
CLUREF STR__137own_137init_137proc_050_051_073;
CLUREF STR__137own_137init_040_075_0401_073;
CLUREF STR__173signal_050ERR_137ok_051_073_175;
CLUREF STR_ex_1370_072_040pclu_137unhandled_050;
CLUREF STR_err_051_073_040_173signal_050ERR_137failure_051_073_175;
static int g_pownvars_own_init = 0;

/**** BEGIN PROCEDURE g_pownvars ****/

errcode g_pownvars(e, ilist, pass)
CLUREF e;
CLUREF ilist;
CLUREF pass;
    {
    errcode err;
    errcode ecode2;
    CLUREF ptr;
    CLUREF ref;
    CLUREF i;
    CLUREF defn_name;
        if (g_pownvars_own_init == 0) {
        stringOPcons("op_own_ptr", CLU_1, CLU_10, &STR_op_137own_137ptr);
        stringOPcons("type_own_ptr", CLU_1, CLU_12, &STR_type_137own_137ptr);
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("typedef struct {", CLU_1, CLU_16, &STR_typedef_040struct_040_173);
        stringOPcons("int ", CLU_1, CLU_4, &STR_int_040);
        stringOPcons("_own_init;", CLU_1, CLU_10, &STR__137own_137init_073);
        stringOPcons("if (", CLU_1, CLU_4, &STR_if_040_050);
        stringOPcons("->", CLU_1, CLU_2, &STR__055_076);
        stringOPcons("_own_init == 0) {", CLU_1, CLU_17, &STR__137own_137init_040_075_075_0400_051_040_173);
        stringOPcons("}", CLU_1, CLU_1, &STR__175);
        stringOPcons("type_own_ptr->", CLU_1, CLU_14, &STR_type_137own_137ptr_055_076);
        stringOPcons("generic_CLU_proc.type_owns = (OWNPTR)", CLU_1, CLU_37, &STR_generic_137CLU_137proc_056type_137owns_040_075_040_050OWNPTR_051);
        stringOPcons("type_own_ptr;", CLU_1, CLU_13, &STR_type_137own_137ptr_073);
        stringOPcons("generic_CLU_proc.op_owns = 0;", CLU_1, CLU_29, &STR_generic_137CLU_137proc_056op_137owns_040_075_0400_073);
        stringOPcons("generic_CLU_proc.proc = ", CLU_1, CLU_24, &STR_generic_137CLU_137proc_056proc_040_075_040);
        stringOPcons("_own_init_proc;", CLU_1, CLU_15, &STR__137own_137init_137proc_073);
        stringOPcons("err = ", CLU_1, CLU_6, &STR_err_040_075_040);
        stringOPcons("generic_CLU_proc", CLU_1, CLU_16, &STR_generic_137CLU_137proc);
        stringOPcons(".proc();", CLU_1, CLU_8, &STR__056proc_050_051_073);
        stringOPcons("err != ERR_ok) goto ex_0;", CLU_1, CLU_25, &STR_err_040_041_075_040ERR_137ok_051_040goto_040ex_1370_073);
        stringOPcons("_own_init_proc();", CLU_1, CLU_17, &STR__137own_137init_137proc_050_051_073);
        stringOPcons("_own_init = 1;", CLU_1, CLU_14, &STR__137own_137init_040_075_0401_073);
        stringOPcons("{signal(ERR_ok);}", CLU_1, CLU_17, &STR__173signal_050ERR_137ok_051_073_175);
        stringOPcons("ex_0: pclu_unhandled(", CLU_1, CLU_21, &STR_ex_1370_072_040pclu_137unhandled_050);
        stringOPcons("err); {signal(ERR_failure);}", CLU_1, CLU_28, &STR_err_051_073_040_173signal_050ERR_137failure_051_073_175);
        stringOPcons("} ", CLU_1, CLU_2, &STR__175_040);
        stringOPcons("_OWN_DEFN;", CLU_1, CLU_10, &STR__137OWN_137DEFN_073);
        stringOPcons("OWN_req ", CLU_1, CLU_8, &STR_OWN_137req_040);
        stringOPcons("_ownreqs", CLU_1, CLU_8, &STR__137ownreqs);
        stringOPcons(" = {sizeof(", CLU_1, CLU_11, &STR__040_075_040_173sizeof_050);
        stringOPcons("_OWN_DEFN), ", CLU_1, CLU_12, &STR__137OWN_137DEFN_051_054_040);
        stringOPcons("};", CLU_1, CLU_2, &STR__175_073);
        g_pownvars_own_init = 1;
    }
    enter_proc(412);

  LINE(415);
    {
        {ptr = STR_op_137own_137ptr;
        }
        }

  LINE(416);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    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_applyOPparmd(&T_1_3);
        if (err != ERR_ok) goto ex_0;
        T_1_4.num = T_1_3.num ^ 1;
        T_1_1.num = T_1_4.num;
    }
    if (T_1_1.num == true) {

  LINE(417);
        {
        ptr = STR_type_137own_137ptr;
        }
        }
        }/* end if */

  LINE(419);
    {
        {CLUREF T_1_1;
        err = current_applyOPget_short_name(&T_1_1);
        if (err != ERR_ok) goto ex_0;
        ref.num = T_1_1.num;
        }
        }

  LINE(423);
    {
    CLUREF T_1_1;
    T_1_1.num = ((ref.str->size != STR_.str->size)? false :
        !(bcmp(ref.str->data, STR_.str->data, ref.str->size)));
    if (T_1_1.num == true) {

  LINE(425);
        {
        CLUREF T_2_1;
        err = current_typeOPget_name(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        ref.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(426);
    {
    CLUREF T_1_1;
    T_1_1.num = (pass.num == 1)? true : false;
    if (T_1_1.num == true) {

  LINE(427);
        {
        err = g_envOPblankline(e);
        if (err != ERR_ok) goto ex_0;
        }

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

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

  LINE(430);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = stringOPconcat(STR_int_040, ref, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR__137own_137init_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 */

  LINE(432);
    {
    CLUREF T_1_1;
    T_1_1.num = (pass.num == 2)? true : false;
    if (T_1_1.num == true) {

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

  LINE(436);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        err = g_tblOPexist(&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_constOPexist(&T_2_3);
            if (err != ERR_ok) goto ex_0;
            T_2_1.num = T_2_3.num;
        }
        if (T_2_1.num == true) {

  LINE(437);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            CLUREF T_3_4;
            CLUREF T_3_5;
            CLUREF T_3_6;
            err = s_locals(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(STR_if_040_050, T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_2, ptr, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_3, STR__055_076, &T_3_4);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_4, ref, &T_3_5);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_5, STR__137own_137init_040_075_075_0400_051_040_173, &T_3_6);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_3_6);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(439);
            {
            err = g_tblOPbuild_tables(e, CLU_1);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(440);
            {
            err = g_constOPg_consts(e, CLU_1);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(442);
            {
            err = g_tblOPbuild_tables(e, CLU_2);
            if (err != ERR_ok) goto ex_0;
            }

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

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

  LINE(449);
        {
        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;
        err = current_typeOPexists(&T_2_3);
        if (err != ERR_ok) goto ex_0;
        T_2_2.num = T_2_3.num;
        if (T_2_3.num) {
            err = current_applyOPget_name(&T_2_4);
            if (err != ERR_ok) goto ex_0;
            err = current_typeOPget_name(&T_2_5);
            if (err != ERR_ok) goto ex_0;
            T_2_6.num = ((T_2_4.str->size != T_2_5.str->size)? false :
                !(bcmp(T_2_4.str->data, T_2_5.str->data, T_2_4.str->size)));
            T_2_7.num = T_2_6.num ^ 1;
            T_2_2.num = T_2_7.num;
        }
        T_2_1.num = T_2_2.num;
        if (T_2_2.num) {
            err = current_typeOPget(&T_2_8);
            if (err != ERR_ok) goto ex_0;
            T_2_9.num = T_2_8.vec->data[4];
            T_2_10.num = T_2_9.vec->size;
            T_2_11.num = (T_2_10.num == 0)? true : false;
            T_2_12.num = T_2_11.num ^ 1;
            T_2_1.num = T_2_12.num;
        }
        if (T_2_1.num == true) {

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

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

  LINE(457);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                CLUREF T_4_4;
                CLUREF T_4_5;
                CLUREF T_4_6;
                err = s_locals(&T_4_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(STR_if_040_050, T_4_1, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_2, STR_type_137own_137ptr_055_076, &T_4_3);
                if (err != ERR_ok) goto ex_0;
                err = current_typeOPget_name(&T_4_4);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_3, T_4_4, &T_4_5);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_5, STR__137own_137init_040_075_075_0400_051_040_173, &T_4_6);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputl(e, T_4_6);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(460);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                err = s_locals(&T_4_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(STR_generic_137CLU_137proc_056type_137owns_040_075_040_050OWNPTR_051, T_4_1, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_2, STR_type_137own_137ptr_073, &T_4_3);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputl(e, T_4_3);
                if (err != ERR_ok) goto ex_0;
                }

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

  LINE(462);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                err = current_typeOPget_name(&T_4_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(STR_generic_137CLU_137proc_056proc_040_075_040, T_4_1, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_2, STR__137own_137init_137proc_073, &T_4_3);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputl(e, T_4_3);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(463);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                CLUREF T_4_4;
                err = s_locals(&T_4_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_1, STR_err_040_075_040, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_2, STR_generic_137CLU_137proc, &T_4_3);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_3, STR__056proc_050_051_073, &T_4_4);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputl(e, T_4_4);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(464);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                err = s_locals(&T_4_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(STR_if_040_050, T_4_1, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_2, STR_err_040_041_075_040ERR_137ok_051_040goto_040ex_1370_073, &T_4_3);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputl(e, T_4_3);
                if (err != ERR_ok) goto ex_0;
                }

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

  LINE(466);
                {
                err = g_envOPoutdent(e);
                if (err != ERR_ok) goto ex_0;
                }
                }
            else {

  LINE(469);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                err = current_typeOPget_name(&T_4_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(STR_if_040_050, T_4_1, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_2, STR__137own_137init_040_075_075_0400_051_040_173, &T_4_3);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputl(e, T_4_3);
                if (err != ERR_ok) goto ex_0;
                }

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

  LINE(472);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                CLUREF T_4_4;
                CLUREF T_4_5;
                err = s_locals(&T_4_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_1, STR_err_040_075_040, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                err = current_typeOPget_name(&T_4_3);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_2, T_4_3, &T_4_4);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_4, STR__137own_137init_137proc_050_051_073, &T_4_5);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputl(e, T_4_5);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(474);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                err = s_locals(&T_4_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(STR_if_040_050, T_4_1, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_2, STR_err_040_041_075_040ERR_137ok_051_040goto_040ex_1370_073, &T_4_3);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputl(e, T_4_3);
                if (err != ERR_ok) goto ex_0;
                }

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

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

  LINE(481);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        CLUREF T_2_5;
        CLUREF T_2_6;
        err = s_locals(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(STR_if_040_050, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_2, ptr, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_3, STR__055_076, &T_2_4);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_4, ref, &T_2_5);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_5, STR__137own_137init_040_075_075_0400_051_040_173, &T_2_6);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputl(e, T_2_6);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(483);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        CLUREF T_2_5;
        err = s_locals(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, ptr, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_2, STR__055_076, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_3, ref, &T_2_4);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_4, STR__137own_137init_040_075_0401_073, &T_2_5);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputl(e, T_2_5);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

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

  LINE(487);
            {
            err = g_pown(e, i, pass);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(488);
            {
            err = g_envOPnewline(e);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_1:;

  LINE(490);
    {
    CLUREF T_1_1;
    T_1_1.num = (pass.num == 2)? true : false;
    if (T_1_1.num == true) {

  LINE(491);
        {
        err = g_envOPoutdent(e);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(492);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        CLUREF T_2_5;
        err = current_typeOPexists(&T_2_2);
        if (err != ERR_ok) goto ex_0;
        T_2_1.num = T_2_2.num;
        if (T_2_2.num) {
            err = current_applyOPget_name(&T_2_3);
            if (err != ERR_ok) goto ex_0;
            err = current_typeOPget_name(&T_2_4);
            if (err != ERR_ok) goto ex_0;
            T_2_5.num = ((T_2_3.str->size != T_2_4.str->size)? false :
                !(bcmp(T_2_3.str->data, T_2_4.str->data, T_2_3.str->size)));
            T_2_1.num = T_2_5.num;
        }
        if (T_2_1.num == true) {

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

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

  LINE(497);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            err = s_locals(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(STR_ex_1370_072_040pclu_137unhandled_050, T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_2, STR_err_051_073_040_173signal_050ERR_137failure_051_073_175, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_3_3);
            if (err != ERR_ok) goto ex_0;
            }

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

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

  LINE(502);
    {
    CLUREF T_1_1;
    T_1_1.num = (pass.num == 1)? true : false;
    if (T_1_1.num == true) {

  LINE(503);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        err = sequenceOPnew(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = current_applyOPget(&T_2_2);
        if (err != ERR_ok) goto ex_0;
        T_2_3.num = T_2_2.vec->data[7];
        err = g_parm_decls(e, T_2_1, T_2_3);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(504);
        {
        err = own_defnOPstart();
        if (err != ERR_ok) goto ex_0;
        }

  LINE(505);
        {
        err = g_tblOPg_field_tables(e, CLU_2);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(506);
        {
            {CLUREF T_2_1;
            err = op_own_name(&T_2_1);
            if (err != ERR_ok) goto ex_0;
            defn_name.num = T_2_1.num;
            }
            }

  LINE(507);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = stringOPconcat(STR__175_040, defn_name, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR__137OWN_137DEFN_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;
        }

  LINE(508);
        {
        err = own_defnOPstop();
        if (err != ERR_ok) goto ex_0;
        }

  LINE(509);
        {
        err = g_envOPoutdent(e);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(510);
        {
        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;
        err = stringOPconcat(STR_OWN_137req_040, defn_name, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR__137ownreqs, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_2, STR__040_075_040_173sizeof_050, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_3, defn_name, &T_2_4);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_4, STR__137OWN_137DEFN_051_054_040, &T_2_5);
        if (err != ERR_ok) goto ex_0;
        err = own_counter(ilist, &T_2_6);
        if (err != ERR_ok) goto ex_0;
        err = intOPunparse(T_2_6, &T_2_7);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_5, T_2_7, &T_2_8);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_8, STR__175_073, &T_2_9);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputl(e, T_2_9);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(513);
        {
        err = g_envOPblankline(e);
        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 g_pownvars ****/


extern errcode g_envOPadd_global();
extern errcode current_typeOPown_init_proc_exists();
extern errcode g_own();
CLUREF STR_static_040int_040;
CLUREF STR__137own_137init_040_075_0400_073;
CLUREF STR__040_075_040_1730_0540_175_073;
static int g_ownvars_own_init = 0;

/**** BEGIN PROCEDURE g_ownvars ****/

errcode g_ownvars(e, ilist, pass)
CLUREF e;
CLUREF ilist;
CLUREF pass;
    {
    errcode err;
    errcode ecode2;
    CLUREF owns;
    CLUREF nm;
    CLUREF i;
        if (g_ownvars_own_init == 0) {
        stringOPcons("static int ", CLU_1, CLU_11, &STR_static_040int_040);
        stringOPcons("_own_init = 0;", CLU_1, CLU_14, &STR__137own_137init_040_075_0400_073);
        stringOPcons("_own_init = 1;", CLU_1, CLU_14, &STR__137own_137init_040_075_0401_073);
        stringOPcons("_ownreqs", CLU_1, CLU_8, &STR__137ownreqs);
        stringOPcons("OWN_req ", CLU_1, CLU_8, &STR_OWN_137req_040);
        stringOPcons(" = {0,0};", CLU_1, CLU_9, &STR__040_075_040_1730_0540_175_073);
        stringOPcons("if (", CLU_1, CLU_4, &STR_if_040_050);
        stringOPcons("_own_init == 0) {", CLU_1, CLU_17, &STR__137own_137init_040_075_075_0400_051_040_173);
        stringOPcons("err = ", CLU_1, CLU_6, &STR_err_040_075_040);
        stringOPcons("_own_init_proc();", CLU_1, CLU_17, &STR__137own_137init_137proc_050_051_073);
        stringOPcons("err != ERR_ok) goto ex_0;", CLU_1, CLU_25, &STR_err_040_041_075_040ERR_137ok_051_040goto_040ex_1370_073);
        stringOPcons("}", CLU_1, CLU_1, &STR__175);
        stringOPcons("{signal(ERR_ok);}", CLU_1, CLU_17, &STR__173signal_050ERR_137ok_051_073_175);
        stringOPcons("ex_0: pclu_unhandled(", CLU_1, CLU_21, &STR_ex_1370_072_040pclu_137unhandled_050);
        stringOPcons("err); {signal(ERR_failure);}", CLU_1, CLU_28, &STR_err_051_073_040_173signal_050ERR_137failure_051_073_175);
        g_ownvars_own_init = 1;
    }
    enter_proc(520);

  LINE(525);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        CLUREF T_1_4;
        CLUREF T_1_5;
        err = g_tblOPexist(&T_1_3);
        if (err != ERR_ok) goto ex_0;
        T_1_2.num = T_1_3.num;
        if (!T_1_3.num) {
            err = g_constOPexist(&T_1_4);
            if (err != ERR_ok) goto ex_0;
            T_1_2.num = T_1_4.num;
        }
        T_1_1.num = T_1_2.num;
        if (!T_1_2.num) {
            err = own_init(ilist, &T_1_5);
            if (err != ERR_ok) goto ex_0;
            T_1_1.num = T_1_5.num;
        }
        owns.num = T_1_1.num;
        }
        }

  LINE(526);
    {
    CLUREF T_1_1;
    T_1_1.num = (pass.num == 1)? true : false;
    if (T_1_1.num == true) {

  LINE(527);
        {
        if (owns.num == true) {

  LINE(529);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            err = current_applyOPget_name(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(STR_static_040int_040, T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_2, STR__137own_137init_040_075_0400_073, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_3_3);
            if (err != ERR_ok) goto ex_0;
            }
            }
        else {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        CLUREF T_2_5;
        err = current_typeOPexists(&T_2_2);
        if (err != ERR_ok) goto ex_0;
        T_2_1.num = T_2_2.num;
        if (T_2_2.num) {
            err = current_applyOPget_name(&T_2_3);
            if (err != ERR_ok) goto ex_0;
            err = current_typeOPget_name(&T_2_4);
            if (err != ERR_ok) goto ex_0;
            T_2_5.num = ((T_2_3.str->size != T_2_4.str->size)? false :
                !(bcmp(T_2_3.str->data, T_2_4.str->data, T_2_3.str->size)));
            T_2_1.num = T_2_5.num;
        }
        if (T_2_1.num == true) {

  LINE(533);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            err = current_applyOPget_name(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(STR_static_040int_040, T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_2, STR__137own_137init_040_075_0401_073, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_3_3);
            if (err != ERR_ok) goto ex_0;
            }
            }
            }}/* end if */

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

  LINE(537);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                err = current_typeOPget_name(&T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_1, STR__137ownreqs, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                nm.num = T_3_2.num;
                }
                }

  LINE(538);
            {
            CLUREF T_3_1;
            err = g_envOPadd_global(nm, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            if (T_3_1.num == true) {

  LINE(539);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                err = stringOPconcat(STR_OWN_137req_040, nm, &T_4_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_4_1, STR__040_075_040_1730_0540_175_073, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputl(e, T_4_2);
                if (err != ERR_ok) goto ex_0;
                }
                }
                }/* end if */
            }
            }/* end if */
        }
        }/* end if */

  LINE(543);
    {
    CLUREF T_1_1;
    T_1_1.num = (pass.num == 2)? true : false;
    if (T_1_1.num == true) {

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

  LINE(545);
        {
        if (owns.num == true) {

  LINE(546);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            err = current_applyOPget_name(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(STR_if_040_050, T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_2, STR__137own_137init_040_075_075_0400_051_040_173, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_3_3);
            if (err != ERR_ok) goto ex_0;
            }
            }
            }/* end if */

  LINE(548);
        {
        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 = owns.num;
        if (owns.num) {
            err = current_typeOPexists(&T_2_3);
            if (err != ERR_ok) goto ex_0;
            T_2_4.num = T_2_3.num ^ 1;
            T_2_2.num = T_2_4.num;
            if (!T_2_4.num) {
                err = current_applyOPget_name(&T_2_5);
                if (err != ERR_ok) goto ex_0;
                err = current_typeOPget_name(&T_2_6);
                if (err != ERR_ok) goto ex_0;
                T_2_7.num = ((T_2_5.str->size != T_2_6.str->size)? false :
                    !(bcmp(T_2_5.str->data, T_2_6.str->data, T_2_5.str->size)));
                T_2_2.num = T_2_7.num;
            }
            T_2_1.num = T_2_2.num;
        }
        if (T_2_1.num == true) {

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

  LINE(553);
            {
            err = g_tblOPbuild_tables(e, CLU_2);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(554);
            {
            err = g_constOPg_consts(e, CLU_1);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(555);
            {
            err = g_constOPg_consts(e, CLU_2);
            if (err != ERR_ok) goto ex_0;
            }
            }
            }/* end if */

  LINE(557);
        {
        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 = current_typeOPexists(&T_2_3);
        if (err != ERR_ok) goto ex_0;
        T_2_2.num = T_2_3.num;
        if (T_2_3.num) {
            err = current_applyOPget_name(&T_2_4);
            if (err != ERR_ok) goto ex_0;
            err = current_typeOPget_name(&T_2_5);
            if (err != ERR_ok) goto ex_0;
            T_2_6.num = ((T_2_4.str->size != T_2_5.str->size)? false :
                !(bcmp(T_2_4.str->data, T_2_5.str->data, T_2_4.str->size)));
            T_2_7.num = T_2_6.num ^ 1;
            T_2_2.num = T_2_7.num;
        }
        T_2_1.num = T_2_2.num;
        if (T_2_2.num) {
            err = current_typeOPown_init_proc_exists(&T_2_8);
            if (err != ERR_ok) goto ex_0;
            T_2_1.num = T_2_8.num;
        }
        if (T_2_1.num == true) {

  LINE(562);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            err = current_typeOPget_name(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(STR_if_040_050, T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_2, STR__137own_137init_040_075_075_0400_051_040_173, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_3_3);
            if (err != ERR_ok) goto ex_0;
            }

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

  LINE(565);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            CLUREF T_3_4;
            CLUREF T_3_5;
            err = s_locals(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_1, STR_err_040_075_040, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = current_typeOPget_name(&T_3_3);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_2, T_3_3, &T_3_4);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_4, STR__137own_137init_137proc_050_051_073, &T_3_5);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_3_5);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(567);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            err = s_locals(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(STR_if_040_050, T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_2, STR_err_040_041_075_040ERR_137ok_051_040goto_040ex_1370_073, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_3_3);
            if (err != ERR_ok) goto ex_0;
            }

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

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

  LINE(571);
        {
        if (owns.num == true) {

  LINE(572);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            err = current_applyOPget_name(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_1, STR__137own_137init_040_075_0401_073, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_3_2);
            if (err != ERR_ok) goto ex_0;
            }
            }
            }/* end if */
        }
        }/* end if */

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

  LINE(576);
            {
            err = g_own(e, i, pass);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(577);
            {
            err = g_envOPnewline(e);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_1:;

  LINE(579);
    {
    CLUREF T_1_1;
    T_1_1.num = (pass.num == 2)? true : false;
    if (T_1_1.num == true) {

  LINE(580);
        {
        err = g_envOPoutdent(e);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(581);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        CLUREF T_2_5;
        err = current_typeOPexists(&T_2_2);
        if (err != ERR_ok) goto ex_0;
        T_2_1.num = T_2_2.num;
        if (T_2_2.num) {
            err = current_applyOPget_name(&T_2_3);
            if (err != ERR_ok) goto ex_0;
            err = current_typeOPget_name(&T_2_4);
            if (err != ERR_ok) goto ex_0;
            T_2_5.num = ((T_2_3.str->size != T_2_4.str->size)? false :
                !(bcmp(T_2_3.str->data, T_2_4.str->data, T_2_3.str->size)));
            T_2_1.num = T_2_5.num;
        }
        if (T_2_1.num == true) {

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

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

  LINE(586);
            {
            err = g_envOPoutdent(e);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(587);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            err = s_locals(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(STR_ex_1370_072_040pclu_137unhandled_050, T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_2, STR_err_051_073_040_173signal_050ERR_137failure_051_073_175, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_3_3);
            if (err != ERR_ok) goto ex_0;
            }

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

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

  LINE(590);
            {
            err = g_envOPoutdent(e);
            if (err != ERR_ok) goto ex_0;
            }
            }
        else {

  LINE(592);
            {
            if (owns.num == true) {

  LINE(593);
                {
                err = g_envOPputl(e, STR__175);
                if (err != ERR_ok) goto ex_0;
                }
                }
                }/* end if */
            }}/* end if */
        }
        }/* 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 g_ownvars ****/


extern errcode typOPfix_own_type();
extern errcode g_decl();
extern errcode typOPfix_own_typelist();
extern errcode g_decllist();
extern errcode g_decl_debug();
extern errcode g_declinit();

/**** BEGIN PROCEDURE g_pown ****/

errcode g_pown(e, i, pass)
CLUREF e;
CLUREF i;
CLUREF pass;
    {
    errcode err;
    errcode ecode2;
    CLUREF d;
    enter_proc(599);

  LINE(601);
    {
    CLUREF T_1_1;
    T_1_1.num = (pass.num == 1)? true : false;
    if (T_1_1.num == true) {

  LINE(602);
        {
        CLUREF T_2_1;
        T_2_1.num = i.vec->data[1];
        switch (T_2_1.cell->tag) {
        case 1: 
             {CLUREF T_2_2;
            T_2_2.num = T_2_1.cell->value;
            d.num = T_2_2.num;

  LINE(604);
                {
                err = typOPfix_own_type(d);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(605);
                {
                err = g_decl(e, d);
                if (err != ERR_ok) goto ex_0;
                }
                break;
                }
        case 2: 
             {CLUREF T_2_3;
            T_2_3.num = T_2_1.cell->value;
            d.num = T_2_3.num;

  LINE(607);
                {
                CLUREF T_3_1;
                T_3_1.num = d.vec->data[1];
                err = typOPfix_own_typelist(T_3_1);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(608);
                {
                CLUREF T_3_1;
                T_3_1.num = d.vec->data[1];
                err = g_decllist(e, T_3_1);
                if (err != ERR_ok) goto ex_0;
                }
                break;
                }
        }
        }
        }
    else {

  LINE(615);
        {
        CLUREF T_2_1;
        T_2_1.num = i.vec->data[1];
        switch (T_2_1.cell->tag) {
        case 1: 
             {CLUREF T_2_2;
            T_2_2.num = T_2_1.cell->value;
            d.num = T_2_2.num;

  LINE(617);
                {
                err = typOPfix_own_type(d);
                if (err != ERR_ok) goto ex_0;
                }

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

  LINE(619);
                    {
                    err = g_decl_debug(e, d);
                    if (err != ERR_ok) goto ex_0;
                    }
                    }
                    }/* end if */
                break;
                }
        case 2: 
             {CLUREF T_2_3;
            T_2_3.num = T_2_1.cell->value;
            d.num = T_2_3.num;

  LINE(622);
                {
                CLUREF T_3_1;
                T_3_1.num = d.vec->data[1];
                err = typOPfix_own_typelist(T_3_1);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(623);
                {
                err = g_declinit(e, d);
                if (err != ERR_ok) goto ex_0;
                }
                break;
                }
        }
        }
        }}/* 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 g_pown ****/



/**** BEGIN PROCEDURE g_own ****/

errcode g_own(e, i, pass)
CLUREF e;
CLUREF i;
CLUREF pass;
    {
    errcode err;
    errcode ecode2;
    CLUREF d;
    enter_proc(628);

  LINE(630);
    {
    CLUREF T_1_1;
    T_1_1.num = (pass.num == 1)? true : false;
    if (T_1_1.num == true) {

  LINE(632);
        {
        CLUREF T_2_1;
        T_2_1.num = i.vec->data[1];
        switch (T_2_1.cell->tag) {
        case 1: 
             {CLUREF T_2_2;
            T_2_2.num = T_2_1.cell->value;
            d.num = T_2_2.num;

  LINE(634);
                {
                err = typOPfix_own_type(d);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(635);
                {
                err = g_decl(e, d);
                if (err != ERR_ok) goto ex_0;
                }
                break;
                }
        case 2: 
             {CLUREF T_2_3;
            T_2_3.num = T_2_1.cell->value;
            d.num = T_2_3.num;

  LINE(637);
                {
                CLUREF T_3_1;
                T_3_1.num = d.vec->data[1];
                err = typOPfix_own_typelist(T_3_1);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(638);
                {
                CLUREF T_3_1;
                T_3_1.num = d.vec->data[1];
                err = g_decllist(e, T_3_1);
                if (err != ERR_ok) goto ex_0;
                }
                break;
                }
        }
        }
        }
    else {

  LINE(641);
        {
        CLUREF T_2_1;
        T_2_1.num = i.vec->data[1];
        switch (T_2_1.cell->tag) {
        case 1: 
             {CLUREF T_2_2;
            T_2_2.num = T_2_1.cell->value;
            d.num = T_2_2.num;

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

  LINE(644);
                    {
                    err = g_decl_debug(e, d);
                    if (err != ERR_ok) goto ex_0;
                    }
                    }
                    }/* end if */
                break;
                }
        case 2: 
             {CLUREF T_2_3;
            T_2_3.num = T_2_1.cell->value;
            d.num = T_2_3.num;

  LINE(647);
                {
                err = g_declinit(e, d);
                if (err != ERR_ok) goto ex_0;
                }
                break;
                }
        }
        }
        }}/* 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 g_own ****/



/**** BEGIN PROCEDURE own_counter ****/

errcode own_counter(i, ret_1)
CLUREF i;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF own_count;
    CLUREF each_i;
    CLUREF d;
    CLUREF each_d;
    enter_proc(652);

  LINE(654);
    {
        {own_count.num = 1;
        }
        }

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

  LINE(656);
            {
            CLUREF T_2_1;
            T_2_1.num = each_i.vec->data[1];
            switch (T_2_1.cell->tag) {
            case 1: 
                 {CLUREF T_2_2;
                T_2_2.num = T_2_1.cell->value;
                d.num = T_2_2.num;

  LINE(658);
                    {
                    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 = own_count.num + T_3_2.num;
                     if ((T_3_3.num > 0 && own_count.num < 0 && T_3_2.num < 0) || 
                         (T_3_3.num < 0 && own_count.num > 0 && T_3_2.num > 0)) {
                        err = ERR_overflow;
                        goto ex_0;}
                    own_count.num = T_3_3.num;
                    }
                    break;
                    }
            case 2: 
                 {CLUREF T_2_3;
                T_2_3.num = T_2_1.cell->value;
                d.num = T_2_3.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[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(661);
                            {
                            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 = own_count.num + T_4_2.num;
                             if ((T_4_3.num > 0 && own_count.num < 0 && T_4_2.num < 0) || 
                                 (T_4_3.num < 0 && own_count.num > 0 && T_4_2.num > 0)) {
                                err = ERR_overflow;
                                goto ex_0;}
                            own_count.num = T_4_3.num;
                            }
                        }
                    }
                    end_inline_for_2:;
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_1:;

  LINE(665);
    {
    {
    ret_1->num = own_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 own_counter ****/


extern errcode arrayOPnew();
extern errcode g_lvs_stmts();
extern errcode g_lvs_uniq();
extern errcode current_localsOPset();
extern errcode ibOPexist();
extern errcode dbg_infoOPemit_local_entry();
extern errcode dbg_infoOPadd_local();
extern errcode dbg_infoOPadd_locals();
extern errcode arrayOPelements();
extern errcode g_decl_typespec();
extern errcode idnlit();
extern errcode typOPfix_typelist();
extern errcode sequenceOPa2s();
extern errcode dbg_infoOPextend_locals();
extern errcode g_idn_plain();
extern errcode dbg_infoOPinit_local_entry();
extern errcode g_locals();
CLUREF STR_errcode_040ecode_073;
CLUREF STR_user_137locals;
CLUREF STR_proc;
CLUREF STR_err;
CLUREF STR_ecode2;
CLUREF STR_errcode_040ecode2_073;
CLUREF STR_body_137ctrl_137req;
CLUREF STR_bool_040body_137ctrl_137req_073;
CLUREF STR__137OWN_137DEFN_040_052op_137own_137ptr_073;
CLUREF STR__056num_040_075_040UNINIT_073;
CLUREF STR__040_075_040;
CLUREF STR_proc_040_075_040proc_073;
CLUREF STR_user_137locals_040_075_040user_137locals_073;
CLUREF STR_type_137own_137ptr_040_075_040_050;
CLUREF STR_op_137own_137ptr_040_075_040_050;
CLUREF STR__137OWN_137DEFN_052_051_040CUR_137PROC_137VAR_056proc_055_076op_137owns_073;
static int g_localvars_own_init = 0;

/**** BEGIN PROCEDURE g_localvars ****/

errcode g_localvars(e, ap, iterp)
CLUREF e;
CLUREF ap;
CLUREF iterp;
    {
    errcode err;
    errcode ecode2;
    CLUREF bod;
    CLUREF args;
    CLUREF parms;
    CLUREF locals_UNIQ;
    CLUREF defn_name;
    CLUREF lv;
    CLUREF ts;
    CLUREF id;
    CLUREF a;
        if (g_localvars_own_init == 0) {
        stringOPcons("errcode ecode;", CLU_1, CLU_14, &STR_errcode_040ecode_073);
        stringOPcons("struct {", CLU_1, CLU_8, &STR_struct_040_173);
        stringOPcons("user_locals", CLU_1, CLU_11, &STR_user_137locals);
        stringOPcons("char **user_locals;", CLU_1, CLU_19, &STR_char_040_052_052user_137locals_073);
        stringOPcons("proc", CLU_1, CLU_4, &STR_proc);
        stringOPcons("errcode (*proc)();", CLU_1, CLU_18, &STR_errcode_040_050_052proc_051_050_051_073);
        stringOPcons("err", CLU_1, CLU_3, &STR_err);
        stringOPcons("errcode err;", CLU_1, CLU_12, &STR_errcode_040err_073);
        stringOPcons("ecode2", CLU_1, CLU_6, &STR_ecode2);
        stringOPcons("errcode ecode2;", CLU_1, CLU_15, &STR_errcode_040ecode2_073);
        stringOPcons("body_ctrl_req", CLU_1, CLU_13, &STR_body_137ctrl_137req);
        stringOPcons("bool body_ctrl_req;", CLU_1, CLU_19, &STR_bool_040body_137ctrl_137req_073);
        stringOPcons("type_own_ptr", CLU_1, CLU_12, &STR_type_137own_137ptr);
        stringOPcons("_OWN_DEFN *type_own_ptr;", CLU_1, CLU_24, &STR__137OWN_137DEFN_040_052type_137own_137ptr_073);
        stringOPcons("op_own_ptr", CLU_1, CLU_10, &STR_op_137own_137ptr);
        stringOPcons("_OWN_DEFN *op_own_ptr;", CLU_1, CLU_22, &STR__137OWN_137DEFN_040_052op_137own_137ptr_073);
        stringOPcons("} locals;", CLU_1, CLU_9, &STR__175_040locals_073);
        stringOPcons(".num = UNINIT;", CLU_1, CLU_14, &STR__056num_040_075_040UNINIT_073);
        stringOPcons(" = ", CLU_1, CLU_3, &STR__040_075_040);
        stringOPcons(";", CLU_1, CLU_1, &STR__073);
        stringOPcons("proc = proc;", CLU_1, CLU_12, &STR_proc_040_075_040proc_073);
        stringOPcons("user_locals = user_locals;", CLU_1, CLU_26, &STR_user_137locals_040_075_040user_137locals_073);
        stringOPcons("type_own_ptr = (", CLU_1, CLU_16, &STR_type_137own_137ptr_040_075_040_050);
        stringOPcons("_OWN_DEFN", CLU_1, CLU_9, &STR__137OWN_137DEFN);
        stringOPcons(" *) CUR_PROC_VAR.proc->type_owns;", CLU_1, CLU_33, &STR__040_052_051_040CUR_137PROC_137VAR_056proc_055_076type_137owns_073);
        stringOPcons("op_own_ptr = (", CLU_1, CLU_14, &STR_op_137own_137ptr_040_075_040_050);
        stringOPcons("_OWN_DEFN*) CUR_PROC_VAR.proc->op_owns;", CLU_1, CLU_39, &STR__137OWN_137DEFN_052_051_040CUR_137PROC_137VAR_056proc_055_076op_137owns_073);
        g_localvars_own_init = 1;
    }
    enter_proc(668);

  LINE(670);
    {
        {CLUREF T_1_1;
        T_1_1.num = ap.vec->data[1];
        bod.num = T_1_1.num;
        }
        }

  LINE(671);
    {
        {CLUREF T_1_1;
        T_1_1.num = ap.vec->data[0];
        args.num = T_1_1.num;
        }
        }

  LINE(672);
    {
        {CLUREF T_1_1;
        err = parmOPget_base(&T_1_1);
        if (err != ERR_ok) goto ex_0;
        parms.num = T_1_1.num;
        }
        }

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

  LINE(678);
    {
    err = g_lvs_stmts(locals_UNIQ, bod);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(679);
    {
    CLUREF T_1_1;
    err = g_lvs_uniq(locals_UNIQ, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    locals_UNIQ.num = T_1_1.num;
    }

  LINE(680);
    {
    err = current_localsOPset(locals_UNIQ);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(681);
    {
    err = g_envOPnewline(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(685);
    {
    if (iterp.num == true) {
        {
        err = g_envOPputl(e, STR_errcode_040ecode_073);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(686);
    {
    err = g_tblOPbuild_tables(e, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(687);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = ibOPexist(&T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_1.num = T_1_2.num;
    if (!T_1_2.num) {
        err = dbg_infoOPactive(&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(688);
        {
        err = g_envOPputl(e, STR_struct_040_173);
        if (err != ERR_ok) goto ex_0;
        }

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

  LINE(690);
        {
        err = dbg_infoOPemit_local_entry(e);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(691);
        {
        if (iterp.num == true) {

  LINE(692);
            {
            err = dbg_infoOPadd_local(STR_user_137locals);
            if (err != ERR_ok) goto ex_0;
            }

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

  LINE(694);
        {
        if (iterp.num == true) {

  LINE(695);
            {
            err = dbg_infoOPadd_local(STR_proc);
            if (err != ERR_ok) goto ex_0;
            }

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

  LINE(698);
    {
    err = dbg_infoOPadd_local(STR_err);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(700);
    {
    err = dbg_infoOPadd_local(STR_ecode2);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(702);
    {
    if (iterp.num == true) {

  LINE(703);
        {
        err = dbg_infoOPadd_local(STR_body_137ctrl_137req);
        if (err != ERR_ok) goto ex_0;
        }

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

  LINE(705);
    {
    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(706);
        {
        err = dbg_infoOPadd_local(STR_type_137own_137ptr);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(707);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = current_typeOPget_name(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR__137OWN_137DEFN_040_052type_137own_137ptr_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 */

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

  LINE(710);
        {
            {CLUREF T_2_1;
            err = op_own_name(&T_2_1);
            if (err != ERR_ok) goto ex_0;
            defn_name.num = T_2_1.num;
            }
            }

  LINE(711);
        {
        err = dbg_infoOPadd_local(STR_op_137own_137ptr);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(712);
        {
        CLUREF T_2_1;
        err = stringOPconcat(defn_name, STR__137OWN_137DEFN_040_052op_137own_137ptr_073, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputl(e, T_2_1);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(713);
    {
    err = dbg_infoOPadd_locals(locals_UNIQ);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(714);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = locals_UNIQ.array->ext_high; 
        T_1_3 = locals_UNIQ;
        for (T_1_1.num = locals_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;}
            lv.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(715);
            {
                {CLUREF T_2_1;
                T_2_1.num = lv.vec->data[1];
                ts.num = T_2_1.num;
                }
                }

  LINE(716);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
                T_2_1.num = lv.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++) {
                    id.num = T_2_4.vec->data[T_2_2.num - 1];

  LINE(717);
                    {
                    CLUREF T_3_1;
                    err = idnlit(id, &T_3_1);
                    if (err != ERR_ok) goto ex_0;
                    err = g_decl_typespec(e, ts, T_3_1);
                    if (err != ERR_ok) goto ex_0;
                    }
                }
            }
            end_inline_for_2:;
        }
    }
    end_inline_for_1:;

  LINE(720);
    {
    CLUREF T_1_1;
    err = sequenceOPa2s(locals_UNIQ, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = typOPfix_typelist(T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(721);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = ibOPexist(&T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_1.num = T_1_2.num;
    if (!T_1_2.num) {
        err = dbg_infoOPactive(&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(722);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
            T_2_2.num = args.vec->size; 
            T_2_3 = args;
            for (T_2_1.num = 1; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                a.num = T_2_3.vec->data[T_2_1.num - 1];

  LINE(723);
                {
                err = dbg_infoOPextend_locals(a);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(724);
                {
                    {CLUREF T_3_1;
                    T_3_1.num = a.vec->data[1];
                    ts.num = T_3_1.num;
                    }
                    }

  LINE(725);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                    T_3_1.num = a.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++) {
                        id.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(726);
                        {
                        CLUREF T_4_1;
                        err = idnlit(id, &T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        err = g_decl_typespec(e, ts, T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        }
                    }
                }
                end_inline_for_4:;
            }
        }
        end_inline_for_3:;
        }
        }/* end if */

  LINE(730);
    {
    err = typOPfix_typelist(args);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(733);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = ibOPexist(&T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_1.num = T_1_2.num;
    if (!T_1_2.num) {
        err = dbg_infoOPactive(&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(734);
        {
        err = g_envOPputl(e, STR__175_040locals_073);
        if (err != ERR_ok) goto ex_0;
        }

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

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

  LINE(739);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
            T_2_2.num = locals_UNIQ.array->ext_high; 
            T_2_3 = locals_UNIQ;
            for (T_2_1.num = locals_UNIQ.array->ext_low; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                if (T_2_1.num > T_2_3.array->ext_high || T_2_1.num < T_2_3.array->ext_low) {
                    err = ERR_failure;
                    elist[0].str = array_bounds_exception_STRING;
                    goto ex_0;}
                lv.num = T_2_3.array->store->data[T_2_1.num - T_2_3.array->ext_low + T_2_3.array->int_low];

  LINE(740);
                {
                    {CLUREF T_3_1;
                    T_3_1.num = lv.vec->data[1];
                    ts.num = T_3_1.num;
                    }
                    }

  LINE(741);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                    T_3_1.num = lv.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++) {
                        id.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(742);
                        {
                        err = g_idn_plain(e, id);
                        if (err != ERR_ok) goto ex_0;
                        }

  LINE(743);
                        {
                        err = g_envOPputl(e, STR__056num_040_075_040UNINIT_073);
                        if (err != ERR_ok) goto ex_0;
                        }
                    }
                }
                end_inline_for_6:;
            }
        }
        end_inline_for_5:;
        }
        }/* end if */

  LINE(748);
    {
    err = dbg_infoOPinit_local_entry(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(749);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = ibOPexist(&T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_1.num = T_1_2.num;
    if (!T_1_2.num) {
        err = dbg_infoOPactive(&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(750);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
            T_2_2.num = args.vec->size; 
            T_2_3 = args;
            for (T_2_1.num = 1; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                a.num = T_2_3.vec->data[T_2_1.num - 1];

  LINE(751);
                {
                    {CLUREF T_3_1;
                    T_3_1.num = a.vec->data[1];
                    ts.num = T_3_1.num;
                    }
                    }

  LINE(752);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                    T_3_1.num = a.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++) {
                        id.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(753);
                        {
                        err = g_locals(e);
                        if (err != ERR_ok) goto ex_0;
                        }

  LINE(754);
                        {
                        err = g_idnlit(e, id);
                        if (err != ERR_ok) goto ex_0;
                        }

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

  LINE(756);
                        {
                        err = g_idnlit(e, id);
                        if (err != ERR_ok) goto ex_0;
                        }

  LINE(757);
                        {
                        err = g_envOPputl(e, STR__073);
                        if (err != ERR_ok) goto ex_0;
                        }
                    }
                }
                end_inline_for_8:;
            }
        }
        end_inline_for_7:;

  LINE(760);
        {
        if (iterp.num == true) {

  LINE(761);
            {
            err = g_locals(e);
            if (err != ERR_ok) goto ex_0;
            }

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

  LINE(763);
            {
            err = g_locals(e);
            if (err != ERR_ok) goto ex_0;
            }

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

  LINE(767);
    {
    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(768);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = s_locals(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR_type_137own_137ptr_040_075_040_050, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_2);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(769);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = current_typeOPget_name(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR__137OWN_137DEFN, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_2);
        if (err != ERR_ok) goto ex_0;
        }

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

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

  LINE(773);
        {
            {CLUREF T_2_1;
            err = op_own_name(&T_2_1);
            if (err != ERR_ok) goto ex_0;
            defn_name.num = T_2_1.num;
            }
            }

  LINE(774);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        err = s_locals(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_1, STR_op_137own_137ptr_040_075_040_050, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_2, defn_name, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_3, STR__137OWN_137DEFN_052_051_040CUR_137PROC_137VAR_056proc_055_076op_137owns_073, &T_2_4);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputl(e, T_2_4);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

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

  LINE(777);
        {
        if (iterp.num == true) {
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            err = s_locals(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_1, STR_user_137locals_040_075_040user_137locals_073, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_3_2);
            if (err != ERR_ok) goto ex_0;
            }
            }
            }/* end if */

  LINE(778);
        {
        if (iterp.num == true) {
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            err = s_locals(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_3_1, STR_proc_040_075_040proc_073, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputl(e, T_3_2);
            if (err != ERR_ok) goto ex_0;
            }
            }
            }/* end if */
        }
        }/* 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 g_localvars ****/


extern errcode typOPfix_parm_typelist();
extern errcode typespecOPget_abs();
extern errcode duOPget_common();
extern errcode dbg_infoOPadd_own();
extern errcode reqsOPget_tid();
extern errcode compiler_logit();
extern errcode typespec_print();
extern errcode reqsOPget_id();
CLUREF STR_null;
CLUREF STR_int;
CLUREF STR_real;
CLUREF STR_bool;
CLUREF STR_char;
CLUREF STR_string;
CLUREF STR_CLUREF_040;
CLUREF STR__137of_137;
CLUREF STR__137OPS_040_052;
CLUREF STR_g_137localvars_072_040parm_040not_040type_040or_040cluster;
static int g_parm_decls_own_init = 0;

/**** BEGIN PROCEDURE g_parm_decls ****/

errcode g_parm_decls(e, tparms, aparms)
CLUREF e;
CLUREF tparms;
CLUREF aparms;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_d;
    CLUREF ct;
    CLUREF each_idn;
    CLUREF nm;
        if (g_parm_decls_own_init == 0) {
        stringOPcons("null", CLU_1, CLU_4, &STR_null);
        stringOPcons("int", CLU_1, CLU_3, &STR_int);
        stringOPcons("real", CLU_1, CLU_4, &STR_real);
        stringOPcons("bool", CLU_1, CLU_4, &STR_bool);
        stringOPcons("char", CLU_1, CLU_4, &STR_char);
        stringOPcons("string", CLU_1, CLU_6, &STR_string);
        stringOPcons("CLUREF ", CLU_1, CLU_7, &STR_CLUREF_040);
        stringOPcons(";", CLU_1, CLU_1, &STR__073);
        stringOPcons("_ops", CLU_1, CLU_4, &STR__137ops);
        stringOPcons("_of_", CLU_1, CLU_4, &STR__137of_137);
        stringOPcons("_OPS *", CLU_1, CLU_6, &STR__137OPS_040_052);
        stringOPcons("g_localvars: parm not type or cluster", CLU_1, CLU_37, &STR_g_137localvars_072_040parm_040not_040type_040or_040cluster);
        g_parm_decls_own_init = 1;
    }
    enter_proc(783);

  LINE(784);
    {
    err = typOPfix_parm_typelist(tparms);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(785);
    {
    err = typOPfix_parm_typelist(aparms);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(786);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = tparms.vec->size; 
        T_1_3 = tparms;
        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(787);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = each_d.vec->data[1];
            err = typespecOPget_abs(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            switch (T_2_2.cell->tag) {
            case 3: 
            case 8: 
                 {CLUREF T_2_3;
                T_2_3.num = T_2_2.cell->value;
                ct.num = T_2_3.num;

  LINE(789);
                    {
                    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;
                    CLUREF T_3_9;
                    CLUREF T_3_10;
                    CLUREF T_3_11;
                    CLUREF T_3_12;
                    CLUREF T_3_13;
                    CLUREF T_3_14;
                    CLUREF T_3_15;
                    CLUREF T_3_16;
                    CLUREF T_3_17;
                    CLUREF T_3_18;
                    CLUREF T_3_19;
                    CLUREF T_3_20;
                    CLUREF T_3_21;
                    CLUREF T_3_22;
                    CLUREF T_3_23;
                    T_3_6.num = ct.vec->data[0];
                    err = duOPget_common(T_3_6, &T_3_7);
                    if (err != ERR_ok) goto ex_0;
                    T_3_8.num = ((T_3_7.str->size != STR_null.str->size)? false :
                        !(bcmp(T_3_7.str->data, STR_null.str->data, T_3_7.str->size)));
                    T_3_5.num = T_3_8.num;
                    if (!T_3_8.num) {
                        T_3_9.num = ct.vec->data[0];
                        err = duOPget_common(T_3_9, &T_3_10);
                        if (err != ERR_ok) goto ex_0;
                        T_3_11.num = ((T_3_10.str->size != STR_int.str->size)? false :
                            !(bcmp(T_3_10.str->data, STR_int.str->data, T_3_10.str->size)));
                        T_3_5.num = T_3_11.num;
                    }
                    T_3_4.num = T_3_5.num;
                    if (!T_3_5.num) {
                        T_3_12.num = ct.vec->data[0];
                        err = duOPget_common(T_3_12, &T_3_13);
                        if (err != ERR_ok) goto ex_0;
                        T_3_14.num = ((T_3_13.str->size != STR_real.str->size)? false :
                            !(bcmp(T_3_13.str->data, STR_real.str->data, T_3_13.str->size)));
                        T_3_4.num = T_3_14.num;
                    }
                    T_3_3.num = T_3_4.num;
                    if (!T_3_4.num) {
                        T_3_15.num = ct.vec->data[0];
                        err = duOPget_common(T_3_15, &T_3_16);
                        if (err != ERR_ok) goto ex_0;
                        T_3_17.num = ((T_3_16.str->size != STR_bool.str->size)? false :
                            !(bcmp(T_3_16.str->data, STR_bool.str->data, T_3_16.str->size)));
                        T_3_3.num = T_3_17.num;
                    }
                    T_3_2.num = T_3_3.num;
                    if (!T_3_3.num) {
                        T_3_18.num = ct.vec->data[0];
                        err = duOPget_common(T_3_18, &T_3_19);
                        if (err != ERR_ok) goto ex_0;
                        T_3_20.num = ((T_3_19.str->size != STR_char.str->size)? false :
                            !(bcmp(T_3_19.str->data, STR_char.str->data, T_3_19.str->size)));
                        T_3_2.num = T_3_20.num;
                    }
                    T_3_1.num = T_3_2.num;
                    if (!T_3_2.num) {
                        T_3_21.num = ct.vec->data[0];
                        err = duOPget_common(T_3_21, &T_3_22);
                        if (err != ERR_ok) goto ex_0;
                        T_3_23.num = ((T_3_22.str->size != STR_string.str->size)? false :
                            !(bcmp(T_3_22.str->data, STR_string.str->data, T_3_22.str->size)));
                        T_3_1.num = T_3_23.num;
                    }
                    if (T_3_1.num == true) {

  LINE(796);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        CLUREF T_4_3;
                        CLUREF T_4_4;
                            T_4_1.num = each_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(797);
                                {
                                CLUREF T_5_1;
                                CLUREF T_5_2;
                                CLUREF T_5_3;
                                err = idnOPget_str(each_idn, &T_5_1);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(STR_CLUREF_040, T_5_1, &T_5_2);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(T_5_2, STR__073, &T_5_3);
                                if (err != ERR_ok) goto ex_0;
                                err = g_envOPputl(e, T_5_3);
                                if (err != ERR_ok) goto ex_0;
                                }

  LINE(799);
                                {
                                CLUREF T_5_1;
                                err = idnOPget_str(each_idn, &T_5_1);
                                if (err != ERR_ok) goto ex_0;
                                err = dbg_infoOPadd_own(T_5_1);
                                if (err != ERR_ok) goto ex_0;
                                }
                            }
                        }
                        end_inline_for_2:;
                        }
                    else {

  LINE(802);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        CLUREF T_4_3;
                        CLUREF T_4_4;
                            T_4_1.num = each_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(803);
                                {
                                    {CLUREF T_5_1;
                                    CLUREF T_5_2;
                                    err = idnOPget_str(each_idn, &T_5_1);
                                    if (err != ERR_ok) goto ex_0;
                                    err = stringOPconcat(T_5_1, STR__137ops, &T_5_2);
                                    if (err != ERR_ok) goto ex_0;
                                    nm.num = T_5_2.num;
                                    }
                                    }

  LINE(804);
                                {
                                CLUREF T_5_1;
                                CLUREF T_5_2;
                                CLUREF T_5_3;
                                CLUREF T_5_4;
                                CLUREF T_5_5;
                                CLUREF T_5_6;
                                CLUREF T_5_7;
                                err = reqsOPget_tid(&T_5_1);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(T_5_1, STR__137of_137, &T_5_2);
                                if (err != ERR_ok) goto ex_0;
                                err = idnOPget_str(each_idn, &T_5_3);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(T_5_2, T_5_3, &T_5_4);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(T_5_4, STR__137OPS_040_052, &T_5_5);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(T_5_5, nm, &T_5_6);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(T_5_6, STR__073, &T_5_7);
                                if (err != ERR_ok) goto ex_0;
                                err = g_envOPputl(e, T_5_7);
                                if (err != ERR_ok) goto ex_0;
                                }

  LINE(807);
                                {
                                err = dbg_infoOPadd_own(nm);
                                if (err != ERR_ok) goto ex_0;
                                }
                            }
                        }
                        end_inline_for_3:;
                        }}/* end if */
                    break;
                    }
            default: {

  LINE(811);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.num = 300;
                err = compiler_logit(T_3_1, STR_g_137localvars_072_040parm_040not_040type_040or_040cluster, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(812);
                {
                CLUREF T_3_1;
                T_3_1.num = each_d.vec->data[1];
                err = typespec_print(T_3_1);
                if (err != ERR_ok) goto ex_0;
                }
            }
            }
            }
        }
    }
    end_inline_for_1:;

  LINE(816);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = aparms.vec->size; 
        T_1_3 = aparms;
        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(817);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = each_d.vec->data[1];
            err = typespecOPget_abs(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            switch (T_2_2.cell->tag) {
            case 3: 
            case 8: 
                 {CLUREF T_2_3;
                T_2_3.num = T_2_2.cell->value;
                ct.num = T_2_3.num;

  LINE(819);
                    {
                    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;
                    CLUREF T_3_9;
                    CLUREF T_3_10;
                    CLUREF T_3_11;
                    CLUREF T_3_12;
                    CLUREF T_3_13;
                    CLUREF T_3_14;
                    CLUREF T_3_15;
                    CLUREF T_3_16;
                    CLUREF T_3_17;
                    CLUREF T_3_18;
                    CLUREF T_3_19;
                    CLUREF T_3_20;
                    CLUREF T_3_21;
                    CLUREF T_3_22;
                    CLUREF T_3_23;
                    T_3_6.num = ct.vec->data[0];
                    err = duOPget_common(T_3_6, &T_3_7);
                    if (err != ERR_ok) goto ex_0;
                    T_3_8.num = ((T_3_7.str->size != STR_null.str->size)? false :
                        !(bcmp(T_3_7.str->data, STR_null.str->data, T_3_7.str->size)));
                    T_3_5.num = T_3_8.num;
                    if (!T_3_8.num) {
                        T_3_9.num = ct.vec->data[0];
                        err = duOPget_common(T_3_9, &T_3_10);
                        if (err != ERR_ok) goto ex_0;
                        T_3_11.num = ((T_3_10.str->size != STR_int.str->size)? false :
                            !(bcmp(T_3_10.str->data, STR_int.str->data, T_3_10.str->size)));
                        T_3_5.num = T_3_11.num;
                    }
                    T_3_4.num = T_3_5.num;
                    if (!T_3_5.num) {
                        T_3_12.num = ct.vec->data[0];
                        err = duOPget_common(T_3_12, &T_3_13);
                        if (err != ERR_ok) goto ex_0;
                        T_3_14.num = ((T_3_13.str->size != STR_real.str->size)? false :
                            !(bcmp(T_3_13.str->data, STR_real.str->data, T_3_13.str->size)));
                        T_3_4.num = T_3_14.num;
                    }
                    T_3_3.num = T_3_4.num;
                    if (!T_3_4.num) {
                        T_3_15.num = ct.vec->data[0];
                        err = duOPget_common(T_3_15, &T_3_16);
                        if (err != ERR_ok) goto ex_0;
                        T_3_17.num = ((T_3_16.str->size != STR_bool.str->size)? false :
                            !(bcmp(T_3_16.str->data, STR_bool.str->data, T_3_16.str->size)));
                        T_3_3.num = T_3_17.num;
                    }
                    T_3_2.num = T_3_3.num;
                    if (!T_3_3.num) {
                        T_3_18.num = ct.vec->data[0];
                        err = duOPget_common(T_3_18, &T_3_19);
                        if (err != ERR_ok) goto ex_0;
                        T_3_20.num = ((T_3_19.str->size != STR_char.str->size)? false :
                            !(bcmp(T_3_19.str->data, STR_char.str->data, T_3_19.str->size)));
                        T_3_2.num = T_3_20.num;
                    }
                    T_3_1.num = T_3_2.num;
                    if (!T_3_2.num) {
                        T_3_21.num = ct.vec->data[0];
                        err = duOPget_common(T_3_21, &T_3_22);
                        if (err != ERR_ok) goto ex_0;
                        T_3_23.num = ((T_3_22.str->size != STR_string.str->size)? false :
                            !(bcmp(T_3_22.str->data, STR_string.str->data, T_3_22.str->size)));
                        T_3_1.num = T_3_23.num;
                    }
                    if (T_3_1.num == true) {

  LINE(826);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        CLUREF T_4_3;
                        CLUREF T_4_4;
                            T_4_1.num = each_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(827);
                                {
                                CLUREF T_5_1;
                                CLUREF T_5_2;
                                CLUREF T_5_3;
                                err = idnOPget_str(each_idn, &T_5_1);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(STR_CLUREF_040, T_5_1, &T_5_2);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(T_5_2, STR__073, &T_5_3);
                                if (err != ERR_ok) goto ex_0;
                                err = g_envOPputl(e, T_5_3);
                                if (err != ERR_ok) goto ex_0;
                                }

  LINE(829);
                                {
                                CLUREF T_5_1;
                                err = idnOPget_str(each_idn, &T_5_1);
                                if (err != ERR_ok) goto ex_0;
                                err = dbg_infoOPadd_own(T_5_1);
                                if (err != ERR_ok) goto ex_0;
                                }
                            }
                        }
                        end_inline_for_5:;
                        }
                    else {

  LINE(832);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        CLUREF T_4_3;
                        CLUREF T_4_4;
                            T_4_1.num = each_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(833);
                                {
                                    {CLUREF T_5_1;
                                    CLUREF T_5_2;
                                    err = idnOPget_str(each_idn, &T_5_1);
                                    if (err != ERR_ok) goto ex_0;
                                    err = stringOPconcat(T_5_1, STR__137ops, &T_5_2);
                                    if (err != ERR_ok) goto ex_0;
                                    nm.num = T_5_2.num;
                                    }
                                    }

  LINE(834);
                                {
                                CLUREF T_5_1;
                                CLUREF T_5_2;
                                CLUREF T_5_3;
                                CLUREF T_5_4;
                                CLUREF T_5_5;
                                CLUREF T_5_6;
                                CLUREF T_5_7;
                                err = reqsOPget_id(&T_5_1);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(T_5_1, STR__137of_137, &T_5_2);
                                if (err != ERR_ok) goto ex_0;
                                err = idnOPget_str(each_idn, &T_5_3);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(T_5_2, T_5_3, &T_5_4);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(T_5_4, STR__137OPS_040_052, &T_5_5);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(T_5_5, nm, &T_5_6);
                                if (err != ERR_ok) goto ex_0;
                                err = stringOPconcat(T_5_6, STR__073, &T_5_7);
                                if (err != ERR_ok) goto ex_0;
                                err = g_envOPputl(e, T_5_7);
                                if (err != ERR_ok) goto ex_0;
                                }

  LINE(837);
                                {
                                err = dbg_infoOPadd_own(nm);
                                if (err != ERR_ok) goto ex_0;
                                }
                            }
                        }
                        end_inline_for_6:;
                        }}/* end if */
                    break;
                    }
            default: {

  LINE(841);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.num = 301;
                err = compiler_logit(T_3_1, STR_g_137localvars_072_040parm_040not_040type_040or_040cluster, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(842);
                {
                CLUREF T_3_1;
                T_3_1.num = each_d.vec->data[1];
                err = typespec_print(T_3_1);
                if (err != ERR_ok) goto ex_0;
                }
            }
            }
            }
        }
    }
    end_inline_for_4:;
    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 g_parm_decls ****/



/**** BEGIN PROCEDURE restricted_parm ****/

errcode restricted_parm(parm, w, ret_1)
CLUREF parm;
CLUREF w;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_r;
    enter_proc(848);

  LINE(850);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = w.vec->size; 
        T_1_3 = w;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            each_r.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(851);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = each_r.vec->data[0];
            err = idnOPsimilar(parm, T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            if (T_2_2.num == true) {

  LINE(852);
                {
                {
                ret_1->tf = true;
                }
                {signal (ERR_ok);}}
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(854);
    {
    {
    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 restricted_parm ****/



/**** BEGIN PROCEDURE type_own_name ****/

errcode type_own_name(ret_1)
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF defn_name;
    enter_proc(857);

  LINE(858);
    {
        {CLUREF T_1_1;
        err = current_typeOPget_name(&T_1_1);
        if (err != ERR_ok) goto ex_0;
        defn_name.num = T_1_1.num;
        }
        }

  LINE(863);
    {
    {
    ret_1->num = defn_name.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 type_own_name ****/


CLUREF STR__137op_137;
static int op_own_name_own_init = 0;

/**** BEGIN PROCEDURE op_own_name ****/

errcode op_own_name(ret_1)
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF defn_name;
        if (op_own_name_own_init == 0) {
        stringOPcons("_op_", CLU_1, CLU_4, &STR__137op_137);
        op_own_name_own_init = 1;
    }
    enter_proc(866);

  LINE(867);
    {
        {CLUREF T_1_1;
        err = current_applyOPget_short_name(&T_1_1);
        if (err != ERR_ok) goto ex_0;
        defn_name.num = T_1_1.num;
        }
        }

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

  LINE(872);
        {
        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(T_2_1, STR__137op_137, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_2, defn_name, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        defn_name.num = T_2_3.num;
        }
        }
        }/* end if */

  LINE(879);
    {
    {
    ret_1->num = defn_name.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 op_own_name ****/


extern errcode g_iterbody_names();
extern errcode g_expr_proc_names();
extern errcode g_envOPadd_extern();
CLUREF STR_extern_040errcode_040;
CLUREF STR__050_051_073;
static int g_externs_own_init = 0;

/**** BEGIN PROCEDURE g_externs ****/

errcode g_externs(e, b)
CLUREF e;
CLUREF b;
    {
    errcode err;
    errcode ecode2;
    CLUREF names;
    CLUREF each_name;
        if (g_externs_own_init == 0) {
        stringOPcons("extern errcode ", CLU_1, CLU_15, &STR_extern_040errcode_040);
        stringOPcons("();", CLU_1, CLU_3, &STR__050_051_073);
        g_externs_own_init = 1;
    }
    enter_proc(882);

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

  LINE(888);
    {
    err = g_iterbody_names(names, b);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(889);
    {
    err = g_expr_proc_names(names, b);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(890);
    {
    err = g_envOPnewline(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(891);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = names.array->ext_high; 
        T_1_3 = names;
        for (T_1_1.num = names.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_name.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(892);
            {
            CLUREF T_2_1;
            err = g_envOPadd_extern(each_name, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            if (T_2_1.num == true) {

  LINE(893);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                err = escape_ckeyword(each_name, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(STR_extern_040errcode_040, T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_2, STR__050_051_073, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                err = g_envOPputl(e, T_3_3);
                if (err != ERR_ok) goto ex_0;
                }
                }
                }/* end if */
        }
    }
    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 g_externs ****/


extern errcode current_typeOPset();
extern errcode reqsOPstart();
extern errcode reqsOPpreprocessing();
extern errcode dbg_infoOPset_own_context();
extern errcode sequenceOPempty();
extern errcode recordOPget_10();
extern errcode sequenceOPaddh();
extern errcode recordOPset_1();
extern errcode reqsOPinitial_output();
extern errcode parmOPenter_base();
extern errcode oneofOPmake_3();
extern errcode g_tblOPprune();
extern errcode g_ptypeownvars();
extern errcode g_powninit();
extern errcode current_typeOPset_own_init_proc();
extern errcode g_owninit();
extern errcode g_envOPset_convert_type();
extern errcode recordOPget_9();
extern errcode typOPbegin_local_idn_types();
extern errcode g_opstruct();
extern errcode reqsOPoutput();
extern errcode reqsOPreset();
extern errcode parmOPleave_base();
extern errcode typOPundo_global_idn_types();
extern errcode current_typeOPreset();
struct OPS *seq_extend_of_stmt_table;
struct OPS *seq_extend_of_stmt_ops;
struct OPS *seq_extend_of_stmt_ops;
OWNPTR seq_extend_of_stmt_owns;
CLUREF STR__057_052_052_052_052_040BEGIN_040CLUSTER_040;
CLUREF STR_type;
CLUREF STR__045debug_137print;
CLUREF STR__057_052_052_052_052_040END_040CLUSTER_040;
static int g_typedefn_own_init = 0;

/**** BEGIN PROCEDURE g_typedefn ****/

errcode g_typedefn(e, t)
CLUREF e;
CLUREF t;
    {
    errcode err;
    errcode ecode2;
    CLUREF newbod;
    CLUREF a;
    CLUREF s;
    CLUREF each_ap;
    CLUREF n;
    CLUREF exists;
        if (g_typedefn_own_init == 0) {
        add_parm_info_type(0, stmt_ops, seq_extend_of_t_reqs);
        find_prociter_instance(seq_extend, 1, &seq_extend_ownreqs, &(seq_extend_of_stmt_ops));
        stringOPcons("/**** BEGIN CLUSTER ", CLU_1, CLU_20, &STR__057_052_052_052_052_040BEGIN_040CLUSTER_040);
        stringOPcons(" ****/", CLU_1, CLU_6, &STR__040_052_052_052_052_057);
        stringOPcons("type", CLU_1, CLU_4, &STR_type);
        stringOPcons("%debug_print", CLU_1, CLU_12, &STR__045debug_137print);
        stringOPcons("/**** END CLUSTER ", CLU_1, CLU_18, &STR__057_052_052_052_052_040END_040CLUSTER_040);
        g_typedefn_own_init = 1;
    }
    enter_proc(898);

  LINE(909);
    {
    err = current_typeOPset(t);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(911);
    {
    CLUREF T_1_1;
    T_1_1.num = t.vec->data[3];
    err = g_idnlit(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(913);
    {
    err = g_envOPblankline(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(914);
    {
    CLUREF T_1_1;
    T_1_1.num = t.vec->data[3];
    err = reqsOPstart(T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(915);
    {
    err = reqsOPpreprocessing(CLU_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(916);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = t.vec->data[3];
    T_1_2.num = t.vec->data[7];
    err = reqsOPparms(T_1_1, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(918);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = t.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_type, T_1_3);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(919);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = t.vec->data[3];
    T_1_2.num = t.vec->data[9];
    err = reqsOPmore(e, T_1_1, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(921);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = dbg_infoOPactive(&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(922);
        {
            {CLUREF T_2_1;
            err = sequenceOPnew(&T_2_1);
            if (err != ERR_ok) goto ex_0;
            newbod.num = T_2_1.num;
            }
            }

  LINE(923);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
            T_2_1.num = t.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++) {
                a.num = T_2_4.vec->data[T_2_2.num - 1];

  LINE(924);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                T_3_1.num = a.vec->data[4];
                err = idnOPget_str(T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                T_3_3.num = ((T_3_2.str->size != STR__045debug_137print.str->size)? false :
                    !(bcmp(T_3_2.str->data, STR__045debug_137print.str->data, T_3_2.str->size)));
                T_3_4.num = T_3_3.num ^ 1;
                if (T_3_4.num == true) {

  LINE(925);
                    {
                    CLUREF T_4_1;
                    err = sequenceOPaddh(newbod, a, &T_4_1);
                    if (err != ERR_ok) goto ex_0;
                    newbod.num = T_4_1.num;
                    }
                    }
                    }/* end if */
            }
        }
        end_inline_for_1:;

  LINE(928);
        {
        t.vec->data[0]  = newbod.num;
        }
        }
        }/* end if */

  LINE(930);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
        T_1_1.num = t.vec->data[0];
        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++) {
            a.num = T_1_4.vec->data[T_1_2.num - 1];

  LINE(931);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = a.vec->data[4];
            T_2_2.num = a.vec->data[12];
            err = reqsOPmore(e, T_2_1, T_2_2);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_2:;

  LINE(933);
    {
    err = reqsOPpreprocessing(CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(934);
    {
    err = reqsOPinitial_output(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(935);
    {
    CLUREF T_1_1;
    T_1_1.num = t.vec->data[7];
    err = parmOPenter_base(T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(936);
    {
    err = g_envOPnewline(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(938);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = t.vec->data[4];
        err = initlist_to_stmtlist(T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        s.num = T_1_2.num;
        }
        }

  LINE(939);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
        T_1_1.num = t.vec->data[0];
        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++) {
            a.num = T_1_4.vec->data[T_1_2.num - 1];

  LINE(940);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            T_2_1.num = a.vec->data[7];
            T_2_2.num = T_2_1.vec->size;
            T_2_3.num = (T_2_2.num == 0)? true : false;
            T_2_4.num = T_2_3.num ^ 1;
            if (T_2_4.num == true) {
                {
                CLUREF T_3_1;
                T_3_1.num = a.vec->data[7];
                err = parmOPenter(T_3_1);
                if (err != ERR_ok) goto ex_0;
                }
                }
                }/* end if */

  LINE(942);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            T_2_1.num = a.vec->data[5];
            err = initlist_to_stmtlist(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            generic_CLU_proc.type_owns = 0;
            generic_CLU_proc.op_owns = (int)seq_extend_of_stmt_ops->op_owns;
            generic_CLU_proc.proc = seq_extend;
            CUR_PROC_VAR.proc = &generic_CLU_proc;
            err = seq_extend(s, T_2_2, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            s.num = T_2_3.num;
            }

  LINE(943);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = a.vec->data[1];
            generic_CLU_proc.type_owns = 0;
            generic_CLU_proc.op_owns = (int)seq_extend_of_stmt_ops->op_owns;
            generic_CLU_proc.proc = seq_extend;
            CUR_PROC_VAR.proc = &generic_CLU_proc;
            err = seq_extend(s, T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            s.num = T_2_2.num;
            }
        }
    }
    end_inline_for_3:;

  LINE(946);
    {
    err = g_externs(e, s);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(947);
    {
    err = ibOPinit();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(948);
    {
    CLUREF T_1_1;
    CellAlloc(3, t.num, T_1_1);
    err = g_tblOPfind_tables(e, s, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(949);
    {
    err = g_tblOPprune();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(950);
    {
    err = parmOPleave();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(951);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = t.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_type, T_1_3);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(952);
    {
    err = g_constOPfind_consts(e, s);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(955);
        {
        CLUREF T_2_1;
        T_2_1.num = t.vec->data[7];
        err = typOPfix_parm_typelist(T_2_1);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(956);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = t.vec->data[4];
        T_2_2.num = t.vec->data[0];
        err = g_ptypeownvars(e, T_2_1, T_2_2);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(957);
        {
        err = g_envOPnewline(e);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(958);
        {
        CLUREF T_2_1;
        T_2_1.num = t.vec->data[4];
        err = g_powninit(e, T_2_1);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(959);
        {
        err = current_typeOPset_own_init_proc(CLU_1);
        if (err != ERR_ok) goto ex_0;
        }
        }
    else {

  LINE(961);
        {
        CLUREF T_2_1;
        T_2_1.num = t.vec->data[4];
        err = dbg_infoOPadd_ilist(T_2_1);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(962);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
            T_2_1.num = t.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_ap.num = T_2_4.vec->data[T_2_2.num - 1];

  LINE(963);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                T_3_1.num = each_ap.vec->data[7];
                err = sequenceOPempty(T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                T_3_3.num = T_3_2.num ^ 1;
                if (T_3_3.num == true) {
                    continue;
                    }
                    }/* end if */

  LINE(964);
                {
                    {CLUREF T_3_1;
                    CLUREF T_3_2;
                    T_3_1.num = each_ap.vec->data[4];
                    err = idnOPget_str(T_3_1, &T_3_2);
                    if (err != ERR_ok) goto ex_0;
                    n.num = T_3_2.num;
                    }
                    }

  LINE(965);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                err = stringOPfetch(n, CLU_1, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                T_3_2.ch = '%';
                T_3_3.num = (T_3_1.ch == T_3_2.ch)? true : false;
                if (T_3_3.num == true) {
                    {
                    CLUREF T_4_1;
                    err = stringOPrest(n, CLU_2, &T_4_1);
                    if (err != ERR_ok) goto ex_0;
                    n.num = T_4_1.num;
                    }
                    }
                    }/* end if */

  LINE(967);
                {
                CLUREF T_3_1;
                T_3_1.num = each_ap.vec->data[5];
                err = dbg_infoOPadd_ilist(T_3_1);
                if (err != ERR_ok) goto ex_0;
                }
            }
        }
        end_inline_for_4:;

  LINE(969);
        {
        CLUREF T_2_1;
        T_2_1.num = t.vec->data[4];
        err = g_ownvars(e, T_2_1, CLU_1);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(970);
        {
        err = g_envOPnewline(e);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(971);
        {
            {CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = t.vec->data[4];
            err = g_owninit(e, T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            exists.num = T_2_2.num;
            }
            }

  LINE(972);
        {
        err = current_typeOPset_own_init_proc(exists);
        if (err != ERR_ok) goto ex_0;
        }
        }}/* end if */

  LINE(974);
    {
    CLUREF T_1_1;
    T_1_1.num = t.vec->data[8];
    err = g_envOPset_convert_type(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(975);
    {
    err = typOPbegin_local_idn_types();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(976);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
        T_1_1.num = t.vec->data[0];
        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++) {
            a.num = T_1_4.vec->data[T_1_2.num - 1];

  LINE(977);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = t.vec->data[3];
            err = idnOPget_str(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = g_applydefn(e, a, T_2_2);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(978);
            {
            err = g_envOPnewline(e);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_5:;

  LINE(980);
    {
    err = g_envOPnewline(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(981);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = t.vec->data[3];
    T_1_2.num = t.vec->data[6];
    err = g_opstruct(e, T_1_1, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(982);
    {
    err = reqsOPoutput(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(983);
    {
    err = reqsOPreset();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(984);
    {
    err = parmOPleave_base();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(985);
    {
    err = g_envOPblankline(e);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(987);
    {
    CLUREF T_1_1;
    T_1_1.num = t.vec->data[3];
    err = g_idnlit(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(989);
    {
    err = typOPundo_global_idn_types();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(990);
    {
    err = current_typeOPreset();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(991);
    {
    err = dbg_infoOPreset();
    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 g_typedefn ****/


extern errcode stringOPsubstr();
extern errcode intOPsub();
extern errcode stringOPsize();
CLUREF STR_typedef_040struct_173;
CLUREF STR_OWNPTR_040type_137owns_073;
CLUREF STR_OWNPTR_040op_137owns_073;
CLUREF STR_struct_040OP_137ENTRY_040entry_133;
CLUREF STR__135_073;
CLUREF STR__137OPS_073;
CLUREF STR_CLU_137proc_040;
CLUREF STR__137oe_137;
CLUREF STR__040_075_040_173_1730_0540_0540_0540_175_054_040;
CLUREF STR__054_0400_175_073;
CLUREF STR__137oe_137debug_137print_040_075_040_173_1730_0540_0540_0540_175_054_040;
CLUREF STR_OPdebug_137print_054_0400_175_073;
CLUREF STR__137OPS_040;
CLUREF STR__137ops_137actual_040_075_040_173;
CLUREF STR__054_040_050OWNPTR_051_046;
CLUREF STR__137own_137init_054_040_050OWNPTR_051_046;
CLUREF STR__137own_137init_054_040_173;
CLUREF STR__054;
CLUREF STR__173_046;
CLUREF STR__054_040_042;
CLUREF STR__042;
CLUREF STR__137oe_137debug_137print;
CLUREF STR__054_040_042debug_137print_042_175;
CLUREF STR__175_175_073;
CLUREF STR_struct_040OPS_040_052;
CLUREF STR__137ops_040_075_040_050struct_040OPS_040_052_051_046;
CLUREF STR__137ops_137actual_073;
static int g_opstruct_own_init = 0;

/**** BEGIN PROCEDURE g_opstruct ****/

errcode g_opstruct(e, id, ops)
CLUREF e;
CLUREF id;
CLUREF ops;
    {
    errcode err;
    errcode ecode2;
    CLUREF num;
    CLUREF each_op;
    CLUREF nm;
    CLUREF nth;
        if (g_opstruct_own_init == 0) {
        stringOPcons("typedef struct{", CLU_1, CLU_15, &STR_typedef_040struct_173);
        stringOPcons("int count;", CLU_1, CLU_10, &STR_int_040count_073);
        stringOPcons("OWNPTR type_owns;", CLU_1, CLU_17, &STR_OWNPTR_040type_137owns_073);
        stringOPcons("OWNPTR op_owns;", CLU_1, CLU_15, &STR_OWNPTR_040op_137owns_073);
        stringOPcons("struct OP_ENTRY entry[", CLU_1, CLU_22, &STR_struct_040OP_137ENTRY_040entry_133);
        stringOPcons("];", CLU_1, CLU_2, &STR__135_073);
        stringOPcons("} ", CLU_1, CLU_2, &STR__175_040);
        stringOPcons("_OPS;", CLU_1, CLU_5, &STR__137OPS_073);
        stringOPcons("CLU_proc ", CLU_1, CLU_9, &STR_CLU_137proc_040);
        stringOPcons("_oe_", CLU_1, CLU_4, &STR__137oe_137);
        stringOPcons(" = {{0,0,0,0}, ", CLU_1, CLU_15, &STR__040_075_040_173_1730_0540_0540_0540_175_054_040);
        stringOPcons("OP", CLU_1, CLU_2, &STR_OP);
        stringOPcons(", 0};", CLU_1, CLU_5, &STR__054_0400_175_073);
        stringOPcons("_oe_debug_print = {{0,0,0,0}, ", CLU_1, CLU_30, &STR__137oe_137debug_137print_040_075_040_173_1730_0540_0540_0540_175_054_040);
        stringOPcons("OPdebug_print, 0};", CLU_1, CLU_18, &STR_OPdebug_137print_054_0400_175_073);
        stringOPcons("_OPS ", CLU_1, CLU_5, &STR__137OPS_040);
        stringOPcons("_ops_actual = {", CLU_1, CLU_15, &STR__137ops_137actual_040_075_040_173);
        stringOPcons(", (OWNPTR)&", CLU_1, CLU_11, &STR__054_040_050OWNPTR_051_046);
        stringOPcons("_own_init, (OWNPTR)&", CLU_1, CLU_20, &STR__137own_137init_054_040_050OWNPTR_051_046);
        stringOPcons("_own_init, {", CLU_1, CLU_12, &STR__137own_137init_054_040_173);
        stringOPcons(",", CLU_1, CLU_1, &STR__054);
        stringOPcons("{&", CLU_1, CLU_2, &STR__173_046);
        stringOPcons(", \"", CLU_1, CLU_3, &STR__054_040_042);
        stringOPcons("\"", CLU_1, CLU_1, &STR__042);
        stringOPcons("}", CLU_1, CLU_1, &STR__175);
        stringOPcons("_oe_debug_print", CLU_1, CLU_15, &STR__137oe_137debug_137print);
        stringOPcons(", \"debug_print\"}", CLU_1, CLU_16, &STR__054_040_042debug_137print_042_175);
        stringOPcons("}};", CLU_1, CLU_3, &STR__175_175_073);
        stringOPcons("struct OPS *", CLU_1, CLU_12, &STR_struct_040OPS_040_052);
        stringOPcons("_ops = (struct OPS *)&", CLU_1, CLU_22, &STR__137ops_040_075_040_050struct_040OPS_040_052_051_046);
        stringOPcons("_ops_actual;", CLU_1, CLU_12, &STR__137ops_137actual_073);
        g_opstruct_own_init = 1;
    }
    enter_proc(994);

  LINE(995);
    {
    err = g_envOPnewline(e);
    if (err != ERR_ok) goto ex_0;
    }

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

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

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

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

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

  LINE(1001);
    {
        {CLUREF T_1_1;
        T_1_1.num = ops.vec->size;
        num.num = T_1_1.num;
        }
        }

  LINE(1002);
    {
    CLUREF T_1_1;
    err = dbg_infoOPactive(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {
        {
        CLUREF T_2_1;
        T_2_1.num = num.num + 1;
         if ((T_2_1.num > 0 && num.num < 0 && 1 < 0) || 
             (T_2_1.num < 0 && num.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        num.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(1003);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = intOPunparse(num, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_struct_040OP_137ENTRY_040entry_133, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__135_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(1004);
    {
    err = g_envOPoutdent(e);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(1006);
    {
    CLUREF T_1_1;
    err = idnOPget_str(id, &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(1007);
    {
    err = g_envOPputl(e, STR__137OPS_073);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(1008);
    {
    err = g_envOPblankline(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(1009);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = ops.vec->size; 
        T_1_3 = ops;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            each_op.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(1010);
            {
                {CLUREF T_2_1;
                err = idnOPget_str(each_op, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                nm.num = T_2_1.num;
                }
                }

  LINE(1012);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            err = stringOPfetch(nm, CLU_1, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            T_2_2.ch = '%';
            T_2_3.num = (T_2_1.ch == T_2_2.ch)? true : false;
            if (T_2_3.num == true) {
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                err = stringOPsize(nm, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                T_3_2.num = T_3_1.num - 1;
                 if ((T_3_2.num >= 0 && T_3_1.num < 0 && (-1) < 0) || 
                     (T_3_2.num <= 0 && T_3_1.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPsubstr(nm, CLU_2, T_3_2, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                nm.num = T_3_3.num;
                }
                }
                }/* end if */

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

  LINE(1014);
            {
            CLUREF T_2_1;
            err = idnOPget_str(id, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_1);
            if (err != ERR_ok) goto ex_0;
            }

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

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

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

  LINE(1018);
            {
            CLUREF T_2_1;
            err = idnOPget_str(id, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_1);
            if (err != ERR_ok) goto ex_0;
            }

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

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

  LINE(1021);
            {
            err = g_envOPputl(e, STR__054_0400_175_073);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_1:;

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

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

  LINE(1025);
        {
        CLUREF T_2_1;
        err = idnOPget_str(id, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_1);
        if (err != ERR_ok) goto ex_0;
        }

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

  LINE(1027);
        {
        CLUREF T_2_1;
        err = idnOPget_str(id, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_1);
        if (err != ERR_ok) goto ex_0;
        }

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

  LINE(1030);
    {
    err = g_envOPblankline(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(1031);
    {
    CLUREF T_1_1;
    err = idnOPget_str(id, &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(1032);
    {
    err = g_envOPputs(e, STR__137OPS_040);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(1033);
    {
    CLUREF T_1_1;
    err = idnOPget_str(id, &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(1034);
    {
    err = g_envOPputs(e, STR__137ops_137actual_040_075_040_173);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(1035);
    {
        {nth.tf = false;
        }
        }

  LINE(1036);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = intOPunparse(num, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_1, STR__054_040_050OWNPTR_051_046, &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(1037);
    {
    CLUREF T_1_1;
    err = idnOPget_str(id, &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(1038);
    {
    err = g_envOPputs(e, STR__137own_137init_054_040_050OWNPTR_051_046);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(1039);
    {
    CLUREF T_1_1;
    err = idnOPget_str(id, &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(1040);
    {
    err = g_envOPputl(e, STR__137own_137init_054_040_173);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(1042);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = ops.vec->size; 
        T_1_3 = ops;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            each_op.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(1043);
            {
                {CLUREF T_2_1;
                err = idnOPget_str(each_op, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                nm.num = T_2_1.num;
                }
                }

  LINE(1044);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            err = stringOPfetch(nm, CLU_1, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            T_2_2.ch = '%';
            T_2_3.num = (T_2_1.ch == T_2_2.ch)? true : false;
            if (T_2_3.num == true) {
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                err = stringOPsize(nm, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                T_3_2.num = T_3_1.num - 1;
                 if ((T_3_2.num >= 0 && T_3_1.num < 0 && (-1) < 0) || 
                     (T_3_2.num <= 0 && T_3_1.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPsubstr(nm, CLU_2, T_3_2, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                nm.num = T_3_3.num;
                }
                }
                }/* end if */

  LINE(1045);
            {
            if (nth.num == true) {
                {
                err = g_envOPputl(e, STR__054);
                if (err != ERR_ok) goto ex_0;
                }
                }
            else {
                {
                nth.tf = true;
                }
                }}/* end if */

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

  LINE(1047);
            {
            CLUREF T_2_1;
            err = idnOPget_str(id, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_1);
            if (err != ERR_ok) goto ex_0;
            }

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

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

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

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

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

  LINE(1053);
            {
            err = g_envOPputs(e, STR__175);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_2:;

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

  LINE(1056);
        {
        if (nth.num == true) {
            {
            err = g_envOPputl(e, STR__054);
            if (err != ERR_ok) goto ex_0;
            }
            }
        else {
            {
            nth.tf = true;
            }
            }}/* end if */

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

  LINE(1058);
        {
        CLUREF T_2_1;
        err = idnOPget_str(id, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = g_envOPputs(e, T_2_1);
        if (err != ERR_ok) goto ex_0;
        }

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

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

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

  LINE(1063);
    {
    err = g_envOPoutdent(e);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(1064);
    {
    err = g_envOPblankline(e);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(1066);
    {
    CLUREF T_1_1;
    err = idnOPget_str(id, &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(1067);
    {
    err = g_envOPputs(e, STR__137ops_040_075_040_050struct_040OPS_040_052_051_046);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(1068);
    {
    CLUREF T_1_1;
    err = idnOPget_str(id, &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(1069);
    {
    err = g_envOPputl(e, STR__137ops_137actual_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 g_opstruct ****/


extern errcode g_commalist();
extern errcode g_arg();
extern struct REQS *sequence_of_t_reqs;
extern struct OPS *idn_ops;
extern OWN_req sequence_ownreqs;
extern struct OPS *sequence_ops;
struct OPS *sequence_of_idn_table;
struct OPS *sequence_of_idn_ops;
struct OPS *sequence_of_idn_ops;
OWNPTR sequence_of_idn_owns;
extern struct OPS *sequence_of_idn_ops;
extern struct OPS *typespec_ops;
struct OPS  *record_idns_type__ops;
extern struct OPS *record_idns_type__ops;
struct OPS *sequence_of_record_idns_type__table;
struct OPS *sequence_of_record_idns_type__ops;
struct OPS *sequence_of_record_idns_type__ops;
OWNPTR sequence_of_record_idns_type__owns;
extern struct REQS *g_commalist_of_ltype_reqs;
extern struct OPS *sequence_of_record_idns_type__ops;
extern struct REQS *g_commalist_of_elt_reqs;
extern OWN_req g_commalist_ownreqs;
struct OPS *g_commalist_of_sequence_of_record_idns_type__table;
struct OPS *g_commalist_of_record_idns_type__table;
struct OPS *g_commalist_of_sequence_of_record_idns_type__record_idns_type__ops;
struct OPS *g_commalist_of_sequence_of_record_idns_type__record_idns_type__ops;
OWNPTR g_commalist_of_sequence_of_record_idns_type__record_idns_type__owns;
static int g_arglist_own_init = 0;

/**** BEGIN PROCEDURE g_arglist ****/

errcode g_arglist(e, args)
CLUREF e;
CLUREF args;
    {
    errcode err;
    errcode ecode2;
        if (g_arglist_own_init == 0) {
        add_parm_info_type(0, idn_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of_idn_ops));
        add_selector_info("idns", 0, sequence_of_idn_ops); 
        add_selector_info("type_", 1, typespec_ops); 
        find_selector_ops("record", 2, &(record_idns_type__ops));
        add_parm_info_type(0, record_idns_type__ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of_record_idns_type__ops));
        add_parm_info_type(0, sequence_of_record_idns_type__ops, g_commalist_of_ltype_reqs);
        add_parm_info_type(1, record_idns_type__ops, g_commalist_of_elt_reqs);
        find_prociter_instance(g_commalist, 2, &g_commalist_ownreqs, &(g_commalist_of_sequence_of_record_idns_type__record_idns_type__ops));
        g_arglist_own_init = 1;
    }
    enter_proc(1072);

  LINE(1075);
    {
    CLUREF T_1_1;
    err = proctypeOPnew(CLU_0, &T_1_1.proc);
    if (err!= ERR_ok) goto ex_0;
    T_1_1.proc->type_owns = 0;
    T_1_1.proc->op_owns = 0;
    T_1_1.proc->proc = g_arg;
    generic_CLU_proc.type_owns = 0;
    generic_CLU_proc.op_owns = (int)g_commalist_of_sequence_of_record_idns_type__record_idns_type__ops->op_owns;
    generic_CLU_proc.proc = g_commalist;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    err = g_commalist(e, args, T_1_1);
    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 g_arglist ****/


extern errcode g_idnlitlist();

/**** BEGIN PROCEDURE g_arg ****/

errcode g_arg(e, stmt)
CLUREF e;
CLUREF stmt;
    {
    errcode err;
    errcode ecode2;
    enter_proc(1078);

  LINE(1080);
    {
    CLUREF T_1_1;
    T_1_1.num = stmt.vec->data[0];
    err = g_idnlitlist(e, T_1_1);
    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 g_arg ****/


extern errcode fidOPg_fidn_save();
extern errcode g_next_commalist();
extern errcode g_ret();
extern errcode fidOPg_fidn_restore();
struct OPS *sequence_of_typespec_table;
struct OPS *sequence_of_typespec_ops;
struct OPS *sequence_of_typespec_ops;
OWNPTR sequence_of_typespec_owns;
extern struct REQS *g_next_commalist_of_ltype_reqs;
extern struct OPS *sequence_of_typespec_ops;
extern struct REQS *g_next_commalist_of_elt_reqs;
extern OWN_req g_next_commalist_ownreqs;
struct OPS *g_next_commalist_of_sequence_of_typespec_table;
struct OPS *g_next_commalist_of_typespec_table;
struct OPS *g_next_commalist_of_sequence_of_typespec_typespec_ops;
struct OPS *g_next_commalist_of_sequence_of_typespec_typespec_ops;
OWNPTR g_next_commalist_of_sequence_of_typespec_typespec_owns;
static int g_retlist_own_init = 0;

/**** BEGIN PROCEDURE g_retlist ****/

errcode g_retlist(e, rets, first)
CLUREF e;
CLUREF rets;
CLUREF first;
    {
    errcode err;
    errcode ecode2;
        if (g_retlist_own_init == 0) {
        add_parm_info_type(0, typespec_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of_typespec_ops));
        add_parm_info_type(0, sequence_of_typespec_ops, g_next_commalist_of_ltype_reqs);
        add_parm_info_type(1, typespec_ops, g_next_commalist_of_elt_reqs);
        find_prociter_instance(g_next_commalist, 2, &g_next_commalist_ownreqs, &(g_next_commalist_of_sequence_of_typespec_typespec_ops));
        g_retlist_own_init = 1;
    }
    enter_proc(1083);

  LINE(1085);
    {
    err = fidOPg_fidn_save();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(1087);
    {
    CLUREF T_1_1;
    err = proctypeOPnew(CLU_0, &T_1_1.proc);
    if (err!= ERR_ok) goto ex_0;
    T_1_1.proc->type_owns = 0;
    T_1_1.proc->op_owns = 0;
    T_1_1.proc->proc = g_ret;
    generic_CLU_proc.type_owns = 0;
    generic_CLU_proc.op_owns = (int)g_next_commalist_of_sequence_of_typespec_typespec_ops->op_owns;
    generic_CLU_proc.proc = g_next_commalist;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    err = g_next_commalist(e, rets, T_1_1, first);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(1088);
    {
    err = fidOPg_fidn_restore();
    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 g_retlist ****/


extern errcode fidOPg_fid();

/**** BEGIN PROCEDURE g_ret ****/

errcode g_ret(e, ret)
CLUREF e;
CLUREF ret;
    {
    errcode err;
    errcode ecode2;
    enter_proc(1091);

  LINE(1093);
    {
    CLUREF T_1_1;
    err = fidOPg_fid(ret, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = g_envOPputs(e, T_1_1);
    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 g_ret ****/


extern errcode g_argdecl();

/**** BEGIN PROCEDURE g_argdecllist ****/

errcode g_argdecllist(e, rets)
CLUREF e;
CLUREF rets;
    {
    errcode err;
    errcode ecode2;
    CLUREF x;
    enter_proc(1096);

  LINE(1099);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = rets.vec->size; 
        T_1_3 = rets;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            x.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(1100);
            {
            err = g_argdecl(e, x);
            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 g_argdecllist ****/



/**** BEGIN PROCEDURE g_argdecl ****/

errcode g_argdecl(e, arg)
CLUREF e;
CLUREF arg;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_i;
    enter_proc(1104);

  LINE(1106);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
        T_1_1.num = arg.vec->data[0];
        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_i.num = T_1_4.vec->data[T_1_2.num - 1];

  LINE(1107);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = arg.vec->data[1];
            err = idnlit(each_i, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = g_decl_typespec(e, T_2_1, 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 g_argdecl ****/


extern errcode g_retdecl();

/**** BEGIN PROCEDURE g_retdecllist ****/

errcode g_retdecllist(e, rets)
CLUREF e;
CLUREF rets;
    {
    errcode err;
    errcode ecode2;
    CLUREF x;
    enter_proc(1111);

  LINE(1114);
    {
    err = fidOPg_fidn_save();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(1115);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = rets.vec->size; 
        T_1_3 = rets;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            x.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(1116);
            {
            err = g_retdecl(e, x);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_1:;

  LINE(1118);
    {
    err = fidOPg_fidn_restore();
    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 g_retdecllist ****/


CLUREF STR_CLUREF_040_052;
static int g_retdecl_own_init = 0;

/**** BEGIN PROCEDURE g_retdecl ****/

errcode g_retdecl(e, ret)
CLUREF e;
CLUREF ret;
    {
    errcode err;
    errcode ecode2;
        if (g_retdecl_own_init == 0) {
        stringOPcons("CLUREF *", CLU_1, CLU_8, &STR_CLUREF_040_052);
        stringOPcons(";", CLU_1, CLU_1, &STR__073);
        g_retdecl_own_init = 1;
    }
    enter_proc(1121);

  LINE(1124);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = fidOPg_fid(ret, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(STR_CLUREF_040_052, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_2, STR__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;
    }
    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 g_retdecl ****/


CLUREF STR_REF;
static int g_ctype_own_init = 0;

/**** BEGIN PROCEDURE g_ctype ****/

errcode g_ctype(typ, ret_1)
CLUREF typ;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF i;
        if (g_ctype_own_init == 0) {
        stringOPcons("REF", CLU_1, CLU_3, &STR_REF);
        g_ctype_own_init = 1;
    }
    enter_proc(1127);

  LINE(1128);
    {
    CLUREF T_1_1;
    err = typespecOPget_abs(typ, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    switch (T_1_1.cell->tag) {
    case 5: 
         {CLUREF T_1_2;
        T_1_2.num = T_1_1.cell->value;
        i.num = T_1_2.num;

  LINE(1130);
            {
            {
            CLUREF T_2_1;
            err = idnOPget_str(i, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            ret_1->num = T_2_1.num;
            }
            {signal (ERR_ok);}}
            break;
            }
    default: {

  LINE(1132);
        {
        {
        ret_1->str = STR_REF.str;
        }
        {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 g_ctype ****/


extern errcode g_typespec();
struct OPS *sequence_of_typespec_table;
struct OPS *sequence_of_typespec_ops;
struct OPS *sequence_of_typespec_ops;
OWNPTR sequence_of_typespec_owns;
struct OPS *g_commalist_of_sequence_of_typespec_table;
struct OPS *g_commalist_of_typespec_table;
struct OPS *g_commalist_of_sequence_of_typespec_typespec_ops;
struct OPS *g_commalist_of_sequence_of_typespec_typespec_ops;
OWNPTR g_commalist_of_sequence_of_typespec_typespec_owns;
static int g_typelist_own_init = 0;

/**** BEGIN PROCEDURE g_typelist ****/

errcode g_typelist(e, types)
CLUREF e;
CLUREF types;
    {
    errcode err;
    errcode ecode2;
        if (g_typelist_own_init == 0) {
        add_parm_info_type(0, typespec_ops, sequence_of_t_reqs);
        find_type_instance(sequence_ops, 1, &sequence_ownreqs, &(sequence_of_typespec_ops));
        add_parm_info_type(0, sequence_of_typespec_ops, g_commalist_of_ltype_reqs);
        add_parm_info_type(1, typespec_ops, g_commalist_of_elt_reqs);
        find_prociter_instance(g_commalist, 2, &g_commalist_ownreqs, &(g_commalist_of_sequence_of_typespec_typespec_ops));
        g_typelist_own_init = 1;
    }
    enter_proc(1136);

  LINE(1139);
    {
    CLUREF T_1_1;
    err = proctypeOPnew(CLU_0, &T_1_1.proc);
    if (err!= ERR_ok) goto ex_0;
    T_1_1.proc->type_owns = 0;
    T_1_1.proc->op_owns = 0;
    T_1_1.proc->proc = g_typespec;
    generic_CLU_proc.type_owns = 0;
    generic_CLU_proc.op_owns = (int)g_commalist_of_sequence_of_typespec_typespec_ops->op_owns;
    generic_CLU_proc.proc = g_commalist;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    err = g_commalist(e, types, T_1_1);
    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 g_typelist ****/


CLUREF STR_CLUREF;
static int g_term_typespec_own_init = 0;

/**** BEGIN PROCEDURE g_term_typespec ****/

errcode g_term_typespec(e, ts)
CLUREF e;
CLUREF ts;
    {
    errcode err;
    errcode ecode2;
    CLUREF ta;
        if (g_term_typespec_own_init == 0) {
        stringOPcons("CLUREF", CLU_1, CLU_6, &STR_CLUREF);
        g_term_typespec_own_init = 1;
    }
    enter_proc(1142);

  LINE(1143);
    {
    CLUREF T_1_1;
    err = typespecOPget_abs(ts, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    switch (T_1_1.cell->tag) {
    case 7: 
         {CLUREF T_1_2;
        T_1_2.num = T_1_1.cell->value;
        ta.num = T_1_2.num;

  LINE(1145);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ta.vec->data[0];
            err = duOPget_common(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_2);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    default: {

  LINE(1147);
        {
        err = g_envOPputs(e, STR_CLUREF);
        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 g_term_typespec ****/


extern errcode s_owns_prefix_exprlist();
extern errcode g_expr4();
extern errcode s_owns_prefix_fieldlist();
extern errcode make_sel_name();
extern errcode s_owns_prefix();
CLUREF STR__137of;
CLUREF STR__137;
CLUREF STR_any;
CLUREF STR_g_137ref_137name_137typespec_072_040don_047t_040know_040output_040for_040this_040typespec;
static int g_ref_name_typespec_own_init = 0;

/**** BEGIN PROCEDURE g_ref_name_typespec ****/

errcode g_ref_name_typespec(e, ts)
CLUREF e;
CLUREF ts;
    {
    errcode err;
    errcode ecode2;
    CLUREF ta;
    CLUREF prefix;
    CLUREF each_expr;
    CLUREF i;
        if (g_ref_name_typespec_own_init == 0) {
        stringOPcons("_of", CLU_1, CLU_3, &STR__137of);
        stringOPcons("_", CLU_1, CLU_1, &STR__137);
        stringOPcons("any", CLU_1, CLU_3, &STR_any);
        CLU_string_size.num = 56;
        stringOPcons("g_ref_name_typespec: don\'t know output for this typespec", CLU_1, CLU_string_size, &STR_g_137ref_137name_137typespec_072_040don_047t_040know_040output_040for_040this_040typespec);
        g_ref_name_typespec_own_init = 1;
    }
    enter_proc(1151);

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

  LINE(1156);
            {
                {CLUREF T_2_1;
                CLUREF T_2_2;
                T_2_1.num = ta.vec->data[1];
                err = s_owns_prefix_exprlist(T_2_1, &T_2_2);
                if (err != ERR_ok) goto ex_0;
                prefix.num = T_2_2.num;
                }
                }

  LINE(1157);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            T_2_1.num = ta.vec->data[0];
            err = duOPget_common(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(prefix, 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;
            }

  LINE(1158);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            T_2_1.num = ta.vec->data[1];
            T_2_2.num = T_2_1.vec->size;
            T_2_3.num = (T_2_2.num == 0)? true : false;
            T_2_4.num = T_2_3.num ^ 1;
            if (T_2_4.num == true) {

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

  LINE(1160);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                    T_3_1.num = ta.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_expr.num = T_3_4.vec->data[T_3_2.num - 1];

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

  LINE(1162);
                        {
                        err = g_expr4(e, each_expr);
                        if (err != ERR_ok) goto ex_0;
                        }
                    }
                }
                end_inline_for_1:;
                }
                }/* end if */
            break;
            }
    case 7: 
         {CLUREF T_1_3;
        T_1_3.num = T_1_1.cell->value;
        ta.num = T_1_3.num;

  LINE(1167);
            {
            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;
            T_2_1.num = ta.vec->data[1];
            err = s_owns_prefix_fieldlist(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            T_2_3.num = ta.vec->data[0];
            err = duOPget_common(T_2_3, &T_2_4);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_2, T_2_4, &T_2_5);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_5, STR__137, &T_2_6);
            if (err != ERR_ok) goto ex_0;
            T_2_7.num = ta.vec->data[1];
            err = make_sel_name(T_2_7, &T_2_8);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_6, T_2_8, &T_2_9);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_9);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    case 2: 
         {CLUREF T_1_4;
        T_1_4.num = T_1_1.cell->value;
        ta.num = T_1_4.num;

  LINE(1170);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ta.vec->data[1];
            err = duOPget_common(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_2);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    case 5: 
         {CLUREF T_1_5;
        T_1_5.num = T_1_1.cell->value;
        i.num = T_1_5.num;

  LINE(1173);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            err = s_owns_prefix(i, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = idnOPget_str(i, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_1, 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;
            }
            break;
            }
    case 1: 
         {

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

  LINE(1177);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 302;
        err = compiler_logit(T_2_1, STR_g_137ref_137name_137typespec_072_040don_047t_040know_040output_040for_040this_040typespec, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(1178);
        {
        err = typespec_print(ts);
        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 g_ref_name_typespec ****/


extern errcode s_expr4();
CLUREF STR_WRONG;
static int s_ref_name_typespec_own_init = 0;

/**** BEGIN PROCEDURE s_ref_name_typespec ****/

errcode s_ref_name_typespec(ts, ret_1)
CLUREF ts;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF result;
    CLUREF ta;
    CLUREF prefix;
    CLUREF each_expr;
    CLUREF i;
        if (s_ref_name_typespec_own_init == 0) {
        stringOPcons("_of", CLU_1, CLU_3, &STR__137of);
        stringOPcons("_", CLU_1, CLU_1, &STR__137);
        stringOPcons("any", CLU_1, CLU_3, &STR_any);
        stringOPcons("WRONG", CLU_1, CLU_5, &STR_WRONG);
        s_ref_name_typespec_own_init = 1;
    }
    enter_proc(1182);

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

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

  LINE(1188);
            {
                {CLUREF T_2_1;
                CLUREF T_2_2;
                T_2_1.num = ta.vec->data[1];
                err = s_owns_prefix_exprlist(T_2_1, &T_2_2);
                if (err != ERR_ok) goto ex_0;
                prefix.num = T_2_2.num;
                }
                }

  LINE(1189);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            T_2_1.num = ta.vec->data[1];
            T_2_2.num = T_2_1.vec->size;
            T_2_3.num = (T_2_2.num == 0)? true : false;
            T_2_4.num = T_2_3.num ^ 1;
            if (T_2_4.num == true) {

  LINE(1190);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                err = stringOPconcat(prefix, result, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_1, STR__137of, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                result.num = T_3_2.num;
                }

  LINE(1191);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                    T_3_1.num = ta.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_expr.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(1192);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        CLUREF T_4_3;
                        err = stringOPconcat(result, STR__137, &T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        err = s_expr4(each_expr, &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;
                        result.num = T_4_3.num;
                        }
                    }
                }
                end_inline_for_1:;
                }
                }/* end if */
            break;
            }
    case 7: 
         {CLUREF T_1_3;
        T_1_3.num = T_1_1.cell->value;
        ta.num = T_1_3.num;

  LINE(1197);
            {
            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;
            T_2_1.num = ta.vec->data[1];
            err = s_owns_prefix_fieldlist(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            T_2_3.num = ta.vec->data[0];
            err = duOPget_common(T_2_3, &T_2_4);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_2, T_2_4, &T_2_5);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_5, STR__137, &T_2_6);
            if (err != ERR_ok) goto ex_0;
            T_2_7.num = ta.vec->data[1];
            err = make_sel_name(T_2_7, &T_2_8);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_6, T_2_8, &T_2_9);
            if (err != ERR_ok) goto ex_0;
            result.num = T_2_9.num;
            }
            break;
            }
    case 2: 
         {CLUREF T_1_4;
        T_1_4.num = T_1_1.cell->value;
        ta.num = T_1_4.num;

  LINE(1200);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ta.vec->data[1];
            err = duOPget_common(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            result.num = T_2_2.num;
            }
            break;
            }
    case 5: 
         {CLUREF T_1_5;
        T_1_5.num = T_1_1.cell->value;
        i.num = T_1_5.num;

  LINE(1203);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            err = s_owns_prefix(i, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = idnOPget_str(i, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_1, T_2_2, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            result.num = T_2_3.num;
            }
            break;
            }
    case 1: 
         {

  LINE(1205);
            {
            {
            ret_1->str = STR_any.str;
            }
            {signal (ERR_ok);}}
            break;
            }
    default: {

  LINE(1208);
        {
        err = typespec_print(ts);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(1209);
        {
        result = STR_WRONG;
        }
    }
    }
    }

  LINE(1211);
    {
    {
    ret_1->num = result.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 s_ref_name_typespec ****/


CLUREF STR_g_137name_137typespec_072_040don_047t_040know_040output_040for_040this_040typespec;
static int g_name_typespec_own_init = 0;

/**** BEGIN PROCEDURE g_name_typespec ****/

errcode g_name_typespec(e, ts)
CLUREF e;
CLUREF ts;
    {
    errcode err;
    errcode ecode2;
    CLUREF ta;
    CLUREF each_expr;
    CLUREF i;
        if (g_name_typespec_own_init == 0) {
        stringOPcons("_of", CLU_1, CLU_3, &STR__137of);
        stringOPcons("_", CLU_1, CLU_1, &STR__137);
        stringOPcons("any", CLU_1, CLU_3, &STR_any);
        stringOPcons("WRONG", CLU_1, CLU_5, &STR_WRONG);
        CLU_string_size.num = 52;
        stringOPcons("g_name_typespec: don\'t know output for this typespec", CLU_1, CLU_string_size, &STR_g_137name_137typespec_072_040don_047t_040know_040output_040for_040this_040typespec);
        g_name_typespec_own_init = 1;
    }
    enter_proc(1214);

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

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

  LINE(1218);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            T_2_1.num = ta.vec->data[1];
            T_2_2.num = T_2_1.vec->size;
            T_2_3.num = (T_2_2.num == 0)? true : false;
            T_2_4.num = T_2_3.num ^ 1;
            if (T_2_4.num == true) {

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

  LINE(1220);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                    T_3_1.num = ta.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_expr.num = T_3_4.vec->data[T_3_2.num - 1];

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

  LINE(1222);
                        {
                        err = g_expr4(e, each_expr);
                        if (err != ERR_ok) goto ex_0;
                        }
                    }
                }
                end_inline_for_1:;
                }
                }/* end if */
            break;
            }
    case 7: 
         {CLUREF T_1_3;
        T_1_3.num = T_1_1.cell->value;
        ta.num = T_1_3.num;

  LINE(1226);
            {
            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 = ta.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 = ta.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 = g_envOPputs(e, T_2_6);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    case 2: 
         {CLUREF T_1_4;
        T_1_4.num = T_1_1.cell->value;
        ta.num = T_1_4.num;

  LINE(1228);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ta.vec->data[1];
            err = duOPget_common(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_2);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    case 5: 
         {CLUREF T_1_5;
        T_1_5.num = T_1_1.cell->value;
        i.num = T_1_5.num;

  LINE(1230);
            {
            CLUREF T_2_1;
            err = idnOPget_str(i, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_1);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    case 1: 
         {

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

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

  LINE(1235);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 303;
        err = compiler_logit(T_2_1, STR_g_137name_137typespec_072_040don_047t_040know_040output_040for_040this_040typespec, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(1236);
        {
        err = typespec_print(ts);
        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 g_name_typespec ****/


CLUREF STR_s_137name_137typespec_072_040don_047t_040know_040output_040for_040this_040typespec;
static int s_name_typespec_own_init = 0;

/**** BEGIN PROCEDURE s_name_typespec ****/

errcode s_name_typespec(ts, ret_1)
CLUREF ts;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF ta;
    CLUREF result;
    CLUREF each_expr;
    CLUREF i;
        if (s_name_typespec_own_init == 0) {
        stringOPcons("_of", CLU_1, CLU_3, &STR__137of);
        stringOPcons("_", CLU_1, CLU_1, &STR__137);
        stringOPcons("any", CLU_1, CLU_3, &STR_any);
        CLU_string_size.num = 52;
        stringOPcons("s_name_typespec: don\'t know output for this typespec", CLU_1, CLU_string_size, &STR_s_137name_137typespec_072_040don_047t_040know_040output_040for_040this_040typespec);
        stringOPcons("WRONG", CLU_1, CLU_5, &STR_WRONG);
        s_name_typespec_own_init = 1;
    }
    enter_proc(1240);

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

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

  LINE(1244);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            T_2_1.num = ta.vec->data[1];
            T_2_2.num = T_2_1.vec->size;
            T_2_3.num = (T_2_2.num == 0)? true : false;
            T_2_4.num = T_2_3.num ^ 1;
            if (T_2_4.num == true) {

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

  LINE(1246);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                    T_3_1.num = ta.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_expr.num = T_3_4.vec->data[T_3_2.num - 1];

  LINE(1247);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        CLUREF T_4_3;
                        err = stringOPconcat(result, STR__137, &T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        err = s_expr4(each_expr, &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;
                        result.num = T_4_3.num;
                        }
                    }
                }
                end_inline_for_1:;
                }
                }/* end if */

  LINE(1250);
            {
            {
            ret_1->num = result.num;
            }
            {signal (ERR_ok);}}
            break;
            }
    case 7: 
         {CLUREF T_1_3;
        T_1_3.num = T_1_1.cell->value;
        ta.num = T_1_3.num;

  LINE(1252);
            {
            {
            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 = ta.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 = ta.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;
            ret_1->num = T_2_6.num;
            }
            {signal (ERR_ok);}}
            break;
            }
    case 2: 
         {CLUREF T_1_4;
        T_1_4.num = T_1_1.cell->value;
        ta.num = T_1_4.num;

  LINE(1254);
            {
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ta.vec->data[1];
            err = duOPget_common(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            ret_1->num = T_2_2.num;
            }
            {signal (ERR_ok);}}
            break;
            }
    case 5: 
         {CLUREF T_1_5;
        T_1_5.num = T_1_1.cell->value;
        i.num = T_1_5.num;

  LINE(1256);
            {
            {
            CLUREF T_2_1;
            err = idnOPget_str(i, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            ret_1->num = T_2_1.num;
            }
            {signal (ERR_ok);}}
            break;
            }
    case 1: 
         {

  LINE(1258);
            {
            {
            ret_1->str = STR_any.str;
            }
            {signal (ERR_ok);}}
            break;
            }
    default: {

  LINE(1260);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 304;
        err = compiler_logit(T_2_1, STR_s_137name_137typespec_072_040don_047t_040know_040output_040for_040this_040typespec, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(1261);
        {
        err = typespec_print(ts);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(1262);
        {
        {
        ret_1->str = STR_WRONG.str;
        }
        {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 s_name_typespec ****/


static int g_decl_typespec_own_init = 0;

/**** BEGIN PROCEDURE g_decl_typespec ****/

errcode g_decl_typespec(e, ts, s)
CLUREF e;
CLUREF ts;
CLUREF s;
    {
    errcode err;
    errcode ecode2;
        if (g_decl_typespec_own_init == 0) {
        stringOPcons("CLUREF ", CLU_1, CLU_7, &STR_CLUREF_040);
        stringOPcons(";", CLU_1, CLU_1, &STR__073);
        g_decl_typespec_own_init = 1;
    }
    enter_proc(1266);

  LINE(1267);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = stringOPconcat(STR_CLUREF_040, s, &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 g_decl_typespec ****/


CLUREF STR_CHANGE_040g_137typespec_040or_040reference_040to_040it_057select;
static int g_typespec_own_init = 0;

/**** BEGIN PROCEDURE g_typespec ****/

errcode g_typespec(e, ts)
CLUREF e;
CLUREF ts;
    {
    errcode err;
    errcode ecode2;
    CLUREF ta;
        if (g_typespec_own_init == 0) {
        stringOPcons("CHANGE g_typespec or reference to it/select", CLU_1, CLU_43, &STR_CHANGE_040g_137typespec_040or_040reference_040to_040it_057select);
        stringOPcons("CLUREF", CLU_1, CLU_6, &STR_CLUREF);
        g_typespec_own_init = 1;
    }
    enter_proc(1270);

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

  LINE(1273);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ta.vec->data[0];
            err = duOPget_common(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_2);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    case 2: 
         {CLUREF T_1_3;
        T_1_3.num = T_1_1.cell->value;
        ta.num = T_1_3.num;

  LINE(1275);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ta.vec->data[1];
            err = duOPget_unique(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = g_envOPputs(e, T_2_2);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    case 7: 
         {CLUREF T_1_4;
        T_1_4.num = T_1_1.cell->value;
        ta.num = T_1_4.num;

  LINE(1277);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = 305;
            err = compiler_logit(T_2_1, STR_CHANGE_040g_137typespec_040or_040reference_040to_040it_057select, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(1278);
            {
            err = typespec_print(ts);
            if (err != ERR_ok) goto ex_0;
            }
            break;
            }
    default: {

  LINE(1280);
        {
        err = g_envOPputs(e, STR_CLUREF);
        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 g_typespec ****/


CLUREF STR_CHANGE_040g_137typespec_040or_040reference_040to_040it_057apply;
CLUREF STR_WRONG_1371;
CLUREF STR_WRONG_1372;
CLUREF STR_WRONG_1373;
static int s_typespec_own_init = 0;

/**** BEGIN PROCEDURE s_typespec ****/

errcode s_typespec(ts, ret_1)
CLUREF ts;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF ta;
        if (s_typespec_own_init == 0) {
        stringOPcons("CHANGE g_typespec or reference to it/apply", CLU_1, CLU_42, &STR_CHANGE_040g_137typespec_040or_040reference_040to_040it_057apply);
        stringOPcons("WRONG_1", CLU_1, CLU_7, &STR_WRONG_1371);
        stringOPcons("CHANGE g_typespec or reference to it/select", CLU_1, CLU_43, &STR_CHANGE_040g_137typespec_040or_040reference_040to_040it_057select);
        stringOPcons("WRONG_2", CLU_1, CLU_7, &STR_WRONG_1372);
        stringOPcons("CLUREF", CLU_1, CLU_6, &STR_CLUREF);
        stringOPcons("WRONG_3", CLU_1, CLU_7, &STR_WRONG_1373);
        s_typespec_own_init = 1;
    }
    enter_proc(1284);

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

  LINE(1287);
            {
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ta.vec->data[0];
            err = duOPget_common(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            ret_1->num = T_2_2.num;
            }
            {signal (ERR_ok);}}
            break;
            }
    case 2: 
         {CLUREF T_1_3;
        T_1_3.num = T_1_1.cell->value;
        ta.num = T_1_3.num;

  LINE(1289);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = 306;
            err = compiler_logit(T_2_1, STR_CHANGE_040g_137typespec_040or_040reference_040to_040it_057apply, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(1290);
            {
            {
            ret_1->str = STR_WRONG_1371.str;
            }
            {signal (ERR_ok);}}
            break;
            }
    case 7: 
         {CLUREF T_1_4;
        T_1_4.num = T_1_1.cell->value;
        ta.num = T_1_4.num;

  LINE(1292);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = 307;
            err = compiler_logit(T_2_1, STR_CHANGE_040g_137typespec_040or_040reference_040to_040it_057select, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(1293);
            {
            {
            ret_1->str = STR_WRONG_1372.str;
            }
            {signal (ERR_ok);}}
            break;
            }
    default: {

  LINE(1295);
        {
        {
        ret_1->str = STR_CLUREF.str;
        }
        {signal (ERR_ok);}}
    }
    }
    }

  LINE(1297);
    {
    {
    ret_1->str = STR_WRONG_1373.str;
    }
    {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 s_typespec ****/


CLUREF STR_TIME_040to_040fix_040ANYS;
static int g_anys_own_init = 0;

/**** BEGIN PROCEDURE g_anys ****/

errcode g_anys(e, anys)
CLUREF e;
CLUREF anys;
    {
    errcode err;
    errcode ecode2;
        if (g_anys_own_init == 0) {
        stringOPcons("TIME to fix ANYS", CLU_1, CLU_16, &STR_TIME_040to_040fix_040ANYS);
        g_anys_own_init = 1;
    }
    enter_proc(1300);

  LINE(1302);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = anys.vec->size;
    T_1_2.num = (T_1_1.num == 0)? true : false;
    T_1_3.num = T_1_2.num ^ 1;
    if (T_1_3.num == true) {

  LINE(1303);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = 308;
        err = compiler_logit(T_2_1, STR_TIME_040to_040fix_040ANYS, &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 g_anys ****/

