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

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


/**** BEGIN CLUSTER file_name ****/

extern errcode intOPgt();
extern errcode stringOPindexc();
extern errcode intOPadd();
extern errcode boolOPnot();
extern errcode charOPequal();
extern errcode stringOPfetch();
extern errcode intOPequal();
extern errcode _fixup_dir_part();
extern errcode _last_indexc();
extern errcode stringOPsubstr();
extern errcode intOPsub();
extern errcode stringOPrest();
extern errcode _split_name_part();
extern errcode recordOPget_1();
extern errcode stringOPempty();
extern errcode stringOPequal();
extern errcode stringOPappend();
extern errcode stringOPconcat();
extern errcode recordOPget_2();
extern errcode recordOPget_4();
extern errcode recordOPget_3();
extern errcode recordOPcopy1();
extern errcode recordOPset_4();
extern errcode recordOPset_2();
extern errcode intOPunparse();
extern errcode _get_pid();
extern errcode file_nameOPcreate();
extern errcode _dir_ent_size();
extern errcode stringOPsize();
extern errcode recordOPsimilar();
extern errcode pstreamOPtext();
extern errcode pstreamOPtextc();
extern errcode stringOPencode();
extern errcode file_nameOPunparse();
extern errcode file_nameOPparse();
extern errcode stringOPdecode();
extern errcode recordOP_gcd();
extern errcode file_nameOPprint();
extern OWN_req gcd_tab_ownreqs;
extern struct OPS *gcd_tab_ops;
extern struct OPS *string_ops;
struct OPS  *record_dir_name_other_suffix_ops;
CLUREF STR_;
CLUREF STR__057;
CLUREF STR_output;
CLUREF STR__137;
CLUREF STR_bad_040format;
static int file_name_own_init = 0;
OWN_req file_name_ownreqs = {0,0};
errcode file_name_own_init_proc()
{
struct {
    errcode err;
    } locals;
    enter_own_init_proc();
        if (file_name_own_init == 0) {
        add_selector_info("dir", 0, string_ops); 
        add_selector_info("name", 1, string_ops); 
        add_selector_info("other", 2, string_ops); 
        add_selector_info("suffix", 3, string_ops); 
        find_selector_ops("record", 4, &(record_dir_name_other_suffix_ops));
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("/", CLU_1, CLU_1, &STR__057);
        stringOPcons("output", CLU_1, CLU_6, &STR_output);
        stringOPcons("_", CLU_1, CLU_1, &STR__137);
        stringOPcons("bad format", CLU_1, CLU_10, &STR_bad_040format);
        file_name_own_init = 1;
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(locals.err); {signal(ERR_failure);}
        }
    }

