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

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


extern errcode boolOPnot();
extern errcode restore_compiler();
extern errcode initialize_compiler();
extern errcode stringOPs2ac();
extern errcode get_jcl();
extern errcode flush_blanks();
extern errcode charOPequal();
extern errcode addl_chars();
extern errcode fake_stream();
extern errcode streamOPreset();
extern errcode process_commands();
extern errcode _exit();
extern errcode streamOPprimary_output();
extern errcode streamOPputs();
extern errcode cmpvarOPversion();
extern errcode op_sys_name();
extern errcode streamOPprimary_input();
extern errcode streamOPis_terminal();
extern errcode streamOPset_prompt();
extern errcode lineedit();
extern errcode streamOPputl();
extern errcode streamOPflush();
extern errcode streamOPgetl();
CLUREF STR_clu_040;
CLUREF STR__012_012_052_052_052_052_052_040CLU_040COMPILER_0403_056;
CLUREF STR__040_052_052_052_052_052_040_050;
CLUREF STR__051_040_052_052_052_052_052_012_012;
CLUREF STR_command_050s_051_072_040;
CLUREF STR_;
static int start_up_own_init = 0;
CLUREF start_upOPinit;

/**** BEGIN PROCEDURE start_up ****/

errcode start_up()
    {
    errcode err;
    errcode ecode2;
    CLUREF allok;
    CLUREF line;
    CLUREF c;
    CLUREF tyo;
    CLUREF tyi;
        if (start_up_own_init == 0) {
        stringOPcons("clu ", CLU_1, CLU_4, &STR_clu_040);
        stringOPcons("\n\n***** CLU COMPILER 3.", CLU_1, CLU_23, &STR__012_012_052_052_052_052_052_040CLU_040COMPILER_0403_056);
        stringOPcons(" ***** (", CLU_1, CLU_8, &STR__040_052_052_052_052_052_040_050);
        stringOPcons(") *****\n\n", CLU_1, CLU_9, &STR__051_040_052_052_052_052_052_012_012);
        stringOPcons("command(s): ", CLU_1, CLU_12, &STR_command_050s_051_072_040);
        stringOPcons("", CLU_1, CLU_0, &STR_);
        start_up_own_init = 1;
        {
            {start_upOPinit.tf = false;
            }
            }
    }
    enter_proc(6);

  LINE(8);
    {
        {allok.tf = true;
        }
        }

  LINE(9);
    {
    CLUREF T_1_1;
    T_1_1.num = start_upOPinit.num ^ 1;
    if (T_1_1.num == true) {

  LINE(10);
        {
        err = restore_compiler();
        if (err != ERR_ok) goto ex_0;
        }

  LINE(11);
        {
        CLUREF T_2_1;
        T_2_1.num = start_upOPinit.num ^ 1;
        if (T_2_1.num == true) {

  LINE(12);
            {
            start_upOPinit.tf = true;
            }

  LINE(13);
            {
            CLUREF T_3_1;
            err = initialize_compiler(&T_3_1);
            if (err != ERR_ok) goto ex_0;
            }
            }
            }/* end if */
        }
        }/* end if */

  LINE(16);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        err = get_jcl(&T_1_1);
        if (err != ERR_ok) goto ex_0;
        err = stringOPs2ac(T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        line.num = T_1_2.num;
        }
        }

  LINE(17);
    {
        {CLUREF T_1_1;
        err = flush_blanks(line, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        c.num = T_1_1.num;
        }
        }

  LINE(18);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.ch = ' ';
    T_1_2.num = (c.ch == T_1_1.ch)? true : false;
    T_1_3.num = T_1_2.num ^ 1;
    if (T_1_3.num == true) {

  LINE(19);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        CLUREF T_2_5;
        CLUREF T_2_6;
        CLUREF T_2_7;
        T_2_2.ch = '#';
        T_2_3.num = (c.ch == T_2_2.ch)? true : false;
        T_2_4.num = T_2_3.num ^ 1;
        T_2_1.num = T_2_4.num;
        if (T_2_4.num) {
            T_2_5.ch = '-';
            T_2_6.num = (c.ch == T_2_5.ch)? true : false;
            T_2_7.num = T_2_6.num ^ 1;
            T_2_1.num = T_2_7.num;
        }
        if (T_2_1.num == true) {

  LINE(20);
            {
            err = addl_chars(line, STR_clu_040);
            if (err != ERR_ok) goto ex_0;
            }
            }
            }/* end if */

  LINE(21);
        {
            {CLUREF T_2_1;
            err = fake_stream(&T_2_1);
            if (err != ERR_ok) goto ex_0;
            tyo.num = T_2_1.num;
            }
            }

  LINE(22);
        {
        err = streamOPreset(tyo);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(23);
        {
        CLUREF T_2_1;
        err = process_commands(line, tyo, CLU_0, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        allok.num = T_2_1.num;
        }

  LINE(24);
        {
        if (allok.num == true) {
            {
            err = _exit(CLU_0);
            if (err != ERR_ok) goto ex_0;
            }
            }
        else {
            {
            CLUREF T_3_1;
            T_3_1.num = -1;
            err = _exit(T_3_1);
            if (err != ERR_ok) goto ex_0;
            }
            }}/* end if */
        }
        }/* end if */

  LINE(27);
    {
        {CLUREF T_1_1;
        err = streamOPprimary_output(&T_1_1);
        if (err != ERR_ok) goto ex_0;
        tyo.num = T_1_1.num;
        }
        }

  LINE(28);
    {
    err = streamOPputs(tyo, STR__012_012_052_052_052_052_052_040CLU_040COMPILER_0403_056);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(29);
    {
    CLUREF T_1_1;
    err = cmpvarOPversion(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = streamOPputs(tyo, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(30);
    {
    err = streamOPputs(tyo, STR__040_052_052_052_052_052_040_050);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(31);
    {
    CLUREF T_1_1;
    err = op_sys_name(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = streamOPputs(tyo, T_1_1);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(32);
    {
    err = streamOPputs(tyo, STR__051_040_052_052_052_052_052_012_012);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(33);
    {
        {CLUREF T_1_1;
        err = streamOPprimary_input(&T_1_1);
        if (err != ERR_ok) goto ex_0;
        tyi.num = T_1_1.num;
        }
        }

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

  LINE(35);
        {
        CLUREF T_3_1;
        err = streamOPis_terminal(tyi, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        if (T_3_1.num == true) {

  LINE(36);
            {
            err = streamOPset_prompt(tyi, STR_command_050s_051_072_040);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(37);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            err = lineedit(tyi, STR_command_050s_051_072_040, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            err = stringOPs2ac(T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            line.num = T_4_2.num;
            }

  LINE(38);
            {
            err = streamOPset_prompt(tyi, STR_);
            if (err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(40);
            {
            err = streamOPputl(tyo, STR_command_050s_051_072_040);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(41);
            {
            err = streamOPflush(tyo);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(42);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            err = streamOPgetl(tyi, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            err = stringOPs2ac(T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            line.num = T_4_2.num;
            }
            }}/* end if */

  LINE(44);
        {
        err = streamOPputl(tyo, STR_);
        if (err != ERR_ok) goto ex_1;
        }

  LINE(45);
        {
        CLUREF T_3_1;
        err = process_commands(line, tyo, CLU_1, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        allok.num = T_3_1.num;
        }
        }
        end_while_1:;
        goto end_1;
        ex_1:
            if ((err == ERR_end_of_file)) {
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(47);
    {
    if (allok.num == true) {
        {
        err = _exit(CLU_0);
        if (err != ERR_ok) goto ex_0;
        }
        }
    else {
        {
        CLUREF T_2_1;
        T_2_1.num = -1;
        err = _exit(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 start_up ****/


extern errcode stringOPsize();
extern errcode intOPgt();
extern errcode arrayOPaddl();
extern errcode stringOPfetch();
extern errcode intOPsub();

/**** BEGIN PROCEDURE addl_chars ****/

errcode addl_chars(line, chars)
CLUREF line;
CLUREF chars;
    {
    errcode err;
    errcode ecode2;
    CLUREF i;
    enter_proc(50);

  LINE(51);
    {
        {CLUREF T_1_1;
        err = stringOPsize(chars, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        i.num = T_1_1.num;
        }
        }

  LINE(52);
    for (;;) {
        CLUREF T_1_1;
        T_1_1.num = (i.num > 0)? true : false;
        if (T_1_1.num != true) { break; }

  LINE(53);
        {
        CLUREF T_2_1;
        err = stringOPfetch(chars, i, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = arrayOPaddl(line, T_2_1);
        if (err != ERR_ok) goto ex_0;
        }

  LINE(54);
        {
        CLUREF T_2_1;
        T_2_1.num = i.num - 1;
         if ((T_2_1.num >= 0 && i.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && i.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        i.num = T_2_1.num;
        }
        }
        end_while_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE addl_chars ****/


extern errcode parse_command_line();
extern errcode get_outstream();
extern errcode intOPequal();
extern errcode streamOPget_contents();
extern errcode stringOPempty();
extern errcode arrayOPindexes();
extern errcode arrayOPfetch();
extern errcode arrayOPsize();
extern errcode recordOPget_3();
extern errcode get_command_mode();
extern errcode recordOPget_2();
extern errcode execute_command();
extern errcode recordOPget_1();
extern errcode arrayOPempty();
extern errcode compile();
extern errcode streamOPequal();
extern errcode streamOPclose();
extern errcode streamOPabort();
extern errcode dump_file();
extern errcode streamOPget_name();
CLUREF STR_options_040illegal;
CLUREF STR_missing_040file_040name_050s_051;
static int process_commands_own_init = 0;

/**** BEGIN PROCEDURE process_commands ****/

errcode process_commands(line, tyo, from, ret_1)
CLUREF line;
CLUREF tyo;
CLUREF from;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF allok;
    CLUREF comms;
    CLUREF rfs;
    CLUREF rhave;
    CLUREF rtyo;
    CLUREF errs;
    CLUREF isterm;
    CLUREF i;
    CLUREF comm;
    CLUREF mode;
    CLUREF allok1;
        if (process_commands_own_init == 0) {
        stringOPcons("options illegal", CLU_1, CLU_15, &STR_options_040illegal);
        stringOPcons("missing file name(s)", CLU_1, CLU_20, &STR_missing_040file_040name_050s_051);
        process_commands_own_init = 1;
    }
    enter_proc(58);

  LINE(60);
    {
        {allok.tf = true;
        }
        }

  LINE(61);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        err = parse_command_line(line, &T_1_1, &T_1_2, &T_1_3);
        if (err != ERR_ok) goto ex_0;
        comms.num = T_1_1.num;
        rfs.num = T_1_2.num;
        rhave.num = T_1_3.num;
        }
        }

  LINE(62);
    {
        {rtyo.num = tyo.num;
        }
        }

  LINE(63);
    {
    if (rhave.num == true) {

  LINE(64);
        {
        CLUREF T_2_1;
        err = get_outstream(rfs, tyo, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        rtyo.num = T_2_1.num;
        }

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

  LINE(66);
            {
                {CLUREF T_3_1;
                err = streamOPget_contents(tyo, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                errs.num = T_3_1.num;
                }
                }

  LINE(67);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            err = stringOPempty(errs, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            T_3_2.num = T_3_1.num ^ 1;
            if (T_3_2.num == true) {

  LINE(68);
                {
                err = streamOPreset(tyo);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(69);
                {
                err = streamOPputl(rtyo, errs);
                if (err != ERR_ok) goto ex_1;
                }
                    goto end_1;
                    ex_1:
                        if ((err == ERR_not_possible)) {
                        }
                        else {
                            goto ex_0;
                        }
                    end_1:;
                }
                }/* end if */
            }
            }/* end if */
        }
    else {
    CLUREF T_1_1;
    T_1_1.num = (from.num == 0)? true : false;
    if (T_1_1.num == true) {

  LINE(74);
        {
        CLUREF T_2_1;
        err = streamOPprimary_output(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        rtyo.num = T_2_1.num;
        }
        }
        }}/* end if */

  LINE(75);
    {
        {CLUREF T_1_1;
        err = streamOPis_terminal(rtyo, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        isterm.num = T_1_1.num;
        }
        }

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

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

  LINE(78);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            T_2_1.num = comm.vec->data[2];
            T_2_2.num = T_2_1.array->ext_size;
            T_2_3.num = (T_2_2.num > 0)? true : false;
            if (T_2_3.num == true) {

  LINE(79);
                {
                err = streamOPputl(rtyo, STR_options_040illegal);
                if (err != ERR_ok) goto ex_2;
                }
                    goto end_2;
                    ex_2:
                        if ((err == ERR_not_possible)) {
                        }
                        else {
                            goto ex_0;
                        }
                    end_2:;
                }
                }/* end if */

  LINE(82);
            {
                {CLUREF T_2_1;
                CLUREF T_2_2;
                T_2_1.num = comm.vec->data[1];
                err = get_command_mode(T_2_1, &T_2_2);
                if (err != ERR_ok) goto ex_0;
                mode.num = T_2_2.num;
                }
                }

  LINE(83);
            {
            CLUREF T_3_1;
            T_3_1.num = (mode.num == 7)? true : false;
            if (T_3_1.num == true) {

  LINE(84);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                T_4_1.num = comm.vec->data[1];
                T_4_2.num = comm.vec->data[0];
                err = execute_command(T_4_1, T_4_2, rtyo);
                if (err != ERR_ok) goto ex_3;
                }
                }
            else {
            CLUREF T_3_2;
            CLUREF T_3_3;
            CLUREF T_3_4;
            CLUREF T_3_5;
            CLUREF T_3_6;
            T_3_3.num = comm.vec->data[0];
            T_3_4.num = (T_3_3.array->ext_size == 0)? true : false;
            T_3_5.num = T_3_4.num ^ 1;
            T_3_2.num = T_3_5.num;
            if (!T_3_5.num) {
                T_3_6.num = (mode.num == 5)? true : false;
                T_3_2.num = T_3_6.num;
            }
            if (T_3_2.num == true) {

  LINE(86);
                {
                    {CLUREF T_4_1;
                    CLUREF T_4_2;
                    T_4_1.num = comm.vec->data[0];
                    err = compile(mode, T_4_1, rtyo, &T_4_2);
                    if (err != ERR_ok) goto ex_3;
                    allok1.num = T_4_2.num;
                    }
                    }

  LINE(87);
                {
                CLUREF T_4_1;
                T_4_1.num = allok1.num ^ 1;
                if (T_4_1.num == true) {
                    {
                    allok.tf = false;
                    }
                    }
                    }/* end if */
                }
            else {

  LINE(88);
                {
                err = streamOPputl(rtyo, STR_missing_040file_040name_050s_051);
                if (err != ERR_ok) goto ex_3;
                }
                }}}/* end if */
                goto end_3;
                ex_3:
                    if ((err == ERR_not_possible)) {
                    }
                    else {
                        goto ex_0;
                    }
                end_3:;
        }
    }
    end_inline_for_1:;

  LINE(91);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = streamOPequal(rtyo, tyo, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {

  LINE(92);
        {
        err = streamOPflush(rtyo);
        if (err != ERR_ok) goto ex_4;
        }
            goto end_4;
            ex_4:
                if ((err == ERR_not_possible)) {
                }
                else {
                    goto ex_0;
                }
            end_4:;

  LINE(94);
        {
        err = streamOPclose(rtyo);
        if (err != ERR_ok) goto ex_5;
        }
            goto end_5;
            ex_5:
                if ((err == ERR_not_possible)) {

  LINE(95);
                    {
                    err = streamOPabort(rtyo);
                    if (err != ERR_ok) goto ex_0;
                    }
                }
                else {
                    goto ex_0;
                }
            end_5:;

  LINE(96);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_2.num = isterm.num ^ 1;
        T_2_1.num = T_2_2.num;
        if (T_2_2.num) {
            err = streamOPis_terminal(tyo, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            T_2_1.num = T_2_3.num;
        }
        if (T_2_1.num == true) {

  LINE(97);
            {
            CLUREF T_3_1;
            err = streamOPget_name(rtyo, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            err = dump_file(T_3_1, tyo);
            if (err != ERR_ok) goto ex_0;
            }
            }
            }/* end if */
        }
        }/* end if */

  LINE(99);
    {
    {
    ret_1->num = allok.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 process_commands ****/


extern errcode streamOPcreate_output();
static int fake_stream_own_init = 0;
CLUREF fake_streamOPfake;

/**** BEGIN PROCEDURE fake_stream ****/

errcode fake_stream(ret_1)
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (fake_stream_own_init == 0) {
        fake_stream_own_init = 1;
        {
            {CLUREF T_0_1;
            err = streamOPcreate_output(&T_0_1);
            if (err != ERR_ok) goto ex_0;
            fake_streamOPfake.num = T_0_1.num;
            }
            }
    }
    enter_proc(102);

  LINE(104);
    {
    {
    ret_1->num = fake_streamOPfake.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 fake_stream ****/


extern errcode make_file_name();
extern errcode open_stream();
extern errcode junk_name();
CLUREF STR_write;
static int get_outstream_own_init = 0;

/**** BEGIN PROCEDURE get_outstream ****/

errcode get_outstream(fs, tyo, ret_1)
CLUREF fs;
CLUREF tyo;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF fn;
    CLUREF subst;
        if (get_outstream_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("write", CLU_1, CLU_5, &STR_write);
        get_outstream_own_init = 1;
    }
    enter_proc(107);

  LINE(108);
    {
    CLUREF T_2_1;
    CLUREF T_2_2;
    err = stringOPempty(fs, &T_2_1);
    if (err != ERR_ok) goto ex_1;
    T_2_2.num = T_2_1.num ^ 1;
    if (T_2_2.num == true) {

  LINE(109);
        {
            {CLUREF T_3_1;
            CLUREF T_3_2;
            err = make_file_name(fs, STR_, tyo, &T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_1;
            fn.num = T_3_1.num;
            subst.num = T_3_2.num;
            }
            }

  LINE(110);
        {
        {
        CLUREF T_3_1;
        err = open_stream(fn, STR_write, tyo, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        ret_1->num = T_3_1.num;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */
        goto end_1;
        ex_1:
            if ((err == ERR_bad_format)
             || (err == ERR_open_failed)) {
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(112);
    {
    {
    CLUREF T_2_1;
    CLUREF T_2_2;
    err = junk_name(&T_2_1);
    if (err != ERR_ok) goto ex_2;
    err = open_stream(T_2_1, STR_write, tyo, &T_2_2);
    if (err != ERR_ok) goto ex_2;
    ret_1->num = T_2_2.num;
    }
    {signal (ERR_ok);}}
        goto end_2;
        ex_2:
            if ((err == ERR_open_failed)) {
            }
            else {
                goto ex_0;
            }
        end_2:;

  LINE(114);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = fake_stream(&T_1_1);
    if (err != ERR_ok) goto ex_0;
    err = streamOPequal(tyo, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    if (T_1_2.num == true) {

  LINE(115);
        {
        CLUREF T_2_1;
        err = streamOPprimary_output(&T_2_1);
        if (err != ERR_ok) goto ex_0;
        tyo.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(116);
    {
    {
    ret_1->num = tyo.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_outstream ****/


extern errcode prefix();
CLUREF STR_parse;
CLUREF STR_check;
CLUREF STR_compile;
CLUREF STR_clu;
CLUREF STR_specs;
CLUREF STR_ce;
CLUREF STR_xce;
static int get_command_mode_own_init = 0;

/**** BEGIN PROCEDURE get_command_mode ****/

errcode get_command_mode(cmnd, ret_1)
CLUREF cmnd;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (get_command_mode_own_init == 0) {
        stringOPcons("parse", CLU_1, CLU_5, &STR_parse);
        stringOPcons("check", CLU_1, CLU_5, &STR_check);
        stringOPcons("compile", CLU_1, CLU_7, &STR_compile);
        stringOPcons("clu", CLU_1, CLU_3, &STR_clu);
        stringOPcons("specs", CLU_1, CLU_5, &STR_specs);
        stringOPcons("ce", CLU_1, CLU_2, &STR_ce);
        stringOPcons("xce", CLU_1, CLU_3, &STR_xce);
        get_command_mode_own_init = 1;
    }
    enter_proc(119);

  LINE(120);
    {
    CLUREF T_1_1;
    err = prefix(cmnd, STR_parse, CLU_1, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    if (T_1_1.num == true) {

  LINE(121);
        {
        {
        ret_1->num = 0;
        }
        {signal (ERR_ok);}}
        }
    else {
    CLUREF T_1_2;
    err = prefix(cmnd, STR_check, CLU_2, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    if (T_1_2.num == true) {

  LINE(123);
        {
        {
        ret_1->num = 1;
        }
        {signal (ERR_ok);}}
        }
    else {
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    err = prefix(cmnd, STR_compile, CLU_2, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    T_1_3.num = T_1_4.num;
    if (!T_1_4.num) {
        err = prefix(cmnd, STR_clu, CLU_2, &T_1_5);
        if (err != ERR_ok) goto ex_0;
        T_1_3.num = T_1_5.num;
    }
    if (T_1_3.num == true) {

  LINE(125);
        {
        {
        ret_1->num = 3;
        }
        {signal (ERR_ok);}}
        }
    else {
    CLUREF T_1_6;
    err = prefix(cmnd, STR_specs, CLU_2, &T_1_6);
    if (err != ERR_ok) goto ex_0;
    if (T_1_6.num == true) {

  LINE(127);
        {
        {
        ret_1->num = 4;
        }
        {signal (ERR_ok);}}
        }
    else {
    CLUREF T_1_7;
    err = prefix(cmnd, STR_ce, CLU_2, &T_1_7);
    if (err != ERR_ok) goto ex_0;
    if (T_1_7.num == true) {

  LINE(129);
        {
        {
        ret_1->num = 5;
        }
        {signal (ERR_ok);}}
        }
    else {
    CLUREF T_1_8;
    err = prefix(cmnd, STR_xce, CLU_2, &T_1_8);
    if (err != ERR_ok) goto ex_0;
    if (T_1_8.num == true) {

  LINE(131);
        {
        {
        ret_1->num = 6;
        }
        {signal (ERR_ok);}}
        }
    else {

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

/**** END PROCEDURE get_command_mode ****/


extern errcode _bytevecOPnc_indexv();
extern errcode _cvt();
extern errcode intOPge();

/**** BEGIN PROCEDURE prefix ****/

errcode prefix(s, cmnd, cnt, ret_1)
CLUREF s;
CLUREF cmnd;
CLUREF cnt;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    enter_proc(135);

  LINE(136);
    {
    {
    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;
    T_1_2.num = s.num;
    T_1_3.num = cmnd.num;
    err = _bytevecOPnc_indexv(T_1_2, T_1_3, CLU_1, &T_1_4);
    if (err != ERR_ok) goto ex_0;
    T_1_5.num = (T_1_4.num == 1)? true : false;
    T_1_1.num = T_1_5.num;
    if (T_1_5.num) {
        err = stringOPsize(s, &T_1_6);
        if (err != ERR_ok) goto ex_0;
        T_1_7.num = (T_1_6.num >= cnt.num)? true : false;
        T_1_1.num = T_1_7.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 prefix ****/


extern errcode file_nameOPparse();
extern errcode file_name_fill();
extern errcode file_nameOPget_suffix();
CLUREF STR_bad_040format_040file_040name_040_055_040;
static int make_file_name_own_init = 0;

/**** BEGIN PROCEDURE make_file_name ****/

errcode make_file_name(fs, suffix, tyo, ret_1, ret_2)
CLUREF fs;
CLUREF suffix;
CLUREF tyo;
CLUREF *ret_1;
CLUREF *ret_2;
    {
    errcode err;
    errcode ecode2;
    CLUREF fn;
        if (make_file_name_own_init == 0) {
        stringOPcons("bad format file name - ", CLU_1, CLU_23, &STR_bad_040format_040file_040name_040_055_040);
        make_file_name_own_init = 1;
    }
    enter_proc(143);

  LINE(145);
    {
        {CLUREF T_2_1;
        err = file_nameOPparse(fs, &T_2_1);
        if (err != ERR_ok) goto ex_1;
        fn.num = T_2_1.num;
        }
        }
        goto end_1;
        ex_1:
            if ((err == ERR_bad_format)) {

  LINE(147);
                {

  LINE(148);
                    {
                    err = streamOPputs(tyo, STR_bad_040format_040file_040name_040_055_040);
                    if (err != ERR_ok) goto ex_2;
                    }

  LINE(149);
                    {
                    err = streamOPputl(tyo, fs);
                    if (err != ERR_ok) goto ex_2;
                    }
                    }
                    goto end_2;
                    ex_2:
                        if ((err == ERR_not_possible)) {
                        }
                        else {
                            goto ex_0;
                        }
                    end_2:;

  LINE(151);
                {
                {signal (ERR_bad_format);}}
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(153);
    {
    {
    CLUREF T_1_1;
    err = file_name_fill(fn, suffix, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    ret_1->num = T_1_1.num;
    }
    {
    CLUREF T_1_2;
    CLUREF T_1_3;
    err = file_nameOPget_suffix(fn, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = stringOPempty(T_1_2, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    ret_2->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 make_file_name ****/


extern errcode file_exists();
extern errcode file_nameOPget_other();
extern errcode _dir_ent_size();
extern errcode file_nameOPget_name();
extern errcode intOPlt();
extern errcode file_nameOPcreate();
extern errcode file_nameOPget_dir();
extern errcode stringOPsubstr();
extern errcode stringOPequal();
CLUREF STR_spc;
static int check_file_name_own_init = 0;

/**** BEGIN PROCEDURE check_file_name ****/

errcode check_file_name(fn, ret_1)
CLUREF fn;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF fn1;
    CLUREF dez1;
        if (check_file_name_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("spc", CLU_1, CLU_3, &STR_spc);
        stringOPcons("clu", CLU_1, CLU_3, &STR_clu);
        check_file_name_own_init = 1;
    }
    enter_proc(156);

  LINE(157);
    {
    CLUREF T_2_1;
    CLUREF T_2_2;
    CLUREF T_2_3;
    CLUREF T_2_4;
    CLUREF T_2_5;
    CLUREF T_2_6;
    CLUREF T_2_7;
    CLUREF T_2_8;
    CLUREF T_2_9;
    err = file_exists(fn, &T_2_3);
    if (err != ERR_ok) goto ex_1;
    T_2_4.num = T_2_3.num ^ 1;
    T_2_2.num = T_2_4.num;
    if (T_2_4.num) {
        err = file_nameOPget_suffix(fn, &T_2_5);
        if (err != ERR_ok) goto ex_1;
        err = stringOPempty(T_2_5, &T_2_6);
        if (err != ERR_ok) goto ex_1;
        T_2_7.num = T_2_6.num ^ 1;
        T_2_2.num = T_2_7.num;
    }
    T_2_1.num = T_2_2.num;
    if (T_2_2.num) {
        err = file_nameOPget_other(fn, &T_2_8);
        if (err != ERR_ok) goto ex_1;
        err = stringOPempty(T_2_8, &T_2_9);
        if (err != ERR_ok) goto ex_1;
        T_2_1.num = T_2_9.num;
    }
    if (T_2_1.num == true) {

  LINE(159);
        {
            {fn1.num = fn.num;
            }
            }

  LINE(160);
        {
            {CLUREF T_3_1;
            CLUREF T_3_2;
            err = _dir_ent_size(&T_3_1);
            if (err != ERR_ok) goto ex_1;
            T_3_2.num = T_3_1.num - 1;
             if ((T_3_2.num >= 0 && T_3_1.num < 0 && (-1) < 0) || 
                 (T_3_2.num <= 0 && T_3_1.num > 0 && (-1) > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            dez1.num = T_3_2.num;
            }
            }

  LINE(161);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        CLUREF T_3_6;
        CLUREF T_3_7;
        CLUREF T_3_8;
        CLUREF T_3_9;
        CLUREF T_3_10;
        err = file_nameOPget_name(fn, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        err = stringOPsize(T_3_2, &T_3_3);
        if (err != ERR_ok) goto ex_1;
        err = file_nameOPget_suffix(fn, &T_3_4);
        if (err != ERR_ok) goto ex_1;
        err = stringOPsize(T_3_4, &T_3_5);
        if (err != ERR_ok) goto ex_1;
        T_3_6.num = dez1.num - T_3_5.num;
         if ((T_3_6.num >= 0 && dez1.num < 0 && (-T_3_5.num) < 0) || 
             (T_3_6.num <= 0 && dez1.num > 0 && (-T_3_5.num) > 0)) {
            err = ERR_overflow;
            goto ex_1;}
        T_3_7.num = (T_3_3.num > T_3_6.num)? true : false;
        T_3_1.num = T_3_7.num;
        if (T_3_7.num) {
            err = file_nameOPget_suffix(fn, &T_3_8);
            if (err != ERR_ok) goto ex_1;
            err = stringOPsize(T_3_8, &T_3_9);
            if (err != ERR_ok) goto ex_1;
            T_3_10.num = (T_3_9.num < dez1.num)? true : false;
            T_3_1.num = T_3_10.num;
        }
        if (T_3_1.num == true) {

  LINE(163);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            CLUREF T_4_4;
            CLUREF T_4_5;
            CLUREF T_4_6;
            CLUREF T_4_7;
            CLUREF T_4_8;
            err = file_nameOPget_dir(fn, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            err = file_nameOPget_name(fn, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            err = file_nameOPget_suffix(fn, &T_4_3);
            if (err != ERR_ok) goto ex_1;
            err = stringOPsize(T_4_3, &T_4_4);
            if (err != ERR_ok) goto ex_1;
            T_4_5.num = dez1.num - T_4_4.num;
             if ((T_4_5.num >= 0 && dez1.num < 0 && (-T_4_4.num) < 0) || 
                 (T_4_5.num <= 0 && dez1.num > 0 && (-T_4_4.num) > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            err = stringOPsubstr(T_4_2, CLU_1, T_4_5, &T_4_6);
            if (err != ERR_ok) goto ex_1;
            err = file_nameOPget_suffix(fn, &T_4_7);
            if (err != ERR_ok) goto ex_1;
            err = file_nameOPcreate(T_4_1, T_4_6, T_4_7, STR_, &T_4_8);
            if (err != ERR_ok) goto ex_1;
            fn1.num = T_4_8.num;
            }

  LINE(167);
            {
            CLUREF T_4_1;
            err = file_exists(fn1, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            if (T_4_1.num == true) {

  LINE(168);
                {
                {
                ret_1->num = fn1.num;
                }
                {signal (ERR_ok);}}
                }
                }/* end if */
            }
            }/* end if */

  LINE(170);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        err = file_nameOPget_suffix(fn1, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        T_3_2.num = ((T_3_1.str->size != STR_spc.str->size)? false :
            !(bcmp(T_3_1.str->data, STR_spc.str->data, T_3_1.str->size)));
        if (T_3_2.num == true) {

  LINE(171);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            err = file_nameOPget_dir(fn1, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            err = file_nameOPget_name(fn1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            err = file_nameOPcreate(T_4_1, T_4_2, STR_clu, STR_, &T_4_3);
            if (err != ERR_ok) goto ex_1;
            fn1.num = T_4_3.num;
            }

  LINE(172);
            {
            CLUREF T_4_1;
            err = file_exists(fn1, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            if (T_4_1.num == true) {

  LINE(173);
                {
                {
                ret_1->num = fn1.num;
                }
                {signal (ERR_ok);}}
                }
                }/* end if */
            }
            }/* end if */

  LINE(175);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        err = file_nameOPget_dir(fn, &T_3_1);
        if (err != ERR_ok) goto ex_1;
        err = file_nameOPget_name(fn, &T_3_2);
        if (err != ERR_ok) goto ex_1;
        err = file_nameOPcreate(T_3_1, T_3_2, STR_, STR_, &T_3_3);
        if (err != ERR_ok) goto ex_1;
        fn1.num = T_3_3.num;
        }

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

  LINE(177);
            {
            {
            ret_1->num = fn1.num;
            }
            {signal (ERR_ok);}}
            }
            }/* end if */
        }
        }/* end if */
        goto end_1;
        ex_1:
            if ((err == ERR_not_possible)) {
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(179);
    {
    {
    ret_1->num = fn.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 check_file_name ****/


extern errcode check_file_name();
extern errcode streamOPopen();
extern errcode file_nameOPunparse();
CLUREF STR_read;
CLUREF STR_reading_040;
CLUREF STR_writing_040;
CLUREF STR__072_040;
static int open_stream_own_init = 0;

/**** BEGIN PROCEDURE open_stream ****/

errcode open_stream(fn, mode, tyo, ret_1)
CLUREF fn;
CLUREF mode;
CLUREF tyo;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF why;
        if (open_stream_own_init == 0) {
        stringOPcons("write", CLU_1, CLU_5, &STR_write);
        stringOPcons("read", CLU_1, CLU_4, &STR_read);
        stringOPcons("reading ", CLU_1, CLU_8, &STR_reading_040);
        stringOPcons("writing ", CLU_1, CLU_8, &STR_writing_040);
        stringOPcons(": ", CLU_1, CLU_2, &STR__072_040);
        open_stream_own_init = 1;
    }
    enter_proc(182);

  LINE(184);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = ((mode.str->size != STR_write.str->size)? false :
        !(bcmp(mode.str->data, STR_write.str->data, mode.str->size)));
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {

  LINE(185);
        {
        CLUREF T_2_1;
        err = check_file_name(fn, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        fn.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(186);
    {
    {
    CLUREF T_2_1;
    err = streamOPopen(fn, mode, &T_2_1);
    if (err != ERR_ok) goto ex_1;
    ret_1->num = T_2_1.num;
    }
    {signal (ERR_ok);}}
        goto end_1;
        ex_1:
            if ((err == ERR_not_possible)) {
            CLUREF why;
            why.num = elist[0].num;

  LINE(188);
                {

  LINE(189);
                    {
                    CLUREF T_4_1;
                    T_4_1.num = ((mode.str->size != STR_read.str->size)? false :
                        !(bcmp(mode.str->data, STR_read.str->data, mode.str->size)));
                    if (T_4_1.num == true) {

  LINE(190);
                        {
                        err = streamOPputs(tyo, STR_reading_040);
                        if (err != ERR_ok) goto ex_2;
                        }
                        }
                    else {

  LINE(191);
                        {
                        err = streamOPputs(tyo, STR_writing_040);
                        if (err != ERR_ok) goto ex_2;
                        }
                        }}/* end if */

  LINE(193);
                    {
                    CLUREF T_4_1;
                    err = file_nameOPunparse(fn, &T_4_1);
                    if (err != ERR_ok) goto ex_2;
                    err = streamOPputs(tyo, T_4_1);
                    if (err != ERR_ok) goto ex_2;
                    }

  LINE(194);
                    {
                    err = streamOPputs(tyo, STR__072_040);
                    if (err != ERR_ok) goto ex_2;
                    }

  LINE(195);
                    {
                    err = streamOPputl(tyo, why);
                    if (err != ERR_ok) goto ex_2;
                    }
                    }
                    goto end_2;
                    ex_2:
                        if ((err == ERR_not_possible)) {
                        }
                        else {
                            goto ex_0;
                        }
                    end_2:;

  LINE(197);
                {
                {signal (ERR_open_failed);}}
            }
            else {
                goto ex_0;
            }
        end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE open_stream ****/


extern errcode execute_command_IB_1();
extern errcode execute_command_IB_2();
extern errcode arrayOPset_low();
extern errcode xfile_execute();
extern errcode set_dir();
extern errcode quit_();
extern errcode help_name();
extern errcode _stop();
extern errcode oneofOPvalue_2();
extern errcode recordOPget_7();
extern errcode cmpvarOPstuffs();
extern errcode g_envOPset_space();
extern errcode g_envOPset_time();
extern errcode cmpvarOPmodules();
extern errcode safety_name();
extern errcode cmpvarOPset_modules();
extern errcode streamOPgets();
extern errcode cmpvarOPset_allow();
extern errcode cmpvarOPset_expunge();
extern errcode cmpvarOPset_externals();
extern errcode cmpvarOPset_force_();
extern errcode cmpvarOPset_locals();
extern errcode cmpvarOPcc_dbg_cmd();
extern errcode cmpvarOPset_cc_dbg_cmd();
extern errcode as2str();
extern errcode cmpvarOPcc_opt_cmd();
extern errcode cmpvarOPset_cc_opt_cmd();
extern errcode cmpvarOPset_save_c();
extern errcode cmpvarOPset_dir();
extern errcode stringOPindexc();
extern errcode _fixup_dir_part();
extern errcode stringOPappend();
extern errcode _home_dir();
extern errcode stringOPrest();
extern errcode stringOPconcat();
extern errcode cmpvarOPdir();
extern errcode cmpvarOPset_suffix();
extern errcode duOPreset();
extern errcode xlibOPdump();
extern errcode all_input_names();
extern errcode xlibOPmerge();
extern errcode streamOPputc();
extern errcode arrayOPelements();
extern errcode duOPforget_specs();
extern errcode xlibOPlookup();
extern errcode xlibOPunmerge();
CLUREF STR_xfile;
CLUREF STR_dir;
CLUREF STR_DIR_040expects_0401_040argument;
CLUREF STR_kill;
CLUREF STR_quit;
CLUREF STR_KILL_057QUIT_040expects_040no_040arguments;
CLUREF STR_help;
CLUREF STR__077;
CLUREF STR_HELP_040_050_077_051_040expects_040no_040arguments;
CLUREF STR_escape;
CLUREF STR_ESCAPE_040expects_040no_040arguments;
CLUREF STR_optimize;
CLUREF STR_OPTIMIZE_040expects_0400_040or_0401_040arguments;
CLUREF STR_time;
CLUREF STR_space;
CLUREF STR_false;
CLUREF STR_bad_040OPTIMIZE_040option;
CLUREF STR_safe;
CLUREF STR_SAFE_040expects_0400_040or_0401_040arguments;
CLUREF STR_true;
CLUREF STR_SAFE_040failed_041;
CLUREF STR_bad_040SAFE_040option;
CLUREF STR_allow;
CLUREF STR_ALLOW_040expects_0400_040or_0401_040arguments;
CLUREF STR_bad_040ALLOW_040option;
CLUREF STR_expunge;
CLUREF STR_EXPUNGE_040expects_0400_040or_0401_040arguments;
CLUREF STR_bad_040EXPUNGE_040option;
CLUREF STR_externals;
CLUREF STR_EXTERNALS_040expects_0400_040or_0401_040arguments;
CLUREF STR_bad_040EXTERNALS_040option;
CLUREF STR_force;
CLUREF STR_FORCE_040expects_0400_040or_0401_040arguments;
CLUREF STR_bad_040FORCE_040option;
CLUREF STR_locals;
CLUREF STR_LOCALS_040expects_0400_040or_0401_040arguments;
CLUREF STR_bad_040LOCALS_040option;
CLUREF STR_ccdbg;
CLUREF STR_reset;
CLUREF STR_ccopt;
CLUREF STR_cfiles;
CLUREF STR_CFILES_040expects_0400_040or_0401_040arguments;
CLUREF STR_bad_040CFILES_040option;
CLUREF STR_bindir;
CLUREF STR_BINDIR_040expects_0400_040or_0401_040arguments;
CLUREF STR_bad_040format_040directory_040name;
CLUREF STR__057;
CLUREF STR_binsuf;
CLUREF STR_BINSUF_040expects_0400_040or_0401_040arguments;
CLUREF STR_bad_040format_040suffix;
CLUREF STR_newlib;
CLUREF STR_NEWLIB_040expects_040no_040arguments;
CLUREF STR_dump;
CLUREF STR_DUMP_040expects_0401_040argument;
CLUREF STR_lib;
CLUREF STR_Dumped_040to_040;
CLUREF STR_bad_040format_040file_040name;
CLUREF STR_merge;
CLUREF STR_Merging_040;
CLUREF STR_forget;
CLUREF STR__072_040not_040found;
CLUREF STR_unmerge;
CLUREF STR_Un_055Merging_040;
CLUREF STR_unknown_040command_072_040;
static int execute_command_own_init = 0;

/**** BEGIN PROCEDURE execute_command ****/

errcode execute_command(cmnd, args, tyo)
CLUREF cmnd;
CLUREF args;
CLUREF tyo;
    {
    struct {
        errcode err;
        errcode ecode2;
        CLUREF nargs;
        CLUREF ge;
        CLUREF st;
        CLUREF s;
        CLUREF z;
        CLUREF fn;
        CLUREF why;
        CLUREF nm;
        CLUREF cmnd;
        CLUREF args;
        CLUREF tyo;
        } locals;
    locals.cmnd = cmnd;
    locals.args = args;
    locals.tyo = tyo;
        if (execute_command_own_init == 0) {
        stringOPcons("xfile", CLU_1, CLU_5, &STR_xfile);
        stringOPcons("dir", CLU_1, CLU_3, &STR_dir);
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("DIR expects 1 argument", CLU_1, CLU_22, &STR_DIR_040expects_0401_040argument);
        stringOPcons("kill", CLU_1, CLU_4, &STR_kill);
        stringOPcons("quit", CLU_1, CLU_4, &STR_quit);
        stringOPcons("KILL/QUIT expects no arguments", CLU_1, CLU_30, &STR_KILL_057QUIT_040expects_040no_040arguments);
        stringOPcons("help", CLU_1, CLU_4, &STR_help);
        stringOPcons("?", CLU_1, CLU_1, &STR__077);
        stringOPcons("HELP (?) expects no arguments", CLU_1, CLU_29, &STR_HELP_040_050_077_051_040expects_040no_040arguments);
        stringOPcons("escape", CLU_1, CLU_6, &STR_escape);
        stringOPcons("ESCAPE expects no arguments", CLU_1, CLU_27, &STR_ESCAPE_040expects_040no_040arguments);
        stringOPcons("optimize", CLU_1, CLU_8, &STR_optimize);
        stringOPcons("OPTIMIZE expects 0 or 1 arguments", CLU_1, CLU_33, &STR_OPTIMIZE_040expects_0400_040or_0401_040arguments);
        stringOPcons("time", CLU_1, CLU_4, &STR_time);
        stringOPcons("space", CLU_1, CLU_5, &STR_space);
        stringOPcons("false", CLU_1, CLU_5, &STR_false);
        stringOPcons("bad OPTIMIZE option", CLU_1, CLU_19, &STR_bad_040OPTIMIZE_040option);
        stringOPcons("safe", CLU_1, CLU_4, &STR_safe);
        stringOPcons("SAFE expects 0 or 1 arguments", CLU_1, CLU_29, &STR_SAFE_040expects_0400_040or_0401_040arguments);
        stringOPcons("true", CLU_1, CLU_4, &STR_true);
        stringOPcons("read", CLU_1, CLU_4, &STR_read);
        stringOPcons("SAFE failed!", CLU_1, CLU_12, &STR_SAFE_040failed_041);
        stringOPcons("bad SAFE option", CLU_1, CLU_15, &STR_bad_040SAFE_040option);
        stringOPcons("allow", CLU_1, CLU_5, &STR_allow);
        stringOPcons("ALLOW expects 0 or 1 arguments", CLU_1, CLU_30, &STR_ALLOW_040expects_0400_040or_0401_040arguments);
        stringOPcons("bad ALLOW option", CLU_1, CLU_16, &STR_bad_040ALLOW_040option);
        stringOPcons("expunge", CLU_1, CLU_7, &STR_expunge);
        stringOPcons("EXPUNGE expects 0 or 1 arguments", CLU_1, CLU_32, &STR_EXPUNGE_040expects_0400_040or_0401_040arguments);
        stringOPcons("bad EXPUNGE option", CLU_1, CLU_18, &STR_bad_040EXPUNGE_040option);
        stringOPcons("externals", CLU_1, CLU_9, &STR_externals);
        stringOPcons("EXTERNALS expects 0 or 1 arguments", CLU_1, CLU_34, &STR_EXTERNALS_040expects_0400_040or_0401_040arguments);
        stringOPcons("bad EXTERNALS option", CLU_1, CLU_20, &STR_bad_040EXTERNALS_040option);
        stringOPcons("force", CLU_1, CLU_5, &STR_force);
        stringOPcons("FORCE expects 0 or 1 arguments", CLU_1, CLU_30, &STR_FORCE_040expects_0400_040or_0401_040arguments);
        stringOPcons("bad FORCE option", CLU_1, CLU_16, &STR_bad_040FORCE_040option);
        stringOPcons("locals", CLU_1, CLU_6, &STR_locals);
        stringOPcons("LOCALS expects 0 or 1 arguments", CLU_1, CLU_31, &STR_LOCALS_040expects_0400_040or_0401_040arguments);
        stringOPcons("bad LOCALS option", CLU_1, CLU_17, &STR_bad_040LOCALS_040option);
        stringOPcons("ccdbg", CLU_1, CLU_5, &STR_ccdbg);
        stringOPcons("reset", CLU_1, CLU_5, &STR_reset);
        stringOPcons("ccopt", CLU_1, CLU_5, &STR_ccopt);
        stringOPcons("cfiles", CLU_1, CLU_6, &STR_cfiles);
        stringOPcons("CFILES expects 0 or 1 arguments", CLU_1, CLU_31, &STR_CFILES_040expects_0400_040or_0401_040arguments);
        stringOPcons("bad CFILES option", CLU_1, CLU_17, &STR_bad_040CFILES_040option);
        stringOPcons("bindir", CLU_1, CLU_6, &STR_bindir);
        stringOPcons("BINDIR expects 0 or 1 arguments", CLU_1, CLU_31, &STR_BINDIR_040expects_0400_040or_0401_040arguments);
        stringOPcons("bad format directory name", CLU_1, CLU_25, &STR_bad_040format_040directory_040name);
        stringOPcons("/", CLU_1, CLU_1, &STR__057);
        stringOPcons("binsuf", CLU_1, CLU_6, &STR_binsuf);
        stringOPcons("BINSUF expects 0 or 1 arguments", CLU_1, CLU_31, &STR_BINSUF_040expects_0400_040or_0401_040arguments);
        stringOPcons("bad format suffix", CLU_1, CLU_17, &STR_bad_040format_040suffix);
        stringOPcons("newlib", CLU_1, CLU_6, &STR_newlib);
        stringOPcons("NEWLIB expects no arguments", CLU_1, CLU_27, &STR_NEWLIB_040expects_040no_040arguments);
        stringOPcons("dump", CLU_1, CLU_4, &STR_dump);
        stringOPcons("DUMP expects 1 argument", CLU_1, CLU_23, &STR_DUMP_040expects_0401_040argument);
        stringOPcons("lib", CLU_1, CLU_3, &STR_lib);
        stringOPcons("Dumped to ", CLU_1, CLU_10, &STR_Dumped_040to_040);
        stringOPcons("bad format file name", CLU_1, CLU_20, &STR_bad_040format_040file_040name);
        stringOPcons("merge", CLU_1, CLU_5, &STR_merge);
        stringOPcons("Merging ", CLU_1, CLU_8, &STR_Merging_040);
        stringOPcons(": ", CLU_1, CLU_2, &STR__072_040);
        stringOPcons("forget", CLU_1, CLU_6, &STR_forget);
        stringOPcons(": not found", CLU_1, CLU_11, &STR__072_040not_040found);
        stringOPcons("unmerge", CLU_1, CLU_7, &STR_unmerge);
        stringOPcons("Un-Merging ", CLU_1, CLU_11, &STR_Un_055Merging_040);
        stringOPcons("unknown command: ", CLU_1, CLU_17, &STR_unknown_040command_072_040);
        execute_command_own_init = 1;
    }
    enter_proc(201);

  LINE(202);
    {
    locals.err = arrayOPset_low(locals.args, CLU_1);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(203);
    {
        {CLUREF T_1_1;
        T_1_1.num = locals.args.array->ext_size;
        locals.nargs.num = T_1_1.num;
        }
        }

  LINE(204);
    {
    CLUREF T_2_1;
    locals.err = prefix(locals.cmnd, STR_xfile, CLU_2, &T_2_1);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_1.num == true) {

  LINE(205);
        {
        locals.err = xfile_execute(locals.args, locals.tyo);
        if (locals.err != ERR_ok) goto ex_1;
        }
        }
    else {
    CLUREF T_2_2;
    locals.err = prefix(locals.cmnd, STR_dir, CLU_2, &T_2_2);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_2.num == true) {

  LINE(207);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num == 0)? true : false;
        if (T_3_1.num == true) {

  LINE(208);
            {
            locals.err = set_dir(STR_, locals.tyo);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_2;
        T_3_2.num = (locals.nargs.num == 1)? true : false;
        if (T_3_2.num == true) {

  LINE(210);
            {
            CLUREF T_4_1;
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_1;}
            T_4_1.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = set_dir(T_4_1, locals.tyo);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(211);
            {
            locals.err = streamOPputl(locals.tyo, STR_DIR_040expects_0401_040argument);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}}/* end if */
        }
    else {
    CLUREF T_2_3;
    CLUREF T_2_4;
    CLUREF T_2_5;
    locals.err = prefix(locals.cmnd, STR_kill, CLU_1, &T_2_4);
    if (locals.err != ERR_ok) goto ex_1;
    T_2_3.num = T_2_4.num;
    if (!T_2_4.num) {
        locals.err = prefix(locals.cmnd, STR_quit, CLU_1, &T_2_5);
        if (locals.err != ERR_ok) goto ex_1;
        T_2_3.num = T_2_5.num;
    }
    if (T_2_3.num == true) {

  LINE(213);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num == 0)? true : false;
        if (T_3_1.num == true) {

  LINE(214);
            {
            locals.err = quit_();
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(215);
            {
            locals.err = streamOPputl(locals.tyo, STR_KILL_057QUIT_040expects_040no_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}/* end if */
        }
    else {
    CLUREF T_2_6;
    CLUREF T_2_7;
    CLUREF T_2_8;
    locals.err = prefix(locals.cmnd, STR_help, CLU_1, &T_2_7);
    if (locals.err != ERR_ok) goto ex_1;
    T_2_6.num = T_2_7.num;
    if (!T_2_7.num) {
        T_2_8.num = ((locals.cmnd.str->size != STR__077.str->size)? false :
            !(bcmp(locals.cmnd.str->data, STR__077.str->data, locals.cmnd.str->size)));
        T_2_6.num = T_2_8.num;
    }
    if (T_2_6.num == true) {

  LINE(218);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num == 0)? true : false;
        if (T_3_1.num == true) {

  LINE(219);
            {
            CLUREF T_4_1;
            locals.err = help_name(&T_4_1);
            if (locals.err != ERR_ok) goto ex_1;
            locals.err = dump_file(T_4_1, locals.tyo);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(220);
            {
            locals.err = streamOPputl(locals.tyo, STR_HELP_040_050_077_051_040expects_040no_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}/* end if */
        }
    else {
    CLUREF T_2_9;
    locals.err = prefix(locals.cmnd, STR_escape, CLU_2, &T_2_9);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_9.num == true) {

  LINE(223);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num == 0)? true : false;
        if (T_3_1.num == true) {

  LINE(224);
            {
            locals.err = streamOPflush(locals.tyo);
            if (locals.err != ERR_ok) goto ex_1;
            }

  LINE(225);
            {
            locals.err = _stop();
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(226);
            {
            locals.err = streamOPputl(locals.tyo, STR_ESCAPE_040expects_040no_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}/* end if */
        }
    else {
    CLUREF T_2_10;
    locals.err = prefix(locals.cmnd, STR_optimize, CLU_1, &T_2_10);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_10.num == true) {

  LINE(229);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num > 1)? true : false;
        if (T_3_1.num == true) {

  LINE(230);
            {
            locals.err = streamOPputl(locals.tyo, STR_OPTIMIZE_040expects_0400_040or_0401_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(231);
            {
                {CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                locals.err = cmpvarOPstuffs(&T_4_1);
                if (locals.err != ERR_ok) goto ex_1;
                T_4_2.num = T_4_1.vec->data[6];
                if (T_4_2.cell->tag != 2) {locals.err = ERR_wrong_tag; goto ex_1;}
                T_4_3.num = T_4_2.cell->value;
                locals.ge.num = T_4_3.num;
                }
                }

  LINE(232);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            CLUREF T_4_4;
            T_4_2.num = (locals.nargs.num == 0)? true : false;
            T_4_1.num = T_4_2.num;
            if (!T_4_2.num) {
                if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                    locals.err = ERR_bounds;
                    goto ex_1;}
                T_4_3.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
                locals.err = prefix(T_4_3, STR_time, CLU_1, &T_4_4);
                if (locals.err != ERR_ok) goto ex_1;
                T_4_1.num = T_4_4.num;
            }
            if (T_4_1.num == true) {

  LINE(233);
                {
                locals.err = g_envOPset_space(locals.ge, CLU_1);
                if (locals.err != ERR_ok) goto ex_1;
                }

  LINE(234);
                {
                locals.err = g_envOPset_time(locals.ge, CLU_1);
                if (locals.err != ERR_ok) goto ex_1;
                }
                }
            else {
            CLUREF T_4_5;
            CLUREF T_4_6;
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_1;}
            T_4_5.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = prefix(T_4_5, STR_space, CLU_1, &T_4_6);
            if (locals.err != ERR_ok) goto ex_1;
            if (T_4_6.num == true) {

  LINE(236);
                {
                locals.err = g_envOPset_space(locals.ge, CLU_1);
                if (locals.err != ERR_ok) goto ex_1;
                }

  LINE(237);
                {
                locals.err = g_envOPset_time(locals.ge, CLU_0);
                if (locals.err != ERR_ok) goto ex_1;
                }
                }
            else {
            CLUREF T_4_7;
            CLUREF T_4_8;
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_1;}
            T_4_7.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = prefix(T_4_7, STR_false, CLU_1, &T_4_8);
            if (locals.err != ERR_ok) goto ex_1;
            if (T_4_8.num == true) {

  LINE(239);
                {
                locals.err = g_envOPset_space(locals.ge, CLU_0);
                if (locals.err != ERR_ok) goto ex_1;
                }

  LINE(240);
                {
                locals.err = g_envOPset_time(locals.ge, CLU_0);
                if (locals.err != ERR_ok) goto ex_1;
                }
                }
            else {

  LINE(241);
                {
                locals.err = streamOPputl(locals.tyo, STR_bad_040OPTIMIZE_040option);
                if (locals.err != ERR_ok) goto ex_1;
                }
                }}}}/* end if */
            }}/* end if */
        }
    else {
    CLUREF T_2_11;
    locals.err = prefix(locals.cmnd, STR_safe, CLU_2, &T_2_11);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_11.num == true) {

  LINE(244);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num > 1)? true : false;
        if (T_3_1.num == true) {

  LINE(245);
            {
            locals.err = streamOPputl(locals.tyo, STR_SAFE_040expects_0400_040or_0401_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        T_3_3.num = (locals.nargs.num == 0)? true : false;
        T_3_2.num = T_3_3.num;
        if (!T_3_3.num) {
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_1;}
            T_3_4.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = prefix(T_3_4, STR_true, CLU_1, &T_3_5);
            if (locals.err != ERR_ok) goto ex_1;
            T_3_2.num = T_3_5.num;
        }
        if (T_3_2.num == true) {

  LINE(247);
            {
            CLUREF T_5_1;
            CLUREF T_5_2;
            locals.err = cmpvarOPmodules(&T_5_1);
            if (locals.err != ERR_ok) goto ex_2;
            locals.err = stringOPempty(T_5_1, &T_5_2);
            if (locals.err != ERR_ok) goto ex_2;
            if (T_5_2.num == true) {

  LINE(248);
                {
                    {CLUREF T_6_1;
                    CLUREF T_6_2;
                    locals.err = safety_name(&T_6_1);
                    if (locals.err != ERR_ok) goto ex_2;
                    locals.err = streamOPopen(T_6_1, STR_read, &T_6_2);
                    if (locals.err != ERR_ok) goto ex_2;
                    locals.st.num = T_6_2.num;
                    }
                    }

  LINE(250);
                {
                CLUREF T_6_1;
                locals.err = streamOPgets(locals.st, STR_, &T_6_1);
                if (locals.err != ERR_ok) goto ex_2;
                locals.err = cmpvarOPset_modules(T_6_1);
                if (locals.err != ERR_ok) goto ex_2;
                }

  LINE(251);
                {
                locals.err = streamOPclose(locals.st);
                if (locals.err != ERR_ok) goto ex_2;
                }
                }
                }/* end if */
                goto end_2;
                ex_2:
                    if ((locals.err == ERR_not_possible)) {

  LINE(253);
                        {
                        locals.err = streamOPputl(locals.tyo, STR_SAFE_040failed_041);
                        if (locals.err != ERR_ok) goto ex_1;
                        }
                    }
                    else {
                        goto ex_1;
                    }
                end_2:;
            }
        else {
        CLUREF T_3_6;
        CLUREF T_3_7;
        if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
            locals.err = ERR_bounds;
            goto ex_1;}
        T_3_6.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
        locals.err = prefix(T_3_6, STR_false, CLU_1, &T_3_7);
        if (locals.err != ERR_ok) goto ex_1;
        if (T_3_7.num == true) {

  LINE(257);
            {
            locals.err = cmpvarOPset_modules(STR_);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(258);
            {
            locals.err = streamOPputl(locals.tyo, STR_bad_040SAFE_040option);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}}}/* end if */
        }
    else {
    CLUREF T_2_12;
    locals.err = prefix(locals.cmnd, STR_allow, CLU_1, &T_2_12);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_12.num == true) {

  LINE(260);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num > 1)? true : false;
        if (T_3_1.num == true) {

  LINE(261);
            {
            locals.err = streamOPputl(locals.tyo, STR_ALLOW_040expects_0400_040or_0401_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        T_3_3.num = (locals.nargs.num == 0)? true : false;
        T_3_2.num = T_3_3.num;
        if (!T_3_3.num) {
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_1;}
            T_3_4.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = prefix(T_3_4, STR_true, CLU_1, &T_3_5);
            if (locals.err != ERR_ok) goto ex_1;
            T_3_2.num = T_3_5.num;
        }
        if (T_3_2.num == true) {

  LINE(263);
            {
            locals.err = cmpvarOPset_allow(CLU_1);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_6;
        CLUREF T_3_7;
        if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
            locals.err = ERR_bounds;
            goto ex_1;}
        T_3_6.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
        locals.err = prefix(T_3_6, STR_false, CLU_1, &T_3_7);
        if (locals.err != ERR_ok) goto ex_1;
        if (T_3_7.num == true) {

  LINE(265);
            {
            locals.err = cmpvarOPset_allow(CLU_0);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(266);
            {
            locals.err = streamOPputl(locals.tyo, STR_bad_040ALLOW_040option);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}}}/* end if */
        }
    else {
    CLUREF T_2_13;
    locals.err = prefix(locals.cmnd, STR_expunge, CLU_3, &T_2_13);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_13.num == true) {

  LINE(268);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num > 1)? true : false;
        if (T_3_1.num == true) {

  LINE(269);
            {
            locals.err = streamOPputl(locals.tyo, STR_EXPUNGE_040expects_0400_040or_0401_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        T_3_3.num = (locals.nargs.num == 0)? true : false;
        T_3_2.num = T_3_3.num;
        if (!T_3_3.num) {
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_1;}
            T_3_4.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = prefix(T_3_4, STR_true, CLU_1, &T_3_5);
            if (locals.err != ERR_ok) goto ex_1;
            T_3_2.num = T_3_5.num;
        }
        if (T_3_2.num == true) {

  LINE(271);
            {
            locals.err = cmpvarOPset_expunge(CLU_1);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_6;
        CLUREF T_3_7;
        if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
            locals.err = ERR_bounds;
            goto ex_1;}
        T_3_6.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
        locals.err = prefix(T_3_6, STR_false, CLU_1, &T_3_7);
        if (locals.err != ERR_ok) goto ex_1;
        if (T_3_7.num == true) {

  LINE(273);
            {
            locals.err = cmpvarOPset_expunge(CLU_0);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(274);
            {
            locals.err = streamOPputl(locals.tyo, STR_bad_040EXPUNGE_040option);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}}}/* end if */
        }
    else {
    CLUREF T_2_14;
    locals.err = prefix(locals.cmnd, STR_externals, CLU_3, &T_2_14);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_14.num == true) {

  LINE(276);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num > 1)? true : false;
        if (T_3_1.num == true) {

  LINE(277);
            {
            locals.err = streamOPputl(locals.tyo, STR_EXTERNALS_040expects_0400_040or_0401_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        T_3_3.num = (locals.nargs.num == 0)? true : false;
        T_3_2.num = T_3_3.num;
        if (!T_3_3.num) {
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_1;}
            T_3_4.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = prefix(T_3_4, STR_true, CLU_1, &T_3_5);
            if (locals.err != ERR_ok) goto ex_1;
            T_3_2.num = T_3_5.num;
        }
        if (T_3_2.num == true) {

  LINE(279);
            {
            locals.err = cmpvarOPset_externals(CLU_1);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_6;
        CLUREF T_3_7;
        if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
            locals.err = ERR_bounds;
            goto ex_1;}
        T_3_6.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
        locals.err = prefix(T_3_6, STR_false, CLU_1, &T_3_7);
        if (locals.err != ERR_ok) goto ex_1;
        if (T_3_7.num == true) {

  LINE(281);
            {
            locals.err = cmpvarOPset_externals(CLU_0);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(282);
            {
            locals.err = streamOPputl(locals.tyo, STR_bad_040EXTERNALS_040option);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}}}/* end if */
        }
    else {
    CLUREF T_2_15;
    locals.err = prefix(locals.cmnd, STR_force, CLU_4, &T_2_15);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_15.num == true) {

  LINE(284);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num > 1)? true : false;
        if (T_3_1.num == true) {

  LINE(285);
            {
            locals.err = streamOPputl(locals.tyo, STR_FORCE_040expects_0400_040or_0401_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        T_3_3.num = (locals.nargs.num == 0)? true : false;
        T_3_2.num = T_3_3.num;
        if (!T_3_3.num) {
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_1;}
            T_3_4.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = prefix(T_3_4, STR_true, CLU_1, &T_3_5);
            if (locals.err != ERR_ok) goto ex_1;
            T_3_2.num = T_3_5.num;
        }
        if (T_3_2.num == true) {

  LINE(287);
            {
            locals.err = cmpvarOPset_force_(CLU_1);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_6;
        CLUREF T_3_7;
        if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
            locals.err = ERR_bounds;
            goto ex_1;}
        T_3_6.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
        locals.err = prefix(T_3_6, STR_false, CLU_1, &T_3_7);
        if (locals.err != ERR_ok) goto ex_1;
        if (T_3_7.num == true) {

  LINE(289);
            {
            locals.err = cmpvarOPset_force_(CLU_0);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(290);
            {
            locals.err = streamOPputl(locals.tyo, STR_bad_040FORCE_040option);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}}}/* end if */
        }
    else {
    CLUREF T_2_16;
    locals.err = prefix(locals.cmnd, STR_locals, CLU_1, &T_2_16);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_16.num == true) {

  LINE(292);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num > 1)? true : false;
        if (T_3_1.num == true) {

  LINE(293);
            {
            locals.err = streamOPputl(locals.tyo, STR_LOCALS_040expects_0400_040or_0401_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        T_3_3.num = (locals.nargs.num == 0)? true : false;
        T_3_2.num = T_3_3.num;
        if (!T_3_3.num) {
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_1;}
            T_3_4.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = prefix(T_3_4, STR_true, CLU_1, &T_3_5);
            if (locals.err != ERR_ok) goto ex_1;
            T_3_2.num = T_3_5.num;
        }
        if (T_3_2.num == true) {

  LINE(295);
            {
            locals.err = cmpvarOPset_locals(CLU_1);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_6;
        CLUREF T_3_7;
        if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
            locals.err = ERR_bounds;
            goto ex_1;}
        T_3_6.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
        locals.err = prefix(T_3_6, STR_false, CLU_1, &T_3_7);
        if (locals.err != ERR_ok) goto ex_1;
        if (T_3_7.num == true) {

  LINE(297);
            {
            locals.err = cmpvarOPset_locals(CLU_0);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(298);
            {
            locals.err = streamOPputl(locals.tyo, STR_bad_040LOCALS_040option);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}}}/* end if */
        }
    else {
    CLUREF T_2_17;
    locals.err = prefix(locals.cmnd, STR_ccdbg, CLU_3, &T_2_17);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_17.num == true) {

  LINE(300);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num == 0)? true : false;
        if (T_3_1.num == true) {

  LINE(301);
            {
            CLUREF T_4_1;
            locals.err = cmpvarOPcc_dbg_cmd(&T_4_1);
            if (locals.err != ERR_ok) goto ex_1;
            locals.err = streamOPputl(locals.tyo, T_4_1);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        T_3_3.num = (locals.nargs.num == 1)? true : false;
        T_3_2.num = T_3_3.num;
        if (T_3_3.num) {
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_1;}
            T_3_4.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = prefix(T_3_4, STR_reset, CLU_5, &T_3_5);
            if (locals.err != ERR_ok) goto ex_1;
            T_3_2.num = T_3_5.num;
        }
        if (T_3_2.num == true) {

  LINE(303);
            {
            locals.err = cmpvarOPset_cc_dbg_cmd(STR_);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(304);
            {
            CLUREF T_4_1;
            locals.err = as2str(locals.args, &T_4_1);
            if (locals.err != ERR_ok) goto ex_1;
            locals.err = cmpvarOPset_cc_dbg_cmd(T_4_1);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}}/* end if */
        }
    else {
    CLUREF T_2_18;
    locals.err = prefix(locals.cmnd, STR_ccopt, CLU_3, &T_2_18);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_18.num == true) {

  LINE(306);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num == 0)? true : false;
        if (T_3_1.num == true) {

  LINE(307);
            {
            CLUREF T_4_1;
            locals.err = cmpvarOPcc_opt_cmd(&T_4_1);
            if (locals.err != ERR_ok) goto ex_1;
            locals.err = streamOPputl(locals.tyo, T_4_1);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        T_3_3.num = (locals.nargs.num == 1)? true : false;
        T_3_2.num = T_3_3.num;
        if (T_3_3.num) {
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_1;}
            T_3_4.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = prefix(T_3_4, STR_reset, CLU_5, &T_3_5);
            if (locals.err != ERR_ok) goto ex_1;
            T_3_2.num = T_3_5.num;
        }
        if (T_3_2.num == true) {

  LINE(309);
            {
            locals.err = cmpvarOPset_cc_opt_cmd(STR_);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(310);
            {
            CLUREF T_4_1;
            locals.err = as2str(locals.args, &T_4_1);
            if (locals.err != ERR_ok) goto ex_1;
            locals.err = cmpvarOPset_cc_opt_cmd(T_4_1);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}}/* end if */
        }
    else {
    CLUREF T_2_19;
    locals.err = prefix(locals.cmnd, STR_cfiles, CLU_2, &T_2_19);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_19.num == true) {

  LINE(312);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num > 1)? true : false;
        if (T_3_1.num == true) {

  LINE(313);
            {
            locals.err = streamOPputl(locals.tyo, STR_CFILES_040expects_0400_040or_0401_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        T_3_3.num = (locals.nargs.num == 0)? true : false;
        T_3_2.num = T_3_3.num;
        if (!T_3_3.num) {
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_1;}
            T_3_4.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = prefix(T_3_4, STR_true, CLU_1, &T_3_5);
            if (locals.err != ERR_ok) goto ex_1;
            T_3_2.num = T_3_5.num;
        }
        if (T_3_2.num == true) {

  LINE(315);
            {
            locals.err = cmpvarOPset_save_c(CLU_1);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_6;
        CLUREF T_3_7;
        if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
            locals.err = ERR_bounds;
            goto ex_1;}
        T_3_6.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
        locals.err = prefix(T_3_6, STR_false, CLU_1, &T_3_7);
        if (locals.err != ERR_ok) goto ex_1;
        if (T_3_7.num == true) {

  LINE(317);
            {
            locals.err = cmpvarOPset_save_c(CLU_0);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(318);
            {
            locals.err = streamOPputl(locals.tyo, STR_bad_040CFILES_040option);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}}}/* end if */
        }
    else {
    CLUREF T_2_20;
    locals.err = prefix(locals.cmnd, STR_bindir, CLU_4, &T_2_20);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_20.num == true) {

  LINE(320);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num > 1)? true : false;
        if (T_3_1.num == true) {

  LINE(321);
            {
            locals.err = streamOPputl(locals.tyo, STR_BINDIR_040expects_0400_040or_0401_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_2;
        T_3_2.num = (locals.nargs.num == 0)? true : false;
        if (T_3_2.num == true) {

  LINE(323);
            {
            locals.err = cmpvarOPset_dir(STR_);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        CLUREF T_3_6;
        T_3_3.ch = '\000';
        if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
            locals.err = ERR_bounds;
            goto ex_1;}
        T_3_4.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
        locals.err = stringOPindexc(T_3_3, T_3_4, &T_3_5);
        if (locals.err != ERR_ok) goto ex_1;
        T_3_6.num = (T_3_5.num > 0)? true : false;
        if (T_3_6.num == true) {

  LINE(325);
            {
            locals.err = streamOPputl(locals.tyo, STR_bad_040format_040directory_040name);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(326);
            {
                {CLUREF T_4_1;
                CLUREF T_4_2;
                if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                    locals.err = ERR_bounds;
                    goto ex_1;}
                T_4_1.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
                locals.err = _fixup_dir_part(T_4_1, &T_4_2);
                if (locals.err != ERR_ok) goto ex_1;
                locals.s.num = T_4_2.num;
                }
                }

  LINE(327);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = ((locals.s.str->size != STR__057.str->size)? false :
                !(bcmp(locals.s.str->data, STR__057.str->data, locals.s.str->size)));
            T_4_2.num = T_4_1.num ^ 1;
            if (T_4_2.num == true) {

  LINE(328);
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                T_5_1.ch = '/';
                locals.err = stringOPappend(locals.s, T_5_1, &T_5_2);
                if (locals.err != ERR_ok) goto ex_1;
                locals.s.num = T_5_2.num;
                }

  LINE(329);
                {
                CLUREF T_6_1;
                CLUREF T_6_2;
                CLUREF T_6_3;
                locals.err = stringOPfetch(locals.s, CLU_1, &T_6_1);
                if (locals.err != ERR_ok) goto ex_3;
                T_6_2.ch = '~';
                T_6_3.num = (T_6_1.ch == T_6_2.ch)? true : false;
                if (T_6_3.num == true) {

  LINE(330);
                    {
                        {CLUREF T_7_1;
                        CLUREF T_7_2;
                        T_7_1.ch = '/';
                        locals.err = stringOPindexc(T_7_1, locals.s, &T_7_2);
                        if (locals.err != ERR_ok) goto ex_3;
                        locals.z.num = T_7_2.num;
                        }
                        }

  LINE(331);
                    {
                    CLUREF T_7_1;
                    T_7_1.num = (locals.z.num == 0)? true : false;
                    if (T_7_1.num == true) {

  LINE(332);
                        {
                        CLUREF T_8_1;
                        CLUREF T_8_2;
                        locals.err = stringOPrest(locals.s, CLU_2, &T_8_1);
                        if (locals.err != ERR_ok) goto ex_3;
                        locals.err = _home_dir(T_8_1, &T_8_2);
                        if (locals.err != ERR_ok) goto ex_3;
                        locals.s.num = T_8_2.num;
                        }
                        }
                    else {

  LINE(333);
                        {
                        CLUREF T_8_1;
                        CLUREF T_8_2;
                        CLUREF T_8_3;
                        CLUREF T_8_4;
                        CLUREF T_8_5;
                        T_8_1.num = locals.z.num - 2;
                         if ((T_8_1.num >= 0 && locals.z.num < 0 && (-2) < 0) || 
                             (T_8_1.num <= 0 && locals.z.num > 0 && (-2) > 0)) {
                            locals.err = ERR_overflow;
                            goto ex_3;}
                        locals.err = stringOPsubstr(locals.s, CLU_2, T_8_1, &T_8_2);
                        if (locals.err != ERR_ok) goto ex_3;
                        locals.err = _home_dir(T_8_2, &T_8_3);
                        if (locals.err != ERR_ok) goto ex_3;
                        locals.err = stringOPrest(locals.s, locals.z, &T_8_4);
                        if (locals.err != ERR_ok) goto ex_3;
                        locals.err = stringOPconcat(T_8_3, T_8_4, &T_8_5);
                        if (locals.err != ERR_ok) goto ex_3;
                        locals.s.num = T_8_5.num;
                        }
                        }}/* end if */
                    }
                else {
                CLUREF T_6_4;
                CLUREF T_6_5;
                CLUREF T_6_6;
                CLUREF T_6_7;
                locals.err = stringOPfetch(locals.s, CLU_1, &T_6_4);
                if (locals.err != ERR_ok) goto ex_3;
                T_6_5.ch = '/';
                T_6_6.num = (T_6_4.ch == T_6_5.ch)? true : false;
                T_6_7.num = T_6_6.num ^ 1;
                if (T_6_7.num == true) {

  LINE(338);
                    {
                    CLUREF T_7_1;
                    CLUREF T_7_2;
                    locals.err = cmpvarOPdir(&T_7_1);
                    if (locals.err != ERR_ok) goto ex_3;
                    locals.err = stringOPconcat(T_7_1, locals.s, &T_7_2);
                    if (locals.err != ERR_ok) goto ex_3;
                    locals.s.num = T_7_2.num;
                    }
                    }
                    }}/* end if */
                    goto end_3;
                    ex_3:
                        if ((locals.err == ERR_not_found)) {
                        }
                        else {
                            goto ex_1;
                        }
                    end_3:;
                }
                }/* end if */

  LINE(341);
            {
            locals.err = cmpvarOPset_dir(locals.s);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}}}/* end if */
        }
    else {
    CLUREF T_2_21;
    locals.err = prefix(locals.cmnd, STR_binsuf, CLU_4, &T_2_21);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_21.num == true) {

  LINE(344);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num > 1)? true : false;
        if (T_3_1.num == true) {

  LINE(345);
            {
            locals.err = streamOPputl(locals.tyo, STR_BINSUF_040expects_0400_040or_0401_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_2;
        T_3_2.num = (locals.nargs.num == 1)? true : false;
        if (T_3_2.num == true) {

  LINE(347);
            {
            CLUREF T_5_1;
            CLUREF T_5_2;
            CLUREF T_5_3;
            if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                locals.err = ERR_bounds;
                goto ex_4;}
            T_5_1.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
            locals.err = file_nameOPcreate(STR_, STR_, T_5_1, STR_, &T_5_2);
            if (locals.err != ERR_ok) goto ex_4;
            locals.err = file_nameOPget_suffix(T_5_2, &T_5_3);
            if (locals.err != ERR_ok) goto ex_4;
            locals.err = cmpvarOPset_suffix(T_5_3);
            if (locals.err != ERR_ok) goto ex_4;
            }
                goto end_4;
                ex_4:
                    if ((locals.err == ERR_bad_format)) {

  LINE(349);
                        {
                        locals.err = streamOPputl(locals.tyo, STR_bad_040format_040suffix);
                        if (locals.err != ERR_ok) goto ex_1;
                        }
                    }
                    else {
                        goto ex_1;
                    }
                end_4:;
            }
        else {

  LINE(351);
            {
            locals.err = cmpvarOPset_suffix(STR_);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}}/* end if */
        }
    else {
    CLUREF T_2_22;
    locals.err = prefix(locals.cmnd, STR_newlib, CLU_1, &T_2_22);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_22.num == true) {

  LINE(353);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.nargs.num > 0)? true : false;
        if (T_3_1.num == true) {

  LINE(354);
            {
            locals.err = streamOPputl(locals.tyo, STR_NEWLIB_040expects_040no_040arguments);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(355);
            {
            locals.err = duOPreset();
            if (locals.err != ERR_ok) goto ex_1;
            }
            }}/* end if */
        }
    else {
    CLUREF T_2_23;
    locals.err = prefix(locals.cmnd, STR_dump, CLU_2, &T_2_23);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_23.num == true) {

  LINE(358);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        T_3_1.num = (locals.nargs.num == 1)? true : false;
        T_3_2.num = T_3_1.num ^ 1;
        if (T_3_2.num == true) {

  LINE(359);
            {
            locals.err = streamOPputl(locals.tyo, STR_DUMP_040expects_0401_040argument);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(360);
            {

  LINE(361);
                {
                    {CLUREF T_6_1;
                    CLUREF T_6_2;
                    CLUREF T_6_3;
                    if (1 < locals.args.array->ext_low || 1 > locals.args.array->ext_high ) {
                        locals.err = ERR_bounds;
                        goto ex_5;}
                    T_6_1.num = locals.args.array->store->data[1 - locals.args.array->ext_low + locals.args.array->int_low];
                    locals.err = file_nameOPparse(T_6_1, &T_6_2);
                    if (locals.err != ERR_ok) goto ex_5;
                    locals.err = file_name_fill(T_6_2, STR_lib, &T_6_3);
                    if (locals.err != ERR_ok) goto ex_5;
                    locals.fn.num = T_6_3.num;
                    }
                    }

  LINE(362);
                {
                CLUREF T_6_1;
                locals.err = xlibOPdump(locals.fn, &T_6_1);
                if (locals.err != ERR_ok) goto ex_5;
                locals.fn.num = T_6_1.num;
                }

  LINE(363);
                {
                locals.err = streamOPputs(locals.tyo, STR_Dumped_040to_040);
                if (locals.err != ERR_ok) goto ex_5;
                }

  LINE(364);
                {
                CLUREF T_6_1;
                locals.err = file_nameOPunparse(locals.fn, &T_6_1);
                if (locals.err != ERR_ok) goto ex_5;
                locals.err = streamOPputl(locals.tyo, T_6_1);
                if (locals.err != ERR_ok) goto ex_5;
                }
                }
                goto end_5;
                ex_5:
                    if ((locals.err == ERR_bad_format)) {

  LINE(365);
                        {
                        locals.err = streamOPputl(locals.tyo, STR_bad_040format_040file_040name);
                        if (locals.err != ERR_ok) goto ex_1;
                        }
                    }
                    else if ((locals.err == ERR_not_possible)) {
                    CLUREF why;
                    locals.why.num = elist[0].num;

  LINE(366);
                        {
                        locals.err = streamOPputl(locals.tyo, locals.why);
                        if (locals.err != ERR_ok) goto ex_1;
                        }
                    }
                    else {
                        goto ex_1;
                    }
                end_5:;
            }}/* end if */
        }
    else {
    CLUREF T_2_24;
    locals.err = prefix(locals.cmnd, STR_merge, CLU_1, &T_2_24);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_24.num == true) {

  LINE(370);
        {
            locals.err = all_input_names(locals.args, STR_lib, locals.tyo, execute_command_IB_1, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {
            signal(ERR_ok);}
            if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
            if (locals.err == ERR_break) locals.err = ERR_ok;
            if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
            if (locals.err != ERR_ok) goto ex_1;
            }
        }
    else {
    CLUREF T_2_25;
    locals.err = prefix(locals.cmnd, STR_forget, CLU_4, &T_2_25);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_25.num == true) {

  LINE(382);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
            T_3_2.num = locals.args.array->ext_high; 
            T_3_3 = locals.args;
            for (T_3_1.num = locals.args.array->ext_low; T_3_1.num <= T_3_2.num; T_3_1.num++) {
                if (T_3_1.num > T_3_3.array->ext_high || T_3_1.num < T_3_3.array->ext_low) {
                    locals.err = ERR_failure;
                    elist[0].str = array_bounds_exception_STRING;
                    goto ex_1;}
                locals.nm.num = T_3_3.array->store->data[T_3_1.num - T_3_3.array->ext_low + T_3_3.array->int_low];

  LINE(383);
                {
                CLUREF T_5_1;
                locals.err = xlibOPlookup(locals.nm, &T_5_1);
                if (locals.err != ERR_ok) goto ex_6;
                locals.err = duOPforget_specs(T_5_1);
                if (locals.err != ERR_ok) goto ex_6;
                }
                    goto end_6;
                    ex_6:
                        if ((locals.err == ERR_not_found)) {

  LINE(385);
                            {
                            locals.err = streamOPputs(locals.tyo, locals.nm);
                            if (locals.err != ERR_ok) goto ex_1;
                            }

  LINE(386);
                            {
                            locals.err = streamOPputl(locals.tyo, STR__072_040not_040found);
                            if (locals.err != ERR_ok) goto ex_1;
                            }
                        }
                        else {
                            goto ex_1;
                        }
                    end_6:;
            }
        }
        end_inline_for_1:;
        }
    else {
    CLUREF T_2_26;
    locals.err = prefix(locals.cmnd, STR_unmerge, CLU_1, &T_2_26);
    if (locals.err != ERR_ok) goto ex_1;
    if (T_2_26.num == true) {

  LINE(390);
        {
            locals.err = all_input_names(locals.args, STR_lib, locals.tyo, execute_command_IB_2, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {
            signal(ERR_ok);}
            if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
            if (locals.err == ERR_break) locals.err = ERR_ok;
            if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
            if (locals.err != ERR_ok) goto ex_1;
            }
        }
    else {
    CLUREF T_2_27;
    CLUREF T_2_28;
    locals.err = stringOPempty(locals.cmnd, &T_2_27);
    if (locals.err != ERR_ok) goto ex_1;
    T_2_28.num = T_2_27.num ^ 1;
    if (T_2_28.num == true) {

  LINE(402);
        {
        locals.err = streamOPputs(locals.tyo, STR_unknown_040command_072_040);
        if (locals.err != ERR_ok) goto ex_1;
        }

  LINE(403);
        {
        locals.err = streamOPputl(locals.tyo, locals.cmnd);
        if (locals.err != ERR_ok) goto ex_1;
        }
        }
        }}}}}}}}}}}}}}}}}}}}}}}/* end if */
        goto end_1;
        ex_1:
            if ((locals.err == ERR_not_possible)) {
            }
            else {
                goto ex_0;
            }
        end_1:;
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE execute_command ****/


/**** BEGIN ITERATOR BODIES for execute_command ****/

errcode execute_command_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF nargs;
    CLUREF ge;
    CLUREF st;
    CLUREF s;
    CLUREF z;
    CLUREF fn;
    CLUREF why;
    CLUREF nm;
    CLUREF cmnd;
    CLUREF args;
    CLUREF tyo;
    } *locals;
{
    locals->fn.num = iv_1.num;
    enter_iter_body_proc(371);

  FB_LINE(371);
    {
    locals->err = streamOPputs(locals->tyo, STR_Merging_040);
    if (locals->err != ERR_ok) goto ex_0;
    }

  FB_LINE(372);
    {
    CLUREF T_1_1;
    locals->err = file_nameOPunparse(locals->fn, &T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    locals->err = streamOPputs(locals->tyo, T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    }

  FB_LINE(373);
    {
    locals->err = streamOPflush(locals->tyo);
    if (locals->err != ERR_ok) goto ex_0;
    }

  FB_LINE(374);
    {
    locals->err = xlibOPmerge(locals->fn);
    if (locals->err != ERR_ok) goto ex_1;
    }
        goto end_1;
        ex_1:
            if ((locals->err == ERR_not_possible)) {
            CLUREF why;
            locals->why.num = elist[0].num;

  FB_LINE(376);
                {
                locals->err = streamOPputs(locals->tyo, STR__072_040);
                if (locals->err != ERR_ok) goto ex_0;
                }

  FB_LINE(377);
                {
                locals->err = streamOPputs(locals->tyo, locals->why);
                if (locals->err != ERR_ok) goto ex_0;
                }
            }
            else {
                goto ex_0;
            }
        end_1:;

  FB_LINE(379);
    {
    CLUREF T_1_1;
    T_1_1.ch = '\n';
    locals->err = streamOPputc(locals->tyo, T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end execute_command_IB_1 */
errcode execute_command_IB_2(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF nargs;
    CLUREF ge;
    CLUREF st;
    CLUREF s;
    CLUREF z;
    CLUREF fn;
    CLUREF why;
    CLUREF nm;
    CLUREF cmnd;
    CLUREF args;
    CLUREF tyo;
    } *locals;
{
    locals->fn.num = iv_1.num;
    enter_iter_body_proc(391);

  FB_LINE(391);
    {
    locals->err = streamOPputs(locals->tyo, STR_Un_055Merging_040);
    if (locals->err != ERR_ok) goto ex_0;
    }

  FB_LINE(392);
    {
    CLUREF T_1_1;
    locals->err = file_nameOPunparse(locals->fn, &T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    locals->err = streamOPputs(locals->tyo, T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    }

  FB_LINE(393);
    {
    locals->err = streamOPflush(locals->tyo);
    if (locals->err != ERR_ok) goto ex_0;
    }

  FB_LINE(394);
    {
    locals->err = xlibOPunmerge(locals->fn);
    if (locals->err != ERR_ok) goto ex_1;
    }
        goto end_1;
        ex_1:
            if ((locals->err == ERR_not_possible)) {
            CLUREF why;
            locals->why.num = elist[0].num;

  FB_LINE(396);
                {
                locals->err = streamOPputs(locals->tyo, STR__072_040);
                if (locals->err != ERR_ok) goto ex_0;
                }

  FB_LINE(397);
                {
                locals->err = streamOPputs(locals->tyo, locals->why);
                if (locals->err != ERR_ok) goto ex_0;
                }
            }
            else {
                goto ex_0;
            }
        end_1:;

  FB_LINE(399);
    {
    CLUREF T_1_1;
    T_1_1.ch = '\n';
    locals->err = streamOPputc(locals->tyo, T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end execute_command_IB_2 */

/**** END ITERATOR BODIES for execute_command ****/


extern errcode xfile_execute_IB_1();
static int xfile_execute_own_init = 0;

/**** BEGIN PROCEDURE xfile_execute ****/

errcode xfile_execute(args, tyo)
CLUREF args;
CLUREF tyo;
    {
    struct {
        errcode err;
        errcode ecode2;
        CLUREF fn;
        CLUREF st;
        CLUREF inl;
        CLUREF args;
        CLUREF tyo;
        } locals;
    locals.args = args;
    locals.tyo = tyo;
        if (xfile_execute_own_init == 0) {
        stringOPcons("xfile", CLU_1, CLU_5, &STR_xfile);
        stringOPcons("read", CLU_1, CLU_4, &STR_read);
        xfile_execute_own_init = 1;
    }
    enter_proc(407);

  LINE(408);
    {
        locals.err = all_input_names(locals.args, STR_xfile, locals.tyo, xfile_execute_IB_1, &locals, &locals.ecode2);
        if (locals.err == ERR_iterbodyreturn) {
        signal(ERR_ok);}
        if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
        if (locals.err == ERR_break) locals.err = ERR_ok;
        if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
        if (locals.err != ERR_ok) goto ex_0;
        }
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE xfile_execute ****/


/**** BEGIN ITERATOR BODIES for xfile_execute ****/

errcode xfile_execute_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF fn;
    CLUREF st;
    CLUREF inl;
    CLUREF args;
    CLUREF tyo;
    } *locals;
{
    locals->fn.num = iv_1.num;
    enter_iter_body_proc(410);

  FB_LINE(409);
    {
        {CLUREF T_2_1;
        locals->err = open_stream(locals->fn, STR_read, locals->tyo, &T_2_1);
        if (locals->err != ERR_ok) goto ex_1;
        locals->st.num = T_2_1.num;
        }
        }
        goto end_1;
        ex_1:
            if ((locals->err == ERR_open_failed)) {

  FB_LINE(410);
                {signal(ERR_ok);}
            }
            else {
                goto ex_0;
            }
        end_1:;

  FB_LINE(411);
    for (;;) {
        if (true != true) { break; }

  FB_LINE(412);
        {
            {CLUREF T_3_1;
            locals->err = streamOPgetl(locals->st, &T_3_1);
            if (locals->err != ERR_ok) goto ex_2;
            locals->inl.num = T_3_1.num;
            }
            }

  FB_LINE(413);
        {
        locals->err = streamOPputl(locals->tyo, locals->inl);
        if (locals->err != ERR_ok) goto ex_3;
        }
            goto end_3;
            ex_3:
                if ((locals->err == ERR_not_possible)) {
                }
                else {
                    goto ex_2;
                }
            end_3:;

  FB_LINE(415);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        locals->err = stringOPs2ac(locals->inl, &T_3_1);
        if (locals->err != ERR_ok) goto ex_2;
        locals->err = process_commands(T_3_1, locals->tyo, CLU_2, &T_3_2);
        if (locals->err != ERR_ok) goto ex_2;
        }
        }
        end_while_1:;
        goto end_2;
        ex_2:
            if ((locals->err == ERR_end_of_file)) {
            }
            else {
                goto ex_0;
            }
        end_2:;

  FB_LINE(418);
    {
    locals->err = streamOPclose(locals->st);
    if (locals->err != ERR_ok) goto ex_0;
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end xfile_execute_IB_1 */

/**** END ITERATOR BODIES for xfile_execute ****/


extern errcode set_working_dir();
CLUREF STR_bad_040format_040for_040directory_041;
static int set_dir_own_init = 0;

/**** BEGIN PROCEDURE set_dir ****/

errcode set_dir(dir, tyo)
CLUREF dir;
CLUREF tyo;
    {
    errcode err;
    errcode ecode2;
        if (set_dir_own_init == 0) {
        stringOPcons("bad format for directory!", CLU_1, CLU_25, &STR_bad_040format_040for_040directory_041);
        set_dir_own_init = 1;
    }
    enter_proc(422);

  LINE(423);
    {
    err = set_working_dir(dir);
    if (err != ERR_ok) goto ex_2;
    }
        goto end_2;
        ex_2:
            if ((err == ERR_bad_format)) {

  LINE(425);
                {
                err = streamOPputl(tyo, STR_bad_040format_040for_040directory_041);
                if (err != ERR_ok) goto ex_1;
                }
            }
            else {
                goto ex_1;
            }
        end_2:;
        goto end_1;
        ex_1:
            if ((err == ERR_not_possible)) {
            }
            else {
                goto ex_0;
            }
        end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE set_dir ****/


static int dump_file_own_init = 0;

/**** BEGIN PROCEDURE dump_file ****/

errcode dump_file(fn, tyo)
CLUREF fn;
CLUREF tyo;
    {
    errcode err;
    errcode ecode2;
    CLUREF st;
        if (dump_file_own_init == 0) {
        stringOPcons("read", CLU_1, CLU_4, &STR_read);
        dump_file_own_init = 1;
    }
    enter_proc(430);

  LINE(431);
    {
        {CLUREF T_2_1;
        err = open_stream(fn, STR_read, tyo, &T_2_1);
        if (err != ERR_ok) goto ex_1;
        st.num = T_2_1.num;
        }
        }
        goto end_1;
        ex_1:
            if ((err == ERR_open_failed)) {

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

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

  LINE(434);
        {
        CLUREF T_3_1;
        err = streamOPgetl(st, &T_3_1);
        if (err != ERR_ok) goto ex_2;
        err = streamOPputl(tyo, T_3_1);
        if (err != ERR_ok) goto ex_2;
        }
        }
        end_while_1:;
        goto end_2;
        ex_2:
            if ((err == ERR_end_of_file)
             || (err == ERR_not_possible)) {
            }
            else {
                goto ex_0;
            }
        end_2:;

  LINE(437);
    {
    err = streamOPclose(st);
    if (err != ERR_ok) goto ex_0;
    }

  LINE(438);
    {
    CLUREF T_2_1;
    T_2_1.ch = '\n';
    err = streamOPputc(tyo, T_2_1);
    if (err != ERR_ok) goto ex_3;
    }
        goto end_3;
        ex_3:
            if ((err == ERR_not_possible)) {
            }
            else {
                goto ex_0;
            }
        end_3:;
    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 dump_file ****/


extern errcode all_input_names_IB_1();
extern errcode all_derived_names();

/**** BEGIN ITERATOR all_input_names ****/

errcode all_input_names(args, suffix, tyo, proc, user_locals, iecode)
CLUREF args;
CLUREF suffix;
CLUREF tyo;
errcode (*proc)();
char **user_locals;
errcode *iecode;
    {
    errcode ecode;
    struct {
        char **user_locals;
        errcode (*proc)();
        errcode err;
        errcode ecode2;
        bool body_ctrl_req;
        CLUREF fs;
        CLUREF fn;
        CLUREF args;
        CLUREF suffix;
        CLUREF tyo;
        } locals;
    locals.args = args;
    locals.suffix = suffix;
    locals.tyo = tyo;
    locals.proc = proc;
    locals.user_locals = user_locals;
    locals.user_locals = user_locals;
    locals.proc = proc;
    enter_proc(442);

  LINE(443);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = locals.args.array->ext_high; 
        T_1_3 = locals.args;
        for (T_1_1.num = locals.args.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) {
                locals.err = ERR_failure;
                elist[0].str = array_bounds_exception_STRING;
                goto ex_0;}
            locals.fs.num = T_1_3.array->store->data[T_1_1.num - T_1_3.array->ext_low + T_1_3.array->int_low];

  LINE(444);
            {
                locals.body_ctrl_req = false;
                locals.err = all_derived_names(locals.fs, locals.suffix, locals.tyo, all_input_names_IB_1, &locals, &locals.ecode2);
                if (locals.err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
                if (locals.err == ERR_iterbodysignal) {
                    *iecode = locals.ecode2; signal(ERR_iterbodysignal);}
                if (locals.err == ERR_iterbodyexit) {
                    *iecode = locals.ecode2; signal(ERR_iterbodyexit);}
                if (locals.body_ctrl_req == true) {
                    locals.body_ctrl_req = false;
                    if (locals.err == ERR_iteriterbodyreturn) {signal(ERR_ok);}
                    if (locals.err == ERR_iteriterbodysignal) {signal(locals.ecode2);}
                    if (locals.err == ERR_break) locals.err = ERR_ok;
                    if (locals.err == ERR_iteriterbodyexit) locals.err = locals.ecode2;
                    }
                else {
                    if (locals.err == ERR_iteriterbodyreturn) {signal(ERR_iteriterbodyreturn);}
                    if (locals.err == ERR_break) {signal(ERR_break);}
                    if (locals.err == ERR_iteriterbodysignal) {
                          *iecode = locals.ecode2; signal(ERR_iteriterbodysignal);}
                    if (locals.err == ERR_iteriterbodyexit) {
                          *iecode = locals.ecode2; signal(ERR_iteriterbodyexit);}}
                if (locals.err != ERR_ok) goto ex_0;
                }
        }
    }
    end_inline_for_1:;
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END ITERATOR all_input_names ****/


/**** BEGIN ITERATOR BODIES for all_input_names ****/

errcode all_input_names_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    char **user_locals;
    errcode (*proc)();
    errcode err;
    errcode ecode2;
    bool body_ctrl_req;
    CLUREF fs;
    CLUREF fn;
    CLUREF args;
    CLUREF suffix;
    CLUREF tyo;
    } *locals;
{
    locals->fn.num = iv_1.num;
    enter_iter_body_proc(445);

  FB_LINE(445);
    {
    locals->err = locals->proc(locals->fn, locals->user_locals, iecode);
    if ((locals->body_ctrl_req == true) && (locals->err == ERR_iteriterbodyexit)) {
        locals->err = *iecode;
        goto ex_0;}
    if (locals->err != ERR_ok) {
    signal(locals->err);
    }
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            locals->body_ctrl_req = true;
            {signal(ERR_iteriterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end all_input_names_IB_1 */

/**** END ITERATOR BODIES for all_input_names ****/


extern errcode all_derived_names_IB_1();
extern errcode all_derived_names_IB_2();
extern errcode all_derived_names_IB_3();
extern errcode all_derived_names_IB_4();
extern errcode file_specOPparse();
extern errcode file_specOPget_dir();
extern errcode file_specOPget_name();
extern errcode file_specOPget_suffix();
extern errcode file_specOPget_other();
extern errcode working_dir();
extern errcode file_specOPcreate();
extern errcode file_specOPunparse();
extern errcode all_file_names();
CLUREF STR_xload;
CLUREF STR__072_040no_040matching_040files;
static int all_derived_names_own_init = 0;

/**** BEGIN ITERATOR all_derived_names ****/

errcode all_derived_names(fs, suffix, tyo, proc, user_locals, iecode)
CLUREF fs;
CLUREF suffix;
CLUREF tyo;
errcode (*proc)();
char **user_locals;
errcode *iecode;
    {
    errcode ecode;
    struct {
        char **user_locals;
        errcode (*proc)();
        errcode err;
        errcode ecode2;
        bool body_ctrl_req;
        CLUREF fn;
        CLUREF subst;
        CLUREF st;
        CLUREF sp;
        CLUREF ddir;
        CLUREF dnam;
        CLUREF dsuf;
        CLUREF doth;
        CLUREF why;
        CLUREF fs;
        CLUREF suffix;
        CLUREF tyo;
        } locals;
    locals.fs = fs;
    locals.suffix = suffix;
    locals.tyo = tyo;
    locals.proc = proc;
    locals.user_locals = user_locals;
    locals.user_locals = user_locals;
    locals.proc = proc;
        if (all_derived_names_own_init == 0) {
        stringOPcons("xload", CLU_1, CLU_5, &STR_xload);
        stringOPcons("read", CLU_1, CLU_4, &STR_read);
        stringOPcons("bad format file name - ", CLU_1, CLU_23, &STR_bad_040format_040file_040name_040_055_040);
        stringOPcons("reading ", CLU_1, CLU_8, &STR_reading_040);
        stringOPcons(": ", CLU_1, CLU_2, &STR__072_040);
        stringOPcons("spc", CLU_1, CLU_3, &STR_spc);
        stringOPcons("clu", CLU_1, CLU_3, &STR_clu);
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons(": no matching files", CLU_1, CLU_19, &STR__072_040no_040matching_040files);
        all_derived_names_own_init = 1;
    }
    enter_proc(450);

  LINE(452);
    {
    CLUREF T_2_1;
    CLUREF T_2_2;
    CLUREF T_2_3;
    CLUREF T_2_4;
    CLUREF T_2_5;
    CLUREF T_2_6;
    locals.err = stringOPempty(locals.fs, &T_2_2);
    if (locals.err != ERR_ok) goto ex_1;
    T_2_3.num = T_2_2.num ^ 1;
    T_2_1.num = T_2_3.num;
    if (T_2_3.num) {
        locals.err = stringOPfetch(locals.fs, CLU_1, &T_2_4);
        if (locals.err != ERR_ok) goto ex_1;
        T_2_5.ch = '@';
        T_2_6.num = (T_2_4.ch == T_2_5.ch)? true : false;
        T_2_1.num = T_2_6.num;
    }
    if (T_2_1.num == true) {

  LINE(453);
        {
        CLUREF T_3_1;
        locals.err = stringOPrest(locals.fs, CLU_2, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        locals.fs.num = T_3_1.num;
        }

  LINE(454);
        {
            {CLUREF T_3_1;
            CLUREF T_3_2;
            locals.err = make_file_name(locals.fs, STR_xload, locals.tyo, &T_3_1, &T_3_2);
            if (locals.err != ERR_ok) goto ex_1;
            locals.fn.num = T_3_1.num;
            locals.subst.num = T_3_2.num;
            }
            }

  LINE(455);
        {
        if (locals.subst.num == true) {

  LINE(456);
            {
            CLUREF T_4_1;
            locals.err = check_file_name(locals.fn, &T_4_1);
            if (locals.err != ERR_ok) goto ex_1;
            locals.fn.num = T_4_1.num;
            }
            }
            }/* end if */

  LINE(457);
        {
            {CLUREF T_3_1;
            locals.err = open_stream(locals.fn, STR_read, locals.tyo, &T_3_1);
            if (locals.err != ERR_ok) goto ex_1;
            locals.st.num = T_3_1.num;
            }
            }

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

  LINE(459);
            {
                CLUREF T_5_1;
                locals.err = streamOPgetl(locals.st, &T_5_1);
                if (locals.err != ERR_ok) goto ex_2;
                locals.body_ctrl_req = false;
                locals.err = all_derived_names(T_5_1, locals.suffix, locals.tyo, all_derived_names_IB_1, &locals, &locals.ecode2);
                if (locals.err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
                if (locals.err == ERR_iterbodysignal) {
                    *iecode = locals.ecode2; signal(ERR_iterbodysignal);}
                if (locals.err == ERR_iterbodyexit) {
                    *iecode = locals.ecode2; signal(ERR_iterbodyexit);}
                if (locals.body_ctrl_req == true) {
                    locals.body_ctrl_req = false;
                    if (locals.err == ERR_iteriterbodyreturn) {signal(ERR_ok);}
                    if (locals.err == ERR_iteriterbodysignal) {signal(locals.ecode2);}
                    if (locals.err == ERR_break) locals.err = ERR_ok;
                    if (locals.err == ERR_iteriterbodyexit) locals.err = locals.ecode2;
                    }
                else {
                    if (locals.err == ERR_iteriterbodyreturn) {signal(ERR_iteriterbodyreturn);}
                    if (locals.err == ERR_break) {signal(ERR_break);}
                    if (locals.err == ERR_iteriterbodysignal) {
                          *iecode = locals.ecode2; signal(ERR_iteriterbodysignal);}
                    if (locals.err == ERR_iteriterbodyexit) {
                          *iecode = locals.ecode2; signal(ERR_iteriterbodyexit);}}
                if (locals.err != ERR_ok) goto ex_2;
                }
            }
            end_while_1:;
            goto end_2;
            ex_2:
                if ((locals.err == ERR_end_of_file)
                 || (locals.err == ERR_not_possible)) {
                }
                else {
                    goto ex_1;
                }
            end_2:;

  LINE(464);
        {
        locals.err = streamOPclose(locals.st);
        if (locals.err != ERR_ok) goto ex_1;
        }

  LINE(465);
        {
        {signal (ERR_ok);}}
        }
        }/* end if */
        goto end_1;
        ex_1:
            if ((locals.err == ERR_bad_format)
             || (locals.err == ERR_open_failed)) {

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

  LINE(467);
    {
    CLUREF T_2_1;
    CLUREF T_2_2;
    CLUREF T_2_3;
    T_2_1.ch = '*';
    locals.err = stringOPindexc(T_2_1, locals.fs, &T_2_2);
    if (locals.err != ERR_ok) goto ex_3;
    T_2_3.num = (T_2_2.num == 0)? true : false;
    if (T_2_3.num == true) {

  LINE(468);
        {
            {CLUREF T_3_1;
            locals.err = file_nameOPparse(locals.fs, &T_3_1);
            if (locals.err != ERR_ok) goto ex_3;
            locals.fn.num = T_3_1.num;
            }
            }

  LINE(469);
        {
            {CLUREF T_3_1;
            CLUREF T_3_2;
            locals.err = file_nameOPget_suffix(locals.fn, &T_3_1);
            if (locals.err != ERR_ok) goto ex_3;
            locals.err = stringOPempty(T_3_1, &T_3_2);
            if (locals.err != ERR_ok) goto ex_3;
            locals.subst.num = T_3_2.num;
            }
            }

  LINE(470);
        {
        CLUREF T_3_1;
        locals.err = file_name_fill(locals.fn, locals.suffix, &T_3_1);
        if (locals.err != ERR_ok) goto ex_3;
        locals.fn.num = T_3_1.num;
        }

  LINE(471);
        {
        if (locals.subst.num == true) {

  LINE(472);
            {
            CLUREF T_4_1;
            locals.err = check_file_name(locals.fn, &T_4_1);
            if (locals.err != ERR_ok) goto ex_3;
            locals.fn.num = T_4_1.num;
            }
            }
            }/* end if */

  LINE(473);
        {
        locals.err = locals.proc(locals.fn, locals.user_locals, iecode);
        if (locals.err != ERR_ok) {
        if (locals.err == ERR_break) {signal(ERR_break);}
        if (locals.err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
        if (locals.err == ERR_iterbodyexit) {signal(ERR_iterbodyexit);}
        if (locals.err == ERR_iterbodysignal) {signal(ERR_iterbodysignal);}
        {signal(locals.err);
            }}
        }

  LINE(474);
        {
        {signal (ERR_ok);}}
        }
        }/* end if */
        goto end_3;
        ex_3:
            if ((locals.err == ERR_bad_format)) {
            }
            else {
                goto ex_0;
            }
        end_3:;

  LINE(476);
    {
        {CLUREF T_2_1;
        locals.err = file_specOPparse(locals.fs, &T_2_1);
        if (locals.err != ERR_ok) goto ex_4;
        locals.sp.num = T_2_1.num;
        }
        }
        goto end_4;
        ex_4:
            if ((locals.err == ERR_bad_format)) {

  LINE(478);
                {

  LINE(479);
                    {
                    locals.err = streamOPputs(locals.tyo, STR_bad_040format_040file_040name_040_055_040);
                    if (locals.err != ERR_ok) goto ex_5;
                    }

  LINE(480);
                    {
                    locals.err = streamOPputl(locals.tyo, locals.fs);
                    if (locals.err != ERR_ok) goto ex_5;
                    }
                    }
                    goto end_5;
                    ex_5:
                        if ((locals.err == ERR_not_possible)) {
                        }
                        else {
                            goto ex_0;
                        }
                    end_5:;

  LINE(482);
                {
                {signal (ERR_ok);}}
            }
            else {
                goto ex_0;
            }
        end_4:;

  LINE(484);
    {
        {CLUREF T_1_1;
        locals.err = file_specOPget_dir(locals.sp, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.ddir.num = T_1_1.num;
        }
        }

  LINE(485);
    {
        {CLUREF T_1_1;
        locals.err = file_specOPget_name(locals.sp, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.dnam.num = T_1_1.num;
        }
        }

  LINE(486);
    {
        {CLUREF T_1_1;
        locals.err = file_specOPget_suffix(locals.sp, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.dsuf.num = T_1_1.num;
        }
        }

  LINE(487);
    {
        {CLUREF T_1_1;
        locals.err = file_specOPget_other(locals.sp, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.doth.num = T_1_1.num;
        }
        }

  LINE(488);
    {
        {locals.subst.tf = false;
        }
        }

  LINE(489);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    locals.err = file_specOPget_dir(locals.sp, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = stringOPempty(T_1_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    if (T_1_2.num == true) {

  LINE(490);
        {
        CLUREF T_2_1;
        locals.err = working_dir(&T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.ddir.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(491);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    locals.err = file_specOPget_suffix(locals.sp, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = stringOPempty(T_1_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    if (T_1_2.num == true) {

  LINE(492);
        {
        locals.subst.tf = true;
        }

  LINE(493);
        {
        locals.dsuf.num = locals.suffix.num;
        }
        }
        }/* end if */

  LINE(495);
    {
    CLUREF T_2_1;
    locals.err = file_specOPcreate(locals.ddir, locals.dnam, locals.dsuf, locals.doth, &T_2_1);
    if (locals.err != ERR_ok) goto ex_6;
    locals.sp.num = T_2_1.num;
    }
        goto end_6;
        ex_6:
            if ((locals.err == ERR_bad_format)) {

  LINE(496);
                {
                locals.subst.tf = false;
                }
            }
            else {
                goto ex_0;
            }
        end_6:;

  LINE(497);
    {
    CLUREF T_1_1;
    locals.err = file_specOPunparse(locals.sp, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.fs.num = T_1_1.num;
    }

  LINE(498);
    {

  LINE(499);
        {
            locals.body_ctrl_req = false;
            locals.err = all_file_names(locals.fs, all_derived_names_IB_2, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
            if (locals.err == ERR_iterbodysignal) {
                *iecode = locals.ecode2; signal(ERR_iterbodysignal);}
            if (locals.err == ERR_iterbodyexit) {
                *iecode = locals.ecode2; signal(ERR_iterbodyexit);}
            if (locals.body_ctrl_req == true) {
                locals.body_ctrl_req = false;
                if (locals.err == ERR_iteriterbodyreturn) {signal(ERR_ok);}
                if (locals.err == ERR_iteriterbodysignal) {signal(locals.ecode2);}
                if (locals.err == ERR_break) locals.err = ERR_ok;
                if (locals.err == ERR_iteriterbodyexit) locals.err = locals.ecode2;
                }
            else {
                if (locals.err == ERR_iteriterbodyreturn) {signal(ERR_iteriterbodyreturn);}
                if (locals.err == ERR_break) {signal(ERR_break);}
                if (locals.err == ERR_iteriterbodysignal) {
                      *iecode = locals.ecode2; signal(ERR_iteriterbodysignal);}
                if (locals.err == ERR_iteriterbodyexit) {
                      *iecode = locals.ecode2; signal(ERR_iteriterbodyexit);}}
            if (locals.err != ERR_ok) goto ex_7;
            }

  LINE(502);
        {
        {signal (ERR_ok);}}
        }
        goto end_7;
        ex_7:
            if ((locals.err == ERR_not_possible)) {
            CLUREF why;
            locals.why.num = elist[0].num;

  LINE(504);
                {

  LINE(505);
                    {
                    locals.err = streamOPputs(locals.tyo, STR_reading_040);
                    if (locals.err != ERR_ok) goto ex_8;
                    }

  LINE(506);
                    {
                    locals.err = streamOPputs(locals.tyo, locals.fs);
                    if (locals.err != ERR_ok) goto ex_8;
                    }

  LINE(507);
                    {
                    locals.err = streamOPputs(locals.tyo, STR__072_040);
                    if (locals.err != ERR_ok) goto ex_8;
                    }

  LINE(508);
                    {
                    locals.err = streamOPputl(locals.tyo, locals.why);
                    if (locals.err != ERR_ok) goto ex_8;
                    }
                    }
                    goto end_8;
                    ex_8:
                        if ((locals.err == ERR_not_possible)) {
                        }
                        else {
                            goto ex_0;
                        }
                    end_8:;

  LINE(510);
                {
                {signal (ERR_ok);}}
            }
            else if ((locals.err == ERR_none)) {
            }
            else {
                goto ex_0;
            }
        end_7:;

  LINE(513);
    {
    CLUREF T_2_1;
    CLUREF T_2_2;
    T_2_1.num = locals.subst.num;
    if (locals.subst.num) {
        T_2_2.num = ((locals.dsuf.str->size != STR_spc.str->size)? false :
            !(bcmp(locals.dsuf.str->data, STR_spc.str->data, locals.dsuf.str->size)));
        T_2_1.num = T_2_2.num;
    }
    if (T_2_1.num == true) {

  LINE(514);
        {
        CLUREF T_3_1;
        locals.err = file_specOPcreate(locals.ddir, locals.dnam, STR_clu, locals.doth, &T_3_1);
        if (locals.err != ERR_ok) goto ex_9;
        locals.sp.num = T_3_1.num;
        }

  LINE(515);
        {
            CLUREF T_3_1;
            locals.err = file_specOPunparse(locals.sp, &T_3_1);
            if (locals.err != ERR_ok) goto ex_9;
            locals.body_ctrl_req = false;
            locals.err = all_file_names(T_3_1, all_derived_names_IB_3, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
            if (locals.err == ERR_iterbodysignal) {
                *iecode = locals.ecode2; signal(ERR_iterbodysignal);}
            if (locals.err == ERR_iterbodyexit) {
                *iecode = locals.ecode2; signal(ERR_iterbodyexit);}
            if (locals.body_ctrl_req == true) {
                locals.body_ctrl_req = false;
                if (locals.err == ERR_iteriterbodyreturn) {signal(ERR_ok);}
                if (locals.err == ERR_iteriterbodysignal) {signal(locals.ecode2);}
                if (locals.err == ERR_break) locals.err = ERR_ok;
                if (locals.err == ERR_iteriterbodyexit) locals.err = locals.ecode2;
                }
            else {
                if (locals.err == ERR_iteriterbodyreturn) {signal(ERR_iteriterbodyreturn);}
                if (locals.err == ERR_break) {signal(ERR_break);}
                if (locals.err == ERR_iteriterbodysignal) {
                      *iecode = locals.ecode2; signal(ERR_iteriterbodysignal);}
                if (locals.err == ERR_iteriterbodyexit) {
                      *iecode = locals.ecode2; signal(ERR_iteriterbodyexit);}}
            if (locals.err != ERR_ok) goto ex_9;
            }

  LINE(518);
        {
        {signal (ERR_ok);}}
        }
        }/* end if */
        goto end_9;
        ex_9:
            if ((locals.err == ERR_bad_format)
             || (locals.err == ERR_none)
             || (locals.err == ERR_not_possible)) {
            }
            else {
                goto ex_0;
            }
        end_9:;

  LINE(520);
    {
    if (locals.subst.num == true) {

  LINE(521);
        {
        CLUREF T_3_1;
        locals.err = file_specOPcreate(locals.ddir, locals.dnam, STR_, locals.doth, &T_3_1);
        if (locals.err != ERR_ok) goto ex_10;
        locals.sp.num = T_3_1.num;
        }

  LINE(522);
        {
            CLUREF T_3_1;
            locals.err = file_specOPunparse(locals.sp, &T_3_1);
            if (locals.err != ERR_ok) goto ex_10;
            locals.body_ctrl_req = false;
            locals.err = all_file_names(T_3_1, all_derived_names_IB_4, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
            if (locals.err == ERR_iterbodysignal) {
                *iecode = locals.ecode2; signal(ERR_iterbodysignal);}
            if (locals.err == ERR_iterbodyexit) {
                *iecode = locals.ecode2; signal(ERR_iterbodyexit);}
            if (locals.body_ctrl_req == true) {
                locals.body_ctrl_req = false;
                if (locals.err == ERR_iteriterbodyreturn) {signal(ERR_ok);}
                if (locals.err == ERR_iteriterbodysignal) {signal(locals.ecode2);}
                if (locals.err == ERR_break) locals.err = ERR_ok;
                if (locals.err == ERR_iteriterbodyexit) locals.err = locals.ecode2;
                }
            else {
                if (locals.err == ERR_iteriterbodyreturn) {signal(ERR_iteriterbodyreturn);}
                if (locals.err == ERR_break) {signal(ERR_break);}
                if (locals.err == ERR_iteriterbodysignal) {
                      *iecode = locals.ecode2; signal(ERR_iteriterbodysignal);}
                if (locals.err == ERR_iteriterbodyexit) {
                      *iecode = locals.ecode2; signal(ERR_iteriterbodyexit);}}
            if (locals.err != ERR_ok) goto ex_10;
            }

  LINE(525);
        {
        {signal (ERR_ok);}}
        }
        }/* end if */
        goto end_10;
        ex_10:
            if ((locals.err == ERR_bad_format)
             || (locals.err == ERR_none)
             || (locals.err == ERR_not_possible)) {
            }
            else {
                goto ex_0;
            }
        end_10:;

  LINE(527);
    {

  LINE(528);
        {
        locals.err = streamOPputs(locals.tyo, STR_reading_040);
        if (locals.err != ERR_ok) goto ex_11;
        }

  LINE(529);
        {
        locals.err = streamOPputs(locals.tyo, locals.fs);
        if (locals.err != ERR_ok) goto ex_11;
        }

  LINE(530);
        {
        locals.err = streamOPputl(locals.tyo, STR__072_040no_040matching_040files);
        if (locals.err != ERR_ok) goto ex_11;
        }
        }
        goto end_11;
        ex_11:
            if ((locals.err == ERR_not_possible)) {
            }
            else {
                goto ex_0;
            }
        end_11:;
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END ITERATOR all_derived_names ****/


/**** BEGIN ITERATOR BODIES for all_derived_names ****/

errcode all_derived_names_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    char **user_locals;
    errcode (*proc)();
    errcode err;
    errcode ecode2;
    bool body_ctrl_req;
    CLUREF fn;
    CLUREF subst;
    CLUREF st;
    CLUREF sp;
    CLUREF ddir;
    CLUREF dnam;
    CLUREF dsuf;
    CLUREF doth;
    CLUREF why;
    CLUREF fs;
    CLUREF suffix;
    CLUREF tyo;
    } *locals;
{
    locals->fn.num = iv_1.num;
    enter_iter_body_proc(460);

  FB_LINE(460);
    {
    locals->err = locals->proc(locals->fn, locals->user_locals, iecode);
    if ((locals->body_ctrl_req == true) && (locals->err == ERR_iteriterbodyexit)) {
        locals->err = *iecode;
        goto ex_0;}
    if (locals->err != ERR_ok) {
    signal(locals->err);
    }
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            locals->body_ctrl_req = true;
            {signal(ERR_iteriterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end all_derived_names_IB_1 */
errcode all_derived_names_IB_2(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    char **user_locals;
    errcode (*proc)();
    errcode err;
    errcode ecode2;
    bool body_ctrl_req;
    CLUREF fn;
    CLUREF subst;
    CLUREF st;
    CLUREF sp;
    CLUREF ddir;
    CLUREF dnam;
    CLUREF dsuf;
    CLUREF doth;
    CLUREF why;
    CLUREF fs;
    CLUREF suffix;
    CLUREF tyo;
    } *locals;
{
    locals->fn.num = iv_1.num;
    enter_iter_body_proc(500);

  FB_LINE(500);
    {
    locals->err = locals->proc(locals->fn, locals->user_locals, iecode);
    if ((locals->body_ctrl_req == true) && (locals->err == ERR_iteriterbodyexit)) {
        locals->err = *iecode;
        goto ex_0;}
    if (locals->err != ERR_ok) {
    signal(locals->err);
    }
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            locals->body_ctrl_req = true;
            {signal(ERR_iteriterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end all_derived_names_IB_2 */
errcode all_derived_names_IB_3(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    char **user_locals;
    errcode (*proc)();
    errcode err;
    errcode ecode2;
    bool body_ctrl_req;
    CLUREF fn;
    CLUREF subst;
    CLUREF st;
    CLUREF sp;
    CLUREF ddir;
    CLUREF dnam;
    CLUREF dsuf;
    CLUREF doth;
    CLUREF why;
    CLUREF fs;
    CLUREF suffix;
    CLUREF tyo;
    } *locals;
{
    locals->fn.num = iv_1.num;
    enter_iter_body_proc(516);

  FB_LINE(516);
    {
    locals->err = locals->proc(locals->fn, locals->user_locals, iecode);
    if ((locals->body_ctrl_req == true) && (locals->err == ERR_iteriterbodyexit)) {
        locals->err = *iecode;
        goto ex_0;}
    if (locals->err != ERR_ok) {
    signal(locals->err);
    }
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            locals->body_ctrl_req = true;
            {signal(ERR_iteriterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end all_derived_names_IB_3 */
errcode all_derived_names_IB_4(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    char **user_locals;
    errcode (*proc)();
    errcode err;
    errcode ecode2;
    bool body_ctrl_req;
    CLUREF fn;
    CLUREF subst;
    CLUREF st;
    CLUREF sp;
    CLUREF ddir;
    CLUREF dnam;
    CLUREF dsuf;
    CLUREF doth;
    CLUREF why;
    CLUREF fs;
    CLUREF suffix;
    CLUREF tyo;
    } *locals;
{
    locals->fn.num = iv_1.num;
    enter_iter_body_proc(523);

  FB_LINE(523);
    {
    locals->err = locals->proc(locals->fn, locals->user_locals, iecode);
    if ((locals->body_ctrl_req == true) && (locals->err == ERR_iteriterbodyexit)) {
        locals->err = *iecode;
        goto ex_0;}
    if (locals->err != ERR_ok) {
    signal(locals->err);
    }
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            locals->body_ctrl_req = true;
            {signal(ERR_iteriterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end all_derived_names_IB_4 */

/**** END ITERATOR BODIES for all_derived_names ****/


CLUREF STR__040;
static int as2str_own_init = 0;

/**** BEGIN PROCEDURE as2str ****/

errcode as2str(a, ret_1)
CLUREF a;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF res;
    CLUREF each_s;
        if (as2str_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons(" ", CLU_1, CLU_1, &STR__040);
        as2str_own_init = 1;
    }
    enter_proc(534);

  LINE(535);
    {
        {res = STR_;
        }
        }

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

  LINE(537);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            err = stringOPconcat(res, each_s, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            err = stringOPconcat(T_2_1, STR__040, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            res.num = T_2_2.num;
            }
        }
    }
    end_inline_for_1:;

  LINE(539);
    {
    {
    ret_1->num = res.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 as2str ****/

