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

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


/**** BEGIN CLUSTER c_env ****/

extern errcode ceOPget_unknown_type();
extern errcode ceOPget_proc_();
extern errcode arrayOPpredict();
extern errcode arrayOPnew();
extern errcode sequenceOPnew();
extern errcode ceOPget_str_type();
extern errcode recordOPset_2();
extern errcode recordOPset_14();
extern errcode arrayOPtrim();
extern errcode recordOPget_17();
extern errcode recordOPget_13();
extern errcode recordOPget_23();
extern errcode recordOPget_10();
extern errcode recordOPget_21();
extern errcode recordOPget_15();
extern errcode recordOPset_20();
extern errcode recordOPset_12();
extern errcode recordOPset_9();
extern errcode recordOPset_8();
extern errcode recordOPset_18();
extern errcode recordOPset_4();
extern errcode recordOPset_19();
extern errcode recordOPget_6();
extern errcode recordOPset_7();
extern errcode recordOPget_3();
extern errcode recordOPset_22();
extern errcode recordOPset_5();
extern errcode recordOPget_22();
extern errcode recordOPget_12();
extern errcode recordOPset_1();
extern errcode intOPadd();
extern errcode recordOPget_4();
extern errcode c_envOPbegin_scope();
extern errcode intOPsub();
extern errcode intOPequal();
extern errcode c_envOPend_scope();
extern errcode recordOPget_19();
extern errcode arrayOPaddh();
extern errcode arrayOPsize();
extern errcode arrayOPremh();
extern errcode intOPfrom_to_by();
extern errcode arrayOPhigh();
extern errcode arrayOPfetch();
extern errcode idnOPset_kind();
extern errcode recordOPget_1();
extern errcode recordOPget_2();
extern errcode recordOPget_20();
extern errcode c_envOPpush_equates();
extern errcode c_envOPprocess();
extern errcode recordOPget_14();
extern errcode sequenceOPelements();
extern errcode oneofOPmake_2();
extern errcode idnOPget_kind();
extern errcode equateOPget_idn();
extern errcode equateOPget_line();
extern errcode oneofOPmake_1();
extern errcode equateOPget_val();
extern errcode c_envOPdo_entry();
extern errcode intOPgt();
extern errcode ceOPget_type();
extern errcode ceOPget_null_type();
extern errcode ceOPget_bool_type();
extern errcode ceOPget_int_type();
extern errcode ceOPget_real_type();
extern errcode ceOPget_char_type();
extern errcode ceOPget_type_type();
extern errcode ceOPget_any_type();
extern errcode ceOPget_cvt_type();
extern errcode recordOPget_5();
extern errcode ceOPget_array_();
extern errcode ceOPget_record_();
extern errcode ceOPget_oneof_();
extern errcode ceOPget_seq_();
extern errcode ceOPget_struct_();
extern errcode ceOPget_variant_();
extern errcode ceOPget_iter_();
extern errcode ceOPadd_du();
extern errcode recordOPget_16();
extern errcode recordOPset_16();
extern errcode idnOPcreate();
extern errcode duOPget_unique();
extern errcode oneofOPmake_8();
extern errcode duOPget_common();
extern errcode recordOPset_23();
extern errcode arrayOPcopy1();
extern errcode boolOPnot();
extern errcode typespecOPequal();
extern errcode duOPequal();
extern errcode arrayOPempty();
extern errcode arrayOPtop();
extern errcode arrayOPstore();
extern errcode recordOPget_18();
extern errcode c_envOPoutput();
extern errcode c_envOPoutput1();
extern errcode sequenceOPaddh();
extern errcode recordOPget_9();
extern errcode streamOPputs();
extern errcode streamOPputl();
extern errcode get_type_print();
extern errcode recordOPget_8();
extern errcode intOPunparse();
extern errcode streamOPputc();
extern errcode ceOPreset_entries();
extern errcode exprOPcreate();
extern errcode oneofOPmake_4();
extern errcode sequenceOPindexes();
extern errcode sequenceOPfetch();
extern errcode c_envOPpush_parm();
extern errcode c_envOPget_type();
extern errcode oneofOPmake_5();
extern errcode oneofOPmake_25();
extern errcode oneofOPmake_13();
extern errcode c_envOPget_bad_expr();
extern errcode ceOPlocal();
extern errcode idnOPget_str();
extern errcode oneofOPis_8();
extern errcode c_envOPerr();
extern errcode c_envOPdeclare();
extern errcode oneofOPmake_9();
extern errcode arrayOPelements();
extern errcode idnOPequal();
extern errcode recordOPget_7();
extern errcode c_envOPlookup2();
extern errcode c_equateval();
extern errcode c_parm_type();
extern errcode ceOPlookup();
extern errcode xlibOPget_du();
extern errcode c_get_idnkind();
extern errcode duOPget_mspecs();
extern errcode arrayOPaddl();
extern errcode c_envOPadd_cond();
extern errcode recordOPget_11();
extern errcode arrayOPreml();
extern errcode stringOPequal();
extern errcode c_when_assn();
extern errcode oneofOPis_1();
extern errcode c_resig_catch();
CLUREF STR_failure;
CLUREF STR__040of_040wrong_040type;
CLUREF STR__011expected_040type_072_040;
CLUREF STR__011actual_040type_072_040;
CLUREF STR__044;
CLUREF STR__040invocation_040evaluates_040to_040_047;
CLUREF STR__047_040exception;
CLUREF STR_redeclaration_040of_040_047;
CLUREF STR__047;
CLUREF STR_declaration_040of_040external_040_047;
CLUREF STR__047_040used_040on_040line_040;
CLUREF STR_recursive_040use_040of_040identifier_040_047;
CLUREF STR__047_040declared_040in_040line_040;
CLUREF STR_use_040of_040_047;
CLUREF STR__047_040outside_040scope_040of_040declaration;
CLUREF STR_exit_040_047;
CLUREF STR__047_040caught_040by_040OTHERS_040arm;
CLUREF STR__047_040not_040caught;
static int c_env_own_init = 0;
OWN_req c_env_ownreqs = {0,0};
errcode c_env_own_init_proc()
{
    errcode err;
    enter_own_init_proc();
        if (c_env_own_init == 0) {
        stringOPcons("failure", CLU_1, CLU_7, &STR_failure);
        stringOPcons(" of wrong type", CLU_1, CLU_14, &STR__040of_040wrong_040type);
        stringOPcons("\texpected type: ", CLU_1, CLU_16, &STR__011expected_040type_072_040);
        stringOPcons("\tactual type: ", CLU_1, CLU_14, &STR__011actual_040type_072_040);
        stringOPcons("$", CLU_1, CLU_1, &STR__044);
        stringOPcons(" invocation evaluates to \'", CLU_1, CLU_26, &STR__040invocation_040evaluates_040to_040_047);
        stringOPcons("\' exception", CLU_1, CLU_11, &STR__047_040exception);
        stringOPcons("redeclaration of \'", CLU_1, CLU_18, &STR_redeclaration_040of_040_047);
        stringOPcons("\'", CLU_1, CLU_1, &STR__047);
        stringOPcons("declaration of external \'", CLU_1, CLU_25, &STR_declaration_040of_040external_040_047);
        stringOPcons("\' used on line ", CLU_1, CLU_15, &STR__047_040used_040on_040line_040);
        stringOPcons("recursive use of identifier \'", CLU_1, CLU_29, &STR_recursive_040use_040of_040identifier_040_047);
        stringOPcons("\' declared in line ", CLU_1, CLU_19, &STR__047_040declared_040in_040line_040);
        stringOPcons("use of \'", CLU_1, CLU_8, &STR_use_040of_040_047);
        stringOPcons("\' outside scope of declaration", CLU_1, CLU_30, &STR__047_040outside_040scope_040of_040declaration);
        stringOPcons("exit \'", CLU_1, CLU_6, &STR_exit_040_047);
        stringOPcons("\' caught by OTHERS arm", CLU_1, CLU_22, &STR__047_040caught_040by_040OTHERS_040arm);
        stringOPcons("\' not caught", CLU_1, CLU_12, &STR__047_040not_040caught);
        c_env_own_init = 1;
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(err); {signal(ERR_failure);}
        }
    }

static int c_envOPcreate_own_init = 0;

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