extern struct dbg_info* dbg_info_file_nameOPcreate;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPcreate_TRACE
int file_nameOPcreate_TRACE;
extern struct OPS *int_ops;
static Vlist19 owns_file_name = {0, 19,{ {0, 2, "file_name_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
,  {0, 2, "extend_number", &int_ops}, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
, {0, 2, "file_nameOPcreate_init", &int_ops}
}
};
extern OWN_req int_ownreqs;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOPcreate_own_init = 0;

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

errcode file_nameOPcreate(dir, name, suffix, other, ret_1)
CLUREF dir;
CLUREF name;
CLUREF suffix;
CLUREF other;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF i;
        CLUREF dir;
        CLUREF name;
        CLUREF suffix;
        CLUREF other;
        } locals;
    locals.i.num = UNINIT;
    locals.dir.num = UNINIT;
    locals.name.num = UNINIT;
    locals.suffix.num = UNINIT;
    locals.other.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPcreate;
    locals.dir = dir;
    locals.name = name;
    locals.suffix = suffix;
    locals.other = other;
        if (file_nameOPcreate_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPcreate_own_init = 1;
    }
    enter_proc(28);

  LINE(30);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    CLUREF T_1_6;
    CLUREF T_1_7;
    CLUREF T_1_8;
    CLUREF T_1_9;
    CLUREF T_1_10;
    CLUREF T_1_11;
    CLUREF T_1_12;
    CLUREF T_1_13;
    CLUREF T_1_14;
    CLUREF T_1_15;
    CLUREF T_1_16;
    CLUREF T_1_17;
    CLUREF T_1_18;
    CLUREF T_1_19;
    CLUREF T_1_20;
    CLUREF T_1_21;
    CLUREF T_1_22;
    CLUREF T_1_23;
    CLUREF T_1_24;
    CLUREF T_1_25;
    CLUREF T_1_26;
    CLUREF T_1_27;
    T_1_7.ch = '\000';
    locals.err = stringOPindexc(T_1_7, locals.dir, &T_1_8);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_9.num = (T_1_8.num > 0)? true : false;
    T_1_6.num = T_1_9.num;
    if (!T_1_9.num) {
        T_1_10.ch = '/';
        locals.err = stringOPindexc(T_1_10, locals.name, &T_1_11);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_12.num = (T_1_11.num > 0)? true : false;
        T_1_6.num = T_1_12.num;
    }
    T_1_5.num = T_1_6.num;
    if (!T_1_6.num) {
        T_1_13.ch = '\000';
        locals.err = stringOPindexc(T_1_13, locals.name, &T_1_14);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_15.num = (T_1_14.num > 0)? true : false;
        T_1_5.num = T_1_15.num;
    }
    T_1_4.num = T_1_5.num;
    if (!T_1_5.num) {
        T_1_16.ch = '/';
        locals.err = stringOPindexc(T_1_16, locals.suffix, &T_1_17);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_18.num = (T_1_17.num > 0)? true : false;
        T_1_4.num = T_1_18.num;
    }
    T_1_3.num = T_1_4.num;
    if (!T_1_4.num) {
        T_1_19.ch = '\000';
        locals.err = stringOPindexc(T_1_19, locals.suffix, &T_1_20);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_21.num = (T_1_20.num > 0)? true : false;
        T_1_3.num = T_1_21.num;
    }
    T_1_2.num = T_1_3.num;
    if (!T_1_3.num) {
        T_1_22.ch = '/';
        locals.err = stringOPindexc(T_1_22, locals.other, &T_1_23);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_24.num = (T_1_23.num > 0)? true : false;
        T_1_2.num = T_1_24.num;
    }
    T_1_1.num = T_1_2.num;
    if (!T_1_2.num) {
        T_1_25.ch = '\000';
        locals.err = stringOPindexc(T_1_25, locals.other, &T_1_26);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_27.num = (T_1_26.num > 0)? true : false;
        T_1_1.num = T_1_27.num;
    }
    if (T_1_1.num == true) {

  LINE(37);
        {
        {signal (ERR_bad_format);}}
        }
        }/* end if */

  LINE(38);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.ch = '.';
        locals.err = stringOPindexc(T_1_1, locals.name, &T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        locals.i.num = T_1_2.num;
        }
        }

  LINE(39);
    {
    CLUREF T_2_1;
    T_2_1.num = (locals.i.num > 0)? true : false;
    if (T_2_1.num == true) {

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

  LINE(41);
            {
            CLUREF T_4_1;
            locals.err = intOPadd(locals.i, CLU_1, &T_4_1);
            if (locals.err != ERR_ok) goto ex_1;
            locals.i.num = T_4_1.num;
            }

  LINE(42);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            CLUREF T_4_4;
            locals.err = stringOPfetch(locals.name, locals.i, &T_4_1);
            if (locals.err != ERR_ok) goto ex_1;
            T_4_2.ch = '.';
            T_4_3.num = (T_4_1.ch == T_4_2.ch)? true : false;
            T_4_4.num = T_4_3.num ^ 1;
            if (T_4_4.num == true) {

  LINE(43);
                {
                {signal (ERR_bad_format);}}
                }
                }/* end if */
            }
            end_while_1:;
        }
        }/* end if */
        goto end_1;
        ex_1:
            if ((locals.err == ERR_bounds)) {
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(46);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.ch = '.';
    locals.err = stringOPindexc(T_1_1, locals.suffix, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    locals.i.num = T_1_2.num;
    }

  LINE(47);
    {
    CLUREF T_2_1;
    T_2_1.num = (locals.i.num > 0)? true : false;
    if (T_2_1.num == true) {

  LINE(48);
        {
        CLUREF T_3_1;
        T_3_1.num = (locals.i.num == 1)? true : false;
        if (T_3_1.num == true) {

  LINE(49);
            {
            {signal (ERR_bad_format);}}
            }
            }/* end if */

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

  LINE(51);
            {
            CLUREF T_4_1;
            locals.err = intOPadd(locals.i, CLU_1, &T_4_1);
            if (locals.err != ERR_ok) goto ex_2;
            locals.i.num = T_4_1.num;
            }

  LINE(52);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            CLUREF T_4_4;
            locals.err = stringOPfetch(locals.suffix, locals.i, &T_4_1);
            if (locals.err != ERR_ok) goto ex_2;
            T_4_2.ch = '.';
            T_4_3.num = (T_4_1.ch == T_4_2.ch)? true : false;
            T_4_4.num = T_4_3.num ^ 1;
            if (T_4_4.num == true) {

  LINE(53);
                {
                {signal (ERR_bad_format);}}
                }
                }/* end if */
            }
            end_while_2:;
        }
        }/* end if */
        goto end_2;
        ex_2:
            if ((locals.err == ERR_bounds)) {
            }
            else {
                goto ex_0;
            }
        end_2:;

  LINE(63);
    {
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    RecordAlloc(4, T_1_1);
    locals.err = _fixup_dir_part(locals.dir, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_1.vec->data[0]  = T_1_2.num;
    T_1_1.vec->data[1]  = locals.name.num;
    T_1_1.vec->data[3]  = locals.suffix.num;
    T_1_1.vec->data[2]  = locals.other.num;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

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

extern struct OPS *record_dir_name_other_suffix_ops;
typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist1 *sigs;
    Vlist7 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPcreate_actual;
static Vlist1 vals_file_nameOPcreate = {0, 1, { {0, 2, "", &record_dir_name_other_suffix_ops}}
};
static sig_desc0 sig_file_nameOPcreate_1 = {0, 3, "bad_format", {0, 0
}};
static siglist1 sigs_file_nameOPcreate = {0, 1, (sig_desc*)&sig_file_nameOPcreate_1};
static Vlist7 locals_file_nameOPcreate = {0, 7,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "i", &int_ops},  {0, 2, "dir", &string_ops},  {0, 2, "name", &string_ops},  {0, 2, "suffix", &string_ops},  {0, 2, "other", &string_ops}}
};
static Vlist0 popowns_file_nameOPcreate = {0, 0};
Slist0 tformals_file_nameOPcreate = {0, 0};
Slist0 opformals_file_nameOPcreate = {0, 0};
dbg_info_file_nameOPcreate_actual dbg_info_file_nameOPcreate_data = {0, 12, 
    "file_nameOPcreate", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPcreate, 4, 
    &vals_file_nameOPcreate, &sigs_file_nameOPcreate, &locals_file_nameOPcreate, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPcreate = (struct dbg_info*)&dbg_info_file_nameOPcreate_data;
extern struct dbg_info* dbg_info_file_nameOPparse;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPparse_TRACE
int file_nameOPparse_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOPparse_own_init = 0;

/**** BEGIN PROCEDURE parse ****/

errcode file_nameOPparse(s, ret_1)
CLUREF s;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF i;
        CLUREF dir;
        CLUREF name;
        CLUREF suffix;
        CLUREF s;
        } locals;
    locals.i.num = UNINIT;
    locals.dir.num = UNINIT;
    locals.name.num = UNINIT;
    locals.suffix.num = UNINIT;
    locals.s.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPparse;
    locals.s = s;
        if (file_nameOPparse_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPparse_own_init = 1;
    }
    enter_proc(69);

  LINE(70);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.ch = '\000';
    locals.err = stringOPindexc(T_1_1, locals.s, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_3.num = (T_1_2.num > 0)? true : false;
    if (T_1_3.num == true) {

  LINE(71);
        {
        {signal (ERR_bad_format);}}
        }
        }/* end if */

  LINE(72);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.ch = '/';
        locals.err = _last_indexc(T_1_1, locals.s, &T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        locals.i.num = T_1_2.num;
        }
        }

  LINE(73);
    locals.dir.num = UNINIT;
    locals.name.num = UNINIT;
    locals.suffix.num = UNINIT;

  LINE(74);
    {
    CLUREF T_1_1;
    T_1_1.num = (locals.i.num == 0)? true : false;
    if (T_1_1.num == true) {

  LINE(75);
        {
        locals.dir = STR_;
        }
        }
    else {

  LINE(76);
        {
        CLUREF T_2_1;
        T_2_1.num = (locals.i.num == 1)? true : false;
        if (T_2_1.num == true) {

  LINE(77);
            {
            locals.dir = STR__057;
            }
            }
        else {

  LINE(78);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            locals.err = intOPsub(locals.i, CLU_1, &T_3_1);
            if (locals.err != ERR_ok) goto ex_0;
            locals.err = stringOPsubstr(locals.s, CLU_1, T_3_1, &T_3_2);
            if (locals.err != ERR_ok) goto ex_0;
            locals.err = _fixup_dir_part(T_3_2, &T_3_3);
            if (locals.err != ERR_ok) goto ex_0;
            locals.dir.num = T_3_3.num;
            }
            }}/* end if */

  LINE(80);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        locals.err = intOPadd(locals.i, CLU_1, &T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.err = stringOPrest(locals.s, T_2_1, &T_2_2);
        if (locals.err != ERR_ok) goto ex_0;
        locals.s.num = T_2_2.num;
        }
        }}/* end if */

  LINE(82);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    locals.err = _split_name_part(locals.s, &T_1_1, &T_1_2, &T_1_3);
    if (locals.err != ERR_ok) goto ex_0;
    locals.name.num = T_1_1.num;
    locals.suffix.num = T_1_2.num;
    locals.s.num = T_1_3.num;
    }

  LINE(83);
    {
    {
    CLUREF T_1_1;
    RecordAlloc(4, T_1_1);
    T_1_1.vec->data[0]  = locals.dir.num;
    T_1_1.vec->data[1]  = locals.name.num;
    T_1_1.vec->data[3]  = locals.suffix.num;
    T_1_1.vec->data[2]  = locals.s.num;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE parse ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist1 *sigs;
    Vlist7 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPparse_actual;
static Vlist1 vals_file_nameOPparse = {0, 1, { {0, 2, "", &record_dir_name_other_suffix_ops}}
};
static sig_desc0 sig_file_nameOPparse_1 = {0, 3, "bad_format", {0, 0
}};
static siglist1 sigs_file_nameOPparse = {0, 1, (sig_desc*)&sig_file_nameOPparse_1};
static Vlist7 locals_file_nameOPparse = {0, 7,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "i", &int_ops},  {0, 2, "dir", &string_ops},  {0, 2, "name", &string_ops},  {0, 2, "suffix", &string_ops},  {0, 2, "s", &string_ops}}
};
static Vlist0 popowns_file_nameOPparse = {0, 0};
Slist0 tformals_file_nameOPparse = {0, 0};
Slist0 opformals_file_nameOPparse = {0, 0};
dbg_info_file_nameOPparse_actual dbg_info_file_nameOPparse_data = {0, 12, 
    "file_nameOPparse", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPparse, 1, 
    &vals_file_nameOPparse, &sigs_file_nameOPparse, &locals_file_nameOPparse, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPparse = (struct dbg_info*)&dbg_info_file_nameOPparse_data;
extern struct dbg_info* dbg_info_file_nameOPunparse;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPunparse_TRACE
int file_nameOPunparse_TRACE;
extern OWN_req string_ownreqs;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOPunparse_own_init = 0;

/**** BEGIN PROCEDURE unparse ****/

errcode file_nameOPunparse(x, ret_1)
CLUREF x;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF s;
        CLUREF x;
        } locals;
    locals.s.num = UNINIT;
    locals.x.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPunparse;
    locals.x = x;
        if (file_nameOPunparse_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPunparse_own_init = 1;
    }
    enter_proc(89);

  LINE(90);
    {
        {CLUREF T_1_1;
        T_1_1.num = locals.x.vec->data[0];
        locals.s.num = T_1_1.num;
        }
        }

  LINE(91);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    CLUREF T_1_5;
    locals.err = stringOPempty(locals.s, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_3.num = T_1_2.num ^ 1;
    T_1_1.num = T_1_3.num;
    if (T_1_3.num) {
        locals.err = stringOPequal(locals.s, STR__057, &T_1_4);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_5.num = T_1_4.num ^ 1;
        T_1_1.num = T_1_5.num;
    }
    if (T_1_1.num == true) {

  LINE(92);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.ch = '/';
        locals.err = stringOPappend(locals.s, T_2_1, &T_2_2);
        if (locals.err != ERR_ok) goto ex_0;
        locals.s.num = T_2_2.num;
        }
        }
        }/* end if */

  LINE(93);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = locals.x.vec->data[1];
    locals.err = stringOPconcat(locals.s, T_1_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    locals.s.num = T_1_2.num;
    }

  LINE(94);
    {
    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 = locals.x.vec->data[3];
    locals.err = stringOPempty(T_1_2, &T_1_3);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_4.num = T_1_3.num ^ 1;
    T_1_1.num = T_1_4.num;
    if (!T_1_4.num) {
        T_1_5.num = locals.x.vec->data[2];
        locals.err = stringOPempty(T_1_5, &T_1_6);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_7.num = T_1_6.num ^ 1;
        T_1_1.num = T_1_7.num;
    }
    if (T_1_1.num == true) {

  LINE(95);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        T_2_1.ch = '.';
        locals.err = stringOPappend(locals.s, T_2_1, &T_2_2);
        if (locals.err != ERR_ok) goto ex_0;
        T_2_3.num = locals.x.vec->data[3];
        locals.err = stringOPconcat(T_2_2, T_2_3, &T_2_4);
        if (locals.err != ERR_ok) goto ex_0;
        locals.s.num = T_2_4.num;
        }
        }
        }/* end if */

  LINE(96);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = locals.x.vec->data[2];
    locals.err = stringOPempty(T_1_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_3.num = T_1_2.num ^ 1;
    if (T_1_3.num == true) {

  LINE(97);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        T_2_1.ch = '.';
        locals.err = stringOPappend(locals.s, T_2_1, &T_2_2);
        if (locals.err != ERR_ok) goto ex_0;
        T_2_3.num = locals.x.vec->data[2];
        locals.err = stringOPconcat(T_2_2, T_2_3, &T_2_4);
        if (locals.err != ERR_ok) goto ex_0;
        locals.s.num = T_2_4.num;
        }
        }
        }/* end if */

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

