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

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

/**** BEGIN CLUSTER estack ****/

extern errcode arrayOPnew();
extern errcode arrayOPaddh();
extern errcode arrayOPbottom();
extern errcode arrayOPfetch();
extern errcode arrayOPstore();
extern errcode arrayOPsize();
extern errcode arrayOPtrim();
extern errcode arrayOPelements();
static int estack_own_init = 1;
OWN_req estack_ownreqs = {0,0};

/**** BEGIN PROCEDURE create ****/

errcode estackOPcreate(ret_1)
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    enter_proc(8);

  LINE(9);
    {
    {
    CLUREF T_1_1;
    err = arrayOPnew(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE create ****/


/**** BEGIN PROCEDURE push ****/

errcode estackOPpush(a, e)
CLUREF a;
CLUREF e;
    {
    errcode err;
    errcode ecode2;
    enter_proc(12);

  LINE(13);
    {
    {
    if ((a.array->int_low + a.array->ext_size + 1) < a.array->int_size) {
        a.array->store->data[a.array->int_low + a.array->ext_size] = e.num;
        a.array->ext_size++; a.array->ext_high++;}
    else {
        err = arrayOPaddh(a, 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 push ****/


/**** BEGIN PROCEDURE addh ****/

errcode estackOPaddh(a, e)
CLUREF a;
CLUREF e;
    {
    errcode err;
    errcode ecode2;
    enter_proc(16);

  LINE(17);
    {
    {
    if ((a.array->int_low + a.array->ext_size + 1) < a.array->int_size) {
        a.array->store->data[a.array->int_low + a.array->ext_size] = e.num;
        a.array->ext_size++; a.array->ext_high++;}
    else {
        err = arrayOPaddh(a, 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 addh ****/


/**** BEGIN PROCEDURE top ****/

errcode estackOPtop(a, ret_1)
CLUREF a;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    enter_proc(20);

  LINE(21);
    {
    {
    CLUREF T_1_1;
    err = arrayOPbottom(a, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE top ****/


/**** BEGIN PROCEDURE bottom ****/

errcode estackOPbottom(a, ret_1)
CLUREF a;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    enter_proc(24);

  LINE(25);
    {
    {
    CLUREF T_1_1;
    err = arrayOPbottom(a, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE bottom ****/


/**** BEGIN PROCEDURE fetch ****/

errcode estackOPfetch(a, i, ret_1)
CLUREF a;
CLUREF i;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    enter_proc(28);

  LINE(29);
    {
    {
    CLUREF T_1_1;
    if (i.num < a.array->ext_low || i.num > a.array->ext_high ) {
        err = ERR_bounds;
        goto ex_0;}
    T_1_1.num = a.array->store->data[i.num - a.array->ext_low + a.array->int_low];
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE fetch ****/


/**** BEGIN PROCEDURE store ****/

errcode estackOPstore(a, i, e)
CLUREF a;
CLUREF i;
CLUREF e;
    {
    errcode err;
    errcode ecode2;
    enter_proc(32);

  LINE(33);
    {
    {
    if (i.num < a.array->ext_low || i.num > a.array->ext_high) {
        err = ERR_bounds;
        goto ex_0;}
    a.array->store->data[i.num + a.array->int_low - a.array->ext_low] = e.num;
    }
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE store ****/


/**** BEGIN PROCEDURE size ****/

errcode estackOPsize(a, ret_1)
CLUREF a;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    enter_proc(36);

  LINE(37);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = a.array->ext_size;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE size ****/


/**** BEGIN PROCEDURE trim ****/

errcode estackOPtrim(es, start, cnt)
CLUREF es;
CLUREF start;
CLUREF cnt;
    {
    errcode err;
    errcode ecode2;
    enter_proc(40);

  LINE(41);
    {
    err = arrayOPtrim(es, start, cnt);
    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 trim ****/


/**** BEGIN ITERATOR elements ****/

errcode estackOPelements(es, proc, user_locals, iecode)
CLUREF es;
errcode (*proc)();
char **user_locals;
errcode *iecode;
    {
    errcode ecode;
    errcode err;
    errcode ecode2;
    bool body_ctrl_req;
    CLUREF each_d;
    enter_proc(44);

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

  LINE(46);
            {
            err = proc(each_d, user_locals, iecode);
            if (err != ERR_ok) {
            if (err == ERR_break) {signal(ERR_break);}
            if (err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
            if (err == ERR_iterbodyexit) {signal(ERR_iterbodyexit);}
            if (err == ERR_iterbodysignal) {signal(ERR_iterbodysignal);}
            {signal(err);
                }}
            }
        }
    }
    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 ITERATOR elements ****/

typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[10];
} estack_OPS;

CLU_proc estack_oe_addh = {{0,0,0,0}, estackOPaddh, 0};
CLU_proc estack_oe_bottom = {{0,0,0,0}, estackOPbottom, 0};
CLU_proc estack_oe_create = {{0,0,0,0}, estackOPcreate, 0};
CLU_proc estack_oe_elements = {{0,0,0,0}, estackOPelements, 0};
CLU_proc estack_oe_fetch = {{0,0,0,0}, estackOPfetch, 0};
CLU_proc estack_oe_push = {{0,0,0,0}, estackOPpush, 0};
CLU_proc estack_oe_size = {{0,0,0,0}, estackOPsize, 0};
CLU_proc estack_oe_store = {{0,0,0,0}, estackOPstore, 0};
CLU_proc estack_oe_top = {{0,0,0,0}, estackOPtop, 0};
CLU_proc estack_oe_trim = {{0,0,0,0}, estackOPtrim, 0};

estack_OPS estack_ops_actual = {10, (OWNPTR)&estack_own_init, (OWNPTR)&estack_own_init, {
    {&estack_oe_addh, "addh"},
    {&estack_oe_bottom, "bottom"},
    {&estack_oe_create, "create"},
    {&estack_oe_elements, "elements"},
    {&estack_oe_fetch, "fetch"},
    {&estack_oe_push, "push"},
    {&estack_oe_size, "size"},
    {&estack_oe_store, "store"},
    {&estack_oe_top, "top"},
    {&estack_oe_trim, "trim"}}};

struct OPS *estack_ops = (struct OPS *)&estack_ops_actual;

/**** END CLUSTER estack ****/

extern errcode streamOPerror_output();
extern errcode streamOPputl();
static int logit_own_init = 0;
CLUREF logitOPpe;

/**** BEGIN PROCEDURE logit ****/

errcode logit(s)
CLUREF s;
    {
    errcode err;
    errcode ecode2;
        if (logit_own_init == 0) {
        logit_own_init = 1;
        {
            {CLUREF T_0_1;
            err = streamOPerror_output(&T_0_1);
            if (err != ERR_ok) goto ex_0;
            logitOPpe.num = T_0_1.num;
            }
            }
    }
    enter_proc(52);

  LINE(55);
    {
    err = streamOPputl(logitOPpe, s);
    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 logit ****/


/**** BEGIN CLUSTER sym ****/

extern errcode arrayOPpredict();
extern errcode _get_xjname();
extern errcode file_nameOPparse();
extern errcode extend_file_name();
extern errcode file_nameOPunparse();
extern errcode file_exists();
extern errcode file_date();
extern errcode dateOPgt();
extern errcode unix_cmd();
extern errcode stringOPconcat();
extern errcode boolOPnot();
extern errcode symOPsetup();
extern errcode stringOPindexc();
extern errcode intOPequal();
extern errcode stringOPsubstr();
extern errcode intOPsub();
extern errcode stringOPrest();
extern errcode intOPadd();
extern errcode stringOPsize();
extern errcode stringOPequal();
extern errcode recordOPget_2();
extern errcode recordOPget_1();
extern errcode streamOPopen();
extern errcode streamOPgetl();
extern errcode stringOPindexs();
extern errcode streamOPclose();
extern errcode intOPgt();
extern errcode charOPequal();
extern errcode stringOPfetch();
extern errcode i_hparse();
extern errcode slower();
extern errcode i_hunparse();
extern errcode logit();
extern errcode intOPunparse();
extern errcode string_lindexs();
extern errcode intOPlt();
extern errcode debugopassign();
CLUREF STR_;
CLUREF STR__040;
CLUREF STR_sym;
CLUREF STR_nm_040_055p_040_055t_040x_040;
CLUREF STR__040_074_057dev_057null_0402_076_057dev_057null_040_076;
CLUREF STR_nm_040;
CLUREF STR__040_074_057dev_057null_040_076;
CLUREF STR_OP;
CLUREF STR_read;
CLUREF STR__040_137;
CLUREF STR_losing_040_0502_051_040in_040get_137name_072_040;
CLUREF STR__137own_137init;
static int sym_own_init = 0;
OWN_req sym_ownreqs = {0,0};
CLUREF symOPst;
CLUREF symOPinit;
CLUREF symOPinv_pgm_name;
CLUREF symOPsymfile;
CLUREF symOPsymfn;
CLUREF symOPcache;
CLUREF symOPprefix;
CLUREF symOPdir;
errcode sym_own_init_proc()
{
    errcode err;
    enter_own_init_proc();
        if (sym_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons(" ", CLU_1, CLU_1, &STR__040);
        stringOPcons("sym", CLU_1, CLU_3, &STR_sym);
        stringOPcons("nm -p -t x ", CLU_1, CLU_11, &STR_nm_040_055p_040_055t_040x_040);
        stringOPcons(" </dev/null 2>/dev/null >", CLU_1, CLU_25, &STR__040_074_057dev_057null_0402_076_057dev_057null_040_076);
        stringOPcons("nm ", CLU_1, CLU_3, &STR_nm_040);
        stringOPcons(" </dev/null >", CLU_1, CLU_13, &STR__040_074_057dev_057null_040_076);
        stringOPcons("OP", CLU_1, CLU_2, &STR_OP);
        stringOPcons("read", CLU_1, CLU_4, &STR_read);
        stringOPcons(" _", CLU_1, CLU_2, &STR__040_137);
        stringOPcons("losing (2) in get_name: ", CLU_1, CLU_24, &STR_losing_040_0502_051_040in_040get_137name_072_040);
        stringOPcons("_own_init", CLU_1, CLU_9, &STR__137own_137init);
        sym_own_init = 1;
        {
            {symOPinit.tf = false;
            }
            }
        {
            {symOPinv_pgm_name = STR_;
            }
            }
        {
            {symOPsymfile = STR_;
            }
            }
        {
            {CLUREF T_0_1;
            err = arrayOPpredict(CLU_1, CLU_25, &T_0_1);
            if (err != ERR_ok) goto ex_0;
            symOPcache.num = T_0_1.num;
            }
            }
        {
            {symOPprefix = STR__040;
            }
            }
        {
            {symOPdir = STR_;
            }
            }
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(err); {signal(ERR_failure);}
        }
    }

static int symOPsetup_own_init = 0;

/**** BEGIN PROCEDURE setup ****/

errcode symOPsetup()
    {
    errcode err;
    errcode ecode2;
    CLUREF fn;
    CLUREF fn_date;
    CLUREF sym_date;
        if (symOPsetup_own_init == 0) {
        if (sym_own_init == 0) {
            err = sym_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        symOPsetup_own_init = 1;
    }
    enter_proc(76);

  LINE(78);
    {

  LINE(81);
        {
        CLUREF T_3_1;
        err = _get_xjname(&T_3_1);
        if (err != ERR_ok) goto ex_1;
        symOPinv_pgm_name.num = T_3_1.num;
        }

  LINE(82);
        {
            {CLUREF T_3_1;
            err = file_nameOPparse(symOPinv_pgm_name, &T_3_1);
            if (err != ERR_ok) goto ex_1;
            fn.num = T_3_1.num;
            }
            }

  LINE(83);
        {
        CLUREF T_3_1;
        err = extend_file_name(fn, STR_sym, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        symOPsymfn.num = T_3_1.num;
        }

  LINE(84);
        {
        CLUREF T_3_1;
        err = file_nameOPunparse(symOPsymfn, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        symOPsymfile.num = T_3_1.num;
        }

  LINE(85);
        {
        CLUREF T_3_1;
        err = file_exists(symOPsymfn, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        if (T_3_1.num == true) {

  LINE(86);
            {
                {CLUREF T_4_1;
                err = file_date(fn, CLU_0, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                fn_date.num = T_4_1.num;
                }
                }

  LINE(87);
            {
                {CLUREF T_4_1;
                err = file_date(symOPsymfn, CLU_0, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                sym_date.num = T_4_1.num;
                }
                }

  LINE(88);
            {
            CLUREF T_4_1;
            err = dateOPgt(sym_date, fn_date, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            if (T_4_1.num == true) {

  LINE(89);
                {
                    err = "ERR_done";
                    goto ex_1;
                    }
                }
                }/* end if */
            }
            }/* end if */

  LINE(92);
        {
        CLUREF T_4_1;
        CLUREF T_4_2;
        CLUREF T_4_3;
        err = stringOPconcat(STR_nm_040_055p_040_055t_040x_040, symOPinv_pgm_name, &T_4_1);
        if (err != ERR_ok) goto ex_2;
        err = stringOPconcat(T_4_1, STR__040_074_057dev_057null_0402_076_057dev_057null_040_076, &T_4_2);
        if (err != ERR_ok) goto ex_2;
        err = stringOPconcat(T_4_2, symOPsymfile, &T_4_3);
        if (err != ERR_ok) goto ex_2;
        err = unix_cmd(T_4_3);
        if (err != ERR_ok) goto ex_2;
        }
            goto end_2;
            ex_2:
                {

  LINE(95);
                    {
                    CLUREF T_4_1;
                    CLUREF T_4_2;
                    CLUREF T_4_3;
                    err = stringOPconcat(STR_nm_040, symOPinv_pgm_name, &T_4_1);
                    if (err != ERR_ok) goto ex_1;
                    err = stringOPconcat(T_4_1, STR__040_074_057dev_057null_040_076, &T_4_2);
                    if (err != ERR_ok) goto ex_1;
                    err = stringOPconcat(T_4_2, symOPsymfile, &T_4_3);
                    if (err != ERR_ok) goto ex_1;
                    err = unix_cmd(T_4_3);
                    if (err != ERR_ok) goto ex_1;
                    }
                }
            end_2:;
        }
        goto end_1;
        ex_1:
            if (errcmp(err, "ERR_done")) {
            }
            else {
                goto ex_0;
            }
        end_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 setup ****/

static int symOPget_address_own_init = 0;

/**** BEGIN PROCEDURE get_address ****/

errcode symOPget_address(s, ret_1)
CLUREF s;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF n;
    CLUREF s_size;
    CLUREF each_ent;
    CLUREF l;
    CLUREF loc;
    CLUREF sp;
    CLUREF num;
    CLUREF add;
        if (symOPget_address_own_init == 0) {
        if (sym_own_init == 0) {
            err = sym_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        symOPget_address_own_init = 1;
    }
    enter_proc(126);

  LINE(128);
    {
    CLUREF T_1_1;
    T_1_1.num = symOPinit.num ^ 1;
    if (T_1_1.num == true) {

  LINE(129);
        {
        err = symOPsetup();
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(133);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.ch = '$';
        err = stringOPindexc(T_1_1, s, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        n.num = T_1_2.num;
        }
        }

  LINE(134);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = (n.num == 0)? true : false;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {

  LINE(135);
        {
        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 = n.num - 1;
         if ((T_2_1.num >= 0 && n.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && n.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPsubstr(s, CLU_1, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_2, STR_OP, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        T_2_4.num = n.num + 1;
         if ((T_2_4.num > 0 && n.num < 0 && 1 < 0) || 
             (T_2_4.num < 0 && n.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPrest(s, 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;
        s.num = T_2_6.num;
        }
        }
        }/* end if */

  LINE(138);
    {
    CLUREF T_1_1;
    err = stringOPconcat(symOPprefix, s, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    s.num = T_1_1.num;
    }

  LINE(139);
    {
        {CLUREF T_1_1;
        err = stringOPsize(s, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        s_size.num = T_1_1.num;
        }
        }

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

  LINE(143);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = each_ent.vec->data[1];
            T_2_2.num = ((s.str->size != T_2_1.str->size)? false :
                !(bcmp(s.str->data, T_2_1.str->data, s.str->size)));
            if (T_2_2.num == true) {
                {
                {
                CLUREF T_3_1;
                T_3_1.num = each_ent.vec->data[0];
                ret_1->num = T_3_1.num;
                }
                {signal (ERR_ok);}}
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(146);
    for (;;) {
        if (true != true) { break; }

  LINE(147);
        {
        CLUREF T_2_1;
        err = streamOPopen(symOPsymfn, STR_read, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        symOPst.num = T_2_1.num;
        }

  LINE(148);
        for (;;) {
            if (true != true) { break; }

  LINE(149);
            {
                {CLUREF T_4_1;
                err = streamOPgetl(symOPst, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                l.num = T_4_1.num;
                }
                }

  LINE(150);
            {
                {CLUREF T_4_1;
                err = stringOPindexs(s, l, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                loc.num = T_4_1.num;
                }
                }

  LINE(151);
            {
            CLUREF T_4_1;
            T_4_1.num = (loc.num == 0)? true : false;
            if (T_4_1.num == true) {
                continue;
                }
                }/* end if */

  LINE(152);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            CLUREF T_4_4;
            CLUREF T_4_5;
            err = stringOPsize(l, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            T_4_2.num = T_4_1.num - loc.num;
             if ((T_4_2.num >= 0 && T_4_1.num < 0 && (-loc.num) < 0) || 
                 (T_4_2.num <= 0 && T_4_1.num > 0 && (-loc.num) > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            T_4_3.num = T_4_2.num + 1;
             if ((T_4_3.num > 0 && T_4_2.num < 0 && 1 < 0) || 
                 (T_4_3.num < 0 && T_4_2.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            T_4_4.num = (T_4_3.num == s_size.num)? true : false;
            T_4_5.num = T_4_4.num ^ 1;
            if (T_4_5.num == true) {
                continue;
                }
                }/* end if */

  LINE(153);
            {
                {CLUREF T_4_1;
                CLUREF T_4_2;
                T_4_1.ch = ' ';
                err = stringOPindexc(T_4_1, l, &T_4_2);
                if (err != ERR_ok) goto ex_1;
                sp.num = T_4_2.num;
                }
                }

  LINE(154);
            {
                {CLUREF T_4_1;
                CLUREF T_4_2;
                T_4_1.num = sp.num - 1;
                 if ((T_4_1.num >= 0 && sp.num < 0 && (-1) < 0) || 
                     (T_4_1.num <= 0 && sp.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_1;}
                err = stringOPsubstr(l, CLU_1, T_4_1, &T_4_2);
                if (err != ERR_ok) goto ex_1;
                num.num = T_4_2.num;
                }
                }

  LINE(155);
            {
            err = streamOPclose(symOPst);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(156);
            {
            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 = stringOPsize(num, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            T_4_3.num = (T_4_2.num > 2)? true : false;
            T_4_1.num = T_4_3.num;
            if (T_4_3.num) {
                err = stringOPfetch(l, CLU_2, &T_4_4);
                if (err != ERR_ok) goto ex_1;
                T_4_5.ch = 'x';
                T_4_6.num = (T_4_4.ch == T_4_5.ch)? true : false;
                T_4_1.num = T_4_6.num;
            }
            if (T_4_1.num == true) {

  LINE(157);
                {
                CLUREF T_5_1;
                err = stringOPrest(num, CLU_3, &T_5_1);
                if (err != ERR_ok) goto ex_1;
                num.num = T_5_1.num;
                }
                }
                }/* end if */

  LINE(159);
            {
                {CLUREF T_4_1;
                err = i_hparse(num, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                add.num = T_4_1.num;
                }
                }

  LINE(160);
            {
            CLUREF T_4_1;
            RecordAlloc(2, T_4_1);
            T_4_1.vec->data[1]  = s.num;
            T_4_1.vec->data[0]  = add.num;
            {
            if ((symOPcache.array->int_low + symOPcache.array->ext_size + 1) < symOPcache.array->int_size) {
                symOPcache.array->store->data[symOPcache.array->int_low + symOPcache.array->ext_size] = T_4_1.num;
                symOPcache.array->ext_size++; symOPcache.array->ext_high++;}
            else {
                err = arrayOPaddh(symOPcache, T_4_1);
                if (err != ERR_ok) goto ex_1;}
            }
            }

  LINE(161);
            {
            symOPinit.tf = true;
            }

  LINE(162);
            {
            {
            ret_1->num = add.num;
            }
            {signal (ERR_ok);}}
            }
            end_while_2:;
            goto end_1;
            ex_1:
                if ((err == ERR_end_of_file)) {

  LINE(165);
                    {
                    err = streamOPclose(symOPst);
                    if (err != ERR_ok) goto ex_0;
                    }

  LINE(166);
                    {
                    if (symOPinit.num == true) {

  LINE(169);
                        {
                        {signal (ERR_not_found);}}
                        }
                    else {

  LINE(171);
                        {
                        symOPinit.tf = true;
                        }

  LINE(172);
                        {
                        symOPprefix = STR__040_137;
                        }

  LINE(173);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                        err = stringOPrest(s, CLU_2, &T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        err = stringOPconcat(symOPprefix, T_4_1, &T_4_2);
                        if (err != ERR_ok) goto ex_0;
                        s.num = T_4_2.num;
                        }

  LINE(174);
                        {
                        CLUREF T_4_1;
                        err = stringOPsize(s, &T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        s_size.num = T_4_1.num;
                        }
                        }}/* end if */
                }
                else {
                    goto ex_0;
                }
            end_1:;
        }
        end_while_1:;
    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 get_address ****/

static int symOPget_name_own_init = 0;

/**** BEGIN PROCEDURE get_name ****/

errcode symOPget_name(addr, ret_1)
CLUREF addr;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_ent;
    CLUREF s;
    CLUREF s_size;
    CLUREF l;
    CLUREF loc;
    CLUREF sp;
    CLUREF nm;
        if (symOPget_name_own_init == 0) {
        if (sym_own_init == 0) {
            err = sym_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        symOPget_name_own_init = 1;
    }
    enter_proc(180);

  LINE(181);
    {
    CLUREF T_1_1;
    T_1_1.num = symOPinit.num ^ 1;
    if (T_1_1.num == true) {

  LINE(182);
        {
        err = symOPsetup();
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

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

  LINE(187);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = each_ent.vec->data[0];
            T_2_2.num = (addr.num == T_2_1.num)? true : false;
            if (T_2_2.num == true) {
                {
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                T_3_1.num = each_ent.vec->data[1];
                err = stringOPsize(symOPprefix, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                T_3_3.num = T_3_2.num + 1;
                 if ((T_3_3.num > 0 && T_3_2.num < 0 && 1 < 0) || 
                     (T_3_3.num < 0 && T_3_2.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPrest(T_3_1, T_3_3, &T_3_4);
                if (err != ERR_ok) goto ex_0;
                ret_1->num = T_3_4.num;
                }
                {signal (ERR_ok);}}
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(190);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        err = i_hunparse(addr, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        err = slower(T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        s.num = T_1_2.num;
        }
        }

  LINE(191);
    {
        {CLUREF T_1_1;
        err = stringOPsize(s, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        s_size.num = T_1_1.num;
        }
        }

  LINE(194);
    for (;;) {
        if (true != true) { break; }

  LINE(195);
        {
        CLUREF T_2_1;
        err = streamOPopen(symOPsymfn, STR_read, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        symOPst.num = T_2_1.num;
        }

  LINE(196);
        for (;;) {
            if (true != true) { break; }

  LINE(197);
            {
                {CLUREF T_4_1;
                err = streamOPgetl(symOPst, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                l.num = T_4_1.num;
                }
                }

  LINE(198);
            {
                {CLUREF T_4_1;
                err = stringOPindexs(s, l, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                loc.num = T_4_1.num;
                }
                }

  LINE(199);
            {
            CLUREF T_4_1;
            T_4_1.num = (loc.num == 0)? true : false;
            if (T_4_1.num == true) {
                continue;
                }
                }/* end if */

  LINE(200);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = (loc.num == 1)? true : false;
            T_4_2.num = T_4_1.num ^ 1;
            if (T_4_2.num == true) {
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                err = intOPunparse(loc, &T_5_1);
                if (err != ERR_ok) goto ex_1;
                err = stringOPconcat(STR_losing_040_0502_051_040in_040get_137name_072_040, T_5_1, &T_5_2);
                if (err != ERR_ok) goto ex_1;
                err = logit(T_5_2);
                if (err != ERR_ok) goto ex_1;
                }
                }
                }/* end if */

  LINE(201);
            {
                {CLUREF T_4_1;
                err = string_lindexs(symOPprefix, l, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                sp.num = T_4_1.num;
                }
                }

  LINE(202);
            {
                {CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                err = stringOPsize(symOPprefix, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                T_4_2.num = sp.num + T_4_1.num;
                 if ((T_4_2.num > 0 && sp.num < 0 && T_4_1.num < 0) || 
                     (T_4_2.num < 0 && sp.num > 0 && T_4_1.num > 0)) {
                    err = ERR_overflow;
                    goto ex_1;}
                err = stringOPrest(l, T_4_2, &T_4_3);
                if (err != ERR_ok) goto ex_1;
                nm.num = T_4_3.num;
                }
                }

  LINE(203);
            {
            err = streamOPclose(symOPst);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(204);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            RecordAlloc(2, T_4_1);
            err = stringOPconcat(symOPprefix, nm, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            T_4_1.vec->data[1]  = T_4_2.num;
            T_4_1.vec->data[0]  = addr.num;
            {
            if ((symOPcache.array->int_low + symOPcache.array->ext_size + 1) < symOPcache.array->int_size) {
                symOPcache.array->store->data[symOPcache.array->int_low + symOPcache.array->ext_size] = T_4_1.num;
                symOPcache.array->ext_size++; symOPcache.array->ext_high++;}
            else {
                err = arrayOPaddh(symOPcache, T_4_1);
                if (err != ERR_ok) goto ex_1;}
            }
            }

  LINE(205);
            {
            {
            ret_1->num = nm.num;
            }
            {signal (ERR_ok);}}
            }
            end_while_2:;
            goto end_1;
            ex_1:
                if ((err == ERR_end_of_file)) {

  LINE(209);
                    {
                    {signal (ERR_not_found);}}
                }
                else {
                    goto ex_0;
                }
            end_1:;
        }
        end_while_1:;
    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 get_name ****/

static int symOPclear_owns_own_init = 0;

/**** BEGIN PROCEDURE clear_owns ****/

errcode symOPclear_owns()
    {
    errcode err;
    errcode ecode2;
    CLUREF l;
    CLUREF ls;
    CLUREF sp;
    CLUREF num;
    CLUREF add;
        if (symOPclear_owns_own_init == 0) {
        if (sym_own_init == 0) {
            err = sym_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        symOPclear_owns_own_init = 1;
    }
    enter_proc(214);

  LINE(215);
    {
    CLUREF T_1_1;
    T_1_1.num = symOPinit.num ^ 1;
    if (T_1_1.num == true) {
        {
        err = symOPsetup();
        if (err != ERR_ok) goto ex_0;
        }
        {
        symOPinit.tf = true;
        }
        }
        }/* end if */

  LINE(216);
    {
    CLUREF T_1_1;
    err = streamOPopen(symOPsymfn, STR_read, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    symOPst.num = T_1_1.num;
    }

  LINE(217);
    for (;;) {
        if (true != true) { break; }

  LINE(218);
        {
            {CLUREF T_3_1;
            err = streamOPgetl(symOPst, &T_3_1);
            if (err != ERR_ok) goto ex_1;
            l.num = T_3_1.num;
            }
            }

  LINE(219);
        {
            {CLUREF T_3_1;
            err = stringOPsize(l, &T_3_1);
            if (err != ERR_ok) goto ex_1;
            ls.num = T_3_1.num;
            }
            }

  LINE(220);
        {
        CLUREF T_3_1;
        T_3_1.num = (ls.num < 13)? true : false;
        if (T_3_1.num == true) {
            continue;
            }
            }/* end if */

  LINE(221);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        err = string_lindexs(STR__137own_137init, l, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        T_3_2.num = ls.num - 8;
         if ((T_3_2.num >= 0 && ls.num < 0 && (-8) < 0) || 
             (T_3_2.num <= 0 && ls.num > 0 && (-8) > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        T_3_3.num = (T_3_1.num == T_3_2.num)? true : false;
        if (T_3_3.num == true) {

  LINE(223);
            {
                {CLUREF T_4_1;
                CLUREF T_4_2;
                T_4_1.ch = ' ';
                err = stringOPindexc(T_4_1, l, &T_4_2);
                if (err != ERR_ok) goto ex_1;
                sp.num = T_4_2.num;
                }
                }

  LINE(224);
            {
                {CLUREF T_4_1;
                CLUREF T_4_2;
                T_4_1.num = sp.num - 1;
                 if ((T_4_1.num >= 0 && sp.num < 0 && (-1) < 0) || 
                     (T_4_1.num <= 0 && sp.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_1;}
                err = stringOPsubstr(l, CLU_1, T_4_1, &T_4_2);
                if (err != ERR_ok) goto ex_1;
                num.num = T_4_2.num;
                }
                }

  LINE(225);
            {
                {CLUREF T_4_1;
                err = i_hparse(num, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                add.num = T_4_1.num;
                }
                }

  LINE(226);
            {
            err = debugopassign(add, CLU_0);
            if (err != ERR_ok) goto ex_1;
            }
            }
            }/* end if */
        }
        end_while_1:;
        goto end_1;
        ex_1:
            if ((err == ERR_end_of_file)) {

  LINE(230);
                {
                err = streamOPclose(symOPst);
                if (err != ERR_ok) goto ex_0;
                }
            }
            else {
                goto ex_0;
            }
        end_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 clear_owns ****/

typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[3];
} sym_OPS;

CLU_proc sym_oe_clear_owns = {{0,0,0,0}, symOPclear_owns, 0};
CLU_proc sym_oe_get_address = {{0,0,0,0}, symOPget_address, 0};
CLU_proc sym_oe_get_name = {{0,0,0,0}, symOPget_name, 0};

sym_OPS sym_ops_actual = {3, (OWNPTR)&sym_own_init, (OWNPTR)&sym_own_init, {
    {&sym_oe_clear_owns, "clear_owns"},
    {&sym_oe_get_address, "get_address"},
    {&sym_oe_get_name, "get_name"}}};

struct OPS *sym_ops = (struct OPS *)&sym_ops_actual;

/**** END CLUSTER sym ****/

extern errcode lower_case();
static int internalize_own_init = 0;

/**** BEGIN PROCEDURE internalize ****/

errcode internalize(arg, ret_1)
CLUREF arg;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF index;
        if (internalize_own_init == 0) {
        stringOPcons("OP", CLU_1, CLU_2, &STR_OP);
        internalize_own_init = 1;
    }
    enter_proc(236);

  LINE(237);
    {
    CLUREF T_1_1;
    err = lower_case(arg, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    arg.num = T_1_1.num;
    }

  LINE(238);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.ch = '$';
        err = stringOPindexc(T_1_1, arg, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        index.num = T_1_2.num;
        }
        }

  LINE(239);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = (index.num == 0)? true : false;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {

  LINE(240);
        {
        {
        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 = index.num - 1;
         if ((T_2_1.num >= 0 && index.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && index.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPsubstr(arg, CLU_1, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_2, STR_OP, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        T_2_4.num = index.num + 1;
         if ((T_2_4.num > 0 && index.num < 0 && 1 < 0) || 
             (T_2_4.num < 0 && index.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPrest(arg, 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);}}
        }
    else {

  LINE(243);
        {
        {
        ret_1->num = arg.num;
        }
        {signal (ERR_ok);}}
        }}/* end if */
    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 internalize ****/


CLUREF STR__044;
static int externalize_own_init = 0;

/**** BEGIN PROCEDURE externalize ****/

errcode externalize(arg, ret_1)
CLUREF arg;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF index;
        if (externalize_own_init == 0) {
        stringOPcons("OP", CLU_1, CLU_2, &STR_OP);
        stringOPcons("$", CLU_1, CLU_1, &STR__044);
        externalize_own_init = 1;
    }
    enter_proc(247);

  LINE(248);
    {
        {CLUREF T_1_1;
        err = stringOPindexs(STR_OP, arg, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        index.num = T_1_1.num;
        }
        }

  LINE(249);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = (index.num == 0)? true : false;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {

  LINE(250);
        {
        {
        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 = index.num - 1;
         if ((T_2_1.num >= 0 && index.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && index.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPsubstr(arg, CLU_1, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_2, STR__044, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        T_2_4.num = index.num + 2;
         if ((T_2_4.num > 0 && index.num < 0 && 2 < 0) || 
             (T_2_4.num < 0 && index.num > 0 && 2 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPrest(arg, 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);}}
        }
    else {

  LINE(253);
        {
        {
        ret_1->num = arg.num;
        }
        {signal (ERR_ok);}}
        }}/* end if */
    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 externalize ****/


/**** BEGIN CLUSTER ctl_pts ****/

extern errcode arrayOPfill();
extern errcode ctl_ptsOPline_tracing_off();
extern errcode dbg_envOPdump();
extern errcode internalize();
extern errcode ctl_ptsOPbp_exists();
extern errcode ctl_ptsOPline_tracing_on();
extern errcode oneofOPmake_3();
extern errcode oneofOPmake_4();
extern errcode ctl_ptsOPfunc_exists();
extern errcode oneofOPmake_1();
extern errcode oneofOPmake_2();
extern errcode arrayOPindexes();
extern errcode boolOPequal();
extern errcode externalize();
extern errcode streamOPputs();
extern errcode symOPget_address();
CLUREF STR_failure;
CLUREF STR_s;
CLUREF STR_t;
CLUREF STR_f;
CLUREF STR_l;
CLUREF STR_sl;
CLUREF STR_a;
CLUREF STR_all;
CLUREF STR_Breakpoints_072;
CLUREF STR__011_040entry_057exit_072_040;
CLUREF STR__011;
CLUREF STR__011_040single_040step_072_040;
CLUREF STR__011_040temporary_040single_040step_072_040;
CLUREF STR_Traced_040Signals_072;
CLUREF STR__011all_040signals_040are_040being_040traced;
CLUREF STR__137TRACE;
static int ctl_pts_own_init = 0;
OWN_req ctl_pts_ownreqs = {0,0};
CLUREF ctl_ptsOPcurrent_bkpts;
CLUREF ctl_ptsOPtyo;
CLUREF ctl_ptsOPtrpts;
CLUREF ctl_ptsOPall;
errcode ctl_pts_own_init_proc()
{
    errcode err;
    enter_own_init_proc();
        if (ctl_pts_own_init == 0) {
        stringOPcons("failure", CLU_1, CLU_7, &STR_failure);
        stringOPcons("s", CLU_1, CLU_1, &STR_s);
        stringOPcons("t", CLU_1, CLU_1, &STR_t);
        stringOPcons("f", CLU_1, CLU_1, &STR_f);
        stringOPcons("l", CLU_1, CLU_1, &STR_l);
        stringOPcons("sl", CLU_1, CLU_2, &STR_sl);
        stringOPcons("a", CLU_1, CLU_1, &STR_a);
        stringOPcons("all", CLU_1, CLU_3, &STR_all);
        stringOPcons("Breakpoints:", CLU_1, CLU_12, &STR_Breakpoints_072);
        stringOPcons("\t entry/exit: ", CLU_1, CLU_14, &STR__011_040entry_057exit_072_040);
        stringOPcons("\t", CLU_1, CLU_1, &STR__011);
        stringOPcons(" ", CLU_1, CLU_1, &STR__040);
        stringOPcons("\t single step: ", CLU_1, CLU_15, &STR__011_040single_040step_072_040);
        stringOPcons("\t temporary single step: ", CLU_1, CLU_25, &STR__011_040temporary_040single_040step_072_040);
        stringOPcons("Traced Signals:", CLU_1, CLU_15, &STR_Traced_040Signals_072);
        stringOPcons("\tall signals are being traced", CLU_1, CLU_29, &STR__011all_040signals_040are_040being_040traced);
        stringOPcons("_TRACE", CLU_1, CLU_6, &STR__137TRACE);
        ctl_pts_own_init = 1;
        {
            {CLUREF T_0_1;
            err = arrayOPpredict(CLU_1, CLU_25, &T_0_1);
            if (err != ERR_ok) goto ex_0;
            ctl_ptsOPcurrent_bkpts.num = T_0_1.num;
            }
            }
        {
            {CLUREF T_0_2;
            err = arrayOPfill(CLU_1, CLU_1, STR_failure, &T_0_2);
            if (err != ERR_ok) goto ex_0;
            ctl_ptsOPtrpts.num = T_0_2.num;
            }
            }
        {
            {ctl_ptsOPall.tf = false;
            }
            }
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(err); {signal(ERR_failure);}
        }
    }

static int ctl_ptsOPclear_own_init = 0;

/**** BEGIN PROCEDURE clear ****/

errcode ctl_ptsOPclear()
    {
    errcode err;
    errcode ecode2;
    CLUREF off;
    CLUREF each_bkpt;
    CLUREF found;
    CLUREF s;
    CLUREF n;
    CLUREF l;
    CLUREF t;
    CLUREF f;
        if (ctl_ptsOPclear_own_init == 0) {
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        ctl_ptsOPclear_own_init = 1;
    }
    enter_proc(282);

  LINE(283);
    {
        {CLUREF T_1_1;
        err = arrayOPpredict(CLU_1, CLU_25, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        off.num = T_1_1.num;
        }
        }

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

  LINE(286);
            {
            switch (each_bkpt.cell->tag) {
            case 3: 
                 {CLUREF T_2_1;
                T_2_1.num = each_bkpt.cell->value;
                s.num = T_2_1.num;

  LINE(288);
                    {
                    found.tf = false;
                    }

  LINE(289);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                        T_3_2.num = off.array->ext_high; 
                        T_3_3 = off;
                        for (T_3_1.num = off.array->ext_low; T_3_1.num <= T_3_2.num; T_3_1.num++) {
                            if (T_3_1.num > T_3_3.array->ext_high || T_3_1.num < T_3_3.array->ext_low) {
                                err = ERR_failure;
                                elist[0].str = array_bounds_exception_STRING;
                                goto ex_0;}
                            n.num = T_3_3.array->store->data[T_3_1.num - T_3_3.array->ext_low + T_3_3.array->int_low];

  LINE(290);
                            {
                            CLUREF T_4_1;
                            CLUREF T_4_2;
                            T_4_1.num = s.vec->data[0];
                            T_4_2.num = ((n.str->size != T_4_1.str->size)? false :
                                !(bcmp(n.str->data, T_4_1.str->data, n.str->size)));
                            if (T_4_2.num == true) {
                                {
                                found.tf = true;
                                }
                                goto end_inline_for_2;
                                }
                                }/* end if */
                        }
                    }
                    end_inline_for_2:;

  LINE(292);
                    {
                    CLUREF T_3_1;
                    T_3_1.num = found.num ^ 1;
                    if (T_3_1.num == true) {
                        {
                        CLUREF T_4_1;
                        T_4_1.num = s.vec->data[0];
                        {
                        if ((off.array->int_low + off.array->ext_size + 1) < off.array->int_size) {
                            off.array->store->data[off.array->int_low + off.array->ext_size] = T_4_1.num;
                            off.array->ext_size++; off.array->ext_high++;}
                        else {
                            err = arrayOPaddh(off, T_4_1);
                            if (err != ERR_ok) goto ex_0;}
                        }
                        }
                        }
                        }/* end if */
                    break;
                    }
            case 2: 
                 {CLUREF T_2_2;
                T_2_2.num = each_bkpt.cell->value;
                l.num = T_2_2.num;

  LINE(294);
                    {
                    found.tf = false;
                    }

  LINE(295);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                        T_3_2.num = off.array->ext_high; 
                        T_3_3 = off;
                        for (T_3_1.num = off.array->ext_low; T_3_1.num <= T_3_2.num; T_3_1.num++) {
                            if (T_3_1.num > T_3_3.array->ext_high || T_3_1.num < T_3_3.array->ext_low) {
                                err = ERR_failure;
                                elist[0].str = array_bounds_exception_STRING;
                                goto ex_0;}
                            n.num = T_3_3.array->store->data[T_3_1.num - T_3_3.array->ext_low + T_3_3.array->int_low];

  LINE(296);
                            {
                            CLUREF T_4_1;
                            CLUREF T_4_2;
                            T_4_1.num = l.vec->data[1];
                            T_4_2.num = ((n.str->size != T_4_1.str->size)? false :
                                !(bcmp(n.str->data, T_4_1.str->data, n.str->size)));
                            if (T_4_2.num == true) {
                                {
                                found.tf = true;
                                }
                                goto end_inline_for_3;
                                }
                                }/* end if */
                        }
                    }
                    end_inline_for_3:;

  LINE(298);
                    {
                    CLUREF T_3_1;
                    T_3_1.num = found.num ^ 1;
                    if (T_3_1.num == true) {
                        {
                        CLUREF T_4_1;
                        T_4_1.num = l.vec->data[1];
                        {
                        if ((off.array->int_low + off.array->ext_size + 1) < off.array->int_size) {
                            off.array->store->data[off.array->int_low + off.array->ext_size] = T_4_1.num;
                            off.array->ext_size++; off.array->ext_high++;}
                        else {
                            err = arrayOPaddh(off, T_4_1);
                            if (err != ERR_ok) goto ex_0;}
                        }
                        }
                        }
                        }/* end if */
                    break;
                    }
            case 4: 
                 {CLUREF T_2_3;
                T_2_3.num = each_bkpt.cell->value;
                t.num = T_2_3.num;

  LINE(300);
                    {
                    found.tf = false;
                    }

  LINE(301);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                        T_3_2.num = off.array->ext_high; 
                        T_3_3 = off;
                        for (T_3_1.num = off.array->ext_low; T_3_1.num <= T_3_2.num; T_3_1.num++) {
                            if (T_3_1.num > T_3_3.array->ext_high || T_3_1.num < T_3_3.array->ext_low) {
                                err = ERR_failure;
                                elist[0].str = array_bounds_exception_STRING;
                                goto ex_0;}
                            n.num = T_3_3.array->store->data[T_3_1.num - T_3_3.array->ext_low + T_3_3.array->int_low];

  LINE(302);
                            {
                            CLUREF T_4_1;
                            CLUREF T_4_2;
                            T_4_1.num = t.vec->data[0];
                            T_4_2.num = ((n.str->size != T_4_1.str->size)? false :
                                !(bcmp(n.str->data, T_4_1.str->data, n.str->size)));
                            if (T_4_2.num == true) {
                                {
                                found.tf = true;
                                }
                                goto end_inline_for_4;
                                }
                                }/* end if */
                        }
                    }
                    end_inline_for_4:;

  LINE(304);
                    {
                    CLUREF T_3_1;
                    T_3_1.num = found.num ^ 1;
                    if (T_3_1.num == true) {
                        {
                        CLUREF T_4_1;
                        T_4_1.num = t.vec->data[0];
                        {
                        if ((off.array->int_low + off.array->ext_size + 1) < off.array->int_size) {
                            off.array->store->data[off.array->int_low + off.array->ext_size] = T_4_1.num;
                            off.array->ext_size++; off.array->ext_high++;}
                        else {
                            err = arrayOPaddh(off, T_4_1);
                            if (err != ERR_ok) goto ex_0;}
                        }
                        }
                        }
                        }/* end if */
                    break;
                    }
            case 1: 
                 {CLUREF T_2_4;
                T_2_4.num = each_bkpt.cell->value;
                f.num = T_2_4.num;
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_1:;

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

  LINE(309);
            {
            err = ctl_ptsOPline_tracing_off(n);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_5:;

  LINE(311);
    {
    CLUREF T_1_1;
    err = arrayOPpredict(CLU_1, CLU_25, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    ctl_ptsOPcurrent_bkpts.num = T_1_1.num;
    }

  LINE(312);
    {
    ctl_ptsOPall.tf = false;
    }

  LINE(313);
    {
    CLUREF T_1_1;
    err = arrayOPfill(CLU_1, CLU_1, STR_failure, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    ctl_ptsOPtrpts.num = T_1_1.num;
    }

  LINE(314);
    {
    err = dbg_envOPdump();
    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 clear ****/

static int ctl_ptsOPbp_add_own_init = 0;

/**** BEGIN PROCEDURE bp_add ****/

errcode ctl_ptsOPbp_add(mod, kind, line)
CLUREF mod;
CLUREF kind;
CLUREF line;
    {
    errcode err;
    errcode ecode2;
        if (ctl_ptsOPbp_add_own_init == 0) {
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        ctl_ptsOPbp_add_own_init = 1;
    }
    enter_proc(317);

  LINE(318);
    {
    CLUREF T_1_1;
    err = internalize(mod, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    mod.num = T_1_1.num;
    }

  LINE(319);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    T_1_2.num = ((kind.str->size != STR_s.str->size)? false :
        !(bcmp(kind.str->data, STR_s.str->data, kind.str->size)));
    T_1_1.num = T_1_2.num;
    if (T_1_2.num) {
        err = ctl_ptsOPbp_exists(mod, kind, line, &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(320);
        {
        err = ctl_ptsOPline_tracing_on(mod);
        if (err != ERR_ok) goto ex_1;
        }
        goto end_1;
        ex_1:
            if (err == ERR_not_found) {signal(ERR_not_found);}
            else {
                goto ex_0;}
        end_1:;

  LINE(322);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        RecordAlloc(1, T_2_1);
        T_2_1.vec->data[0]  = mod.num;
        CellAlloc(3, T_2_1.num, T_2_2);
        {
        if ((ctl_ptsOPcurrent_bkpts.array->int_low + ctl_ptsOPcurrent_bkpts.array->ext_size + 1) < ctl_ptsOPcurrent_bkpts.array->int_size) {
            ctl_ptsOPcurrent_bkpts.array->store->data[ctl_ptsOPcurrent_bkpts.array->int_low + ctl_ptsOPcurrent_bkpts.array->ext_size] = T_2_2.num;
            ctl_ptsOPcurrent_bkpts.array->ext_size++; ctl_ptsOPcurrent_bkpts.array->ext_high++;}
        else {
            err = arrayOPaddh(ctl_ptsOPcurrent_bkpts, T_2_2);
            if (err != ERR_ok) goto ex_0;}
        }
        }
        }
    else {
    CLUREF T_1_5;
    CLUREF T_1_6;
    CLUREF T_1_7;
    CLUREF T_1_8;
    T_1_6.num = ((kind.str->size != STR_t.str->size)? false :
        !(bcmp(kind.str->data, STR_t.str->data, kind.str->size)));
    T_1_5.num = T_1_6.num;
    if (T_1_6.num) {
        err = ctl_ptsOPbp_exists(mod, kind, line, &T_1_7);
        if (err != ERR_ok) goto ex_0;
        T_1_8.num = T_1_7.num ^ 1;
        T_1_5.num = T_1_8.num;
    }
    if (T_1_5.num == true) {

  LINE(325);
        {
        err = ctl_ptsOPline_tracing_on(mod);
        if (err != ERR_ok) goto ex_2;
        }
        goto end_2;
        ex_2:
            if (err == ERR_not_found) {signal(ERR_not_found);}
            else {
                goto ex_0;}
        end_2:;

  LINE(327);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        RecordAlloc(1, T_2_1);
        T_2_1.vec->data[0]  = mod.num;
        CellAlloc(4, T_2_1.num, T_2_2);
        {
        if ((ctl_ptsOPcurrent_bkpts.array->int_low + ctl_ptsOPcurrent_bkpts.array->ext_size + 1) < ctl_ptsOPcurrent_bkpts.array->int_size) {
            ctl_ptsOPcurrent_bkpts.array->store->data[ctl_ptsOPcurrent_bkpts.array->int_low + ctl_ptsOPcurrent_bkpts.array->ext_size] = T_2_2.num;
            ctl_ptsOPcurrent_bkpts.array->ext_size++; ctl_ptsOPcurrent_bkpts.array->ext_high++;}
        else {
            err = arrayOPaddh(ctl_ptsOPcurrent_bkpts, T_2_2);
            if (err != ERR_ok) goto ex_0;}
        }
        }
        }
    else {
    CLUREF T_1_9;
    CLUREF T_1_10;
    CLUREF T_1_11;
    CLUREF T_1_12;
    T_1_10.num = ((kind.str->size != STR_f.str->size)? false :
        !(bcmp(kind.str->data, STR_f.str->data, kind.str->size)));
    T_1_9.num = T_1_10.num;
    if (T_1_10.num) {
        err = ctl_ptsOPbp_exists(mod, kind, line, &T_1_11);
        if (err != ERR_ok) goto ex_0;
        T_1_12.num = T_1_11.num ^ 1;
        T_1_9.num = T_1_12.num;
    }
    if (T_1_9.num == true) {

  LINE(330);
        {
        CLUREF T_2_1;
        err = ctl_ptsOPfunc_exists(mod, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        if (T_2_1.num == true) {

  LINE(332);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            RecordAlloc(1, T_3_1);
            T_3_1.vec->data[0]  = mod.num;
            CellAlloc(1, T_3_1.num, T_3_2);
            {
            if ((ctl_ptsOPcurrent_bkpts.array->int_low + ctl_ptsOPcurrent_bkpts.array->ext_size + 1) < ctl_ptsOPcurrent_bkpts.array->int_size) {
                ctl_ptsOPcurrent_bkpts.array->store->data[ctl_ptsOPcurrent_bkpts.array->int_low + ctl_ptsOPcurrent_bkpts.array->ext_size] = T_3_2.num;
                ctl_ptsOPcurrent_bkpts.array->ext_size++; ctl_ptsOPcurrent_bkpts.array->ext_high++;}
            else {
                err = arrayOPaddh(ctl_ptsOPcurrent_bkpts, T_3_2);
                if (err != ERR_ok) goto ex_0;}
            }
            }
            }
        else {

  LINE(334);
            {
            {signal (ERR_not_found);}}
            }}/* end if */
        }
    else {
    CLUREF T_1_13;
    CLUREF T_1_14;
    CLUREF T_1_15;
    CLUREF T_1_16;
    T_1_14.num = ((kind.str->size != STR_l.str->size)? false :
        !(bcmp(kind.str->data, STR_l.str->data, kind.str->size)));
    T_1_13.num = T_1_14.num;
    if (T_1_14.num) {
        err = ctl_ptsOPbp_exists(mod, kind, line, &T_1_15);
        if (err != ERR_ok) goto ex_0;
        T_1_16.num = T_1_15.num ^ 1;
        T_1_13.num = T_1_16.num;
    }
    if (T_1_13.num == true) {

  LINE(336);
        {
        err = ctl_ptsOPline_tracing_on(mod);
        if (err != ERR_ok) goto ex_3;
        }
        goto end_3;
        ex_3:
            if (err == ERR_not_found) {signal(ERR_not_found);}
            else {
                goto ex_0;}
        end_3:;

  LINE(338);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        RecordAlloc(2, T_2_1);
        T_2_1.vec->data[1]  = mod.num;
        T_2_1.vec->data[0]  = line.num;
        CellAlloc(2, T_2_1.num, T_2_2);
        {
        if ((ctl_ptsOPcurrent_bkpts.array->int_low + ctl_ptsOPcurrent_bkpts.array->ext_size + 1) < ctl_ptsOPcurrent_bkpts.array->int_size) {
            ctl_ptsOPcurrent_bkpts.array->store->data[ctl_ptsOPcurrent_bkpts.array->int_low + ctl_ptsOPcurrent_bkpts.array->ext_size] = T_2_2.num;
            ctl_ptsOPcurrent_bkpts.array->ext_size++; ctl_ptsOPcurrent_bkpts.array->ext_high++;}
        else {
            err = arrayOPaddh(ctl_ptsOPcurrent_bkpts, T_2_2);
            if (err != ERR_ok) goto ex_0;}
        }
        }
        }
        }}}}/* end if */

  LINE(341);
    {
    err = dbg_envOPdump();
    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 bp_add ****/

static int ctl_ptsOPbp_remove_own_init = 0;

/**** BEGIN PROCEDURE bp_remove ****/

errcode ctl_ptsOPbp_remove(mod, kind, line)
CLUREF mod;
CLUREF kind;
CLUREF line;
    {
    errcode err;
    errcode ecode2;
    CLUREF found;
    CLUREF i;
    CLUREF each_bkpt;
    CLUREF s;
    CLUREF asize;
    CLUREF l;
    CLUREF f;
    CLUREF t;
        if (ctl_ptsOPbp_remove_own_init == 0) {
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        ctl_ptsOPbp_remove_own_init = 1;
    }
    enter_proc(344);

  LINE(348);
    {
    CLUREF T_1_1;
    err = internalize(mod, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    mod.num = T_1_1.num;
    }

  LINE(349);
    {
        {found.tf = false;
        }
        }

  LINE(350);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
        T_1_2.num = ctl_ptsOPcurrent_bkpts.array->ext_high; 
        for (T_1_1.num = ctl_ptsOPcurrent_bkpts.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            i.num = T_1_1.num;

  LINE(351);
            {
                {CLUREF T_2_1;
                if (i.num < ctl_ptsOPcurrent_bkpts.array->ext_low || i.num > ctl_ptsOPcurrent_bkpts.array->ext_high ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_2_1.num = ctl_ptsOPcurrent_bkpts.array->store->data[i.num - ctl_ptsOPcurrent_bkpts.array->ext_low + ctl_ptsOPcurrent_bkpts.array->int_low];
                each_bkpt.num = T_2_1.num;
                }
                }

  LINE(352);
            {
            switch (each_bkpt.cell->tag) {
            case 3: 
                 {CLUREF T_2_1;
                T_2_1.num = each_bkpt.cell->value;
                s.num = T_2_1.num;

  LINE(354);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    T_3_2.num = ((kind.str->size != STR_s.str->size)? false :
                        !(bcmp(kind.str->data, STR_s.str->data, kind.str->size)));
                    T_3_1.num = T_3_2.num;
                    if (T_3_2.num) {
                        T_3_3.num = s.vec->data[0];
                        T_3_4.num = ((T_3_3.str->size != mod.str->size)? false :
                            !(bcmp(T_3_3.str->data, mod.str->data, T_3_3.str->size)));
                        T_3_1.num = T_3_4.num;
                    }
                    if (T_3_1.num == true) {

  LINE(355);
                        {
                            {CLUREF T_4_1;
                            T_4_1.num = ctl_ptsOPcurrent_bkpts.array->ext_size;
                            asize.num = T_4_1.num;
                            }
                            }

  LINE(356);
                        {
                        CLUREF T_4_1;
                        if (asize.num < ctl_ptsOPcurrent_bkpts.array->ext_low || asize.num > ctl_ptsOPcurrent_bkpts.array->ext_high ) {
                            err = ERR_bounds;
                            goto ex_0;}
                        T_4_1.num = ctl_ptsOPcurrent_bkpts.array->store->data[asize.num - ctl_ptsOPcurrent_bkpts.array->ext_low + ctl_ptsOPcurrent_bkpts.array->int_low];
                        {
                        if (i.num < ctl_ptsOPcurrent_bkpts.array->ext_low || i.num > ctl_ptsOPcurrent_bkpts.array->ext_high) {
                            err = ERR_bounds;
                            goto ex_0;}
                        ctl_ptsOPcurrent_bkpts.array->store->data[i.num + ctl_ptsOPcurrent_bkpts.array->int_low - ctl_ptsOPcurrent_bkpts.array->ext_low] = T_4_1.num;
                        }
                        }

  LINE(357);
                        {
                        CLUREF T_4_1;
                        T_4_1.num = asize.num - 1;
                         if ((T_4_1.num >= 0 && asize.num < 0 && (-1) < 0) || 
                             (T_4_1.num <= 0 && asize.num > 0 && (-1) > 0)) {
                            err = ERR_overflow;
                            goto ex_0;}
                        err = arrayOPtrim(ctl_ptsOPcurrent_bkpts, CLU_1, T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        }

  LINE(358);
                        {
                        found.tf = true;
                        }

  LINE(359);
                        goto end_inline_for_1;
                        }
                        }/* end if */
                    break;
                    }
            case 2: 
                 {CLUREF T_2_2;
                T_2_2.num = each_bkpt.cell->value;
                l.num = T_2_2.num;

  LINE(362);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    CLUREF T_3_5;
                    CLUREF T_3_6;
                    CLUREF T_3_7;
                    T_3_3.num = ((kind.str->size != STR_l.str->size)? false :
                        !(bcmp(kind.str->data, STR_l.str->data, kind.str->size)));
                    T_3_2.num = T_3_3.num;
                    if (T_3_3.num) {
                        T_3_4.num = l.vec->data[1];
                        T_3_5.num = ((T_3_4.str->size != mod.str->size)? false :
                            !(bcmp(T_3_4.str->data, mod.str->data, T_3_4.str->size)));
                        T_3_2.num = T_3_5.num;
                    }
                    T_3_1.num = T_3_2.num;
                    if (T_3_2.num) {
                        T_3_6.num = l.vec->data[0];
                        T_3_7.num = (line.num == T_3_6.num)? true : false;
                        T_3_1.num = T_3_7.num;
                    }
                    if (T_3_1.num == true) {

  LINE(365);
                        {
                            {CLUREF T_4_1;
                            T_4_1.num = ctl_ptsOPcurrent_bkpts.array->ext_size;
                            asize.num = T_4_1.num;
                            }
                            }

  LINE(366);
                        {
                        CLUREF T_4_1;
                        if (asize.num < ctl_ptsOPcurrent_bkpts.array->ext_low || asize.num > ctl_ptsOPcurrent_bkpts.array->ext_high ) {
                            err = ERR_bounds;
                            goto ex_0;}
                        T_4_1.num = ctl_ptsOPcurrent_bkpts.array->store->data[asize.num - ctl_ptsOPcurrent_bkpts.array->ext_low + ctl_ptsOPcurrent_bkpts.array->int_low];
                        {
                        if (i.num < ctl_ptsOPcurrent_bkpts.array->ext_low || i.num > ctl_ptsOPcurrent_bkpts.array->ext_high) {
                            err = ERR_bounds;
                            goto ex_0;}
                        ctl_ptsOPcurrent_bkpts.array->store->data[i.num + ctl_ptsOPcurrent_bkpts.array->int_low - ctl_ptsOPcurrent_bkpts.array->ext_low] = T_4_1.num;
                        }
                        }

  LINE(367);
                        {
                        CLUREF T_4_1;
                        T_4_1.num = asize.num - 1;
                         if ((T_4_1.num >= 0 && asize.num < 0 && (-1) < 0) || 
                             (T_4_1.num <= 0 && asize.num > 0 && (-1) > 0)) {
                            err = ERR_overflow;
                            goto ex_0;}
                        err = arrayOPtrim(ctl_ptsOPcurrent_bkpts, CLU_1, T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        }

  LINE(368);
                        {
                        found.tf = true;
                        }

  LINE(369);
                        goto end_inline_for_1;
                        }
                        }/* end if */
                    break;
                    }
            case 1: 
                 {CLUREF T_2_3;
                T_2_3.num = each_bkpt.cell->value;
                f.num = T_2_3.num;

  LINE(372);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    T_3_2.num = ((kind.str->size != STR_f.str->size)? false :
                        !(bcmp(kind.str->data, STR_f.str->data, kind.str->size)));
                    T_3_1.num = T_3_2.num;
                    if (T_3_2.num) {
                        T_3_3.num = f.vec->data[0];
                        T_3_4.num = ((T_3_3.str->size != mod.str->size)? false :
                            !(bcmp(T_3_3.str->data, mod.str->data, T_3_3.str->size)));
                        T_3_1.num = T_3_4.num;
                    }
                    if (T_3_1.num == true) {

  LINE(373);
                        {
                            {CLUREF T_4_1;
                            T_4_1.num = ctl_ptsOPcurrent_bkpts.array->ext_size;
                            asize.num = T_4_1.num;
                            }
                            }

  LINE(374);
                        {
                        CLUREF T_4_1;
                        if (asize.num < ctl_ptsOPcurrent_bkpts.array->ext_low || asize.num > ctl_ptsOPcurrent_bkpts.array->ext_high ) {
                            err = ERR_bounds;
                            goto ex_0;}
                        T_4_1.num = ctl_ptsOPcurrent_bkpts.array->store->data[asize.num - ctl_ptsOPcurrent_bkpts.array->ext_low + ctl_ptsOPcurrent_bkpts.array->int_low];
                        {
                        if (i.num < ctl_ptsOPcurrent_bkpts.array->ext_low || i.num > ctl_ptsOPcurrent_bkpts.array->ext_high) {
                            err = ERR_bounds;
                            goto ex_0;}
                        ctl_ptsOPcurrent_bkpts.array->store->data[i.num + ctl_ptsOPcurrent_bkpts.array->int_low - ctl_ptsOPcurrent_bkpts.array->ext_low] = T_4_1.num;
                        }
                        }

  LINE(375);
                        {
                        CLUREF T_4_1;
                        T_4_1.num = asize.num - 1;
                         if ((T_4_1.num >= 0 && asize.num < 0 && (-1) < 0) || 
                             (T_4_1.num <= 0 && asize.num > 0 && (-1) > 0)) {
                            err = ERR_overflow;
                            goto ex_0;}
                        err = arrayOPtrim(ctl_ptsOPcurrent_bkpts, CLU_1, T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        }

  LINE(376);
                        {
                        found.tf = true;
                        }

  LINE(377);
                        goto end_inline_for_1;
                        }
                        }/* end if */
                    break;
                    }
            case 4: 
                 {CLUREF T_2_4;
                T_2_4.num = each_bkpt.cell->value;
                t.num = T_2_4.num;

  LINE(380);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    T_3_2.num = ((kind.str->size != STR_t.str->size)? false :
                        !(bcmp(kind.str->data, STR_t.str->data, kind.str->size)));
                    T_3_1.num = T_3_2.num;
                    if (T_3_2.num) {
                        T_3_3.num = t.vec->data[0];
                        T_3_4.num = ((T_3_3.str->size != mod.str->size)? false :
                            !(bcmp(T_3_3.str->data, mod.str->data, T_3_3.str->size)));
                        T_3_1.num = T_3_4.num;
                    }
                    if (T_3_1.num == true) {

  LINE(381);
                        {
                            {CLUREF T_4_1;
                            T_4_1.num = ctl_ptsOPcurrent_bkpts.array->ext_size;
                            asize.num = T_4_1.num;
                            }
                            }

  LINE(382);
                        {
                        CLUREF T_4_1;
                        if (asize.num < ctl_ptsOPcurrent_bkpts.array->ext_low || asize.num > ctl_ptsOPcurrent_bkpts.array->ext_high ) {
                            err = ERR_bounds;
                            goto ex_0;}
                        T_4_1.num = ctl_ptsOPcurrent_bkpts.array->store->data[asize.num - ctl_ptsOPcurrent_bkpts.array->ext_low + ctl_ptsOPcurrent_bkpts.array->int_low];
                        {
                        if (i.num < ctl_ptsOPcurrent_bkpts.array->ext_low || i.num > ctl_ptsOPcurrent_bkpts.array->ext_high) {
                            err = ERR_bounds;
                            goto ex_0;}
                        ctl_ptsOPcurrent_bkpts.array->store->data[i.num + ctl_ptsOPcurrent_bkpts.array->int_low - ctl_ptsOPcurrent_bkpts.array->ext_low] = T_4_1.num;
                        }
                        }

  LINE(383);
                        {
                        CLUREF T_4_1;
                        T_4_1.num = asize.num - 1;
                         if ((T_4_1.num >= 0 && asize.num < 0 && (-1) < 0) || 
                             (T_4_1.num <= 0 && asize.num > 0 && (-1) > 0)) {
                            err = ERR_overflow;
                            goto ex_0;}
                        err = arrayOPtrim(ctl_ptsOPcurrent_bkpts, CLU_1, T_4_1);
                        if (err != ERR_ok) goto ex_0;
                        }

  LINE(384);
                        {
                        found.tf = true;
                        }

  LINE(385);
                        goto end_inline_for_1;
                        }
                        }/* end if */
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_1:;

  LINE(390);
    {
    CLUREF T_1_1;
    T_1_1.num = found.num ^ 1;
    if (T_1_1.num == true) {
        {
        {signal (ERR_not_found);}}
        }
        }/* end if */

  LINE(391);
    {
    err = dbg_envOPdump();
    if (err != ERR_ok) goto ex_0;
    }

  LINE(395);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
        T_1_2.num = ctl_ptsOPcurrent_bkpts.array->ext_high; 
        for (T_1_1.num = ctl_ptsOPcurrent_bkpts.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            i.num = T_1_1.num;

  LINE(396);
            {
                {CLUREF T_2_1;
                if (i.num < ctl_ptsOPcurrent_bkpts.array->ext_low || i.num > ctl_ptsOPcurrent_bkpts.array->ext_high ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_2_1.num = ctl_ptsOPcurrent_bkpts.array->store->data[i.num - ctl_ptsOPcurrent_bkpts.array->ext_low + ctl_ptsOPcurrent_bkpts.array->int_low];
                each_bkpt.num = T_2_1.num;
                }
                }

  LINE(397);
            {
            switch (each_bkpt.cell->tag) {
            case 3: 
                 {CLUREF T_2_1;
                T_2_1.num = each_bkpt.cell->value;
                s.num = T_2_1.num;

  LINE(399);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    T_3_1.num = s.vec->data[0];
                    T_3_2.num = ((T_3_1.str->size != mod.str->size)? false :
                        !(bcmp(T_3_1.str->data, mod.str->data, T_3_1.str->size)));
                    if (T_3_2.num == true) {
                        {
                        {signal (ERR_ok);}}
                        }
                        }/* end if */
                    break;
                    }
            case 2: 
                 {CLUREF T_2_2;
                T_2_2.num = each_bkpt.cell->value;
                l.num = T_2_2.num;

  LINE(401);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    T_3_1.num = l.vec->data[1];
                    T_3_2.num = ((mod.str->size != T_3_1.str->size)? false :
                        !(bcmp(mod.str->data, T_3_1.str->data, mod.str->size)));
                    if (T_3_2.num == true) {
                        {
                        {signal (ERR_ok);}}
                        }
                        }/* end if */
                    break;
                    }
            default: {
            }
            }
            }
        }
    }
    end_inline_for_2:;

  LINE(405);
    {
    err = ctl_ptsOPline_tracing_off(mod);
    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 bp_remove ****/

static int ctl_ptsOPbp_exists_own_init = 0;

/**** BEGIN PROCEDURE bp_exists ****/

errcode ctl_ptsOPbp_exists(mod, kind, line, ret_1)
CLUREF mod;
CLUREF kind;
CLUREF line;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_b;
    CLUREF l;
    CLUREF f;
    CLUREF s;
    CLUREF t;
        if (ctl_ptsOPbp_exists_own_init == 0) {
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        ctl_ptsOPbp_exists_own_init = 1;
    }
    enter_proc(408);

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

  LINE(410);
            {
            switch (each_b.cell->tag) {
            case 2: 
                 {CLUREF T_2_1;
                T_2_1.num = each_b.cell->value;
                l.num = T_2_1.num;

  LINE(412);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    CLUREF T_3_5;
                    CLUREF T_3_6;
                    CLUREF T_3_7;
                    T_3_3.num = l.vec->data[1];
                    T_3_4.num = ((T_3_3.str->size != mod.str->size)? false :
                        !(bcmp(T_3_3.str->data, mod.str->data, T_3_3.str->size)));
                    T_3_2.num = T_3_4.num;
                    if (T_3_4.num) {
                        T_3_5.num = ((kind.str->size != STR_l.str->size)? false :
                            !(bcmp(kind.str->data, STR_l.str->data, kind.str->size)));
                        T_3_2.num = T_3_5.num;
                    }
                    T_3_1.num = T_3_2.num;
                    if (T_3_2.num) {
                        T_3_6.num = l.vec->data[0];
                        T_3_7.num = (line.num == T_3_6.num)? true : false;
                        T_3_1.num = T_3_7.num;
                    }
                    if (T_3_1.num == true) {

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

  LINE(414);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    CLUREF T_3_5;
                    CLUREF T_3_6;
                    CLUREF T_3_7;
                    T_3_3.num = l.vec->data[1];
                    T_3_4.num = ((T_3_3.str->size != mod.str->size)? false :
                        !(bcmp(T_3_3.str->data, mod.str->data, T_3_3.str->size)));
                    T_3_2.num = T_3_4.num;
                    if (T_3_4.num) {
                        T_3_5.num = ((kind.str->size != STR_sl.str->size)? false :
                            !(bcmp(kind.str->data, STR_sl.str->data, kind.str->size)));
                        T_3_2.num = T_3_5.num;
                    }
                    T_3_1.num = T_3_2.num;
                    if (T_3_2.num) {
                        T_3_6.num = l.vec->data[0];
                        T_3_7.num = (line.num == T_3_6.num)? true : false;
                        T_3_1.num = T_3_7.num;
                    }
                    if (T_3_1.num == true) {

  LINE(415);
                        {
                        {
                        ret_1->tf = true;
                        }
                        {signal (ERR_ok);}}
                        }
                        }/* end if */
                    break;
                    }
            case 1: 
                 {CLUREF T_2_2;
                T_2_2.num = each_b.cell->value;
                f.num = T_2_2.num;

  LINE(417);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    T_3_2.num = f.vec->data[0];
                    T_3_3.num = ((T_3_2.str->size != mod.str->size)? false :
                        !(bcmp(T_3_2.str->data, mod.str->data, T_3_2.str->size)));
                    T_3_1.num = T_3_3.num;
                    if (T_3_3.num) {
                        T_3_4.num = ((kind.str->size != STR_f.str->size)? false :
                            !(bcmp(kind.str->data, STR_f.str->data, kind.str->size)));
                        T_3_1.num = T_3_4.num;
                    }
                    if (T_3_1.num == true) {
                        {
                        {
                        ret_1->tf = true;
                        }
                        {signal (ERR_ok);}}
                        }
                        }/* end if */

  LINE(418);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    T_3_2.num = f.vec->data[0];
                    T_3_3.num = ((T_3_2.str->size != mod.str->size)? false :
                        !(bcmp(T_3_2.str->data, mod.str->data, T_3_2.str->size)));
                    T_3_1.num = T_3_3.num;
                    if (T_3_3.num) {
                        T_3_4.num = ((kind.str->size != STR_a.str->size)? false :
                            !(bcmp(kind.str->data, STR_a.str->data, kind.str->size)));
                        T_3_1.num = T_3_4.num;
                    }
                    if (T_3_1.num == true) {
                        {
                        {
                        ret_1->tf = true;
                        }
                        {signal (ERR_ok);}}
                        }
                        }/* end if */
                    break;
                    }
            case 3: 
                 {CLUREF T_2_3;
                T_2_3.num = each_b.cell->value;
                s.num = T_2_3.num;

  LINE(420);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    T_3_2.num = s.vec->data[0];
                    T_3_3.num = ((T_3_2.str->size != mod.str->size)? false :
                        !(bcmp(T_3_2.str->data, mod.str->data, T_3_2.str->size)));
                    T_3_1.num = T_3_3.num;
                    if (T_3_3.num) {
                        T_3_4.num = ((kind.str->size != STR_s.str->size)? false :
                            !(bcmp(kind.str->data, STR_s.str->data, kind.str->size)));
                        T_3_1.num = T_3_4.num;
                    }
                    if (T_3_1.num == true) {
                        {
                        {
                        ret_1->tf = true;
                        }
                        {signal (ERR_ok);}}
                        }
                        }/* end if */

  LINE(421);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    T_3_2.num = s.vec->data[0];
                    T_3_3.num = ((T_3_2.str->size != mod.str->size)? false :
                        !(bcmp(T_3_2.str->data, mod.str->data, T_3_2.str->size)));
                    T_3_1.num = T_3_3.num;
                    if (T_3_3.num) {
                        T_3_4.num = ((kind.str->size != STR_sl.str->size)? false :
                            !(bcmp(kind.str->data, STR_sl.str->data, kind.str->size)));
                        T_3_1.num = T_3_4.num;
                    }
                    if (T_3_1.num == true) {
                        {
                        {
                        ret_1->tf = true;
                        }
                        {signal (ERR_ok);}}
                        }
                        }/* end if */

  LINE(422);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    T_3_2.num = s.vec->data[0];
                    T_3_3.num = ((T_3_2.str->size != mod.str->size)? false :
                        !(bcmp(T_3_2.str->data, mod.str->data, T_3_2.str->size)));
                    T_3_1.num = T_3_3.num;
                    if (T_3_3.num) {
                        T_3_4.num = ((kind.str->size != STR_a.str->size)? false :
                            !(bcmp(kind.str->data, STR_a.str->data, kind.str->size)));
                        T_3_1.num = T_3_4.num;
                    }
                    if (T_3_1.num == true) {
                        {
                        {
                        ret_1->tf = true;
                        }
                        {signal (ERR_ok);}}
                        }
                        }/* end if */
                    break;
                    }
            case 4: 
                 {CLUREF T_2_4;
                T_2_4.num = each_b.cell->value;
                t.num = T_2_4.num;

  LINE(424);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    T_3_2.num = t.vec->data[0];
                    T_3_3.num = ((T_3_2.str->size != mod.str->size)? false :
                        !(bcmp(T_3_2.str->data, mod.str->data, T_3_2.str->size)));
                    T_3_1.num = T_3_3.num;
                    if (T_3_3.num) {
                        T_3_4.num = ((kind.str->size != STR_sl.str->size)? false :
                            !(bcmp(kind.str->data, STR_sl.str->data, kind.str->size)));
                        T_3_1.num = T_3_4.num;
                    }
                    if (T_3_1.num == true) {
                        {
                        {
                        ret_1->tf = true;
                        }
                        {signal (ERR_ok);}}
                        }
                        }/* end if */

  LINE(425);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    T_3_2.num = t.vec->data[0];
                    T_3_3.num = ((T_3_2.str->size != mod.str->size)? false :
                        !(bcmp(T_3_2.str->data, mod.str->data, T_3_2.str->size)));
                    T_3_1.num = T_3_3.num;
                    if (T_3_3.num) {
                        T_3_4.num = ((kind.str->size != STR_a.str->size)? false :
                            !(bcmp(kind.str->data, STR_a.str->data, kind.str->size)));
                        T_3_1.num = T_3_4.num;
                    }
                    if (T_3_1.num == true) {
                        {
                        {
                        ret_1->tf = true;
                        }
                        {signal (ERR_ok);}}
                        }
                        }/* end if */

  LINE(426);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    T_3_2.num = t.vec->data[0];
                    T_3_3.num = ((T_3_2.str->size != mod.str->size)? false :
                        !(bcmp(T_3_2.str->data, mod.str->data, T_3_2.str->size)));
                    T_3_1.num = T_3_3.num;
                    if (T_3_3.num) {
                        T_3_4.num = ((kind.str->size != STR_t.str->size)? false :
                            !(bcmp(kind.str->data, STR_t.str->data, kind.str->size)));
                        T_3_1.num = T_3_4.num;
                    }
                    if (T_3_1.num == true) {
                        {
                        {
                        ret_1->tf = true;
                        }
                        {signal (ERR_ok);}}
                        }
                        }/* end if */
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_1:;

  LINE(429);
    {
    {
    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 bp_exists ****/

static int ctl_ptsOPsig_add_own_init = 0;

/**** BEGIN PROCEDURE sig_add ****/

errcode ctl_ptsOPsig_add(sig)
CLUREF sig;
    {
    errcode err;
    errcode ecode2;
    CLUREF each;
        if (ctl_ptsOPsig_add_own_init == 0) {
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        ctl_ptsOPsig_add_own_init = 1;
    }
    enter_proc(432);

  LINE(433);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_2.num = ((sig.str->size != STR_all.str->size)? false :
        !(bcmp(sig.str->data, STR_all.str->data, sig.str->size)));
    T_1_1.num = T_1_2.num;
    if (T_1_2.num) {
        T_1_3.num = (ctl_ptsOPall.tf == false)? true : false;
        T_1_1.num = T_1_3.num;
    }
    if (T_1_1.num == true) {
        {
        ctl_ptsOPall.tf = true;
        }
        {
        err = dbg_envOPdump();
        if (err != ERR_ok) goto ex_0;
        }
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

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

  LINE(435);
            {
            CLUREF T_2_1;
            T_2_1.num = ((each.str->size != sig.str->size)? false :
                !(bcmp(each.str->data, sig.str->data, each.str->size)));
            if (T_2_1.num == true) {
                {
                {signal (ERR_ok);}}
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

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

  LINE(438);
    {
    err = dbg_envOPdump();
    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 sig_add ****/


/**** BEGIN PROCEDURE sig_exists ****/

errcode ctl_ptsOPsig_exists(sig, ret_1)
CLUREF sig;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF each;
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(441);

  LINE(442);
    {
    CLUREF T_1_1;
    T_1_1.num = (ctl_ptsOPall.tf == true)? true : false;
    if (T_1_1.num == true) {
        {
        {
        ret_1->tf = true;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

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

  LINE(444);
            {
            CLUREF T_2_1;
            T_2_1.num = ((each.str->size != sig.str->size)? false :
                !(bcmp(each.str->data, sig.str->data, each.str->size)));
            if (T_2_1.num == true) {
                {
                {
                ret_1->tf = true;
                }
                {signal (ERR_ok);}}
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(446);
    {
    {
    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 sig_exists ****/

static int ctl_ptsOPsig_remove_own_init = 0;

/**** BEGIN PROCEDURE sig_remove ****/

errcode ctl_ptsOPsig_remove(sig)
CLUREF sig;
    {
    errcode err;
    errcode ecode2;
    CLUREF found;
    CLUREF i;
    CLUREF each;
    CLUREF tsize;
        if (ctl_ptsOPsig_remove_own_init == 0) {
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        ctl_ptsOPsig_remove_own_init = 1;
    }
    enter_proc(449);

  LINE(450);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_2.num = ((sig.str->size != STR_all.str->size)? false :
        !(bcmp(sig.str->data, STR_all.str->data, sig.str->size)));
    T_1_1.num = T_1_2.num;
    if (T_1_2.num) {
        T_1_3.num = (ctl_ptsOPall.tf == true)? true : false;
        T_1_1.num = T_1_3.num;
    }
    if (T_1_1.num == true) {
        {
        ctl_ptsOPall.tf = false;
        }
        {
        err = dbg_envOPdump();
        if (err != ERR_ok) goto ex_0;
        }
        {
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(451);
    {
        {found.tf = false;
        }
        }

  LINE(452);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
        T_1_2.num = ctl_ptsOPtrpts.array->ext_high; 
        for (T_1_1.num = ctl_ptsOPtrpts.array->ext_low; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            i.num = T_1_1.num;

  LINE(453);
            {
                {CLUREF T_2_1;
                if (i.num < ctl_ptsOPtrpts.array->ext_low || i.num > ctl_ptsOPtrpts.array->ext_high ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_2_1.num = ctl_ptsOPtrpts.array->store->data[i.num - ctl_ptsOPtrpts.array->ext_low + ctl_ptsOPtrpts.array->int_low];
                each.num = T_2_1.num;
                }
                }

  LINE(454);
            {
            CLUREF T_2_1;
            T_2_1.num = ((each.str->size != sig.str->size)? false :
                !(bcmp(each.str->data, sig.str->data, each.str->size)));
            if (T_2_1.num == true) {

  LINE(455);
                {
                    {CLUREF T_3_1;
                    T_3_1.num = ctl_ptsOPtrpts.array->ext_size;
                    tsize.num = T_3_1.num;
                    }
                    }

  LINE(456);
                {
                CLUREF T_3_1;
                if (tsize.num < ctl_ptsOPtrpts.array->ext_low || tsize.num > ctl_ptsOPtrpts.array->ext_high ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_3_1.num = ctl_ptsOPtrpts.array->store->data[tsize.num - ctl_ptsOPtrpts.array->ext_low + ctl_ptsOPtrpts.array->int_low];
                {
                if (i.num < ctl_ptsOPtrpts.array->ext_low || i.num > ctl_ptsOPtrpts.array->ext_high) {
                    err = ERR_bounds;
                    goto ex_0;}
                ctl_ptsOPtrpts.array->store->data[i.num + ctl_ptsOPtrpts.array->int_low - ctl_ptsOPtrpts.array->ext_low] = T_3_1.num;
                }
                }

  LINE(457);
                {
                CLUREF T_3_1;
                T_3_1.num = tsize.num - 1;
                 if ((T_3_1.num >= 0 && tsize.num < 0 && (-1) < 0) || 
                     (T_3_1.num <= 0 && tsize.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = arrayOPtrim(ctl_ptsOPtrpts, CLU_1, T_3_1);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(458);
                {
                found.tf = true;
                }
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(461);
    {
    if (found.num == true) {
        {
        err = dbg_envOPdump();
        if (err != ERR_ok) goto ex_0;
        }
        }
    else {
        {
        {signal (ERR_not_found);}}
        }}/* 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 sig_remove ****/

static int ctl_ptsOPprint_own_init = 0;

/**** BEGIN PROCEDURE print ****/

errcode ctl_ptsOPprint(st)
CLUREF st;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_b;
    CLUREF f;
    CLUREF l;
    CLUREF s;
    CLUREF t;
    CLUREF each_sig;
        if (ctl_ptsOPprint_own_init == 0) {
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        ctl_ptsOPprint_own_init = 1;
    }
    enter_proc(464);

  LINE(465);
    {
    err = streamOPputl(st, STR_Breakpoints_072);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(467);
            {
            switch (each_b.cell->tag) {
            case 1: 
                 {CLUREF T_2_1;
                T_2_1.num = each_b.cell->value;
                f.num = T_2_1.num;

  LINE(469);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    T_3_1.num = f.vec->data[0];
                    err = externalize(T_3_1, &T_3_2);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(STR__011_040entry_057exit_072_040, T_3_2, &T_3_3);
                    if (err != ERR_ok) goto ex_0;
                    err = streamOPputl(st, T_3_3);
                    if (err != ERR_ok) goto ex_0;
                    }
                    break;
                    }
            case 2: 
                 {CLUREF T_2_2;
                T_2_2.num = each_b.cell->value;
                l.num = T_2_2.num;

  LINE(471);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    CLUREF T_3_5;
                    CLUREF T_3_6;
                    CLUREF T_3_7;
                    T_3_1.num = l.vec->data[1];
                    err = externalize(T_3_1, &T_3_2);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(STR__011, T_3_2, &T_3_3);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(T_3_3, STR__040, &T_3_4);
                    if (err != ERR_ok) goto ex_0;
                    T_3_5.num = l.vec->data[0];
                    err = intOPunparse(T_3_5, &T_3_6);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(T_3_4, T_3_6, &T_3_7);
                    if (err != ERR_ok) goto ex_0;
                    err = streamOPputl(st, T_3_7);
                    if (err != ERR_ok) goto ex_0;
                    }
                    break;
                    }
            case 3: 
                 {CLUREF T_2_3;
                T_2_3.num = each_b.cell->value;
                s.num = T_2_3.num;

  LINE(473);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    T_3_1.num = s.vec->data[0];
                    err = externalize(T_3_1, &T_3_2);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(STR__011_040single_040step_072_040, T_3_2, &T_3_3);
                    if (err != ERR_ok) goto ex_0;
                    err = streamOPputl(st, T_3_3);
                    if (err != ERR_ok) goto ex_0;
                    }
                    break;
                    }
            case 4: 
                 {CLUREF T_2_4;
                T_2_4.num = each_b.cell->value;
                t.num = T_2_4.num;

  LINE(475);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    T_3_1.num = t.vec->data[0];
                    err = externalize(T_3_1, &T_3_2);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(STR__011_040temporary_040single_040step_072_040, T_3_2, &T_3_3);
                    if (err != ERR_ok) goto ex_0;
                    err = streamOPputl(st, T_3_3);
                    if (err != ERR_ok) goto ex_0;
                    }
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_1:;

  LINE(478);
    {
    err = streamOPputl(st, STR_Traced_040Signals_072);
    if (err != ERR_ok) goto ex_0;
    }

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

  LINE(480);
            {
            err = streamOPputs(st, STR__011);
            if (err != ERR_ok) goto ex_0;
            }

  LINE(481);
            {
            err = streamOPputl(st, each_sig);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_2:;

  LINE(483);
    {
    if (ctl_ptsOPall.num == true) {

  LINE(484);
        {
        err = streamOPputl(st, STR__011all_040signals_040are_040being_040traced);
        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 print ****/


/**** BEGIN ITERATOR sbp_elements ****/

errcode ctl_ptsOPsbp_elements(proc, user_locals, iecode)
errcode (*proc)();
char **user_locals;
errcode *iecode;
    {
    errcode ecode;
    errcode err;
    errcode ecode2;
    bool body_ctrl_req;
    CLUREF each_b;
    CLUREF s;
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(488);

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

  LINE(490);
            {
            switch (each_b.cell->tag) {
            case 3: 
                 {CLUREF T_2_1;
                T_2_1.num = each_b.cell->value;
                s.num = T_2_1.num;

  LINE(492);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    T_3_1.num = s.vec->data[0];
                    err = externalize(T_3_1, &T_3_2);
                    if (err != ERR_ok) goto ex_0;
                    err = proc(T_3_2, user_locals, iecode);
                    if (err != ERR_ok) {
                    if (err == ERR_break) {signal(ERR_break);}
                    if (err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
                    if (err == ERR_iterbodyexit) {signal(ERR_iterbodyexit);}
                    if (err == ERR_iterbodysignal) {signal(ERR_iterbodysignal);}
                    {signal(err);
                        }}
                    }
                    break;
                    }
            default: {

  LINE(493);
                continue;
            }
            }
            }
        }
    }
    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 ITERATOR sbp_elements ****/


/**** BEGIN ITERATOR fbp_elements ****/

errcode ctl_ptsOPfbp_elements(proc, user_locals, iecode)
errcode (*proc)();
char **user_locals;
errcode *iecode;
    {
    errcode ecode;
    errcode err;
    errcode ecode2;
    bool body_ctrl_req;
    CLUREF each_b;
    CLUREF f;
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(498);

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

  LINE(500);
            {
            switch (each_b.cell->tag) {
            case 1: 
                 {CLUREF T_2_1;
                T_2_1.num = each_b.cell->value;
                f.num = T_2_1.num;

  LINE(502);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    T_3_1.num = f.vec->data[0];
                    err = externalize(T_3_1, &T_3_2);
                    if (err != ERR_ok) goto ex_0;
                    err = proc(T_3_2, user_locals, iecode);
                    if (err != ERR_ok) {
                    if (err == ERR_break) {signal(ERR_break);}
                    if (err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
                    if (err == ERR_iterbodyexit) {signal(ERR_iterbodyexit);}
                    if (err == ERR_iterbodysignal) {signal(ERR_iterbodysignal);}
                    {signal(err);
                        }}
                    }
                    break;
                    }
            default: {

  LINE(503);
                continue;
            }
            }
            }
        }
    }
    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 ITERATOR fbp_elements ****/

static int ctl_ptsOPlbp_elements_own_init = 0;

/**** BEGIN ITERATOR lbp_elements ****/

errcode ctl_ptsOPlbp_elements(proc, user_locals, iecode)
errcode (*proc)();
char **user_locals;
errcode *iecode;
    {
    errcode ecode;
    errcode err;
    errcode ecode2;
    bool body_ctrl_req;
    CLUREF each_b;
    CLUREF l;
        if (ctl_ptsOPlbp_elements_own_init == 0) {
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        ctl_ptsOPlbp_elements_own_init = 1;
    }
    enter_proc(508);

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

  LINE(510);
            {
            switch (each_b.cell->tag) {
            case 2: 
                 {CLUREF T_2_1;
                T_2_1.num = each_b.cell->value;
                l.num = T_2_1.num;

  LINE(512);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    CLUREF T_3_5;
                    CLUREF T_3_6;
                    T_3_1.num = l.vec->data[1];
                    err = externalize(T_3_1, &T_3_2);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(T_3_2, STR__040, &T_3_3);
                    if (err != ERR_ok) goto ex_0;
                    T_3_4.num = l.vec->data[0];
                    err = intOPunparse(T_3_4, &T_3_5);
                    if (err != ERR_ok) goto ex_0;
                    err = stringOPconcat(T_3_3, T_3_5, &T_3_6);
                    if (err != ERR_ok) goto ex_0;
                    err = proc(T_3_6, user_locals, iecode);
                    if (err != ERR_ok) {
                    if (err == ERR_break) {signal(ERR_break);}
                    if (err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
                    if (err == ERR_iterbodyexit) {signal(ERR_iterbodyexit);}
                    if (err == ERR_iterbodysignal) {signal(ERR_iterbodysignal);}
                    {signal(err);
                        }}
                    }
                    break;
                    }
            default: {

  LINE(513);
                continue;
            }
            }
            }
        }
    }
    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 ITERATOR lbp_elements ****/

static int ctl_ptsOPsig_elements_own_init = 0;

/**** BEGIN ITERATOR sig_elements ****/

errcode ctl_ptsOPsig_elements(proc, user_locals, iecode)
errcode (*proc)();
char **user_locals;
errcode *iecode;
    {
    errcode ecode;
    errcode err;
    errcode ecode2;
    bool body_ctrl_req;
    CLUREF each_sig;
        if (ctl_ptsOPsig_elements_own_init == 0) {
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        ctl_ptsOPsig_elements_own_init = 1;
    }
    enter_proc(518);

  LINE(519);
    {
    if (ctl_ptsOPall.num == true) {
        {
        err = proc(STR_all, user_locals, iecode);
        if (err != ERR_ok) {
        if (err == ERR_break) {signal(ERR_break);}
        if (err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
        if (err == ERR_iterbodyexit) {signal(ERR_iterbodyexit);}
        if (err == ERR_iterbodysignal) {signal(ERR_iterbodysignal);}
        {signal(err);
            }}
        }
        }
        }/* end if */

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

  LINE(521);
            {
            err = proc(each_sig, user_locals, iecode);
            if (err != ERR_ok) {
            if (err == ERR_break) {signal(ERR_break);}
            if (err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
            if (err == ERR_iterbodyexit) {signal(ERR_iterbodyexit);}
            if (err == ERR_iterbodysignal) {signal(ERR_iterbodysignal);}
            {signal(err);
                }}
            }
        }
    }
    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 ITERATOR sig_elements ****/


/**** BEGIN PROCEDURE func_exists ****/

errcode ctl_ptsOPfunc_exists(mod, ret_1)
CLUREF mod;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF addr;
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(525);

  LINE(526);
    {
        {CLUREF T_2_1;
        err = symOPget_address(mod, &T_2_1);
        if (err != ERR_ok) goto ex_1;
        addr.num = T_2_1.num;
        }
        }
        goto end_1;
        ex_1:
            if ((err == ERR_not_found)) {

  LINE(528);
                {
                {
                ret_1->tf = false;
                }
                {signal (ERR_ok);}}
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(530);
    {
    {
    ret_1->tf = true;
    }
    {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 func_exists ****/

static int ctl_ptsOPline_tracing_on_own_init = 0;

/**** BEGIN PROCEDURE line_tracing_on ****/

errcode ctl_ptsOPline_tracing_on(mod)
CLUREF mod;
    {
    errcode err;
    errcode ecode2;
    CLUREF addr;
        if (ctl_ptsOPline_tracing_on_own_init == 0) {
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        ctl_ptsOPline_tracing_on_own_init = 1;
    }
    enter_proc(533);

  LINE(534);
    {
        {CLUREF T_2_1;
        CLUREF T_2_2;
        err = stringOPconcat(mod, STR__137TRACE, &T_2_1);
        if (err != ERR_ok) goto ex_1;
        err = symOPget_address(T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_1;
        addr.num = T_2_2.num;
        }
        }
    goto end_1;
    ex_1:
        if (err == ERR_not_found) {signal(ERR_not_found);}
        else {
            goto ex_0;}
    end_1:;

  LINE(536);
    {
    err = debugopassign(addr, CLU_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 line_tracing_on ****/

static int ctl_ptsOPline_tracing_off_own_init = 0;

/**** BEGIN PROCEDURE line_tracing_off ****/

errcode ctl_ptsOPline_tracing_off(mod)
CLUREF mod;
    {
    errcode err;
    errcode ecode2;
    CLUREF addr;
        if (ctl_ptsOPline_tracing_off_own_init == 0) {
        if (ctl_pts_own_init == 0) {
            err = ctl_pts_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        ctl_ptsOPline_tracing_off_own_init = 1;
    }
    enter_proc(539);

  LINE(540);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        err = stringOPconcat(mod, STR__137TRACE, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        err = symOPget_address(T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        addr.num = T_1_2.num;
        }
        }

  LINE(541);
    {
    err = debugopassign(addr, CLU_0);
    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 line_tracing_off ****/

typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[12];
} ctl_pts_OPS;

CLU_proc ctl_pts_oe_bp_add = {{0,0,0,0}, ctl_ptsOPbp_add, 0};
CLU_proc ctl_pts_oe_bp_exists = {{0,0,0,0}, ctl_ptsOPbp_exists, 0};
CLU_proc ctl_pts_oe_bp_remove = {{0,0,0,0}, ctl_ptsOPbp_remove, 0};
CLU_proc ctl_pts_oe_clear = {{0,0,0,0}, ctl_ptsOPclear, 0};
CLU_proc ctl_pts_oe_fbp_elements = {{0,0,0,0}, ctl_ptsOPfbp_elements, 0};
CLU_proc ctl_pts_oe_lbp_elements = {{0,0,0,0}, ctl_ptsOPlbp_elements, 0};
CLU_proc ctl_pts_oe_print = {{0,0,0,0}, ctl_ptsOPprint, 0};
CLU_proc ctl_pts_oe_sbp_elements = {{0,0,0,0}, ctl_ptsOPsbp_elements, 0};
CLU_proc ctl_pts_oe_sig_add = {{0,0,0,0}, ctl_ptsOPsig_add, 0};
CLU_proc ctl_pts_oe_sig_elements = {{0,0,0,0}, ctl_ptsOPsig_elements, 0};
CLU_proc ctl_pts_oe_sig_exists = {{0,0,0,0}, ctl_ptsOPsig_exists, 0};
CLU_proc ctl_pts_oe_sig_remove = {{0,0,0,0}, ctl_ptsOPsig_remove, 0};

ctl_pts_OPS ctl_pts_ops_actual = {12, (OWNPTR)&ctl_pts_own_init, (OWNPTR)&ctl_pts_own_init, {
    {&ctl_pts_oe_bp_add, "bp_add"},
    {&ctl_pts_oe_bp_exists, "bp_exists"},
    {&ctl_pts_oe_bp_remove, "bp_remove"},
    {&ctl_pts_oe_clear, "clear"},
    {&ctl_pts_oe_fbp_elements, "fbp_elements"},
    {&ctl_pts_oe_lbp_elements, "lbp_elements"},
    {&ctl_pts_oe_print, "print"},
    {&ctl_pts_oe_sbp_elements, "sbp_elements"},
    {&ctl_pts_oe_sig_add, "sig_add"},
    {&ctl_pts_oe_sig_elements, "sig_elements"},
    {&ctl_pts_oe_sig_exists, "sig_exists"},
    {&ctl_pts_oe_sig_remove, "sig_remove"}}};

struct OPS *ctl_pts_ops = (struct OPS *)&ctl_pts_ops_actual;

/**** END CLUSTER ctl_pts ****/

static int opown2typeown_own_init = 0;

/**** BEGIN PROCEDURE opown2typeown ****/

errcode opown2typeown(nm, ret_1)
CLUREF nm;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF lim;
    CLUREF tname;
    CLUREF vname;
        if (opown2typeown_own_init == 0) {
        stringOPcons("OP", CLU_1, CLU_2, &STR_OP);
        opown2typeown_own_init = 1;
    }
    enter_proc(547);

  LINE(554);
    {
        {CLUREF T_1_1;
        err = stringOPindexs(STR_OP, nm, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        lim.num = T_1_1.num;
        }
        }

  LINE(555);
    {
    CLUREF T_1_1;
    T_1_1.num = (lim.num == 0)? true : false;
    if (T_1_1.num == true) {
        {
        {signal (ERR_not_found);}}
        }
        }/* end if */

  LINE(556);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = lim.num - 1;
         if ((T_1_1.num >= 0 && lim.num < 0 && (-1) < 0) || 
             (T_1_1.num <= 0 && lim.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPsubstr(nm, CLU_1, T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        tname.num = T_1_2.num;
        }
        }

  LINE(557);
    {
    CLUREF T_1_1;
    err = string_lindexs(STR_OP, nm, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    lim.num = T_1_1.num;
    }

  LINE(558);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = lim.num + 2;
         if ((T_1_1.num > 0 && lim.num < 0 && 2 < 0) || 
             (T_1_1.num < 0 && lim.num > 0 && 2 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPrest(nm, T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        vname.num = T_1_2.num;
        }
        }

  LINE(559);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = stringOPconcat(tname, STR_OP, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPconcat(T_1_1, vname, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    ret_1->num = T_1_2.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 opown2typeown ****/


extern errcode pstreamOPtext();
CLUREF STR__077_077_077;
static int print_uninit_own_init = 0;

/**** BEGIN PROCEDURE print_uninit ****/

errcode print_uninit(po, v)
CLUREF po;
CLUREF v;
    {
    errcode err;
    errcode ecode2;
        if (print_uninit_own_init == 0) {
        stringOPcons("???", CLU_1, CLU_3, &STR__077_077_077);
        print_uninit_own_init = 1;
    }
    enter_proc(562);

  LINE(563);
    {
    CLUREF T_1_1;
    err = pstreamOPtext(po, STR__077_077_077, &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 print_uninit ****/


extern errcode debugopget_name();
extern errcode sequenceOPindexes();
extern errcode debugopget_nth_type_formal();
extern errcode debugopget_nth_op_formal();
extern errcode inst();
static int inst_from_info_own_init = 0;

/**** BEGIN PROCEDURE inst_from_info ****/

errcode inst_from_info(info, tparms, oparms, ret_1, ret_2)
CLUREF info;
CLUREF tparms;
CLUREF oparms;
CLUREF *ret_1;
CLUREF *ret_2;
    {
    errcode err;
    errcode ecode2;
    CLUREF k;
    CLUREF nm;
    CLUREF loc;
    CLUREF tname;
    CLUREF opname;
    CLUREF tformals;
    CLUREF i;
    CLUREF oformals;
    CLUREF tops;
    CLUREF oops;
        if (inst_from_info_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        inst_from_info_own_init = 1;
    }
    enter_proc(567);

  LINE(569);
    {
        {k.num = 0;
        }
        }

  LINE(570);
    {
        {CLUREF T_1_1;
        err = debugopget_name(info, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        nm.num = T_1_1.num;
        }
        }

  LINE(571);
    {
    CLUREF T_1_1;
    err = externalize(nm, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    nm.num = T_1_1.num;
    }

  LINE(572);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.ch = '$';
        err = stringOPindexc(T_1_1, nm, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        loc.num = T_1_2.num;
        }
        }

  LINE(573);
    {
        {tname = STR_;
        }
        }

  LINE(574);
    {
        {opname.num = nm.num;
        }
        }

  LINE(575);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = (loc.num == 0)? true : false;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {

  LINE(577);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = loc.num - 1;
         if ((T_2_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPsubstr(nm, CLU_1, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        tname.num = T_2_2.num;
        }

  LINE(578);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = loc.num + 1;
         if ((T_2_1.num > 0 && loc.num < 0 && 1 < 0) || 
             (T_2_1.num < 0 && loc.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPrest(nm, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        opname.num = T_2_2.num;
        }
        }
        }/* end if */

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

  LINE(581);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
        T_1_2.num = tparms.vec->size; 
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            i.num = T_1_1.num;

  LINE(582);
            {
            CLUREF T_2_1;
            err = debugopget_nth_type_formal(info, i, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            {
            if ((tformals.array->int_low + tformals.array->ext_size + 1) < tformals.array->int_size) {
                tformals.array->store->data[tformals.array->int_low + tformals.array->ext_size] = T_2_1.num;
                tformals.array->ext_size++; tformals.array->ext_high++;}
            else {
                err = arrayOPaddh(tformals, T_2_1);
                if (err != ERR_ok) goto ex_0;}
            }
            }
        }
    }
    end_inline_for_1:;

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

  LINE(585);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
        T_1_2.num = oparms.vec->size; 
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            i.num = T_1_1.num;

  LINE(586);
            {
            CLUREF T_2_1;
            err = debugopget_nth_op_formal(info, i, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            {
            if ((oformals.array->int_low + oformals.array->ext_size + 1) < oformals.array->int_size) {
                oformals.array->store->data[oformals.array->int_low + oformals.array->ext_size] = T_2_1.num;
                oformals.array->ext_size++; oformals.array->ext_high++;}
            else {
                err = arrayOPaddh(oformals, T_2_1);
                if (err != ERR_ok) goto ex_0;}
            }
            }
        }
    }
    end_inline_for_2:;

  LINE(588);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        err = inst(tname, opname, tformals, oformals, tparms, oparms, &T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        tops.num = T_1_1.num;
        oops.num = T_1_2.num;
        }
        }

  LINE(589);
    {
    {
    ret_1->num = tops.num;
    }
    {
    ret_2->num = oops.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 inst_from_info ****/


extern errcode arrayOPempty();
extern errcode _cvt();
extern errcode sequenceOPfetch();
extern errcode debugOPteval();
extern errcode intOPfrom_to();
extern errcode debugopget_count_formals();
extern errcode debugopget_nth_formal();
extern errcode sequenceOPnew();
extern errcode sequenceOPaddh();
extern errcode oneofOPmake_6();
CLUREF STR_of;
CLUREF STR_still_040losing_040in_040inst_137from_137name_040_0501_051;
CLUREF STR_still_040losing_040in_040inst_137from_137name_040_0502_051;
CLUREF STR_still_040losing_040in_040inst_137from_137name_040_0503_051;
CLUREF STR_tformals_137;
static int inst_from_name_own_init = 0;

/**** BEGIN PROCEDURE inst_from_name ****/

errcode inst_from_name(aiops, info, itparms, ioparms, ret_1)
CLUREF aiops;
CLUREF info;
CLUREF itparms;
CLUREF ioparms;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF loc;
    CLUREF tname;
    CLUREF tcomps;
    CLUREF rest;
    CLUREF nth;
    CLUREF itformals;
    CLUREF i;
    CLUREF ioformals;
    CLUREF d;
    CLUREF tformals;
    CLUREF aname;
    CLUREF a;
    CLUREF tparms;
    CLUREF formal;
    CLUREF dobj;
    CLUREF tops;
    CLUREF oops;
        if (inst_from_name_own_init == 0) {
        stringOPcons("of", CLU_1, CLU_2, &STR_of);
        stringOPcons("still losing in inst_from_name (1)", CLU_1, CLU_34, &STR_still_040losing_040in_040inst_137from_137name_040_0501_051);
        stringOPcons("still losing in inst_from_name (2)", CLU_1, CLU_34, &STR_still_040losing_040in_040inst_137from_137name_040_0502_051);
        stringOPcons("still losing in inst_from_name (3)", CLU_1, CLU_34, &STR_still_040losing_040in_040inst_137from_137name_040_0503_051);
        stringOPcons("tformals_", CLU_1, CLU_9, &STR_tformals_137);
        stringOPcons("", CLU_1, CLU_0, &STR_);
        inst_from_name_own_init = 1;
    }
    enter_proc(592);

  LINE(595);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.ch = '_';
        err = stringOPindexc(T_1_1, aiops, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        loc.num = T_1_2.num;
        }
        }

  LINE(596);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = loc.num - 1;
         if ((T_1_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
             (T_1_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPsubstr(aiops, CLU_1, T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        tname.num = T_1_2.num;
        }
        }

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

  LINE(604);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = loc.num + 1;
         if ((T_1_1.num > 0 && loc.num < 0 && 1 < 0) || 
             (T_1_1.num < 0 && loc.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPrest(aiops, T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        rest.num = T_1_2.num;
        }
        }

  LINE(605);
    for (;;) {
        if (true != true) { break; }

  LINE(606);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.ch = '_';
        err = stringOPindexc(T_2_1, rest, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        loc.num = T_2_2.num;
        }

  LINE(607);
        {
        CLUREF T_2_1;
        T_2_1.num = (loc.num == 0)? true : false;
        if (T_2_1.num == true) {
            goto end_while_1;
            }
            }/* end if */

  LINE(608);
        {
            {CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = loc.num - 1;
             if ((T_2_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
                 (T_2_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            err = stringOPsubstr(rest, CLU_1, T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            nth.num = T_2_2.num;
            }
            }

  LINE(609);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = loc.num + 1;
         if ((T_2_1.num > 0 && loc.num < 0 && 1 < 0) || 
             (T_2_1.num < 0 && loc.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPrest(rest, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        rest.num = T_2_2.num;
        }

  LINE(610);
        {
        CLUREF T_2_1;
        T_2_1.num = ((nth.str->size != STR_of.str->size)? false :
            !(bcmp(nth.str->data, STR_of.str->data, nth.str->size)));
        if (T_2_1.num == true) {
            continue;
            }
            }/* end if */

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

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

  LINE(620);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
        T_1_2.num = itparms.vec->size; 
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            i.num = T_1_1.num;

  LINE(621);
            {
            CLUREF T_2_1;
            err = debugopget_nth_type_formal(info, i, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            {
            if ((itformals.array->int_low + itformals.array->ext_size + 1) < itformals.array->int_size) {
                itformals.array->store->data[itformals.array->int_low + itformals.array->ext_size] = T_2_1.num;
                itformals.array->ext_size++; itformals.array->ext_high++;}
            else {
                err = arrayOPaddh(itformals, T_2_1);
                if (err != ERR_ok) goto ex_0;}
            }
            }
        }
    }
    end_inline_for_1:;

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

  LINE(626);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
        T_1_2.num = ioparms.vec->size; 
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            i.num = T_1_1.num;

  LINE(627);
            {
            CLUREF T_2_1;
            err = debugopget_nth_op_formal(info, i, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            {
            if ((ioformals.array->int_low + ioformals.array->ext_size + 1) < ioformals.array->int_size) {
                ioformals.array->store->data[ioformals.array->int_low + ioformals.array->ext_size] = T_2_1.num;
                ioformals.array->ext_size++; ioformals.array->ext_high++;}
            else {
                err = arrayOPaddh(ioformals, T_2_1);
                if (err != ERR_ok) goto ex_0;}
            }
            }
        }
    }
    end_inline_for_2:;

  LINE(636);
    {
    CLUREF T_1_1;
    T_1_1.num = (tcomps.array->ext_size == 0)? true : false;
    if (T_1_1.num == true) {

  LINE(637);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
            T_2_2.num = itformals.array->ext_high; 
            for (T_2_1.num = itformals.array->ext_low; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                i.num = T_2_1.num;

  LINE(638);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                if (i.num < itformals.array->ext_low || i.num > itformals.array->ext_high ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_3_1.num = itformals.array->store->data[i.num - itformals.array->ext_low + itformals.array->int_low];
                T_3_2.num = ((T_3_1.str->size != tname.str->size)? false :
                    !(bcmp(T_3_1.str->data, tname.str->data, T_3_1.str->size)));
                if (T_3_2.num == true) {

  LINE(639);
                    {
                        {CLUREF T_4_1;
                        CLUREF T_4_2;
                        if (i.num < 1 || i.num > itparms.vec->size ) {
                            err = ERR_bounds;
                            goto ex_0;}
                        T_4_1.num = itparms.vec->data[i.num - 1];
                        T_4_2.num = T_4_1.num;
                        d.num = T_4_2.num;
                        }
                        }

  LINE(640);
                    {
                    switch (d.cell->tag) {
                    case 6: 
                    case 7: 
                    case 11: 
                    case 12: 
                         {

  LINE(642);
                            {
                            {
                            CLUREF T_5_1;
                            err = debugOPteval(d, &T_5_1);
                            if (err != ERR_ok) goto ex_0;
                            ret_1->num = T_5_1.num;
                            }
                            {signal (ERR_ok);}}
                            break;
                            }
                    default: {

  LINE(644);
                        {
                        err = logit(STR_still_040losing_040in_040inst_137from_137name_040_0501_051);
                        if (err != ERR_ok) goto ex_0;
                        }
                    }
                    }
                    }

  LINE(646);
                    {
                    {
                    CLUREF T_4_1;
                    CLUREF T_4_2;
                    if (i.num < 1 || i.num > itparms.vec->size ) {
                        err = ERR_bounds;
                        goto ex_0;}
                    T_4_1.num = itparms.vec->data[i.num - 1];
                    T_4_2.num = T_4_1.num;
                    ret_1->num = T_4_2.num;
                    }
                    {signal (ERR_ok);}}
                    }
                    }/* end if */
            }
        }
        end_inline_for_3:;

  LINE(650);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
            T_2_2.num = ioformals.array->ext_high; 
            for (T_2_1.num = ioformals.array->ext_low; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                i.num = T_2_1.num;

  LINE(651);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                if (i.num < ioformals.array->ext_low || i.num > ioformals.array->ext_high ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_3_1.num = ioformals.array->store->data[i.num - ioformals.array->ext_low + ioformals.array->int_low];
                T_3_2.num = ((T_3_1.str->size != tname.str->size)? false :
                    !(bcmp(T_3_1.str->data, tname.str->data, T_3_1.str->size)));
                if (T_3_2.num == true) {

  LINE(652);
                    {
                        {CLUREF T_4_1;
                        CLUREF T_4_2;
                        if (i.num < 1 || i.num > ioparms.vec->size ) {
                            err = ERR_bounds;
                            goto ex_0;}
                        T_4_1.num = ioparms.vec->data[i.num - 1];
                        T_4_2.num = T_4_1.num;
                        d.num = T_4_2.num;
                        }
                        }

  LINE(653);
                    {
                    switch (d.cell->tag) {
                    case 6: 
                    case 7: 
                    case 11: 
                    case 12: 
                         {

  LINE(655);
                            {
                            {
                            CLUREF T_5_1;
                            err = debugOPteval(d, &T_5_1);
                            if (err != ERR_ok) goto ex_0;
                            ret_1->num = T_5_1.num;
                            }
                            {signal (ERR_ok);}}
                            break;
                            }
                    default: {

  LINE(657);
                        {
                        err = logit(STR_still_040losing_040in_040inst_137from_137name_040_0502_051);
                        if (err != ERR_ok) goto ex_0;
                        }
                    }
                    }
                    }
                    }
                    }/* end if */
            }
        }
        end_inline_for_4:;

  LINE(661);
        {
        err = logit(STR_still_040losing_040in_040inst_137from_137name_040_0503_051);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

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

  LINE(667);
    {
        {CLUREF T_1_1;
        err = stringOPconcat(STR_tformals_137, tname, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        aname.num = T_1_1.num;
        }
        }

  LINE(669);
    {
        {CLUREF T_1_1;
        err = symOPget_address(aname, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        a.num = T_1_1.num;
        }
        }

  LINE(671);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        err = debugopget_count_formals(a, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        T_1_3.num = T_1_1.num;
        for (T_1_2.num = 1; T_1_2.num <= T_1_3.num; T_1_2.num++) {
            i.num = T_1_2.num;

  LINE(672);
            {
            CLUREF T_2_1;
            err = debugopget_nth_formal(a, i, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            {
            if ((tformals.array->int_low + tformals.array->ext_size + 1) < tformals.array->int_size) {
                tformals.array->store->data[tformals.array->int_low + tformals.array->ext_size] = T_2_1.num;
                tformals.array->ext_size++; tformals.array->ext_high++;}
            else {
                err = arrayOPaddh(tformals, T_2_1);
                if (err != ERR_ok) goto ex_0;}
            }
            }
        }
    }
    end_inline_for_5:;

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

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

  LINE(680);
            {

  LINE(681);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                    T_4_2.num = itformals.array->ext_high; 
                    for (T_4_1.num = itformals.array->ext_low; T_4_1.num <= T_4_2.num; T_4_1.num++) {
                        i.num = T_4_1.num;

  LINE(682);
                        {
                        CLUREF T_5_1;
                        CLUREF T_5_2;
                        if (i.num < itformals.array->ext_low || i.num > itformals.array->ext_high ) {
                            err = ERR_bounds;
                            goto ex_1;}
                        T_5_1.num = itformals.array->store->data[i.num - itformals.array->ext_low + itformals.array->int_low];
                        T_5_2.num = ((T_5_1.str->size != formal.str->size)? false :
                            !(bcmp(T_5_1.str->data, formal.str->data, T_5_1.str->size)));
                        if (T_5_2.num == true) {

  LINE(683);
                            {
                            CLUREF T_6_1;
                            CLUREF T_6_2;
                            if (i.num < 1 || i.num > itparms.vec->size ) {
                                err = ERR_bounds;
                                goto ex_1;}
                            T_6_1.num = itparms.vec->data[i.num - 1];
                            err = sequenceOPaddh(tparms, T_6_1, &T_6_2);
                            if (err != ERR_ok) goto ex_1;
                            tparms.num = T_6_2.num;
                            }

  LINE(684);
                            {
                                err = "ERR_done";
                                goto ex_1;
                                }
                            }
                            }/* end if */
                    }
                }
                end_inline_for_7:;

  LINE(687);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                    T_4_2.num = ioformals.array->ext_high; 
                    for (T_4_1.num = ioformals.array->ext_low; T_4_1.num <= T_4_2.num; T_4_1.num++) {
                        i.num = T_4_1.num;

  LINE(688);
                        {
                        CLUREF T_5_1;
                        CLUREF T_5_2;
                        if (i.num < ioformals.array->ext_low || i.num > ioformals.array->ext_high ) {
                            err = ERR_bounds;
                            goto ex_1;}
                        T_5_1.num = ioformals.array->store->data[i.num - ioformals.array->ext_low + ioformals.array->int_low];
                        T_5_2.num = ((T_5_1.str->size != formal.str->size)? false :
                            !(bcmp(T_5_1.str->data, formal.str->data, T_5_1.str->size)));
                        if (T_5_2.num == true) {

  LINE(689);
                            {
                            CLUREF T_6_1;
                            CLUREF T_6_2;
                            if (i.num < 1 || i.num > ioparms.vec->size ) {
                                err = ERR_bounds;
                                goto ex_1;}
                            T_6_1.num = ioparms.vec->data[i.num - 1];
                            err = sequenceOPaddh(tparms, T_6_1, &T_6_2);
                            if (err != ERR_ok) goto ex_1;
                            tparms.num = T_6_2.num;
                            }

  LINE(690);
                            {
                                err = "ERR_done";
                                goto ex_1;
                                }
                            }
                            }/* end if */
                    }
                }
                end_inline_for_8:;

  LINE(693);
                {
                    {CLUREF T_4_1;
                    CellAlloc(6, formal.num, T_4_1);
                    d.num = T_4_1.num;
                    }
                    }

  LINE(694);
                {
                    {CLUREF T_4_1;
                    T_4_1.num = d.num;
                    dobj.num = T_4_1.num;
                    }
                    }

  LINE(695);
                {
                CLUREF T_4_1;
                err = sequenceOPaddh(tparms, dobj, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                tparms.num = T_4_1.num;
                }
                }
                goto end_1;
                ex_1:
                    if (errcmp(err, "ERR_done")) {

  LINE(696);
                        continue;
                    }
                    else {
                        goto ex_0;
                    }
                end_1:;
        }
    }
    end_inline_for_6:;

  LINE(699);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        CLUREF T_1_4;
        err = arrayOPnew(&T_1_1);
        if (err != ERR_ok) goto ex_0;
        err = sequenceOPnew(&T_1_2);
        if (err != ERR_ok) goto ex_0;
        err = inst(tname, STR_, tformals, T_1_1, tparms, T_1_2, &T_1_3, &T_1_4);
        if (err != ERR_ok) goto ex_0;
        tops.num = T_1_3.num;
        oops.num = T_1_4.num;
        }
        }

  LINE(700);
    {
    {
    ret_1->num = tops.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 inst_from_name ****/


extern errcode sequenceOPelements();
extern errcode clu_add_parm_info_const();
extern errcode clu_add_parm_info_type();
extern errcode sequenceOPsize();
extern errcode clu_find_type_instance();
extern errcode clu_find_typeop_instance();
extern errcode clu_find_prociter_instance();
CLUREF STR__040fill_040in_040others_040in_040const_040instantiation_0401;
CLUREF STR__137of_137;
CLUREF STR__137reqs_137actual;
CLUREF STR__040unexpected_040dexpr_040in_040instantiation_040list_0401;
CLUREF STR__040fill_040in_040others_040in_040const_040instantiation_0402;
CLUREF STR__137ops_137actual;
CLUREF STR__040unexpected_040dexpr_040in_040instantiation_040list_0402;
CLUREF STR__137ownreqs;
CLUREF STR__137op_137;
static int inst_own_init = 0;

/**** BEGIN PROCEDURE inst ****/

errcode inst(tname, opname, tformals, oformals, tparms, oparms, ret_1, ret_2)
CLUREF tname;
CLUREF opname;
CLUREF tformals;
CLUREF oformals;
CLUREF tparms;
CLUREF oparms;
CLUREF *ret_1;
CLUREF *ret_2;
    {
    errcode err;
    errcode ecode2;
    CLUREF k;
    CLUREF i;
    CLUREF each_dexpr;
    CLUREF c;
    CLUREF iobj;
    CLUREF num;
    CLUREF opers;
    CLUREF reqs;
    CLUREF id;
    CLUREF tops;
    CLUREF oops;
    CLUREF tcount;
    CLUREF ownreqs;
    CLUREF opownreqs;
    CLUREF opaddr;
    CLUREF ocount;
        if (inst_own_init == 0) {
        stringOPcons(" fill in others in const instantiation 1", CLU_1, CLU_40, &STR__040fill_040in_040others_040in_040const_040instantiation_0401);
        stringOPcons("_of_", CLU_1, CLU_4, &STR__137of_137);
        stringOPcons("_reqs_actual", CLU_1, CLU_12, &STR__137reqs_137actual);
        stringOPcons(" unexpected dexpr in instantiation list 1", CLU_1, CLU_41, &STR__040unexpected_040dexpr_040in_040instantiation_040list_0401);
        stringOPcons(" fill in others in const instantiation 2", CLU_1, CLU_40, &STR__040fill_040in_040others_040in_040const_040instantiation_0402);
        stringOPcons("_ops_actual", CLU_1, CLU_11, &STR__137ops_137actual);
        stringOPcons(" unexpected dexpr in instantiation list 2", CLU_1, CLU_41, &STR__040unexpected_040dexpr_040in_040instantiation_040list_0402);
        stringOPcons("_ownreqs", CLU_1, CLU_8, &STR__137ownreqs);
        stringOPcons("_op_", CLU_1, CLU_4, &STR__137op_137);
        stringOPcons("OP", CLU_1, CLU_2, &STR_OP);
        inst_own_init = 1;
    }
    enter_proc(703);

  LINE(706);
    {
        {k.num = 0;
        }
        }

  LINE(707);
    {
        {i.num = 1;
        }
        }

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

  LINE(709);
            {
            switch (each_dexpr.cell->tag) {
            case 4: 
                 {CLUREF T_2_1;
                T_2_1.num = each_dexpr.cell->value;
                c.num = T_2_1.num;

  LINE(712);
                    {
                    switch (c.cell->tag) {
                    case 3: 
                         {CLUREF T_3_1;
                        T_3_1.num = c.cell->value;
                        num.num = T_3_1.num;

  LINE(714);
                            {
                            CLUREF T_4_1;
                            T_4_1.num = num.num;
                            iobj.num = T_4_1.num;
                            }
                            break;
                            }
                    default: {

  LINE(716);
                        {
                        err = logit(STR__040fill_040in_040others_040in_040const_040instantiation_0401);
                        if (err != ERR_ok) goto ex_0;
                        }
                    }
                    }
                    }

  LINE(718);
                    {
                    err = clu_add_parm_info_const(k, iobj);
                    if (err != ERR_ok) goto ex_0;
                    }
                    break;
                    }
            case 6: 
            case 12: 
            case 11: 
            case 7: 
                 {

  LINE(720);
                    {
                        {CLUREF T_3_1;
                        err = debugOPteval(each_dexpr, &T_3_1);
                        if (err != ERR_ok) goto ex_0;
                        opers.num = T_3_1.num;
                        }
                        }

  LINE(721);
                    {
                        {CLUREF T_3_1;
                        CLUREF T_3_2;
                        CLUREF T_3_3;
                        CLUREF T_3_4;
                        CLUREF T_3_5;
                        err = stringOPconcat(tname, STR__137of_137, &T_3_1);
                        if (err != ERR_ok) goto ex_0;
                        if (i.num < tformals.array->ext_low || i.num > tformals.array->ext_high ) {
                            err = ERR_bounds;
                            goto ex_0;}
                        T_3_2.num = tformals.array->store->data[i.num - tformals.array->ext_low + tformals.array->int_low];
                        err = stringOPconcat(T_3_1, T_3_2, &T_3_3);
                        if (err != ERR_ok) goto ex_0;
                        err = stringOPconcat(T_3_3, STR__137reqs_137actual, &T_3_4);
                        if (err != ERR_ok) goto ex_0;
                        err = symOPget_address(T_3_4, &T_3_5);
                        if (err != ERR_ok) goto ex_0;
                        reqs.num = T_3_5.num;
                        }
                        }

  LINE(723);
                    {
                    err = clu_add_parm_info_type(k, opers, reqs);
                    if (err != ERR_ok) goto ex_0;
                    }
                    break;
                    }
            default: {

  LINE(725);
                {
                err = logit(STR__040unexpected_040dexpr_040in_040instantiation_040list_0401);
                if (err != ERR_ok) goto ex_0;
                }
            }
            }
            }

  LINE(727);
            {
            CLUREF T_2_1;
            T_2_1.num = i.num + 1;
             if ((T_2_1.num > 0 && i.num < 0 && 1 < 0) || 
                 (T_2_1.num < 0 && i.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            i.num = T_2_1.num;
            }

  LINE(728);
            {
            CLUREF T_2_1;
            T_2_1.num = k.num + 1;
             if ((T_2_1.num > 0 && k.num < 0 && 1 < 0) || 
                 (T_2_1.num < 0 && k.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            k.num = T_2_1.num;
            }
        }
    }
    end_inline_for_1:;

  LINE(731);
    {
    i.num = 1;
    }

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

  LINE(733);
            {
            switch (each_dexpr.cell->tag) {
            case 4: 
                 {CLUREF T_2_1;
                T_2_1.num = each_dexpr.cell->value;
                c.num = T_2_1.num;

  LINE(736);
                    {
                    switch (c.cell->tag) {
                    case 3: 
                         {CLUREF T_3_1;
                        T_3_1.num = c.cell->value;
                        num.num = T_3_1.num;

  LINE(738);
                            {
                            CLUREF T_4_1;
                            T_4_1.num = num.num;
                            iobj.num = T_4_1.num;
                            }
                            break;
                            }
                    default: {

  LINE(740);
                        {
                        err = logit(STR__040fill_040in_040others_040in_040const_040instantiation_0402);
                        if (err != ERR_ok) goto ex_0;
                        }
                    }
                    }
                    }

  LINE(742);
                    {
                    err = clu_add_parm_info_const(k, iobj);
                    if (err != ERR_ok) goto ex_0;
                    }
                    break;
                    }
            case 6: 
                 {CLUREF T_2_2;
                T_2_2.num = each_dexpr.cell->value;
                id.num = T_2_2.num;

  LINE(744);
                    {
                        {CLUREF T_3_1;
                        CLUREF T_3_2;
                        err = stringOPconcat(id, STR__137ops_137actual, &T_3_1);
                        if (err != ERR_ok) goto ex_0;
                        err = symOPget_address(T_3_1, &T_3_2);
                        if (err != ERR_ok) goto ex_0;
                        opers.num = T_3_2.num;
                        }
                        }

  LINE(745);
                    {
                        {CLUREF T_3_1;
                        CLUREF T_3_2;
                        CLUREF T_3_3;
                        CLUREF T_3_4;
                        CLUREF T_3_5;
                        err = stringOPconcat(opname, STR__137of_137, &T_3_1);
                        if (err != ERR_ok) goto ex_0;
                        if (i.num < oformals.array->ext_low || i.num > oformals.array->ext_high ) {
                            err = ERR_bounds;
                            goto ex_0;}
                        T_3_2.num = oformals.array->store->data[i.num - oformals.array->ext_low + oformals.array->int_low];
                        err = stringOPconcat(T_3_1, T_3_2, &T_3_3);
                        if (err != ERR_ok) goto ex_0;
                        err = stringOPconcat(T_3_3, STR__137reqs_137actual, &T_3_4);
                        if (err != ERR_ok) goto ex_0;
                        err = symOPget_address(T_3_4, &T_3_5);
                        if (err != ERR_ok) goto ex_0;
                        reqs.num = T_3_5.num;
                        }
                        }

  LINE(747);
                    {
                    err = clu_add_parm_info_type(k, opers, reqs);
                    if (err != ERR_ok) goto ex_0;
                    }
                    break;
                    }
            default: {

  LINE(771);
                {
                err = logit(STR__040unexpected_040dexpr_040in_040instantiation_040list_0402);
                if (err != ERR_ok) goto ex_0;
                }
            }
            }
            }

  LINE(773);
            {
            CLUREF T_2_1;
            T_2_1.num = i.num + 1;
             if ((T_2_1.num > 0 && i.num < 0 && 1 < 0) || 
                 (T_2_1.num < 0 && i.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            i.num = T_2_1.num;
            }

  LINE(774);
            {
            CLUREF T_2_1;
            T_2_1.num = k.num + 1;
             if ((T_2_1.num > 0 && k.num < 0 && 1 < 0) || 
                 (T_2_1.num < 0 && k.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            k.num = T_2_1.num;
            }
        }
    }
    end_inline_for_2:;

  LINE(778);
    {
        {tops.num = 0;
        }
        }

  LINE(779);
    {
        {oops.num = 0;
        }
        }

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

  LINE(782);
        {
            {CLUREF T_2_1;
            CLUREF T_2_2;
            err = stringOPconcat(tname, STR__137ops_137actual, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = symOPget_address(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            opers.num = T_2_2.num;
            }
            }

  LINE(783);
        {
            {CLUREF T_2_1;
            T_2_1.num = tparms.vec->size;
            tcount.num = T_2_1.num;
            }
            }

  LINE(784);
        {
            {CLUREF T_2_1;
            CLUREF T_2_2;
            err = stringOPconcat(tname, STR__137ownreqs, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = symOPget_address(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            ownreqs.num = T_2_2.num;
            }
            }

  LINE(785);
        {
        CLUREF T_2_1;
        err = clu_find_type_instance(opers, tcount, ownreqs, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        tops.num = T_2_1.num;
        }

  LINE(786);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        T_2_1.num = oparms.num;
        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(788);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                err = stringOPconcat(tname, STR__137op_137, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_1, opname, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_2, STR__137ownreqs, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                err = symOPget_address(T_3_3, &T_3_4);
                if (err != ERR_ok) goto ex_0;
                opownreqs.num = T_3_4.num;
                }
                }

  LINE(790);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                err = stringOPconcat(tname, STR_OP, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_3_1, opname, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = symOPget_address(T_3_2, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                opaddr.num = T_3_3.num;
                }
                }

  LINE(791);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.num = oparms.num;
                T_3_2.num = T_3_1.vec->size;
                ocount.num = T_3_2.num;
                }
                }

  LINE(792);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.num = tcount.num + ocount.num;
             if ((T_3_1.num > 0 && tcount.num < 0 && ocount.num < 0) || 
                 (T_3_1.num < 0 && tcount.num > 0 && ocount.num > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            err = clu_find_typeop_instance(opers, opaddr, T_3_1, tcount, opownreqs, ownreqs, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            oops.num = T_3_2.num;
            }
            }
            }/* end if */
        }
    else {

  LINE(796);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.num = oparms.vec->size;
        T_2_2.num = (T_2_1.num == 0)? true : false;
        T_2_3.num = T_2_2.num ^ 1;
        if (T_2_3.num == true) {

  LINE(798);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                err = stringOPconcat(opname, STR__137ownreqs, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = symOPget_address(T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                opownreqs.num = T_3_2.num;
                }
                }

  LINE(799);
            {
                {CLUREF T_3_1;
                err = symOPget_address(opname, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                opaddr.num = T_3_1.num;
                }
                }

  LINE(800);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.num = oparms.num;
                T_3_2.num = T_3_1.vec->size;
                ocount.num = T_3_2.num;
                }
                }

  LINE(801);
            {
            CLUREF T_3_1;
            err = clu_find_prociter_instance(opaddr, ocount, opownreqs, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            oops.num = T_3_1.num;
            }
            }
            }/* end if */
        }}/* end if */

  LINE(804);
    {
    {
    ret_1->num = tops.num;
    }
    {
    ret_2->num = oops.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 inst ****/


/**** BEGIN CLUSTER iter_yield ****/

extern errcode debugopget_nth_op();
extern errcode recordOPget_7();
extern errcode inst_from_name();
extern errcode print_result();
static int iter_yield_own_init = 1;
OWN_req iter_yield_ownreqs = {0,0};
CLUREF iter_yieldOPvalops;
CLUREF iter_yieldOPtparms;
CLUREF iter_yieldOPoparms;
CLUREF iter_yieldOPinfo;
CLUREF iter_yieldOPpo;

/**** BEGIN PROCEDURE setup ****/

errcode iter_yieldOPsetup(val_ops, t_parms, o_parms, inf, pstr)
CLUREF val_ops;
CLUREF t_parms;
CLUREF o_parms;
CLUREF inf;
CLUREF pstr;
    {
    errcode err;
    errcode ecode2;
    enter_proc(815);

  LINE(816);
    {
    iter_yieldOPvalops.num = val_ops.num;
    }

  LINE(817);
    {
    iter_yieldOPtparms.num = t_parms.num;
    }

  LINE(818);
    {
    iter_yieldOPoparms.num = o_parms.num;
    }

  LINE(819);
    {
    iter_yieldOPinfo.num = inf.num;
    }

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

/**** END PROCEDURE setup ****/


/**** BEGIN PROCEDURE print ****/

errcode iter_yieldOPprint(o, nth)
CLUREF o;
CLUREF nth;
    {
    errcode err;
    errcode ecode2;
    CLUREF ithops;
    CLUREF ops_name;
    enter_proc(823);

  LINE(824);
    {
        {CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = iter_yieldOPinfo.vec->data[6];
        err = debugopget_nth_op(T_2_1, nth, iter_yieldOPinfo, CLU_0, CLU_0, &T_2_2);
        if (err != ERR_ok) goto ex_1;
        ithops.num = T_2_2.num;
        }
        }
        goto end_1;
        ex_1:
            if ((err == ERR_not_found)) {
            CLUREF ops_name;
            ops_name.num = elist[0].num;

  LINE(826);
                {
                CLUREF T_2_1;
                CLUREF T_2_2;
                err = inst_from_name(ops_name, iter_yieldOPinfo, iter_yieldOPtparms, iter_yieldOPoparms, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                T_2_2.num = T_2_1.num;
                ithops.num = T_2_2.num;
                }
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(830);
    {
    err = print_result(iter_yieldOPpo, o, ithops);
    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 print ****/

typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[2];
} iter_yield_OPS;

CLU_proc iter_yield_oe_print = {{0,0,0,0}, iter_yieldOPprint, 0};
CLU_proc iter_yield_oe_setup = {{0,0,0,0}, iter_yieldOPsetup, 0};

iter_yield_OPS iter_yield_ops_actual = {2, (OWNPTR)&iter_yield_own_init, (OWNPTR)&iter_yield_own_init, {
    {&iter_yield_oe_print, "print"},
    {&iter_yield_oe_setup, "setup"}}};

struct OPS *iter_yield_ops = (struct OPS *)&iter_yield_ops_actual;

/**** END CLUSTER iter_yield ****/

extern errcode pstreamOPstart();
extern errcode debugopprint_val2();
extern errcode pstreamOPstop();
extern errcode pstreamOPpause();
CLUREF STR__072_040;
static int print_result_own_init = 0;

/**** BEGIN PROCEDURE print_result ****/

errcode print_result(pst, val, p)
CLUREF pst;
CLUREF val;
CLUREF p;
    {
    errcode err;
    errcode ecode2;
        if (print_result_own_init == 0) {
        stringOPcons(": ", CLU_1, CLU_2, &STR__072_040);
        stringOPcons("", CLU_1, CLU_0, &STR_);
        print_result_own_init = 1;
    }
    enter_proc(835);

  LINE(836);
    {
    CLUREF T_1_1;
    err = pstreamOPstart(pst, STR__072_040, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(837);
    {
    err = debugopprint_val2(pst, val, p);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(838);
    {
    CLUREF T_1_1;
    err = pstreamOPstop(pst, STR_, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(839);
    {
    CLUREF T_1_1;
    err = pstreamOPpause(pst, STR_, &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 print_result ****/


extern errcode stringOPempty();
extern errcode file_nameOPget_other();
extern errcode file_nameOPget_suffix();
extern errcode file_nameOPcreate();
extern errcode file_nameOPget_dir();
extern errcode file_nameOPget_name();
CLUREF STR__056;
static int extend_file_name_own_init = 0;

/**** BEGIN PROCEDURE extend_file_name ****/

errcode extend_file_name(fn, ext, ret_1)
CLUREF fn;
CLUREF ext;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (extend_file_name_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons(".", CLU_1, CLU_1, &STR__056);
        extend_file_name_own_init = 1;
    }
    enter_proc(845);

  LINE(846);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = file_nameOPget_other(fn, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = stringOPempty(T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    if (T_1_2.num == true) {

  LINE(847);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = file_nameOPget_suffix(fn, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPempty(T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        if (T_2_2.num == true) {

  LINE(848);
            {
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            err = file_nameOPget_dir(fn, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = file_nameOPget_name(fn, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = file_nameOPcreate(T_3_1, T_3_2, ext, STR_, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            ret_1->num = T_3_3.num;
            }
            {signal (ERR_ok);}}
            }
        else {

  LINE(850);
            {
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            CLUREF T_3_4;
            err = file_nameOPget_dir(fn, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = file_nameOPget_name(fn, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            err = file_nameOPget_suffix(fn, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            err = file_nameOPcreate(T_3_1, T_3_2, T_3_3, ext, &T_3_4);
            if (err != ERR_ok) goto ex_0;
            ret_1->num = T_3_4.num;
            }
            {signal (ERR_ok);}}
            }}/* end if */
        }
    else {

  LINE(853);
        {
        {
        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 = file_nameOPget_dir(fn, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = file_nameOPget_name(fn, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        err = file_nameOPget_other(fn, &T_2_3);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_3, STR__056, &T_2_4);
        if (err != ERR_ok) goto ex_0;
        err = stringOPconcat(T_2_4, ext, &T_2_5);
        if (err != ERR_ok) goto ex_0;
        err = file_nameOPcreate(T_2_1, T_2_2, STR_, T_2_5, &T_2_6);
        if (err != ERR_ok) goto ex_0;
        ret_1->num = T_2_6.num;
        }
        {signal (ERR_ok);}}
        }}/* end if */
    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 extend_file_name ****/