errcode c_envOPcreate(comp, errst, ret_1)
CLUREF comp;
CLUREF errst;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF ut;
    CLUREF gen;
        if (c_envOPcreate_own_init == 0) {
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        c_envOPcreate_own_init = 1;
    }
    enter_proc(144);

  LINE(145);
    {
        {CLUREF T_1_1;
        err = ceOPget_unknown_type(comp, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        ut.num = T_1_1.num;
        }
        }

  LINE(146);
    {
        {CLUREF T_1_1;
        err = ceOPget_proc_(comp, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        gen.num = T_1_1.num;
        }
        }

  LINE(147);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    CLUREF T_1_6;
    CLUREF T_1_7;
    CLUREF T_1_8;
    CLUREF T_1_9;
    CLUREF T_1_10;
    CLUREF T_1_11;
    CLUREF T_1_12;
    CLUREF T_1_13;
    CLUREF T_1_14;
    CLUREF T_1_15;
    CLUREF T_1_16;
    CLUREF T_1_17;
    CLUREF T_1_18;
    CLUREF T_1_19;
    RecordAlloc(23, T_1_1);
    T_1_1.vec->data[1]  = comp.num;
    T_1_1.vec->data[11]  = false;
    T_1_1.vec->data[13]  = 0;
    err = arrayOPpredict(CLU_1, CLU_20, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_1.vec->data[16]  = T_1_2.num;
    T_1_3.num = 300;
    err = arrayOPpredict(CLU_1, T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    T_1_1.vec->data[12]  = T_1_4.num;
    err = arrayOPnew(&T_1_5);
    if (err != ERR_ok) goto ex_0;
    T_1_1.vec->data[22]  = T_1_5.num;
    err = arrayOPpredict(CLU_1, CLU_10, &T_1_6);
    if (err != ERR_ok) goto ex_0;
    T_1_1.vec->data[9]  = T_1_6.num;
    err = arrayOPpredict(CLU_1, CLU_10, &T_1_7);
    if (err != ERR_ok) goto ex_0;
    T_1_1.vec->data[20]  = T_1_7.num;
    T_1_1.vec->data[21]  = ut.num;
    T_1_1.vec->data[4]  = ut.num;
    RecordAlloc(4, T_1_8);
    T_1_8.vec->data[1]  = gen.num;
    err = sequenceOPnew(&T_1_9);
    if (err != ERR_ok) goto ex_0;
    T_1_8.vec->data[0]  = T_1_9.num;
    err = sequenceOPnew(&T_1_10);
    if (err != ERR_ok) goto ex_0;
    T_1_8.vec->data[3]  = T_1_10.num;
    err = sequenceOPnew(&T_1_11);
    if (err != ERR_ok) goto ex_0;
    T_1_8.vec->data[2]  = T_1_11.num;
    T_1_1.vec->data[0]  = T_1_8.num;
    T_1_1.vec->data[15]  = gen.num;
    err = arrayOPpredict(CLU_1, CLU_5, &T_1_12);
    if (err != ERR_ok) goto ex_0;
    T_1_1.vec->data[14]  = T_1_12.num;
    T_1_1.vec->data[19]  = 0;
    T_1_1.vec->data[7]  = 0;
    T_1_1.vec->data[8]  = errst.num;
    T_1_1.vec->data[17]  = 2;
    T_1_1.vec->data[3]  = 0;
    T_1_1.vec->data[18]  = 0;
    T_1_13.num = 200;
    err = arrayOPpredict(CLU_1, T_1_13, &T_1_14);
    if (err != ERR_ok) goto ex_0;
    T_1_1.vec->data[5]  = T_1_14.num;
    T_1_1.vec->data[6]  = false;
    T_1_15.num = -5;
    err = arrayOPpredict(CLU_1, T_1_15, &T_1_16);
    if (err != ERR_ok) goto ex_0;
    T_1_1.vec->data[2]  = T_1_16.num;
    RecordAlloc(2, T_1_17);
    T_1_17.vec->data[0]  = STR_failure.num;
    sequenceOPnew2(CLU_1, &T_1_18);
    err = ceOPget_str_type(comp, &T_1_19);
    if (err != ERR_ok) goto ex_0;
    T_1_18.vec->data[0] = T_1_19.num;
    T_1_17.vec->data[1]  = T_1_18.num;
    T_1_1.vec->data[10]  = T_1_17.num;
    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 reset ****/

errcode c_envOPreset(e, comp, errst)
CLUREF e;
CLUREF comp;
CLUREF errst;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(176);

  LINE(177);
    {
    e.vec->data[1]  = comp.num;
    }

  LINE(178);
    {
    e.vec->data[13]  = 0;
    }

  LINE(179);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[16];
    err = arrayOPtrim(T_1_1, CLU_1, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(180);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[12];
    err = arrayOPtrim(T_1_1, CLU_1, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(181);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[22];
    err = arrayOPtrim(T_1_1, CLU_1, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(182);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[9];
    err = arrayOPtrim(T_1_1, CLU_1, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(183);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[20];
    err = arrayOPtrim(T_1_1, CLU_1, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(184);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[14];
    err = arrayOPtrim(T_1_1, CLU_1, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(185);
    {
    e.vec->data[19]  = 0;
    }

  LINE(186);
    {
    e.vec->data[11]  = false;
    }

  LINE(187);
    {
    e.vec->data[8]  = errst.num;
    }

  LINE(188);
    {
    e.vec->data[7]  = 0;
    }

  LINE(189);
    {
    e.vec->data[17]  = 2;
    }

  LINE(190);
    {
    e.vec->data[3]  = 0;
    }

  LINE(191);
    {
    e.vec->data[18]  = 0;
    }

  LINE(192);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[5];
    err = arrayOPtrim(T_1_1, CLU_1, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(193);
    {
    e.vec->data[6]  = false;
    }

  LINE(194);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[2];
    err = arrayOPtrim(T_1_1, CLU_1, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(195);
    {
    CLUREF T_1_1;
    err = ceOPget_unknown_type(comp, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    e.vec->data[21]  = T_1_1.num;
    }

  LINE(196);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[21];
    e.vec->data[4]  = T_1_1.num;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

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


/**** BEGIN PROCEDURE hack ****/

errcode c_envOPhack(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(199);

  LINE(200);
    {
    e.vec->data[11]  = true;
    }

  LINE(201);
    {
    e.vec->data[19]  = 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 hack ****/


/**** BEGIN PROCEDURE unhack ****/

errcode c_envOPunhack(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(204);

  LINE(205);
    {
    e.vec->data[11]  = false;
    }

  LINE(206);
    {
    e.vec->data[19]  = 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 unhack ****/


/**** BEGIN PROCEDURE is_hacked ****/

errcode c_envOPis_hacked(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(209);

  LINE(210);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[11];
    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 is_hacked ****/


/**** BEGIN PROCEDURE set_line ****/

errcode c_envOPset_line(e, line)
CLUREF e;
CLUREF line;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(213);

  LINE(214);
    {
    e.vec->data[13]  = line.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 set_line ****/


/**** BEGIN PROCEDURE new_apply ****/

errcode c_envOPnew_apply(e, at)
CLUREF e;
CLUREF at;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(217);

  LINE(218);
    {
    e.vec->data[0]  = at.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 new_apply ****/


/**** BEGIN PROCEDURE begin_specs ****/

errcode c_envOPbegin_specs(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(221);

  LINE(222);
    {
    e.vec->data[17]  = 0;
    }

  LINE(223);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[3];
    T_1_2.num = T_1_1.num + 1;
     if ((T_1_2.num > 0 && T_1_1.num < 0 && 1 < 0) || 
         (T_1_2.num < 0 && T_1_1.num > 0 && 1 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    e.vec->data[3]  = T_1_2.num;
    }

  LINE(224);
    {
    err = c_envOPbegin_scope(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 begin_specs ****/


/**** BEGIN PROCEDURE end_specs ****/

errcode c_envOPend_specs(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(227);

  LINE(228);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[3];
    T_1_2.num = T_1_1.num - 1;
     if ((T_1_2.num >= 0 && T_1_1.num < 0 && (-1) < 0) || 
         (T_1_2.num <= 0 && T_1_1.num > 0 && (-1) > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    e.vec->data[3]  = T_1_2.num;
    }

  LINE(229);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[3];
    T_1_2.num = (T_1_1.num == 0)? true : false;
    if (T_1_2.num == true) {
        {
        e.vec->data[17]  = 2;
        }
        }
        }/* end if */

  LINE(230);
    {
    err = c_envOPend_scope(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 end_specs ****/


/**** BEGIN PROCEDURE begin_recheck ****/

errcode c_envOPbegin_recheck(e, types)
CLUREF e;
CLUREF types;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(233);

  LINE(234);
    {
    if (types.num == true) {

  LINE(235);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = e.vec->data[18];
        T_2_2.num = T_2_1.num + 1;
         if ((T_2_2.num > 0 && T_2_1.num < 0 && 1 < 0) || 
             (T_2_2.num < 0 && T_2_1.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        e.vec->data[18]  = T_2_2.num;
        }
        }
        }/* end if */

  LINE(236);
    {
    e.vec->data[17]  = 1;
    }

  LINE(237);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[3];
    T_1_2.num = T_1_1.num + 1;
     if ((T_1_2.num > 0 && T_1_1.num < 0 && 1 < 0) || 
         (T_1_2.num < 0 && T_1_1.num > 0 && 1 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    e.vec->data[3]  = T_1_2.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 begin_recheck ****/


/**** BEGIN PROCEDURE end_recheck ****/

errcode c_envOPend_recheck(e, types)
CLUREF e;
CLUREF types;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(240);

  LINE(241);
    {
    if (types.num == true) {

  LINE(242);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = e.vec->data[18];
        T_2_2.num = T_2_1.num - 1;
         if ((T_2_2.num >= 0 && T_2_1.num < 0 && (-1) < 0) || 
             (T_2_2.num <= 0 && T_2_1.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        e.vec->data[18]  = T_2_2.num;
        }
        }
        }/* end if */

  LINE(243);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[3];
    T_1_2.num = T_1_1.num - 1;
     if ((T_1_2.num >= 0 && T_1_1.num < 0 && (-1) < 0) || 
         (T_1_2.num <= 0 && T_1_1.num > 0 && (-1) > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    e.vec->data[3]  = T_1_2.num;
    }

  LINE(244);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[3];
    T_1_2.num = (T_1_1.num == 0)? true : false;
    if (T_1_2.num == true) {
        {
        e.vec->data[17]  = 2;
        }
        }
        }/* 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 end_recheck ****/


/**** BEGIN PROCEDURE begin_scope ****/

errcode c_envOPbegin_scope(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(247);

  LINE(248);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = e.vec->data[16];
    T_1_2.num = e.vec->data[12];
    T_1_3.num = T_1_2.array->ext_size;
    {
    if ((T_1_1.array->int_low + T_1_1.array->ext_size + 1) < T_1_1.array->int_size) {
        T_1_1.array->store->data[T_1_1.array->int_low + T_1_1.array->ext_size] = T_1_3.num;
        T_1_1.array->ext_size++; T_1_1.array->ext_high++;}
    else {
        err = arrayOPaddh(T_1_1, T_1_3);
        if (err != ERR_ok) goto ex_0;}
    }
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE begin_scope ****/


/**** BEGIN PROCEDURE end_scope ****/

errcode c_envOPend_scope(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
    CLUREF i;
    CLUREF stack;
    CLUREF j;
    CLUREF ent;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(251);

  LINE(252);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = e.vec->data[16];
        err = arrayOPremh(T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        i.num = T_1_2.num;
        }
        }

  LINE(253);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[12];
        stack.num = T_1_1.num;
        }
        }

  LINE(254);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
        T_1_1.num = stack.array->ext_high;
        T_1_2.num = i.num + 1;
         if ((T_1_2.num > 0 && i.num < 0 && 1 < 0) || 
             (T_1_2.num < 0 && i.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        T_1_4.num = T_1_2.num;
        T_1_5.num = -1;
        for (T_1_3.num = T_1_1.num; ((T_1_5.num == 0) || ((T_1_5.num > 0)? (T_1_3.num <= T_1_4.num) : (T_1_3.num >= T_1_4.num))); T_1_3.num += T_1_5.num) {
            j.num = T_1_3.num;

  LINE(255);
            {
                {CLUREF T_2_1;
                if (j.num < stack.array->ext_low || j.num > stack.array->ext_high ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_2_1.num = stack.array->store->data[j.num - stack.array->ext_low + stack.array->int_low];
                ent.num = T_2_1.num;
                }
                }

  LINE(256);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ent.vec->data[0];
            T_2_2.num = ent.vec->data[1];
            err = idnOPset_kind(T_2_1, T_2_2);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_1:;

  LINE(258);
    {
    err = arrayOPtrim(stack, CLU_1, i);
    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 end_scope ****/


/**** BEGIN PROCEDURE begin_while ****/

errcode c_envOPbegin_while(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(261);

  LINE(262);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[14];
    {
    if ((T_1_1.array->int_low + T_1_1.array->ext_size + 1) < T_1_1.array->int_size) {
        T_1_1.array->store->data[T_1_1.array->int_low + T_1_1.array->ext_size] = 0;
        T_1_1.array->ext_size++; T_1_1.array->ext_high++;}
    else {
        err = arrayOPaddh(T_1_1, 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 begin_while ****/


/**** BEGIN PROCEDURE begin_for ****/

errcode c_envOPbegin_for(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(265);

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


/**** BEGIN PROCEDURE end_loop ****/

errcode c_envOPend_loop(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(269);

  LINE(270);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = e.vec->data[14];
    err = arrayOPremh(T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_3.num = (T_1_2.num == 2)? true : false;
    ret_1->num = T_1_3.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 end_loop ****/


/**** BEGIN PROCEDURE begin_type_scope ****/

errcode c_envOPbegin_type_scope(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(273);

  LINE(274);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[19];
    T_1_2.num = T_1_1.num + 1;
     if ((T_1_2.num > 0 && T_1_1.num < 0 && 1 < 0) || 
         (T_1_2.num < 0 && T_1_1.num > 0 && 1 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    e.vec->data[19]  = T_1_2.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 begin_type_scope ****/


/**** BEGIN PROCEDURE end_type_scope ****/

errcode c_envOPend_type_scope(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(277);

  LINE(278);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[19];
    T_1_2.num = T_1_1.num - 1;
     if ((T_1_2.num >= 0 && T_1_1.num < 0 && (-1) < 0) || 
         (T_1_2.num <= 0 && T_1_1.num > 0 && (-1) > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    e.vec->data[19]  = T_1_2.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 end_type_scope ****/


/**** BEGIN PROCEDURE equates ****/

errcode c_envOPequates(e, list)
CLUREF e;
CLUREF list;
    {
    errcode err;
    errcode ecode2;
    CLUREF size;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(281);

  LINE(282);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = e.vec->data[5];
        T_1_2.num = T_1_1.array->ext_size;
        size.num = T_1_2.num;
        }
        }

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

  LINE(284);
    {
    err = c_envOPprocess(e, size);
    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 equates ****/


/**** BEGIN PROCEDURE eval_parms ****/

errcode c_envOPeval_parms(e, parms, list)
CLUREF e;
CLUREF parms;
CLUREF list;
    {
    errcode err;
    errcode ecode2;
    CLUREF idns;
    CLUREF stack;
    CLUREF line;
    CLUREF size;
    CLUREF d;
    CLUREF eq;
    CLUREF i;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(287);

  LINE(288);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[12];
        idns.num = T_1_1.num;
        }
        }

  LINE(289);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[5];
        stack.num = T_1_1.num;
        }
        }

  LINE(290);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[13];
        line.num = T_1_1.num;
        }
        }

  LINE(291);
    {
    err = c_envOPpush_equates(e, list);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(292);
    {
        {CLUREF T_1_1;
        T_1_1.num = stack.array->ext_size;
        size.num = T_1_1.num;
        }
        }

  LINE(293);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = parms.vec->size; 
        T_1_3 = parms;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            d.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(294);
            {
                {CLUREF T_2_1;
                CLUREF T_2_2;
                T_2_1.num = d.vec->data[1];
                CellAlloc(2, T_2_1.num, T_2_2);
                eq.num = T_2_2.num;
                }
                }

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

  LINE(296);
                    {
                    CLUREF T_3_1;
                    RecordAlloc(4, T_3_1);
                    T_3_1.vec->data[2]  = i.num;
                    T_3_1.vec->data[0]  = 0;
                    T_3_1.vec->data[3]  = line.num;
                    T_3_1.vec->data[1]  = eq.num;
                    {
                    if ((stack.array->int_low + stack.array->ext_size + 1) < stack.array->int_size) {
                        stack.array->store->data[stack.array->int_low + stack.array->ext_size] = T_3_1.num;
                        stack.array->ext_size++; stack.array->ext_high++;}
                    else {
                        err = arrayOPaddh(stack, T_3_1);
                        if (err != ERR_ok) goto ex_0;}
                    }
                    }

  LINE(300);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    RecordAlloc(2, T_3_1);
                    T_3_1.vec->data[0]  = i.num;
                    err = idnOPget_kind(i, &T_3_2);
                    if (err != ERR_ok) goto ex_0;
                    T_3_1.vec->data[1]  = T_3_2.num;
                    {
                    if ((idns.array->int_low + idns.array->ext_size + 1) < idns.array->int_size) {
                        idns.array->store->data[idns.array->int_low + idns.array->ext_size] = T_3_1.num;
                        idns.array->ext_size++; idns.array->ext_high++;}
                    else {
                        err = arrayOPaddh(idns, T_3_1);
                        if (err != ERR_ok) goto ex_0;}
                    }
                    }
                }
            }
            end_inline_for_2:;
        }
    }
    end_inline_for_1:;

  LINE(304);
    {
    err = c_envOPprocess(e, size);
    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 eval_parms ****/


/**** BEGIN PROCEDURE eval_equates ****/

errcode c_envOPeval_equates(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(307);

  LINE(308);
    {
    err = c_envOPprocess(e, 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 eval_equates ****/


/**** BEGIN PROCEDURE push_equates ****/

errcode c_envOPpush_equates(e, list)
CLUREF e;
CLUREF list;
    {
    errcode err;
    errcode ecode2;
    CLUREF idns;
    CLUREF stack;
    CLUREF eq;
    CLUREF i;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(311);

  LINE(312);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[12];
        idns.num = T_1_1.num;
        }
        }

  LINE(313);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[5];
        stack.num = T_1_1.num;
        }
        }

  LINE(314);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = list.vec->size; 
        T_1_3 = list;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            eq.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(315);
            {
                {CLUREF T_2_1;
                err = equateOPget_idn(eq, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                i.num = T_2_1.num;
                }
                }

  LINE(316);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            RecordAlloc(4, T_2_1);
            T_2_1.vec->data[2]  = i.num;
            T_2_1.vec->data[0]  = 0;
            err = equateOPget_line(eq, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            T_2_1.vec->data[3]  = T_2_2.num;
            err = equateOPget_val(eq, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            CellAlloc(1, T_2_3.num, T_2_4);
            T_2_1.vec->data[1]  = T_2_4.num;
            {
            if ((stack.array->int_low + stack.array->ext_size + 1) < stack.array->int_size) {
                stack.array->store->data[stack.array->int_low + stack.array->ext_size] = T_2_1.num;
                stack.array->ext_size++; stack.array->ext_high++;}
            else {
                err = arrayOPaddh(stack, T_2_1);
                if (err != ERR_ok) goto ex_0;}
            }
            }

  LINE(320);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            RecordAlloc(2, T_2_1);
            T_2_1.vec->data[0]  = i.num;
            err = idnOPget_kind(i, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            T_2_1.vec->data[1]  = T_2_2.num;
            {
            if ((idns.array->int_low + idns.array->ext_size + 1) < idns.array->int_size) {
                idns.array->store->data[idns.array->int_low + idns.array->ext_size] = T_2_1.num;
                idns.array->ext_size++; idns.array->ext_high++;}
            else {
                err = arrayOPaddh(idns, T_2_1);
                if (err != ERR_ok) goto ex_0;}
            }
            }
        }
    }
    end_inline_for_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE push_equates ****/


/**** BEGIN PROCEDURE process ****/

errcode c_envOPprocess(e, size)
CLUREF e;
CLUREF size;
    {
    errcode err;
    errcode ecode2;
    CLUREF stack;
    CLUREF i;
    CLUREF ent;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(325);

  LINE(326);
    {
    e.vec->data[6]  = true;
    }

  LINE(327);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[19];
    T_1_2.num = T_1_1.num + 1;
     if ((T_1_2.num > 0 && T_1_1.num < 0 && 1 < 0) || 
         (T_1_2.num < 0 && T_1_1.num > 0 && 1 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    e.vec->data[19]  = T_1_2.num;
    }

  LINE(328);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[5];
        stack.num = T_1_1.num;
        }
        }

  LINE(329);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
        T_1_1.num = size.num + 1;
         if ((T_1_1.num > 0 && size.num < 0 && 1 < 0) || 
             (T_1_1.num < 0 && size.num > 0 && 1 > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        T_1_2.num = stack.array->ext_size;
        T_1_4.num = T_1_2.num;
        T_1_5.num = 1;
        for (T_1_3.num = T_1_1.num; ((T_1_5.num == 0) || ((T_1_5.num > 0)? (T_1_3.num <= T_1_4.num) : (T_1_3.num >= T_1_4.num))); T_1_3.num += T_1_5.num) {
            i.num = T_1_3.num;

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

  LINE(331);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ent.vec->data[0];
            T_2_2.num = (T_2_1.num == 0)? true : false;
            if (T_2_2.num == true) {

  LINE(332);
                {
                CLUREF T_3_1;
                T_3_1.num = ent.vec->data[3];
                e.vec->data[13]  = T_3_1.num;
                }

  LINE(333);
                {
                err = c_envOPdo_entry(e, ent);
                if (err != ERR_ok) goto ex_0;
                }
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(336);
    {
    err = arrayOPtrim(stack, CLU_1, size);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(337);
    {
    CLUREF T_1_1;
    T_1_1.num = (size.num > 0)? true : false;
    e.vec->data[6]  = T_1_1.num;
    }

  LINE(338);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[19];
    T_1_2.num = T_1_1.num - 1;
     if ((T_1_2.num >= 0 && T_1_1.num < 0 && (-1) < 0) || 
         (T_1_2.num <= 0 && T_1_1.num > 0 && (-1) > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    e.vec->data[19]  = T_1_2.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 process ****/


/**** BEGIN PROCEDURE get_type ****/

errcode c_envOPget_type(e, ta, ret_1)
CLUREF e;
CLUREF ta;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF t;
    CLUREF old;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(341);

  LINE(342);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        T_1_1.num = e.vec->data[1];
        err = ceOPget_type(T_1_1, ta, &T_1_2, &T_1_3);
        if (err != ERR_ok) goto ex_0;
        t.num = T_1_2.num;
        old.num = T_1_3.num;
        }
        }

  LINE(343);
    {
    {
    ret_1->num = t.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 get_type ****/


/**** BEGIN PROCEDURE fix_type ****/

errcode c_envOPfix_type(e, ta, ret_1, ret_2)
CLUREF e;
CLUREF ta;
CLUREF *ret_1;
CLUREF *ret_2;
    {
    errcode err;
    errcode ecode2;
    CLUREF t;
    CLUREF old;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(346);

  LINE(347);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        T_1_1.num = e.vec->data[1];
        err = ceOPget_type(T_1_1, ta, &T_1_2, &T_1_3);
        if (err != ERR_ok) goto ex_0;
        t.num = T_1_2.num;
        old.num = T_1_3.num;
        }
        }

  LINE(348);
    {
    {
    ret_1->num = t.num;
    }
    {
    ret_2->num = old.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 fix_type ****/


/**** BEGIN PROCEDURE get_unknown_type ****/

errcode c_envOPget_unknown_type(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(351);

  LINE(352);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_unknown_type(T_1_1, &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 get_unknown_type ****/


/**** BEGIN PROCEDURE get_null_type ****/

errcode c_envOPget_null_type(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(355);

  LINE(356);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_null_type(T_1_1, &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 get_null_type ****/


/**** BEGIN PROCEDURE get_bool_type ****/

errcode c_envOPget_bool_type(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(359);

  LINE(360);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_bool_type(T_1_1, &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 get_bool_type ****/


/**** BEGIN PROCEDURE get_int_type ****/

errcode c_envOPget_int_type(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(363);

  LINE(364);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_int_type(T_1_1, &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 get_int_type ****/


/**** BEGIN PROCEDURE get_real_type ****/

errcode c_envOPget_real_type(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(367);

  LINE(368);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_real_type(T_1_1, &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 get_real_type ****/


/**** BEGIN PROCEDURE get_char_type ****/

errcode c_envOPget_char_type(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(371);

  LINE(372);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_char_type(T_1_1, &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 get_char_type ****/


/**** BEGIN PROCEDURE get_str_type ****/

errcode c_envOPget_str_type(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(375);

  LINE(376);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_str_type(T_1_1, &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 get_str_type ****/


/**** BEGIN PROCEDURE get_type_type ****/

errcode c_envOPget_type_type(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(379);

  LINE(380);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_type_type(T_1_1, &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 get_type_type ****/


/**** BEGIN PROCEDURE get_any_type ****/

errcode c_envOPget_any_type(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(383);

  LINE(384);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_any_type(T_1_1, &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 get_any_type ****/


/**** BEGIN PROCEDURE get_cvt_type ****/

errcode c_envOPget_cvt_type(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(387);

  LINE(388);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_cvt_type(T_1_1, &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 get_cvt_type ****/


/**** BEGIN PROCEDURE get_up_type ****/

errcode c_envOPget_up_type(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(391);

  LINE(392);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[21];
    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 get_up_type ****/


/**** BEGIN PROCEDURE set_up_type ****/

errcode c_envOPset_up_type(e, t)
CLUREF e;
CLUREF t;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(395);

  LINE(396);
    {
    e.vec->data[21]  = t.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 set_up_type ****/


/**** BEGIN PROCEDURE get_down_type ****/

errcode c_envOPget_down_type(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(399);

  LINE(400);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[4];
    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 get_down_type ****/


/**** BEGIN PROCEDURE set_down_type ****/

errcode c_envOPset_down_type(e, t)
CLUREF e;
CLUREF t;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(403);

  LINE(404);
    {
    e.vec->data[4]  = t.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 set_down_type ****/


/**** BEGIN PROCEDURE get_array_ ****/

errcode c_envOPget_array_(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(407);

  LINE(408);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_array_(T_1_1, &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 get_array_ ****/


/**** BEGIN PROCEDURE get_record_ ****/

errcode c_envOPget_record_(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(411);

  LINE(412);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_record_(T_1_1, &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 get_record_ ****/


/**** BEGIN PROCEDURE get_oneof_ ****/

errcode c_envOPget_oneof_(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(415);

  LINE(416);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_oneof_(T_1_1, &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 get_oneof_ ****/


/**** BEGIN PROCEDURE get_seq_ ****/

errcode c_envOPget_seq_(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(419);

  LINE(420);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_seq_(T_1_1, &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 get_seq_ ****/


/**** BEGIN PROCEDURE get_struct_ ****/

errcode c_envOPget_struct_(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(423);

  LINE(424);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_struct_(T_1_1, &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 get_struct_ ****/


/**** BEGIN PROCEDURE get_variant_ ****/

errcode c_envOPget_variant_(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(427);

  LINE(428);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_variant_(T_1_1, &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 get_variant_ ****/


/**** BEGIN PROCEDURE get_proc_ ****/

errcode c_envOPget_proc_(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(431);

  LINE(432);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_proc_(T_1_1, &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 get_proc_ ****/


/**** BEGIN PROCEDURE get_iter_ ****/

errcode c_envOPget_iter_(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(435);

  LINE(436);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPget_iter_(T_1_1, &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 get_iter_ ****/


/**** BEGIN PROCEDURE get_du ****/

errcode c_envOPget_du(e, d, ret_1)
CLUREF e;
CLUREF d;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(439);

  LINE(440);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[1];
    err = ceOPadd_du(T_1_1, d, &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 get_du ****/


/**** BEGIN PROCEDURE get_mod_gen ****/

errcode c_envOPget_mod_gen(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(443);

  LINE(444);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[15];
    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 get_mod_gen ****/


/**** BEGIN PROCEDURE set_mod_gen ****/

errcode c_envOPset_mod_gen(e, gen)
CLUREF e;
CLUREF gen;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(447);

  LINE(448);
    {
    e.vec->data[15]  = gen.num;
    }

  LINE(449);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    T_1_1.num = e.vec->data[9];
    err = duOPget_unique(gen, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    CellAlloc(8, nil, T_1_3);
    err = idnOPcreate(T_1_2, T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    {
    if ((T_1_1.array->int_low + T_1_1.array->ext_size + 1) < T_1_1.array->int_size) {
        T_1_1.array->store->data[T_1_1.array->int_low + T_1_1.array->ext_size] = T_1_4.num;
        T_1_1.array->ext_size++; T_1_1.array->ext_high++;}
    else {
        err = arrayOPaddh(T_1_1, T_1_4);
        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 set_mod_gen ****/


/**** BEGIN PROCEDURE get_module_name ****/

errcode c_envOPget_module_name(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(452);

  LINE(453);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[15];
    err = duOPget_common(T_1_1, &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 get_module_name ****/


/**** BEGIN PROCEDURE set_varlist ****/

errcode c_envOPset_varlist(e, vars)
CLUREF e;
CLUREF vars;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(456);

  LINE(457);
    {
    e.vec->data[22]  = vars.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 set_varlist ****/


/**** BEGIN PROCEDURE pop_externals ****/

errcode c_envOPpop_externals(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF exts;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(460);

  LINE(461);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = e.vec->data[9];
        err = arrayOPcopy1(T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        exts.num = T_1_2.num;
        }
        }

  LINE(462);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[9];
    err = arrayOPtrim(T_1_1, CLU_1, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(463);
    {
    {
    ret_1->num = exts.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 pop_externals ****/


/**** BEGIN PROCEDURE add_undefined ****/

errcode c_envOPadd_undefined(e, d)
CLUREF e;
CLUREF d;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(466);

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

/**** END PROCEDURE add_undefined ****/


/**** BEGIN PROCEDURE pop_undefined ****/

errcode c_envOPpop_undefined(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF undefs;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(470);

  LINE(471);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = e.vec->data[20];
        err = arrayOPcopy1(T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        undefs.num = T_1_2.num;
        }
        }

  LINE(472);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[20];
    err = arrayOPtrim(T_1_1, CLU_1, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(473);
    {
    {
    ret_1->num = undefs.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 pop_undefined ****/


/**** BEGIN PROCEDURE in_cluster ****/

errcode c_envOPin_cluster(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(476);

  LINE(477);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    T_1_1.num = e.vec->data[21];
    T_1_2.num = e.vec->data[1];
    err = ceOPget_unknown_type(T_1_2, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = typespecOPequal(T_1_1, T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    T_1_5.num = T_1_4.num ^ 1;
    ret_1->num = T_1_5.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 in_cluster ****/


/**** BEGIN PROCEDURE in_proc ****/

errcode c_envOPin_proc(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(480);

  LINE(481);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    CLUREF T_1_6;
    T_1_1.num = e.vec->data[0];
    T_1_2.num = T_1_1.vec->data[1];
    T_1_3.num = e.vec->data[1];
    err = ceOPget_iter_(T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    err = duOPequal(T_1_2, T_1_4, &T_1_5);
    if (err != ERR_ok) goto ex_0;
    T_1_6.num = T_1_5.num ^ 1;
    ret_1->num = T_1_6.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 in_proc ****/


/**** BEGIN PROCEDURE break_illegal ****/

errcode c_envOPbreak_illegal(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF loops;
    CLUREF i;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(484);

  LINE(485);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[14];
        loops.num = T_1_1.num;
        }
        }

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

  LINE(487);
        {
        {
        ret_1->tf = true;
        }
        {signal (ERR_ok);}}
        }
    else {
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    err = arrayOPtop(loops, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    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(489);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        CLUREF T_2_5;
            T_2_1.num = loops.array->ext_size;
            T_2_2.num = T_2_1.num - 1;
             if ((T_2_2.num >= 0 && T_2_1.num < 0 && (-1) < 0) || 
                 (T_2_2.num <= 0 && T_2_1.num > 0 && (-1) > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            T_2_4.num = 1;
            T_2_5.num = -1;
            for (T_2_3.num = T_2_2.num; ((T_2_5.num == 0) || ((T_2_5.num > 0)? (T_2_3.num <= T_2_4.num) : (T_2_3.num >= T_2_4.num))); T_2_3.num += T_2_5.num) {
                i.num = T_2_3.num;

  LINE(490);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                if (i.num < loops.array->ext_low || i.num > loops.array->ext_high ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_3_1.num = loops.array->store->data[i.num - loops.array->ext_low + loops.array->int_low];
                T_3_2.num = (T_3_1.num == 0)? true : false;
                T_3_3.num = T_3_2.num ^ 1;
                if (T_3_3.num == true) {

  LINE(491);
                    {
                    {
                    if (i.num < loops.array->ext_low || i.num > loops.array->ext_high) {
                        err = ERR_bounds;
                        goto ex_0;}
                    loops.array->store->data[i.num + loops.array->int_low - loops.array->ext_low] = 2;
                    }
                    }

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

  LINE(496);
    {
    {
    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 break_illegal ****/


/**** BEGIN PROCEDURE continue_illegal ****/

errcode c_envOPcontinue_illegal(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(499);

  LINE(500);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[14];
    T_1_2.num = (T_1_1.array->ext_size == 0)? true : false;
    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 continue_illegal ****/


/**** BEGIN PROCEDURE types_illegal ****/

errcode c_envOPtypes_illegal(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(503);

  LINE(504);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[19];
    T_1_2.num = (T_1_1.num == 0)? true : false;
    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 types_illegal ****/


/**** BEGIN PROCEDURE building_specs ****/

errcode c_envOPbuilding_specs(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(507);

  LINE(508);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[17];
    T_1_2.num = (T_1_1.num == 0)? true : false;
    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 building_specs ****/


/**** BEGIN PROCEDURE checking_specs ****/

errcode c_envOPchecking_specs(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(511);

  LINE(512);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[17];
    T_1_2.num = (T_1_1.num == 1)? true : false;
    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 checking_specs ****/


/**** BEGIN PROCEDURE rechecking_types ****/

errcode c_envOPrechecking_types(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(515);

  LINE(516);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[18];
    T_1_2.num = (T_1_1.num > 0)? true : false;
    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 rechecking_types ****/


/**** BEGIN PROCEDURE err ****/

errcode c_envOPerr(e, msg)
CLUREF e;
CLUREF msg;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(519);

  LINE(520);
    {
    e.vec->data[7]  = 2;
    }

  LINE(521);
    {
    err = c_envOPoutput(e, msg);
    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 err ****/


/**** BEGIN PROCEDURE err1 ****/

errcode c_envOPerr1(e, msg)
CLUREF e;
CLUREF msg;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(524);

  LINE(525);
    {
    e.vec->data[7]  = 2;
    }

  LINE(526);
    {
    err = c_envOPoutput1(e, msg);
    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 err1 ****/

static int c_envOPerrt_own_init = 0;

/**** BEGIN PROCEDURE errt ****/

errcode c_envOPerrt(e, msg, t1, t2)
CLUREF e;
CLUREF msg;
CLUREF t1;
CLUREF t2;
    {
    errcode err;
    errcode ecode2;
    CLUREF st;
        if (c_envOPerrt_own_init == 0) {
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        c_envOPerrt_own_init = 1;
    }
    enter_proc(529);

  LINE(530);
    {
    e.vec->data[7]  = 2;
    }

  LINE(531);
    {
    CLUREF T_1_1;
    err = sequenceOPaddh(msg, STR__040of_040wrong_040type, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = c_envOPoutput(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(532);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[8];
        st.num = T_1_1.num;
        }
        }

  LINE(533);
    {

  LINE(534);
        {
        err = streamOPputs(st, STR__011expected_040type_072_040);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(535);
        {
        CLUREF T_3_1;
        err = get_type_print(t1, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        err = streamOPputl(st, T_3_1);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(536);
        {
        err = streamOPputs(st, STR__011actual_040type_072_040);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(537);
        {
        CLUREF T_3_1;
        err = get_type_print(t2, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        err = streamOPputl(st, T_3_1);
        if (err != ERR_ok) goto ex_1;
        }
        }
        goto end_1;
        ex_1:
            {
            }
        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 errt ****/


/**** BEGIN PROCEDURE warn ****/

errcode c_envOPwarn(e, msg)
CLUREF e;
CLUREF msg;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(541);

  LINE(542);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[7];
    T_1_2.num = (T_1_1.num == 0)? true : false;
    if (T_1_2.num == true) {
        {
        e.vec->data[7]  = 1;
        }
        }
        }/* end if */

  LINE(543);
    {
    err = c_envOPoutput(e, msg);
    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 warn ****/


/**** BEGIN PROCEDURE warn1 ****/

errcode c_envOPwarn1(e, msg)
CLUREF e;
CLUREF msg;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(546);

  LINE(547);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[7];
    T_1_2.num = (T_1_1.num == 0)? true : false;
    if (T_1_2.num == true) {
        {
        e.vec->data[7]  = 1;
        }
        }
        }/* end if */

  LINE(548);
    {
    err = c_envOPoutput1(e, msg);
    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 warn1 ****/

static int c_envOPeval_err_own_init = 0;

/**** BEGIN PROCEDURE eval_err ****/

errcode c_envOPeval_err(e, type_, op, sig)
CLUREF e;
CLUREF type_;
CLUREF op;
CLUREF sig;
    {
    errcode err;
    errcode ecode2;
        if (c_envOPeval_err_own_init == 0) {
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        c_envOPeval_err_own_init = 1;
    }
    enter_proc(551);

  LINE(552);
    {
    e.vec->data[7]  = 2;
    }

  LINE(553);
    {
    CLUREF T_1_1;
    sequenceOPnew2(CLU_6, &T_1_1);
    T_1_1.vec->data[0] = type_.num;
    T_1_1.vec->data[1] = STR__044.num;
    T_1_1.vec->data[2] = op.num;
    T_1_1.vec->data[3] = STR__040invocation_040evaluates_040to_040_047.num;
    T_1_1.vec->data[4] = sig.num;
    T_1_1.vec->data[5] = STR__047_040exception.num;
    err = c_envOPoutput(e, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE eval_err ****/


/**** BEGIN PROCEDURE output ****/

errcode c_envOPoutput(e, msg)
CLUREF e;
CLUREF msg;
    {
    errcode err;
    errcode ecode2;
    CLUREF st;
    CLUREF l;
    CLUREF s;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(557);

  LINE(558);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[8];
        st.num = T_1_1.num;
        }
        }

  LINE(559);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[13];
        l.num = T_1_1.num;
        }
        }

  LINE(560);
    {

  LINE(561);
        {
        CLUREF T_3_1;
        T_3_1.num = (l.num > 0)? true : false;
        if (T_3_1.num == true) {

  LINE(562);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = e.vec->data[13];
            err = intOPunparse(T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            err = streamOPputs(st, T_4_2);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(563);
            {
            CLUREF T_4_1;
            T_4_1.ch = ':';
            err = streamOPputc(st, T_4_1);
            if (err != ERR_ok) goto ex_1;
            }
            }
            }/* end if */

  LINE(565);
        {
        CLUREF T_3_1;
        T_3_1.ch = '\t';
        err = streamOPputc(st, T_3_1);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(566);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
            T_3_2.num = msg.vec->size; 
            T_3_3 = msg;
            for (T_3_1.num = 1; T_3_1.num <= T_3_2.num; T_3_1.num++) {
                s.num = T_3_3.vec->data[T_3_1.num - 1];

  LINE(567);
                {
                err = streamOPputs(st, s);
                if (err != ERR_ok) goto ex_1;
                }
            }
        }
        end_inline_for_1:;

  LINE(569);
        {
        CLUREF T_3_1;
        T_3_1.ch = '\n';
        err = streamOPputc(st, T_3_1);
        if (err != ERR_ok) goto ex_1;
        }
        }
        goto end_1;
        ex_1:
            {
            }
        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 output ****/


/**** BEGIN PROCEDURE output1 ****/

errcode c_envOPoutput1(e, msg)
CLUREF e;
CLUREF msg;
    {
    errcode err;
    errcode ecode2;
    CLUREF st;
    CLUREF l;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(573);

  LINE(574);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[8];
        st.num = T_1_1.num;
        }
        }

  LINE(575);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[13];
        l.num = T_1_1.num;
        }
        }

  LINE(576);
    {

  LINE(577);
        {
        CLUREF T_3_1;
        T_3_1.num = (l.num > 0)? true : false;
        if (T_3_1.num == true) {

  LINE(578);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = e.vec->data[13];
            err = intOPunparse(T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            err = streamOPputs(st, T_4_2);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(579);
            {
            CLUREF T_4_1;
            T_4_1.ch = ':';
            err = streamOPputc(st, T_4_1);
            if (err != ERR_ok) goto ex_1;
            }
            }
            }/* end if */

  LINE(581);
        {
        CLUREF T_3_1;
        T_3_1.ch = '\t';
        err = streamOPputc(st, T_3_1);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(582);
        {
        err = streamOPputl(st, msg);
        if (err != ERR_ok) goto ex_1;
        }
        }
        goto end_1;
        ex_1:
            {
            }
        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 output1 ****/


/**** BEGIN PROCEDURE get_err ****/

errcode c_envOPget_err(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(586);

  LINE(587);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[7];
    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 get_err ****/


/**** BEGIN PROCEDURE end_reset ****/

errcode c_envOPend_reset(e, lasting)
CLUREF e;
CLUREF lasting;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(590);

  LINE(591);
    {
    e.vec->data[7]  = 0;
    }

  LINE(592);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[1];
    err = ceOPreset_entries(T_1_1, lasting);
    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 end_reset ****/


/**** BEGIN PROCEDURE get_xsignals ****/

errcode c_envOPget_xsignals(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(595);

  LINE(596);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[0];
    T_1_2.num = T_1_1.vec->data[2];
    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 get_xsignals ****/


/**** BEGIN PROCEDURE get_values ****/

errcode c_envOPget_values(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(599);

  LINE(600);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[0];
    T_1_2.num = T_1_1.vec->data[3];
    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 get_values ****/


/**** BEGIN PROCEDURE get_bad_expr ****/

errcode c_envOPget_bad_expr(e, ret_1)
CLUREF e;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(603);

  LINE(604);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CellAlloc(4, nil, T_1_1);
    T_1_2.num = e.vec->data[1];
    err = ceOPget_unknown_type(T_1_2, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    err = exprOPcreate(T_1_1, T_1_3, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    ret_1->num = T_1_4.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 get_bad_expr ****/


/**** BEGIN PROCEDURE push_vals ****/

errcode c_envOPpush_vals(e, idns, vals)
CLUREF e;
CLUREF idns;
CLUREF vals;
    {
    errcode err;
    errcode ecode2;
    CLUREF stack;
    CLUREF n;
    CLUREF i;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(607);

  LINE(608);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[12];
        stack.num = T_1_1.num;
        }
        }

  LINE(609);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
        T_1_2.num = idns.vec->size; 
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            n.num = T_1_1.num;

  LINE(610);
            {
                {CLUREF T_2_1;
                if (n.num < 1 || n.num > idns.vec->size ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_2_1.num = idns.vec->data[n.num - 1];
                i.num = T_2_1.num;
                }
                }

  LINE(611);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            RecordAlloc(2, T_2_1);
            T_2_1.vec->data[0]  = i.num;
            err = idnOPget_kind(i, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            T_2_1.vec->data[1]  = T_2_2.num;
            {
            if ((stack.array->int_low + stack.array->ext_size + 1) < stack.array->int_size) {
                stack.array->store->data[stack.array->int_low + stack.array->ext_size] = T_2_1.num;
                stack.array->ext_size++; stack.array->ext_high++;}
            else {
                err = arrayOPaddh(stack, T_2_1);
                if (err != ERR_ok) goto ex_0;}
            }
            }

  LINE(613);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            if (n.num < 1 || n.num > vals.vec->size ) {
                err = ERR_bounds;
                goto ex_0;}
            T_2_1.num = vals.vec->data[n.num - 1];
            CellAlloc(1, T_2_1.num, T_2_2);
            err = idnOPset_kind(i, T_2_2);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE push_vals ****/


/**** BEGIN PROCEDURE push_parms ****/

errcode c_envOPpush_parms(e, parms, nparms)
CLUREF e;
CLUREF parms;
CLUREF nparms;
    {
    errcode err;
    errcode ecode2;
    CLUREF i;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(617);

  LINE(618);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
        T_1_2.num = parms.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(619);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            if (i.num < 1 || i.num > parms.vec->size ) {
                err = ERR_bounds;
                goto ex_0;}
            T_2_1.num = parms.vec->data[i.num - 1];
            if (i.num < 1 || i.num > nparms.vec->size ) {
                err = ERR_bounds;
                goto ex_0;}
            T_2_2.num = nparms.vec->data[i.num - 1];
            err = c_envOPpush_parm(e, T_2_1, T_2_2);
            if (err != ERR_ok) goto ex_0;
            }
        }
    }
    end_inline_for_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE push_parms ****/


/**** BEGIN PROCEDURE push_parm ****/

errcode c_envOPpush_parm(e, parm, nparm)
CLUREF e;
CLUREF parm;
CLUREF nparm;
    {
    errcode err;
    errcode ecode2;
    CLUREF stack;
    CLUREF tt;
    CLUREF x;
    CLUREF t;
    CLUREF k;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(623);

  LINE(624);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[12];
        stack.num = T_1_1.num;
        }
        }

  LINE(625);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = e.vec->data[1];
        err = ceOPget_type_type(T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        tt.num = T_1_2.num;
        }
        }

  LINE(626);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    RecordAlloc(2, T_1_1);
    T_1_1.vec->data[0]  = parm.num;
    err = idnOPget_kind(parm, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    T_1_1.vec->data[1]  = T_1_2.num;
    {
    if ((stack.array->int_low + stack.array->ext_size + 1) < stack.array->int_size) {
        stack.array->store->data[stack.array->int_low + stack.array->ext_size] = T_1_1.num;
        stack.array->ext_size++; stack.array->ext_high++;}
    else {
        err = arrayOPaddh(stack, T_1_1);
        if (err != ERR_ok) goto ex_0;}
    }
    }

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

  LINE(631);
            {
                {CLUREF T_2_1;
                CLUREF T_2_2;
                CellAlloc(5, nparm.num, T_2_1);
                err = c_envOPget_type(e, T_2_1, &T_2_2);
                if (err != ERR_ok) goto ex_0;
                t.num = T_2_2.num;
                }
                }

  LINE(632);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CellAlloc(25, t.num, T_2_1);
            err = exprOPcreate(T_2_1, tt, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            x.num = T_2_2.num;
            }
            break;
            }
    case 10: 
         {CLUREF T_1_2;
        T_1_2.num = T_1_1.cell->value;
        k.num = T_1_2.num;

  LINE(634);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CellAlloc(13, nparm.num, T_2_1);
            err = exprOPcreate(T_2_1, k, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            x.num = T_2_2.num;
            }
            break;
            }
    default: {

  LINE(636);
        {
        CLUREF T_2_1;
        err = c_envOPget_bad_expr(e, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        x.num = T_2_1.num;
        }
    }
    }
    }

  LINE(638);
    {
    CLUREF T_1_1;
    CellAlloc(1, x.num, T_1_1);
    err = idnOPset_kind(parm, 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 push_parm ****/

static int c_envOPdeclare_own_init = 0;

/**** BEGIN PROCEDURE declare ****/

errcode c_envOPdeclare(e, i, nk)
CLUREF e;
CLUREF i;
CLUREF nk;
    {
    errcode err;
    errcode ecode2;
    CLUREF k;
    CLUREF line;
        if (c_envOPdeclare_own_init == 0) {
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        c_envOPdeclare_own_init = 1;
    }
    enter_proc(641);

  LINE(642);
    {
        {CLUREF T_1_1;
        err = idnOPget_kind(i, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        k.num = T_1_1.num;
        }
        }

  LINE(643);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        T_1_1.num = e.vec->data[1];
        err = idnOPget_str(i, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        err = ceOPlocal(T_1_1, T_1_2, &T_1_3);
        if (err != ERR_ok) goto ex_0;
        line.num = T_1_3.num;
        }
        }

  LINE(644);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    if (k.cell->tag == 8) T_1_1.num = true; else T_1_1.num = false;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {

  LINE(645);
        {
        CLUREF T_2_1;
        T_2_1.num = (line.num == 0)? true : false;
        if (T_2_1.num == true) {

  LINE(646);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            sequenceOPnew2(CLU_3, &T_3_1);
            T_3_1.vec->data[0] = STR_redeclaration_040of_040_047.num;
            err = idnOPget_str(i, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            T_3_1.vec->data[1] = T_3_2.num;
            T_3_1.vec->data[2] = STR__047.num;
            err = c_envOPerr(e, T_3_1);
            if (err != ERR_ok) goto ex_0;
            }
            }
        else {

  LINE(647);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            sequenceOPnew2(CLU_4, &T_3_1);
            T_3_1.vec->data[0] = STR_declaration_040of_040external_040_047.num;
            err = idnOPget_str(i, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            T_3_1.vec->data[1] = T_3_2.num;
            T_3_1.vec->data[2] = STR__047_040used_040on_040line_040.num;
            err = intOPunparse(line, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            T_3_1.vec->data[3] = T_3_3.num;
            err = c_envOPerr(e, T_3_1);
            if (err != ERR_ok) goto ex_0;
            }
            }}/* end if */
        }
        }/* end if */

  LINE(651);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[12];
    RecordAlloc(2, T_1_2);
    T_1_2.vec->data[0]  = i.num;
    T_1_2.vec->data[1]  = k.num;
    {
    if ((T_1_1.array->int_low + T_1_1.array->ext_size + 1) < T_1_1.array->int_size) {
        T_1_1.array->store->data[T_1_1.array->int_low + T_1_1.array->ext_size] = T_1_2.num;
        T_1_1.array->ext_size++; T_1_1.array->ext_high++;}
    else {
        err = arrayOPaddh(T_1_1, T_1_2);
        if (err != ERR_ok) goto ex_0;}
    }
    }

  LINE(653);
    {
    err = idnOPset_kind(i, nk);
    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 declare ****/


/**** BEGIN PROCEDURE add_var ****/

errcode c_envOPadd_var(e, i, t)
CLUREF e;
CLUREF i;
CLUREF t;
    {
    errcode err;
    errcode ecode2;
    CLUREF vars;
    CLUREF i1;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(656);

  LINE(657);
    {
    CLUREF T_1_1;
    CellAlloc(9, t.num, T_1_1);
    err = c_envOPdeclare(e, i, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(658);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[22];
        vars.num = T_1_1.num;
        }
        }

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

  LINE(660);
            {
            CLUREF T_2_1;
            err = idnOPequal(i, i1, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            if (T_2_1.num == true) {
                {
                {signal (ERR_ok);}}
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

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

/**** END PROCEDURE add_var ****/


/**** BEGIN PROCEDURE add_ownvar ****/

errcode c_envOPadd_ownvar(e, i, t)
CLUREF e;
CLUREF i;
CLUREF t;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(665);

  LINE(666);
    {
    CLUREF T_1_1;
    CellAlloc(4, t.num, T_1_1);
    err = c_envOPdeclare(e, i, 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 add_ownvar ****/


/**** BEGIN PROCEDURE scopify ****/

errcode c_envOPscopify(e, i)
CLUREF e;
CLUREF i;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(669);

  LINE(670);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = e.vec->data[12];
    RecordAlloc(2, T_1_2);
    T_1_2.vec->data[0]  = i.num;
    CellAlloc(8, nil, T_1_3);
    T_1_2.vec->data[1]  = T_1_3.num;
    {
    if ((T_1_1.array->int_low + T_1_1.array->ext_size + 1) < T_1_1.array->int_size) {
        T_1_1.array->store->data[T_1_1.array->int_low + T_1_1.array->ext_size] = T_1_2.num;
        T_1_1.array->ext_size++; T_1_1.array->ext_high++;}
    else {
        err = arrayOPaddh(T_1_1, T_1_2);
        if (err != ERR_ok) goto ex_0;}
    }
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE scopify ****/

static int c_envOPlookup_own_init = 0;

/**** BEGIN PROCEDURE lookup ****/

errcode c_envOPlookup(e, i, want)
CLUREF e;
CLUREF i;
CLUREF want;
    {
    errcode err;
    errcode ecode2;
    CLUREF ent;
        if (c_envOPlookup_own_init == 0) {
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        c_envOPlookup_own_init = 1;
    }
    enter_proc(674);

  LINE(675);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[6];
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {

  LINE(676);
        {
        err = c_envOPlookup2(e, i, want);
        if (err != ERR_ok) goto ex_0;
        }

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

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

  LINE(680);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = ent.vec->data[2];
            err = idnOPequal(i, T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            if (T_2_2.num == true) {

  LINE(681);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.num = ent.vec->data[0];
                T_3_2.num = (T_3_1.num == 0)? true : false;
                if (T_3_2.num == true) {

  LINE(682);
                    {
                    err = c_envOPdo_entry(e, ent);
                    if (err != ERR_ok) goto ex_0;
                    }
                    }
                else {

  LINE(683);
                    {
                    ent.vec->data[0]  = 2;
                    }

  LINE(684);
                    {
                    CLUREF T_4_1;
                    CLUREF T_4_2;
                    CLUREF T_4_3;
                    CLUREF T_4_4;
                    sequenceOPnew2(CLU_4, &T_4_1);
                    T_4_1.vec->data[0] = STR_recursive_040use_040of_040identifier_040_047.num;
                    err = idnOPget_str(i, &T_4_2);
                    if (err != ERR_ok) goto ex_0;
                    T_4_1.vec->data[1] = T_4_2.num;
                    T_4_1.vec->data[2] = STR__047_040declared_040in_040line_040.num;
                    T_4_3.num = ent.vec->data[3];
                    err = intOPunparse(T_4_3, &T_4_4);
                    if (err != ERR_ok) goto ex_0;
                    T_4_1.vec->data[3] = T_4_4.num;
                    err = c_envOPerr(e, T_4_1);
                    if (err != ERR_ok) goto ex_0;
                    }

  LINE(687);
                    {
                    CLUREF T_4_1;
                    CLUREF T_4_2;
                    err = c_envOPget_bad_expr(e, &T_4_1);
                    if (err != ERR_ok) goto ex_0;
                    CellAlloc(1, T_4_1.num, T_4_2);
                    err = idnOPset_kind(i, T_4_2);
                    if (err != ERR_ok) goto ex_0;
                    }
                    }}/* end if */

  LINE(689);
                {
                {signal (ERR_ok);}}
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(692);
    {
    err = c_envOPlookup2(e, i, want);
    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 lookup ****/

static int c_envOPdo_entry_own_init = 0;

/**** BEGIN PROCEDURE do_entry ****/

errcode c_envOPdo_entry(e, ent)
CLUREF e;
CLUREF ent;
    {
    errcode err;
    errcode ecode2;
    CLUREF oline;
    CLUREF i;
    CLUREF k;
    CLUREF eq;
    CLUREF line;
        if (c_envOPdo_entry_own_init == 0) {
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        c_envOPdo_entry_own_init = 1;
    }
    enter_proc(695);

  LINE(696);
    {
    ent.vec->data[0]  = 1;
    }

  LINE(697);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[13];
        oline.num = T_1_1.num;
        }
        }

  LINE(698);
    {
    CLUREF T_1_1;
    T_1_1.num = ent.vec->data[3];
    e.vec->data[13]  = T_1_1.num;
    }

  LINE(699);
    {
        {CLUREF T_1_1;
        T_1_1.num = ent.vec->data[2];
        i.num = T_1_1.num;
        }
        }

  LINE(701);
    {
    CLUREF T_1_1;
    T_1_1.num = ent.vec->data[1];
    switch (T_1_1.cell->tag) {
    case 1: 
         {CLUREF T_1_2;
        T_1_2.num = T_1_1.cell->value;
        eq.num = T_1_2.num;

  LINE(703);
            {
            CLUREF T_2_1;
            err = c_equateval(e, eq, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            k.num = T_2_1.num;
            }
            break;
            }
    case 2: 
         {CLUREF T_1_3;
        T_1_3.num = T_1_1.cell->value;
        eq.num = T_1_3.num;

  LINE(705);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            err = c_parm_type(e, i, eq, &T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            eq.num = T_2_1.num;
            k.num = T_2_2.num;
            }

  LINE(706);
            {
            CLUREF T_2_1;
            CellAlloc(2, eq.num, T_2_1);
            ent.vec->data[1]  = T_2_1.num;
            }
            break;
            }
    }
    }

  LINE(708);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        T_1_1.num = e.vec->data[1];
        err = idnOPget_str(i, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        err = ceOPlocal(T_1_1, T_1_2, &T_1_3);
        if (err != ERR_ok) goto ex_0;
        line.num = T_1_3.num;
        }
        }

  LINE(709);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = idnOPget_kind(i, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.cell->tag == 8) T_1_2.num = true; else T_1_2.num = false;
    T_1_3.num = T_1_2.num ^ 1;
    if (T_1_3.num == true) {

  LINE(710);
        {
        CLUREF T_2_1;
        T_2_1.num = (line.num == 0)? true : false;
        if (T_2_1.num == true) {

  LINE(711);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            sequenceOPnew2(CLU_3, &T_3_1);
            T_3_1.vec->data[0] = STR_redeclaration_040of_040_047.num;
            err = idnOPget_str(i, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            T_3_1.vec->data[1] = T_3_2.num;
            T_3_1.vec->data[2] = STR__047.num;
            err = c_envOPerr(e, T_3_1);
            if (err != ERR_ok) goto ex_0;
            }
            }
        else {

  LINE(712);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            sequenceOPnew2(CLU_4, &T_3_1);
            T_3_1.vec->data[0] = STR_declaration_040of_040external_040_047.num;
            err = idnOPget_str(i, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            T_3_1.vec->data[1] = T_3_2.num;
            T_3_1.vec->data[2] = STR__047_040used_040on_040line_040.num;
            err = intOPunparse(line, &T_3_3);
            if (err != ERR_ok) goto ex_0;
            T_3_1.vec->data[3] = T_3_3.num;
            err = c_envOPerr(e, T_3_1);
            if (err != ERR_ok) goto ex_0;
            }
            }}/* end if */
        }
        }/* end if */

  LINE(716);
    {
    err = idnOPset_kind(i, k);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(717);
    {
    e.vec->data[13]  = oline.num;
    }

  LINE(718);
    {
    ent.vec->data[0]  = 2;
    }
    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 do_entry ****/

static int c_envOPlookup2_own_init = 0;

/**** BEGIN PROCEDURE lookup2 ****/

errcode c_envOPlookup2(e, i, want)
CLUREF e;
CLUREF i;
CLUREF want;
    {
    errcode err;
    errcode ecode2;
    CLUREF k;
    CLUREF gen;
    CLUREF specs;
        if (c_envOPlookup2_own_init == 0) {
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        c_envOPlookup2_own_init = 1;
    }
    enter_proc(721);

  LINE(722);
    {
        {CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        T_2_1.num = e.vec->data[1];
        err = idnOPget_str(i, &T_2_2);
        if (err != ERR_ok) goto ex_1;
        T_2_3.num = e.vec->data[13];
        err = ceOPlookup(T_2_1, T_2_2, T_2_3, &T_2_4);
        if (err != ERR_ok) goto ex_1;
        k.num = T_2_4.num;
        }
        }
        goto end_1;
        ex_1:
            if ((err == ERR_local)) {

  LINE(724);
                {
                CLUREF T_2_1;
                CLUREF T_2_2;
                sequenceOPnew2(CLU_3, &T_2_1);
                T_2_1.vec->data[0] = STR_use_040of_040_047.num;
                err = idnOPget_str(i, &T_2_2);
                if (err != ERR_ok) goto ex_0;
                T_2_1.vec->data[1] = T_2_2.num;
                T_2_1.vec->data[2] = STR__047_040outside_040scope_040of_040declaration.num;
                err = c_envOPerr(e, T_2_1);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(726);
                {
                CLUREF T_2_1;
                CLUREF T_2_2;
                err = c_envOPget_bad_expr(e, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                CellAlloc(1, T_2_1.num, T_2_2);
                err = idnOPset_kind(i, T_2_2);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(727);
                {
                {signal (ERR_ok);}}
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(729);
    {
    CLUREF T_1_1;
    if (k.cell->tag == 8) T_1_1.num = true; else T_1_1.num = false;
    if (T_1_1.num == true) {

  LINE(730);
        {
            {CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            T_2_1.num = e.vec->data[1];
            err = idnOPget_str(i, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            err = xlibOPget_du(T_2_2, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            err = ceOPadd_du(T_2_1, T_2_3, &T_2_4);
            if (err != ERR_ok) goto ex_0;
            gen.num = T_2_4.num;
            }
            }

  LINE(731);
        {
        CLUREF T_2_1;
        err = c_get_idnkind(e, gen, want, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        k.num = T_2_1.num;
        }

  LINE(732);
        {
        CLUREF T_2_1;
        err = duOPget_mspecs(gen, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        switch (T_2_1.cell->tag) {
        case 2: 
             {CLUREF T_2_2;
            T_2_2.num = T_2_1.cell->value;
            specs.num = T_2_2.num;

  LINE(734);
                {
                switch (specs.cell->tag) {
                case 4: 
                     {
                        break;
                        }
                default: {

  LINE(737);
                    {
                    CLUREF T_4_1;
                    T_4_1.num = e.vec->data[9];
                    {
                    if ((T_4_1.array->int_low + T_4_1.array->ext_size + 1) < T_4_1.array->int_size) {
                        T_4_1.array->store->data[T_4_1.array->int_low + T_4_1.array->ext_size] = i.num;
                        T_4_1.array->ext_size++; T_4_1.array->ext_high++;}
                    else {
                        err = arrayOPaddh(T_4_1, i);
                        if (err != ERR_ok) goto ex_0;}
                    }
                    }
                }
                }
                }
                break;
                }
        default: {
        }
        }
        }
        }
        }/* end if */

  LINE(742);
    {
    err = idnOPset_kind(i, k);
    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 lookup2 ****/


/**** BEGIN PROCEDURE push_handlers ****/

errcode c_envOPpush_handlers(e, xs)
CLUREF e;
CLUREF xs;
    {
    errcode err;
    errcode ecode2;
    CLUREF loops;
    CLUREF i;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(745);

  LINE(746);
    {
        {CLUREF T_1_1;
        T_1_1.num = e.vec->data[14];
        loops.num = T_1_1.num;
        }
        }

  LINE(747);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
        T_1_1.num = loops.array->ext_size;
        T_1_3.num = 1;
        T_1_4.num = -1;
        for (T_1_2.num = T_1_1.num; ((T_1_4.num == 0) || ((T_1_4.num > 0)? (T_1_2.num <= T_1_3.num) : (T_1_2.num >= T_1_3.num))); T_1_2.num += T_1_4.num) {
            i.num = T_1_2.num;

  LINE(748);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            if (i.num < loops.array->ext_low || i.num > loops.array->ext_high ) {
                err = ERR_bounds;
                goto ex_0;}
            T_2_1.num = loops.array->store->data[i.num - loops.array->ext_low + loops.array->int_low];
            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(749);
                {
                {
                if (i.num < loops.array->ext_low || i.num > loops.array->ext_high) {
                    err = ERR_bounds;
                    goto ex_0;}
                loops.array->store->data[i.num + loops.array->int_low - loops.array->ext_low] = 2;
                }
                }

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

  LINE(753);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[2];
    CellAlloc(1, xs.num, T_1_2);
    err = arrayOPaddl(T_1_1, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE push_handlers ****/


/**** BEGIN PROCEDURE push_resigs ****/

errcode c_envOPpush_resigs(e, resigs)
CLUREF e;
CLUREF resigs;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(756);

  LINE(757);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[2];
    CellAlloc(2, resigs.num, T_1_2);
    err = arrayOPaddl(T_1_1, T_1_2);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE push_resigs ****/


/**** BEGIN PROCEDURE pop_handlers ****/

errcode c_envOPpop_handlers(e)
CLUREF e;
    {
    errcode err;
    errcode ecode2;
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(760);

  LINE(761);
    {
    CLUREF T_1_1;
    T_1_1.num = e.vec->data[10];
    err = c_envOPadd_cond(e, T_1_1, CLU_0);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(762);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = e.vec->data[2];
    err = arrayOPreml(T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE pop_handlers ****/

static int c_envOPadd_cond_own_init = 0;

/**** BEGIN PROCEDURE add_cond ****/

errcode c_envOPadd_cond(e, cond, is_exit)
CLUREF e;
CLUREF cond;
CLUREF is_exit;
    {
    errcode err;
    errcode ecode2;
    CLUREF cn;
    CLUREF ent;
    CLUREF xs;
    CLUREF arm;
    CLUREF n;
    CLUREF resigs;
    CLUREF resig;
        if (c_envOPadd_cond_own_init == 0) {
        if (c_env_own_init == 0) {
            err = c_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        c_envOPadd_cond_own_init = 1;
    }
    enter_proc(765);

  LINE(766);
    {
        {CLUREF T_1_1;
        T_1_1.num = cond.vec->data[0];
        cn.num = T_1_1.num;
        }
        }

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

  LINE(768);
            {
            switch (ent.cell->tag) {
            case 1: 
                 {CLUREF T_2_1;
                T_2_1.num = ent.cell->value;
                xs.num = T_2_1.num;

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

  LINE(771);
                            {
                            CLUREF T_4_1;
                            CLUREF T_4_2;
                            CLUREF T_4_3;
                            CLUREF T_4_4;
                                T_4_1.num = arm.vec->data[2];
                                T_4_3.num = T_4_1.vec->size; 
                                T_4_4 = T_4_1;
                                for (T_4_2.num = 1; T_4_2.num <= T_4_3.num; T_4_2.num++) {
                                    n.num = T_4_4.vec->data[T_4_2.num - 1];

  LINE(772);
                                    {
                                    CLUREF T_5_1;
                                    T_5_1.num = ((n.str->size != cn.str->size)? false :
                                        !(bcmp(n.str->data, cn.str->data, n.str->size)));
                                    if (T_5_1.num == true) {

  LINE(773);
                                        {
                                        CLUREF T_6_1;
                                        T_6_1.num = arm.vec->data[3];
                                        err = c_when_assn(e, T_6_1, cond, is_exit);
                                        if (err != ERR_ok) goto ex_0;
                                        }

  LINE(775);
                                        {
                                        {signal (ERR_ok);}}
                                        }
                                        }/* end if */
                                }
                            }
                            end_inline_for_3:;
                        }
                    }
                    end_inline_for_2:;

  LINE(779);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    T_3_1.num = xs.vec->data[1];
                    if (T_3_1.cell->tag == 1) T_3_2.num = true; else T_3_2.num = false;
                    if (T_3_2.num == true) {

  LINE(780);
                        {
                        if (is_exit.num == true) {

  LINE(781);
                            {
                            CLUREF T_5_1;
                            sequenceOPnew2(CLU_3, &T_5_1);
                            T_5_1.vec->data[0] = STR_exit_040_047.num;
                            T_5_1.vec->data[1] = cn.num;
                            T_5_1.vec->data[2] = STR__047_040caught_040by_040OTHERS_040arm.num;
                            err = c_envOPerr(e, T_5_1);
                            if (err != ERR_ok) goto ex_0;
                            }
                            }
                            }/* end if */

  LINE(785);
                        {
                        {signal (ERR_ok);}}
                        }
                        }/* end if */
                    break;
                    }
            case 2: 
                 {CLUREF T_2_2;
                T_2_2.num = ent.cell->value;
                resigs.num = T_2_2.num;

  LINE(788);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                        T_3_2.num = resigs.vec->size; 
                        T_3_3 = resigs;
                        for (T_3_1.num = 1; T_3_1.num <= T_3_2.num; T_3_1.num++) {
                            resig.num = T_3_3.vec->data[T_3_1.num - 1];

  LINE(789);
                            {
                            CLUREF T_4_1;
                            T_4_1.num = ((cn.str->size != resig.str->size)? false :
                                !(bcmp(cn.str->data, resig.str->data, cn.str->size)));
                            if (T_4_1.num == true) {

  LINE(790);
                                {
                                err = c_resig_catch(e, cond, is_exit);
                                if (err != ERR_ok) goto ex_0;
                                }

  LINE(791);
                                {
                                {signal (ERR_ok);}}
                                }
                                }/* end if */
                        }
                    }
                    end_inline_for_4:;
                    break;
                    }
            }
            }
        }
    }
    end_inline_for_1:;

  LINE(796);
    {
    if (is_exit.num == true) {

  LINE(797);
        {
        CLUREF T_2_1;
        sequenceOPnew2(CLU_3, &T_2_1);
        T_2_1.vec->data[0] = STR_exit_040_047.num;
        T_2_1.vec->data[1] = cn.num;
        T_2_1.vec->data[2] = STR__047_040not_040caught.num;
        err = c_envOPerr(e, T_2_1);
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE add_cond ****/

typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[84];
} c_env_OPS;

CLU_proc c_env_oe_add_cond = {{0,0,0,0}, c_envOPadd_cond, 0};
CLU_proc c_env_oe_add_ownvar = {{0,0,0,0}, c_envOPadd_ownvar, 0};
CLU_proc c_env_oe_add_undefined = {{0,0,0,0}, c_envOPadd_undefined, 0};
CLU_proc c_env_oe_add_var = {{0,0,0,0}, c_envOPadd_var, 0};
CLU_proc c_env_oe_begin_for = {{0,0,0,0}, c_envOPbegin_for, 0};
CLU_proc c_env_oe_begin_recheck = {{0,0,0,0}, c_envOPbegin_recheck, 0};
CLU_proc c_env_oe_begin_scope = {{0,0,0,0}, c_envOPbegin_scope, 0};
CLU_proc c_env_oe_begin_specs = {{0,0,0,0}, c_envOPbegin_specs, 0};
CLU_proc c_env_oe_begin_type_scope = {{0,0,0,0}, c_envOPbegin_type_scope, 0};
CLU_proc c_env_oe_begin_while = {{0,0,0,0}, c_envOPbegin_while, 0};
CLU_proc c_env_oe_break_illegal = {{0,0,0,0}, c_envOPbreak_illegal, 0};
CLU_proc c_env_oe_building_specs = {{0,0,0,0}, c_envOPbuilding_specs, 0};
CLU_proc c_env_oe_checking_specs = {{0,0,0,0}, c_envOPchecking_specs, 0};
CLU_proc c_env_oe_continue_illegal = {{0,0,0,0}, c_envOPcontinue_illegal, 0};
CLU_proc c_env_oe_create = {{0,0,0,0}, c_envOPcreate, 0};
CLU_proc c_env_oe_declare = {{0,0,0,0}, c_envOPdeclare, 0};
CLU_proc c_env_oe_end_loop = {{0,0,0,0}, c_envOPend_loop, 0};
CLU_proc c_env_oe_end_recheck = {{0,0,0,0}, c_envOPend_recheck, 0};
CLU_proc c_env_oe_end_reset = {{0,0,0,0}, c_envOPend_reset, 0};
CLU_proc c_env_oe_end_scope = {{0,0,0,0}, c_envOPend_scope, 0};
CLU_proc c_env_oe_end_specs = {{0,0,0,0}, c_envOPend_specs, 0};
CLU_proc c_env_oe_end_type_scope = {{0,0,0,0}, c_envOPend_type_scope, 0};
CLU_proc c_env_oe_equates = {{0,0,0,0}, c_envOPequates, 0};
CLU_proc c_env_oe_err = {{0,0,0,0}, c_envOPerr, 0};
CLU_proc c_env_oe_err1 = {{0,0,0,0}, c_envOPerr1, 0};
CLU_proc c_env_oe_errt = {{0,0,0,0}, c_envOPerrt, 0};
CLU_proc c_env_oe_eval_equates = {{0,0,0,0}, c_envOPeval_equates, 0};
CLU_proc c_env_oe_eval_err = {{0,0,0,0}, c_envOPeval_err, 0};
CLU_proc c_env_oe_eval_parms = {{0,0,0,0}, c_envOPeval_parms, 0};
CLU_proc c_env_oe_fix_type = {{0,0,0,0}, c_envOPfix_type, 0};
CLU_proc c_env_oe_get_any_type = {{0,0,0,0}, c_envOPget_any_type, 0};
CLU_proc c_env_oe_get_array_ = {{0,0,0,0}, c_envOPget_array_, 0};
CLU_proc c_env_oe_get_bad_expr = {{0,0,0,0}, c_envOPget_bad_expr, 0};
CLU_proc c_env_oe_get_bool_type = {{0,0,0,0}, c_envOPget_bool_type, 0};
CLU_proc c_env_oe_get_char_type = {{0,0,0,0}, c_envOPget_char_type, 0};
CLU_proc c_env_oe_get_cvt_type = {{0,0,0,0}, c_envOPget_cvt_type, 0};
CLU_proc c_env_oe_get_down_type = {{0,0,0,0}, c_envOPget_down_type, 0};
CLU_proc c_env_oe_get_du = {{0,0,0,0}, c_envOPget_du, 0};
CLU_proc c_env_oe_get_err = {{0,0,0,0}, c_envOPget_err, 0};
CLU_proc c_env_oe_get_int_type = {{0,0,0,0}, c_envOPget_int_type, 0};
CLU_proc c_env_oe_get_iter_ = {{0,0,0,0}, c_envOPget_iter_, 0};
CLU_proc c_env_oe_get_mod_gen = {{0,0,0,0}, c_envOPget_mod_gen, 0};
CLU_proc c_env_oe_get_module_name = {{0,0,0,0}, c_envOPget_module_name, 0};
CLU_proc c_env_oe_get_null_type = {{0,0,0,0}, c_envOPget_null_type, 0};
CLU_proc c_env_oe_get_oneof_ = {{0,0,0,0}, c_envOPget_oneof_, 0};
CLU_proc c_env_oe_get_proc_ = {{0,0,0,0}, c_envOPget_proc_, 0};
CLU_proc c_env_oe_get_real_type = {{0,0,0,0}, c_envOPget_real_type, 0};
CLU_proc c_env_oe_get_record_ = {{0,0,0,0}, c_envOPget_record_, 0};
CLU_proc c_env_oe_get_seq_ = {{0,0,0,0}, c_envOPget_seq_, 0};
CLU_proc c_env_oe_get_str_type = {{0,0,0,0}, c_envOPget_str_type, 0};
CLU_proc c_env_oe_get_struct_ = {{0,0,0,0}, c_envOPget_struct_, 0};
CLU_proc c_env_oe_get_type = {{0,0,0,0}, c_envOPget_type, 0};
CLU_proc c_env_oe_get_type_type = {{0,0,0,0}, c_envOPget_type_type, 0};
CLU_proc c_env_oe_get_unknown_type = {{0,0,0,0}, c_envOPget_unknown_type, 0};
CLU_proc c_env_oe_get_up_type = {{0,0,0,0}, c_envOPget_up_type, 0};
CLU_proc c_env_oe_get_values = {{0,0,0,0}, c_envOPget_values, 0};
CLU_proc c_env_oe_get_variant_ = {{0,0,0,0}, c_envOPget_variant_, 0};
CLU_proc c_env_oe_get_xsignals = {{0,0,0,0}, c_envOPget_xsignals, 0};
CLU_proc c_env_oe_hack = {{0,0,0,0}, c_envOPhack, 0};
CLU_proc c_env_oe_in_cluster = {{0,0,0,0}, c_envOPin_cluster, 0};
CLU_proc c_env_oe_in_proc = {{0,0,0,0}, c_envOPin_proc, 0};
CLU_proc c_env_oe_is_hacked = {{0,0,0,0}, c_envOPis_hacked, 0};
CLU_proc c_env_oe_lookup = {{0,0,0,0}, c_envOPlookup, 0};
CLU_proc c_env_oe_new_apply = {{0,0,0,0}, c_envOPnew_apply, 0};
CLU_proc c_env_oe_pop_externals = {{0,0,0,0}, c_envOPpop_externals, 0};
CLU_proc c_env_oe_pop_handlers = {{0,0,0,0}, c_envOPpop_handlers, 0};
CLU_proc c_env_oe_pop_undefined = {{0,0,0,0}, c_envOPpop_undefined, 0};
CLU_proc c_env_oe_push_handlers = {{0,0,0,0}, c_envOPpush_handlers, 0};
CLU_proc c_env_oe_push_parm = {{0,0,0,0}, c_envOPpush_parm, 0};
CLU_proc c_env_oe_push_parms = {{0,0,0,0}, c_envOPpush_parms, 0};
CLU_proc c_env_oe_push_resigs = {{0,0,0,0}, c_envOPpush_resigs, 0};
CLU_proc c_env_oe_push_vals = {{0,0,0,0}, c_envOPpush_vals, 0};
CLU_proc c_env_oe_rechecking_types = {{0,0,0,0}, c_envOPrechecking_types, 0};
CLU_proc c_env_oe_reset = {{0,0,0,0}, c_envOPreset, 0};
CLU_proc c_env_oe_scopify = {{0,0,0,0}, c_envOPscopify, 0};
CLU_proc c_env_oe_set_down_type = {{0,0,0,0}, c_envOPset_down_type, 0};
CLU_proc c_env_oe_set_line = {{0,0,0,0}, c_envOPset_line, 0};
CLU_proc c_env_oe_set_mod_gen = {{0,0,0,0}, c_envOPset_mod_gen, 0};
CLU_proc c_env_oe_set_up_type = {{0,0,0,0}, c_envOPset_up_type, 0};
CLU_proc c_env_oe_set_varlist = {{0,0,0,0}, c_envOPset_varlist, 0};
CLU_proc c_env_oe_types_illegal = {{0,0,0,0}, c_envOPtypes_illegal, 0};
CLU_proc c_env_oe_unhack = {{0,0,0,0}, c_envOPunhack, 0};
CLU_proc c_env_oe_warn = {{0,0,0,0}, c_envOPwarn, 0};
CLU_proc c_env_oe_warn1 = {{0,0,0,0}, c_envOPwarn1, 0};

c_env_OPS c_env_ops_actual = {84, (OWNPTR)&c_env_own_init, (OWNPTR)&c_env_own_init, {
    {&c_env_oe_add_cond, "add_cond"},
    {&c_env_oe_add_ownvar, "add_ownvar"},
    {&c_env_oe_add_undefined, "add_undefined"},
    {&c_env_oe_add_var, "add_var"},
    {&c_env_oe_begin_for, "begin_for"},
    {&c_env_oe_begin_recheck, "begin_recheck"},
    {&c_env_oe_begin_scope, "begin_scope"},
    {&c_env_oe_begin_specs, "begin_specs"},
    {&c_env_oe_begin_type_scope, "begin_type_scope"},
    {&c_env_oe_begin_while, "begin_while"},
    {&c_env_oe_break_illegal, "break_illegal"},
    {&c_env_oe_building_specs, "building_specs"},
    {&c_env_oe_checking_specs, "checking_specs"},
    {&c_env_oe_continue_illegal, "continue_illegal"},
    {&c_env_oe_create, "create"},
    {&c_env_oe_declare, "declare"},
    {&c_env_oe_end_loop, "end_loop"},
    {&c_env_oe_end_recheck, "end_recheck"},
    {&c_env_oe_end_reset, "end_reset"},
    {&c_env_oe_end_scope, "end_scope"},
    {&c_env_oe_end_specs, "end_specs"},
    {&c_env_oe_end_type_scope, "end_type_scope"},
    {&c_env_oe_equates, "equates"},
    {&c_env_oe_err, "err"},
    {&c_env_oe_err1, "err1"},
    {&c_env_oe_errt, "errt"},
    {&c_env_oe_eval_equates, "eval_equates"},
    {&c_env_oe_eval_err, "eval_err"},
    {&c_env_oe_eval_parms, "eval_parms"},
    {&c_env_oe_fix_type, "fix_type"},
    {&c_env_oe_get_any_type, "get_any_type"},
    {&c_env_oe_get_array_, "get_array_"},
    {&c_env_oe_get_bad_expr, "get_bad_expr"},
    {&c_env_oe_get_bool_type, "get_bool_type"},
    {&c_env_oe_get_char_type, "get_char_type"},
    {&c_env_oe_get_cvt_type, "get_cvt_type"},
    {&c_env_oe_get_down_type, "get_down_type"},
    {&c_env_oe_get_du, "get_du"},
    {&c_env_oe_get_err, "get_err"},
    {&c_env_oe_get_int_type, "get_int_type"},
    {&c_env_oe_get_iter_, "get_iter_"},
    {&c_env_oe_get_mod_gen, "get_mod_gen"},
    {&c_env_oe_get_module_name, "get_module_name"},
    {&c_env_oe_get_null_type, "get_null_type"},
    {&c_env_oe_get_oneof_, "get_oneof_"},
    {&c_env_oe_get_proc_, "get_proc_"},
    {&c_env_oe_get_real_type, "get_real_type"},
    {&c_env_oe_get_record_, "get_record_"},
    {&c_env_oe_get_seq_, "get_seq_"},
    {&c_env_oe_get_str_type, "get_str_type"},
    {&c_env_oe_get_struct_, "get_struct_"},
    {&c_env_oe_get_type, "get_type"},
    {&c_env_oe_get_type_type, "get_type_type"},
    {&c_env_oe_get_unknown_type, "get_unknown_type"},
    {&c_env_oe_get_up_type, "get_up_type"},
    {&c_env_oe_get_values, "get_values"},
    {&c_env_oe_get_variant_, "get_variant_"},
    {&c_env_oe_get_xsignals, "get_xsignals"},
    {&c_env_oe_hack, "hack"},
    {&c_env_oe_in_cluster, "in_cluster"},
    {&c_env_oe_in_proc, "in_proc"},
    {&c_env_oe_is_hacked, "is_hacked"},
    {&c_env_oe_lookup, "lookup"},
    {&c_env_oe_new_apply, "new_apply"},
    {&c_env_oe_pop_externals, "pop_externals"},
    {&c_env_oe_pop_handlers, "pop_handlers"},
    {&c_env_oe_pop_undefined, "pop_undefined"},
    {&c_env_oe_push_handlers, "push_handlers"},
    {&c_env_oe_push_parm, "push_parm"},
    {&c_env_oe_push_parms, "push_parms"},
    {&c_env_oe_push_resigs, "push_resigs"},
    {&c_env_oe_push_vals, "push_vals"},
    {&c_env_oe_rechecking_types, "rechecking_types"},
    {&c_env_oe_reset, "reset"},
    {&c_env_oe_scopify, "scopify"},
    {&c_env_oe_set_down_type, "set_down_type"},
    {&c_env_oe_set_line, "set_line"},
    {&c_env_oe_set_mod_gen, "set_mod_gen"},
    {&c_env_oe_set_up_type, "set_up_type"},
    {&c_env_oe_set_varlist, "set_varlist"},
    {&c_env_oe_types_illegal, "types_illegal"},
    {&c_env_oe_unhack, "unhack"},
    {&c_env_oe_warn, "warn"},
    {&c_env_oe_warn1, "warn1"}}};

struct OPS *c_env_ops = (struct OPS *)&c_env_ops_actual;

/**** END CLUSTER c_env ****/