/**** END PROCEDURE unparse ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist0 *sigs;
    Vlist4 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPunparse_actual;
static Vlist1 vals_file_nameOPunparse = {0, 1, { {0, 2, "", &string_ops}}
};
static siglist0 sigs_file_nameOPunparse = {0, 0};
static Vlist4 locals_file_nameOPunparse = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "s", &string_ops},  {0, 2, "x", &record_dir_name_other_suffix_ops}}
};
static Vlist0 popowns_file_nameOPunparse = {0, 0};
Slist0 tformals_file_nameOPunparse = {0, 0};
Slist0 opformals_file_nameOPunparse = {0, 0};
dbg_info_file_nameOPunparse_actual dbg_info_file_nameOPunparse_data = {0, 12, 
    "file_nameOPunparse", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPunparse, 1, 
    &vals_file_nameOPunparse, &sigs_file_nameOPunparse, &locals_file_nameOPunparse, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPunparse = (struct dbg_info*)&dbg_info_file_nameOPunparse_data;
extern struct dbg_info* dbg_info_file_nameOPget_dir;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPget_dir_TRACE
int file_nameOPget_dir_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOPget_dir_own_init = 0;

/**** BEGIN PROCEDURE get_dir ****/

errcode file_nameOPget_dir(x, ret_1)
CLUREF x;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF x;
        } locals;
    locals.x.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPget_dir;
    locals.x = x;
        if (file_nameOPget_dir_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPget_dir_own_init = 1;
    }
    enter_proc(101);

  LINE(102);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = locals.x.vec->data[0];
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_dir ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist0 *sigs;
    Vlist3 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPget_dir_actual;
static Vlist1 vals_file_nameOPget_dir = {0, 1, { {0, 2, "", &string_ops}}
};
static siglist0 sigs_file_nameOPget_dir = {0, 0};
static Vlist3 locals_file_nameOPget_dir = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "x", &record_dir_name_other_suffix_ops}}
};
static Vlist0 popowns_file_nameOPget_dir = {0, 0};
Slist0 tformals_file_nameOPget_dir = {0, 0};
Slist0 opformals_file_nameOPget_dir = {0, 0};
dbg_info_file_nameOPget_dir_actual dbg_info_file_nameOPget_dir_data = {0, 12, 
    "file_nameOPget_dir", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPget_dir, 1, 
    &vals_file_nameOPget_dir, &sigs_file_nameOPget_dir, &locals_file_nameOPget_dir, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPget_dir = (struct dbg_info*)&dbg_info_file_nameOPget_dir_data;
extern struct dbg_info* dbg_info_file_nameOPget_name;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPget_name_TRACE
int file_nameOPget_name_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOPget_name_own_init = 0;

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

errcode file_nameOPget_name(x, ret_1)
CLUREF x;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF x;
        } locals;
    locals.x.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPget_name;
    locals.x = x;
        if (file_nameOPget_name_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPget_name_own_init = 1;
    }
    enter_proc(105);

  LINE(106);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = locals.x.vec->data[1];
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_name ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist0 *sigs;
    Vlist3 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPget_name_actual;
static Vlist1 vals_file_nameOPget_name = {0, 1, { {0, 2, "", &string_ops}}
};
static siglist0 sigs_file_nameOPget_name = {0, 0};
static Vlist3 locals_file_nameOPget_name = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "x", &record_dir_name_other_suffix_ops}}
};
static Vlist0 popowns_file_nameOPget_name = {0, 0};
Slist0 tformals_file_nameOPget_name = {0, 0};
Slist0 opformals_file_nameOPget_name = {0, 0};
dbg_info_file_nameOPget_name_actual dbg_info_file_nameOPget_name_data = {0, 12, 
    "file_nameOPget_name", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPget_name, 1, 
    &vals_file_nameOPget_name, &sigs_file_nameOPget_name, &locals_file_nameOPget_name, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPget_name = (struct dbg_info*)&dbg_info_file_nameOPget_name_data;
extern struct dbg_info* dbg_info_file_nameOPget_suffix;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPget_suffix_TRACE
int file_nameOPget_suffix_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOPget_suffix_own_init = 0;

/**** BEGIN PROCEDURE get_suffix ****/

errcode file_nameOPget_suffix(x, ret_1)
CLUREF x;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF x;
        } locals;
    locals.x.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPget_suffix;
    locals.x = x;
        if (file_nameOPget_suffix_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPget_suffix_own_init = 1;
    }
    enter_proc(109);

  LINE(110);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = locals.x.vec->data[3];
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_suffix ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist0 *sigs;
    Vlist3 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPget_suffix_actual;
static Vlist1 vals_file_nameOPget_suffix = {0, 1, { {0, 2, "", &string_ops}}
};
static siglist0 sigs_file_nameOPget_suffix = {0, 0};
static Vlist3 locals_file_nameOPget_suffix = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "x", &record_dir_name_other_suffix_ops}}
};
static Vlist0 popowns_file_nameOPget_suffix = {0, 0};
Slist0 tformals_file_nameOPget_suffix = {0, 0};
Slist0 opformals_file_nameOPget_suffix = {0, 0};
dbg_info_file_nameOPget_suffix_actual dbg_info_file_nameOPget_suffix_data = {0, 12, 
    "file_nameOPget_suffix", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPget_suffix, 1, 
    &vals_file_nameOPget_suffix, &sigs_file_nameOPget_suffix, &locals_file_nameOPget_suffix, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPget_suffix = (struct dbg_info*)&dbg_info_file_nameOPget_suffix_data;
extern struct dbg_info* dbg_info_file_nameOPget_other;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPget_other_TRACE
int file_nameOPget_other_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOPget_other_own_init = 0;

/**** BEGIN PROCEDURE get_other ****/

errcode file_nameOPget_other(x, ret_1)
CLUREF x;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF x;
        } locals;
    locals.x.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPget_other;
    locals.x = x;
        if (file_nameOPget_other_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPget_other_own_init = 1;
    }
    enter_proc(113);

  LINE(114);
    {
    {
    CLUREF T_1_1;
    T_1_1.num = locals.x.vec->data[2];
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_other ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist0 *sigs;
    Vlist3 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPget_other_actual;
static Vlist1 vals_file_nameOPget_other = {0, 1, { {0, 2, "", &string_ops}}
};
static siglist0 sigs_file_nameOPget_other = {0, 0};
static Vlist3 locals_file_nameOPget_other = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "x", &record_dir_name_other_suffix_ops}}
};
static Vlist0 popowns_file_nameOPget_other = {0, 0};
Slist0 tformals_file_nameOPget_other = {0, 0};
Slist0 opformals_file_nameOPget_other = {0, 0};
dbg_info_file_nameOPget_other_actual dbg_info_file_nameOPget_other_data = {0, 12, 
    "file_nameOPget_other", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPget_other, 1, 
    &vals_file_nameOPget_other, &sigs_file_nameOPget_other, &locals_file_nameOPget_other, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPget_other = (struct dbg_info*)&dbg_info_file_nameOPget_other_data;
extern struct dbg_info* dbg_info_file_nameOPmake_output;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPmake_output_TRACE
int file_nameOPmake_output_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOPmake_output_own_init = 0;

/**** BEGIN PROCEDURE make_output ****/

errcode file_nameOPmake_output(x, ext, ret_1)
CLUREF x;
CLUREF ext;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF x;
        CLUREF ext;
        } locals;
    locals.x.num = UNINIT;
    locals.ext.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPmake_output;
    locals.x = x;
    locals.ext = ext;
        if (file_nameOPmake_output_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPmake_output_own_init = 1;
    }
    enter_proc(117);

  LINE(118);
    {
    CLUREF T_1_1;
    generic_CLU_proc.type_owns = 0;
    generic_CLU_proc.proc = recordOPcopy1;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    locals.err = recordOPcopy1(locals.x, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.x.num = T_1_1.num;
    }

  LINE(119);
    {
    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.ch = '/';
    locals.err = stringOPindexc(T_1_2, locals.ext, &T_1_3);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_4.num = (T_1_3.num > 0)? true : false;
    T_1_1.num = T_1_4.num;
    if (!T_1_4.num) {
        T_1_5.ch = '.';
        locals.err = stringOPindexc(T_1_5, locals.ext, &T_1_6);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_7.num = (T_1_6.num > 0)? true : false;
        T_1_1.num = T_1_7.num;
    }
    if (T_1_1.num == true) {

  LINE(120);
        {
        {signal (ERR_bad_format);}}
        }
        }/* end if */

  LINE(121);
    {
    locals.x.vec->data[3]  = locals.ext.num;
    }

  LINE(122);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = locals.x.vec->data[1];
    locals.err = stringOPempty(T_1_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    if (T_1_2.num == true) {

  LINE(123);
        {
        locals.x.vec->data[1]  = STR_output.num;
        }
        }
        }/* end if */

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

/**** END PROCEDURE make_output ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist1 *sigs;
    Vlist4 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPmake_output_actual;
static Vlist1 vals_file_nameOPmake_output = {0, 1, { {0, 2, "", &record_dir_name_other_suffix_ops}}
};
static sig_desc0 sig_file_nameOPmake_output_1 = {0, 3, "bad_format", {0, 0
}};
static siglist1 sigs_file_nameOPmake_output = {0, 1, (sig_desc*)&sig_file_nameOPmake_output_1};
static Vlist4 locals_file_nameOPmake_output = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "x", &record_dir_name_other_suffix_ops},  {0, 2, "ext", &string_ops}}
};
static Vlist0 popowns_file_nameOPmake_output = {0, 0};
Slist0 tformals_file_nameOPmake_output = {0, 0};
Slist0 opformals_file_nameOPmake_output = {0, 0};
dbg_info_file_nameOPmake_output_actual dbg_info_file_nameOPmake_output_data = {0, 12, 
    "file_nameOPmake_output", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPmake_output, 2, 
    &vals_file_nameOPmake_output, &sigs_file_nameOPmake_output, &locals_file_nameOPmake_output, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPmake_output = (struct dbg_info*)&dbg_info_file_nameOPmake_output_data;
extern struct dbg_info* dbg_info_file_nameOPmake_temp;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPmake_temp_TRACE
int file_nameOPmake_temp_TRACE;
static int file_nameOPmake_temp_own_init = 0;
CLUREF file_nameOPmake_tempOPextend_number;

/**** BEGIN PROCEDURE make_temp ****/

errcode file_nameOPmake_temp(tdir, prog, kind, ret_1)
CLUREF tdir;
CLUREF prog;
CLUREF kind;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF tdir;
        CLUREF prog;
        CLUREF kind;
        } locals;
    locals.tdir.num = UNINIT;
    locals.prog.num = UNINIT;
    locals.kind.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPmake_temp;
    locals.tdir = tdir;
    locals.prog = prog;
    locals.kind = kind;
        if (file_nameOPmake_temp_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPmake_temp_own_init = 1;
        {
            {file_nameOPmake_tempOPextend_number.num = 0;
            }
            }
    }
    enter_proc(127);

  LINE(130);
    {
    CLUREF T_1_1;
    locals.err = intOPadd(file_nameOPmake_tempOPextend_number, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    file_nameOPmake_tempOPextend_number.num = T_1_1.num;
    }

  LINE(131);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    locals.err = stringOPconcat(STR__137, locals.prog, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = intOPunparse(file_nameOPmake_tempOPextend_number, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = stringOPconcat(T_1_1, T_1_2, &T_1_3);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = stringOPconcat(T_1_3, locals.kind, &T_1_4);
    if (locals.err != ERR_ok) goto ex_0;
    locals.prog.num = T_1_4.num;
    }

  LINE(132);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    locals.err = _get_pid(&T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.err = intOPunparse(T_1_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    locals.kind.num = T_1_2.num;
    }

  LINE(133);
    {
    {
    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 = _dir_ent_size(&T_2_1);
    if (locals.err != ERR_ok) goto ex_1;
    locals.err = stringOPsize(locals.kind, &T_2_2);
    if (locals.err != ERR_ok) goto ex_1;
    locals.err = intOPsub(T_2_1, T_2_2, &T_2_3);
    if (locals.err != ERR_ok) goto ex_1;
    locals.err = stringOPsubstr(locals.prog, CLU_1, T_2_3, &T_2_4);
    if (locals.err != ERR_ok) goto ex_1;
    locals.err = stringOPconcat(T_2_4, locals.kind, &T_2_5);
    if (locals.err != ERR_ok) goto ex_1;
    locals.err = file_nameOPcreate(locals.tdir, T_2_5, STR_, STR_, &T_2_6);
    if (locals.err != ERR_ok) goto ex_1;
    ret_1->num = T_2_6.num;
    }
    {signal (ERR_ok);}}
    goto end_1;
    ex_1:
        if (locals.err == ERR_bad_format) {signal(ERR_bad_format);}
        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: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE make_temp ****/

extern struct OPS *file_name_ops;
typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist1 *sigs;
    Vlist5 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPmake_temp_actual;
static Vlist1 vals_file_nameOPmake_temp = {0, 1, { {0, 2, "", &file_name_ops}}
};
static sig_desc0 sig_file_nameOPmake_temp_1 = {0, 3, "bad_format", {0, 0
}};
static siglist1 sigs_file_nameOPmake_temp = {0, 1, (sig_desc*)&sig_file_nameOPmake_temp_1};
static Vlist5 locals_file_nameOPmake_temp = {0, 5,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "tdir", &string_ops},  {0, 2, "prog", &string_ops},  {0, 2, "kind", &string_ops}}
};
static Vlist0 popowns_file_nameOPmake_temp = {0, 0};
Slist0 tformals_file_nameOPmake_temp = {0, 0};
Slist0 opformals_file_nameOPmake_temp = {0, 0};
dbg_info_file_nameOPmake_temp_actual dbg_info_file_nameOPmake_temp_data = {0, 12, 
    "file_nameOPmake_temp", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPmake_temp, 3, 
    &vals_file_nameOPmake_temp, &sigs_file_nameOPmake_temp, &locals_file_nameOPmake_temp, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPmake_temp = (struct dbg_info*)&dbg_info_file_nameOPmake_temp_data;
extern struct dbg_info* dbg_info_file_nameOPequal;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPequal_TRACE
int file_nameOPequal_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOPequal_own_init = 0;

/**** BEGIN PROCEDURE equal ****/

errcode file_nameOPequal(x, y, ret_1)
CLUREF x;
CLUREF y;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF x;
        CLUREF y;
        } locals;
    locals.x.num = UNINIT;
    locals.y.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPequal;
    locals.x = x;
    locals.y = y;
        if (file_nameOPequal_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPequal_own_init = 1;
    }
    enter_proc(141);

  LINE(142);
    {
    {
    CLUREF T_1_1;
    generic_CLU_proc.type_owns = 0;
    generic_CLU_proc.op_owns = record_dir_name_other_suffix_ops->entry[0].fcn->op_owns;
    generic_CLU_proc.proc = recordOPsimilar;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    locals.err = recordOPsimilar(locals.x, locals.y, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE equal ****/

extern struct OPS *bool_ops;
typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist0 *sigs;
    Vlist4 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPequal_actual;
static Vlist1 vals_file_nameOPequal = {0, 1, { {0, 2, "", &bool_ops}}
};
static siglist0 sigs_file_nameOPequal = {0, 0};
static Vlist4 locals_file_nameOPequal = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "x", &record_dir_name_other_suffix_ops},  {0, 2, "y", &record_dir_name_other_suffix_ops}}
};
static Vlist0 popowns_file_nameOPequal = {0, 0};
Slist0 tformals_file_nameOPequal = {0, 0};
Slist0 opformals_file_nameOPequal = {0, 0};
dbg_info_file_nameOPequal_actual dbg_info_file_nameOPequal_data = {0, 12, 
    "file_nameOPequal", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPequal, 2, 
    &vals_file_nameOPequal, &sigs_file_nameOPequal, &locals_file_nameOPequal, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPequal = (struct dbg_info*)&dbg_info_file_nameOPequal_data;
extern struct dbg_info* dbg_info_file_nameOPsimilar;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPsimilar_TRACE
int file_nameOPsimilar_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOPsimilar_own_init = 0;

/**** BEGIN PROCEDURE similar ****/

errcode file_nameOPsimilar(x, y, ret_1)
CLUREF x;
CLUREF y;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF x;
        CLUREF y;
        } locals;
    locals.x.num = UNINIT;
    locals.y.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPsimilar;
    locals.x = x;
    locals.y = y;
        if (file_nameOPsimilar_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPsimilar_own_init = 1;
    }
    enter_proc(145);

  LINE(146);
    {
    {
    CLUREF T_1_1;
    generic_CLU_proc.type_owns = 0;
    generic_CLU_proc.op_owns = record_dir_name_other_suffix_ops->entry[0].fcn->op_owns;
    generic_CLU_proc.proc = recordOPsimilar;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    locals.err = recordOPsimilar(locals.x, locals.y, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE similar ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist0 *sigs;
    Vlist4 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPsimilar_actual;
static Vlist1 vals_file_nameOPsimilar = {0, 1, { {0, 2, "", &bool_ops}}
};
static siglist0 sigs_file_nameOPsimilar = {0, 0};
static Vlist4 locals_file_nameOPsimilar = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "x", &record_dir_name_other_suffix_ops},  {0, 2, "y", &record_dir_name_other_suffix_ops}}
};
static Vlist0 popowns_file_nameOPsimilar = {0, 0};
Slist0 tformals_file_nameOPsimilar = {0, 0};
Slist0 opformals_file_nameOPsimilar = {0, 0};
dbg_info_file_nameOPsimilar_actual dbg_info_file_nameOPsimilar_data = {0, 12, 
    "file_nameOPsimilar", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPsimilar, 2, 
    &vals_file_nameOPsimilar, &sigs_file_nameOPsimilar, &locals_file_nameOPsimilar, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPsimilar = (struct dbg_info*)&dbg_info_file_nameOPsimilar_data;
extern struct dbg_info* dbg_info_file_nameOPcopy;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPcopy_TRACE
int file_nameOPcopy_TRACE;

/**** BEGIN PROCEDURE copy ****/

errcode file_nameOPcopy(x, ret_1)
CLUREF x;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF x;
        } locals;
    locals.x.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPcopy;
    locals.x = x;
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
    enter_proc(149);

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

/**** END PROCEDURE copy ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist0 *sigs;
    Vlist3 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPcopy_actual;
static Vlist1 vals_file_nameOPcopy = {0, 1, { {0, 2, "", &file_name_ops}}
};
static siglist0 sigs_file_nameOPcopy = {0, 0};
static Vlist3 locals_file_nameOPcopy = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "x", &file_name_ops}}
};
static Vlist0 popowns_file_nameOPcopy = {0, 0};
Slist0 tformals_file_nameOPcopy = {0, 0};
Slist0 opformals_file_nameOPcopy = {0, 0};
dbg_info_file_nameOPcopy_actual dbg_info_file_nameOPcopy_data = {0, 12, 
    "file_nameOPcopy", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPcopy, 1, 
    &vals_file_nameOPcopy, &sigs_file_nameOPcopy, &locals_file_nameOPcopy, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPcopy = (struct dbg_info*)&dbg_info_file_nameOPcopy_data;
extern struct dbg_info* dbg_info_file_nameOPprint;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPprint_TRACE
int file_nameOPprint_TRACE;
extern OWN_req pstream_ownreqs;
extern struct OPS *pstream_ops;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOPprint_own_init = 0;

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

errcode file_nameOPprint(x, ps)
CLUREF x;
CLUREF ps;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF x;
        CLUREF ps;
        } locals;
    locals.x.num = UNINIT;
    locals.ps.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPprint;
    locals.x = x;
    locals.ps = ps;
        if (file_nameOPprint_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPprint_own_init = 1;
    }
    enter_proc(153);

  LINE(154);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = locals.x.vec->data[0];
    locals.err = pstreamOPtext(locals.ps, T_1_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(155);
    {
    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 = locals.x.vec->data[0];
    locals.err = stringOPempty(T_1_2, &T_1_3);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_4.num = T_1_3.num ^ 1;
    T_1_1.num = T_1_4.num;
    if (T_1_4.num) {
        T_1_5.num = locals.x.vec->data[0];
        locals.err = stringOPequal(T_1_5, STR__057, &T_1_6);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_7.num = T_1_6.num ^ 1;
        T_1_1.num = T_1_7.num;
    }
    if (T_1_1.num == true) {

  LINE(156);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.ch = '/';
        locals.err = pstreamOPtextc(locals.ps, T_2_1, &T_2_2);
        if (locals.err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(157);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = locals.x.vec->data[1];
    locals.err = pstreamOPtext(locals.ps, T_1_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    }

  LINE(158);
    {
    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 = locals.x.vec->data[3];
    locals.err = stringOPempty(T_1_2, &T_1_3);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_4.num = T_1_3.num ^ 1;
    T_1_1.num = T_1_4.num;
    if (!T_1_4.num) {
        T_1_5.num = locals.x.vec->data[2];
        locals.err = stringOPempty(T_1_5, &T_1_6);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_7.num = T_1_6.num ^ 1;
        T_1_1.num = T_1_7.num;
    }
    if (T_1_1.num == true) {

  LINE(159);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.ch = '.';
        locals.err = pstreamOPtextc(locals.ps, T_2_1, &T_2_2);
        if (locals.err != ERR_ok) goto ex_0;
        }

  LINE(160);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = locals.x.vec->data[3];
        locals.err = pstreamOPtext(locals.ps, T_2_1, &T_2_2);
        if (locals.err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(162);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = locals.x.vec->data[2];
    locals.err = stringOPempty(T_1_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_3.num = T_1_2.num ^ 1;
    if (T_1_3.num == true) {

  LINE(163);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.ch = '.';
        locals.err = pstreamOPtextc(locals.ps, T_2_1, &T_2_2);
        if (locals.err != ERR_ok) goto ex_0;
        }

  LINE(164);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = locals.x.vec->data[2];
        locals.err = pstreamOPtext(locals.ps, T_2_1, &T_2_2);
        if (locals.err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */
    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 print ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist0 *sigs;
    Vlist4 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPprint_actual;
static Vlist0 vals_file_nameOPprint = {0, 0};
static siglist0 sigs_file_nameOPprint = {0, 0};
static Vlist4 locals_file_nameOPprint = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "x", &record_dir_name_other_suffix_ops},  {0, 2, "ps", &pstream_ops}}
};
static Vlist0 popowns_file_nameOPprint = {0, 0};
Slist0 tformals_file_nameOPprint = {0, 0};
Slist0 opformals_file_nameOPprint = {0, 0};
dbg_info_file_nameOPprint_actual dbg_info_file_nameOPprint_data = {0, 12, 
    "file_nameOPprint", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPprint, 2, 
    &vals_file_nameOPprint, &sigs_file_nameOPprint, &locals_file_nameOPprint, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPprint = (struct dbg_info*)&dbg_info_file_nameOPprint_data;
extern struct dbg_info* dbg_info_file_nameOPencode;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPencode_TRACE
int file_nameOPencode_TRACE;
static int file_nameOPencode_own_init = 0;

/**** BEGIN PROCEDURE encode ****/

errcode file_nameOPencode(fn, ist)
CLUREF fn;
CLUREF ist;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF fn;
        CLUREF ist;
        } locals;
    locals.fn.num = UNINIT;
    locals.ist.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPencode;
    locals.fn = fn;
    locals.ist = ist;
        if (file_nameOPencode_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPencode_own_init = 1;
    }
    enter_proc(168);

  LINE(169);
    {
    CLUREF T_2_1;
    locals.err = file_nameOPunparse(locals.fn, &T_2_1);
    if (locals.err != ERR_ok) goto ex_1;
    locals.err = stringOPencode(T_2_1, locals.ist);
    if (locals.err != ERR_ok) goto ex_1;
    }
    goto end_1;
    ex_1:
        if (locals.err == ERR_not_possible) {signal(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 encode ****/

extern struct OPS *istream_ops;
typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist1 *sigs;
    Vlist4 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPencode_actual;
static Vlist0 vals_file_nameOPencode = {0, 0};
static sig_desc1 sig_file_nameOPencode_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_file_nameOPencode = {0, 1, (sig_desc*)&sig_file_nameOPencode_1};
static Vlist4 locals_file_nameOPencode = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "fn", &file_name_ops},  {0, 2, "ist", &istream_ops}}
};
static Vlist0 popowns_file_nameOPencode = {0, 0};
Slist0 tformals_file_nameOPencode = {0, 0};
Slist0 opformals_file_nameOPencode = {0, 0};
dbg_info_file_nameOPencode_actual dbg_info_file_nameOPencode_data = {0, 12, 
    "file_nameOPencode", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPencode, 2, 
    &vals_file_nameOPencode, &sigs_file_nameOPencode, &locals_file_nameOPencode, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPencode = (struct dbg_info*)&dbg_info_file_nameOPencode_data;
extern struct dbg_info* dbg_info_file_nameOPdecode;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPdecode_TRACE
int file_nameOPdecode_TRACE;
extern OWN_req file_name_ownreqs;
static int file_nameOPdecode_own_init = 0;

/**** BEGIN PROCEDURE decode ****/

errcode file_nameOPdecode(ist, ret_1)
CLUREF ist;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF ist;
        } locals;
    locals.ist.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPdecode;
    locals.ist = ist;
        if (file_nameOPdecode_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPdecode_own_init = 1;
    }
    enter_proc(173);

  LINE(175);
    {
    {
    CLUREF T_3_1;
    CLUREF T_3_2;
    locals.err = stringOPdecode(locals.ist, &T_3_1);
    if (locals.err != ERR_ok) goto ex_2;
    locals.err = file_nameOPparse(T_3_1, &T_3_2);
    if (locals.err != ERR_ok) goto ex_2;
    ret_1->num = T_3_2.num;
    }
    {signal (ERR_ok);}}
    goto end_2;
    ex_2:
        if (locals.err == ERR_end_of_file) {signal(ERR_end_of_file);}
        else if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_1;}
    end_2:;
        goto end_1;
        ex_1:
            if ((locals.err == ERR_bad_format)) {

  LINE(177);
                {
                elist[0] = STR_bad_040format;
                {signal (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: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE decode ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist2 *sigs;
    Vlist3 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPdecode_actual;
static Vlist1 vals_file_nameOPdecode = {0, 1, { {0, 2, "", &file_name_ops}}
};
static sig_desc0 sig_file_nameOPdecode_1 = {0, 3, "end_of_file", {0, 0
}};
static sig_desc1 sig_file_nameOPdecode_2 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist2 sigs_file_nameOPdecode = {0, 2, (sig_desc*)&sig_file_nameOPdecode_1, (sig_desc*)&sig_file_nameOPdecode_2};
static Vlist3 locals_file_nameOPdecode = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "ist", &istream_ops}}
};
static Vlist0 popowns_file_nameOPdecode = {0, 0};
Slist0 tformals_file_nameOPdecode = {0, 0};
Slist0 opformals_file_nameOPdecode = {0, 0};
dbg_info_file_nameOPdecode_actual dbg_info_file_nameOPdecode_data = {0, 12, 
    "file_nameOPdecode", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPdecode, 1, 
    &vals_file_nameOPdecode, &sigs_file_nameOPdecode, &locals_file_nameOPdecode, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPdecode = (struct dbg_info*)&dbg_info_file_nameOPdecode_data;
extern struct dbg_info* dbg_info_file_nameOP_gcd;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOP_gcd_TRACE
int file_nameOP_gcd_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOP_gcd_own_init = 0;

/**** BEGIN PROCEDURE _gcd ****/

errcode file_nameOP_gcd(x, tab, ret_1)
CLUREF x;
CLUREF tab;
CLUREF *ret_1;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF x;
        CLUREF tab;
        } locals;
    locals.x.num = UNINIT;
    locals.tab.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOP_gcd;
    locals.x = x;
    locals.tab = tab;
        if (file_nameOP_gcd_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOP_gcd_own_init = 1;
    }
    enter_proc(180);

  LINE(181);
    {
    {
    CLUREF T_1_1;
    generic_CLU_proc.type_owns = 0;
    generic_CLU_proc.op_owns = record_dir_name_other_suffix_ops->entry[6].fcn->op_owns;
    generic_CLU_proc.proc = recordOP_gcd;
    CUR_PROC_VAR.proc = &generic_CLU_proc;
    locals.err = recordOP_gcd(locals.x, locals.tab, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (locals.err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(locals.err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE _gcd ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist1 *vals;
    siglist0 *sigs;
    Vlist4 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOP_gcd_actual;
static Vlist1 vals_file_nameOP_gcd = {0, 1, { {0, 2, "", &int_ops}}
};
static siglist0 sigs_file_nameOP_gcd = {0, 0};
static Vlist4 locals_file_nameOP_gcd = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "x", &record_dir_name_other_suffix_ops},  {0, 2, "tab", &gcd_tab_ops}}
};
static Vlist0 popowns_file_nameOP_gcd = {0, 0};
Slist0 tformals_file_nameOP_gcd = {0, 0};
Slist0 opformals_file_nameOP_gcd = {0, 0};
dbg_info_file_nameOP_gcd_actual dbg_info_file_nameOP_gcd_data = {0, 12, 
    "file_nameOP_gcd", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOP_gcd, 2, 
    &vals_file_nameOP_gcd, &sigs_file_nameOP_gcd, &locals_file_nameOP_gcd, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOP_gcd = (struct dbg_info*)&dbg_info_file_nameOP_gcd_data;
extern struct dbg_info* dbg_info_file_nameOPdebug_print;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_nameOPdebug_print_TRACE
int file_nameOPdebug_print_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_nameOPdebug_print_own_init = 0;

/**** BEGIN PROCEDURE debug_print ****/

errcode file_nameOPdebug_print(_rep, ps)
CLUREF _rep;
CLUREF ps;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF _rep;
        CLUREF ps;
        } locals;
    locals._rep.num = UNINIT;
    locals.ps.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_nameOPdebug_print;
    locals._rep = _rep;
    locals.ps = ps;
        if (file_nameOPdebug_print_own_init == 0) {
        if (file_name_own_init == 0) {
            locals.err = file_name_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_nameOPdebug_print_own_init = 1;
    }
    enter_proc(1);

  LINE(2);
    {
    locals.err = file_nameOPprint(locals._rep, locals.ps);
    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 debug_print ****/

typedef struct {
    int hdr;
    int count;
    char *name;
    char *fname;
    bool is_iter;
    int is_parmd;
    int addr;
    int nargs;
    Vlist0 *vals;
    siglist0 *sigs;
    Vlist4 *locals;
    Vlist19 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_nameOPdebug_print_actual;
static Vlist0 vals_file_nameOPdebug_print = {0, 0};
static siglist0 sigs_file_nameOPdebug_print = {0, 0};
static Vlist4 locals_file_nameOPdebug_print = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "_rep", &record_dir_name_other_suffix_ops},  {0, 2, "ps", &pstream_ops}}
};
static Vlist0 popowns_file_nameOPdebug_print = {0, 0};
Slist0 tformals_file_nameOPdebug_print = {0, 0};
Slist0 opformals_file_nameOPdebug_print = {0, 0};
dbg_info_file_nameOPdebug_print_actual dbg_info_file_nameOPdebug_print_data = {0, 12, 
    "file_nameOPdebug_print", "/common/pub/dcurtis-temp/pclu/sys/clu/file_name", 0, 0, (int)file_nameOPdebug_print, 2, 
    &vals_file_nameOPdebug_print, &sigs_file_nameOPdebug_print, &locals_file_nameOPdebug_print, &owns_file_name, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_nameOPdebug_print = (struct dbg_info*)&dbg_info_file_nameOPdebug_print_data;
typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[17];
} file_name_OPS;

CLU_proc file_name_oe__gcd = {{0,0,0,0}, file_nameOP_gcd, 0};
CLU_proc file_name_oe_copy = {{0,0,0,0}, file_nameOPcopy, 0};
CLU_proc file_name_oe_create = {{0,0,0,0}, file_nameOPcreate, 0};
CLU_proc file_name_oe_decode = {{0,0,0,0}, file_nameOPdecode, 0};
CLU_proc file_name_oe_encode = {{0,0,0,0}, file_nameOPencode, 0};
CLU_proc file_name_oe_equal = {{0,0,0,0}, file_nameOPequal, 0};
CLU_proc file_name_oe_get_dir = {{0,0,0,0}, file_nameOPget_dir, 0};
CLU_proc file_name_oe_get_name = {{0,0,0,0}, file_nameOPget_name, 0};
CLU_proc file_name_oe_get_other = {{0,0,0,0}, file_nameOPget_other, 0};
CLU_proc file_name_oe_get_suffix = {{0,0,0,0}, file_nameOPget_suffix, 0};
CLU_proc file_name_oe_make_output = {{0,0,0,0}, file_nameOPmake_output, 0};
CLU_proc file_name_oe_make_temp = {{0,0,0,0}, file_nameOPmake_temp, 0};
CLU_proc file_name_oe_parse = {{0,0,0,0}, file_nameOPparse, 0};
CLU_proc file_name_oe_print = {{0,0,0,0}, file_nameOPprint, 0};
CLU_proc file_name_oe_similar = {{0,0,0,0}, file_nameOPsimilar, 0};
CLU_proc file_name_oe_unparse = {{0,0,0,0}, file_nameOPunparse, 0};
CLU_proc file_name_oe_debug_print = {{0,0,0,0}, file_nameOPdebug_print, 0};

file_name_OPS file_name_ops_actual = {17, (OWNPTR)&file_name_own_init, (OWNPTR)&file_name_own_init, {
    {&file_name_oe__gcd, "_gcd"},
    {&file_name_oe_copy, "copy"},
    {&file_name_oe_create, "create"},
    {&file_name_oe_decode, "decode"},
    {&file_name_oe_encode, "encode"},
    {&file_name_oe_equal, "equal"},
    {&file_name_oe_get_dir, "get_dir"},
    {&file_name_oe_get_name, "get_name"},
    {&file_name_oe_get_other, "get_other"},
    {&file_name_oe_get_suffix, "get_suffix"},
    {&file_name_oe_make_output, "make_output"},
    {&file_name_oe_make_temp, "make_temp"},
    {&file_name_oe_parse, "parse"},
    {&file_name_oe_print, "print"},
    {&file_name_oe_similar, "similar"},
    {&file_name_oe_unparse, "unparse"},
    {&file_name_oe_debug_print, "debug_print"}}};

struct OPS *file_name_ops = (struct OPS *)&file_name_ops_actual;

/**** END CLUSTER file_name ****/
