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

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


/**** BEGIN CLUSTER file_spec ****/

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 recordOPsimilar();
extern errcode pstreamOPtext();
extern errcode pstreamOPtextc();
extern errcode stringOPencode();
extern errcode file_specOPunparse();
extern errcode file_specOPparse();
extern errcode stringOPdecode();
extern errcode recordOP_gcd();
extern errcode file_specOPprint();
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_bad_040format;
static int file_spec_own_init = 0;
OWN_req file_spec_ownreqs = {0,0};
errcode file_spec_own_init_proc()
{
struct {
    errcode err;
    } locals;
    enter_own_init_proc();
        if (file_spec_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("bad format", CLU_1, CLU_10, &STR_bad_040format);
        file_spec_own_init = 1;
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(locals.err); {signal(ERR_failure);}
        }
    }

extern struct dbg_info* dbg_info_file_specOPcreate;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPcreate_TRACE
int file_specOPcreate_TRACE;
extern struct OPS *int_ops;
static Vlist16 owns_file_spec = {0, 16,{ {0, 2, "file_spec_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
, {0, 2, "file_specOPcreate_init", &int_ops}
}
};
extern OWN_req int_ownreqs;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_specOPcreate_own_init = 0;

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

errcode file_specOPcreate(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_specOPcreate;
    locals.dir = dir;
    locals.name = name;
    locals.suffix = suffix;
    locals.other = other;
        if (file_specOPcreate_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPcreate_own_init = 1;
    }
    enter_proc(26);

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

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

  LINE(32);
    {
        {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(33);
    {
    CLUREF T_2_1;
    T_2_1.num = (locals.i.num > 0)? true : false;
    if (T_2_1.num == true) {

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

  LINE(35);
            {
            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(36);
            {
            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(37);
                {
                {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(40);
    {
    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(41);
    {
    CLUREF T_2_1;
    T_2_1.num = (locals.i.num > 0)? true : false;
    if (T_2_1.num == true) {

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

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

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

  LINE(45);
            {
            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(46);
            {
            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(47);
                {
                {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(58);
    {
    {
    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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPcreate_actual;
static Vlist1 vals_file_specOPcreate = {0, 1, { {0, 2, "", &record_dir_name_other_suffix_ops}}
};
static sig_desc0 sig_file_specOPcreate_1 = {0, 3, "bad_format", {0, 0
}};
static siglist1 sigs_file_specOPcreate = {0, 1, (sig_desc*)&sig_file_specOPcreate_1};
static Vlist7 locals_file_specOPcreate = {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_specOPcreate = {0, 0};
Slist0 tformals_file_specOPcreate = {0, 0};
Slist0 opformals_file_specOPcreate = {0, 0};
dbg_info_file_specOPcreate_actual dbg_info_file_specOPcreate_data = {0, 12, 
    "file_specOPcreate", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPcreate, 4, 
    &vals_file_specOPcreate, &sigs_file_specOPcreate, &locals_file_specOPcreate, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPcreate = (struct dbg_info*)&dbg_info_file_specOPcreate_data;
extern struct dbg_info* dbg_info_file_specOPparse;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPparse_TRACE
int file_specOPparse_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_specOPparse_own_init = 0;

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

errcode file_specOPparse(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_specOPparse;
    locals.s = s;
        if (file_specOPparse_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPparse_own_init = 1;
    }
    enter_proc(64);

  LINE(65);
    {
        {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(66);
    locals.dir.num = UNINIT;
    locals.name.num = UNINIT;
    locals.suffix.num = UNINIT;

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

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

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

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

  LINE(71);
            {
            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(73);
        {
        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(75);
    {
    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(76);
    {
    {
    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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPparse_actual;
static Vlist1 vals_file_specOPparse = {0, 1, { {0, 2, "", &record_dir_name_other_suffix_ops}}
};
static sig_desc0 sig_file_specOPparse_1 = {0, 3, "bad_format", {0, 0
}};
static siglist1 sigs_file_specOPparse = {0, 1, (sig_desc*)&sig_file_specOPparse_1};
static Vlist7 locals_file_specOPparse = {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_specOPparse = {0, 0};
Slist0 tformals_file_specOPparse = {0, 0};
Slist0 opformals_file_specOPparse = {0, 0};
dbg_info_file_specOPparse_actual dbg_info_file_specOPparse_data = {0, 12, 
    "file_specOPparse", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPparse, 1, 
    &vals_file_specOPparse, &sigs_file_specOPparse, &locals_file_specOPparse, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPparse = (struct dbg_info*)&dbg_info_file_specOPparse_data;
extern struct dbg_info* dbg_info_file_specOPunparse;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPunparse_TRACE
int file_specOPunparse_TRACE;
extern OWN_req string_ownreqs;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_specOPunparse_own_init = 0;

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

errcode file_specOPunparse(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_specOPunparse;
    locals.x = x;
        if (file_specOPunparse_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPunparse_own_init = 1;
    }
    enter_proc(82);

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

  LINE(84);
    {
    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(85);
        {
        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(86);
    {
    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(87);
    {
    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(88);
        {
        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(89);
    {
    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(90);
        {
        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(91);
    {
    {
    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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPunparse_actual;
static Vlist1 vals_file_specOPunparse = {0, 1, { {0, 2, "", &string_ops}}
};
static siglist0 sigs_file_specOPunparse = {0, 0};
static Vlist4 locals_file_specOPunparse = {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_specOPunparse = {0, 0};
Slist0 tformals_file_specOPunparse = {0, 0};
Slist0 opformals_file_specOPunparse = {0, 0};
dbg_info_file_specOPunparse_actual dbg_info_file_specOPunparse_data = {0, 12, 
    "file_specOPunparse", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPunparse, 1, 
    &vals_file_specOPunparse, &sigs_file_specOPunparse, &locals_file_specOPunparse, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPunparse = (struct dbg_info*)&dbg_info_file_specOPunparse_data;
extern struct dbg_info* dbg_info_file_specOPget_dir;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPget_dir_TRACE
int file_specOPget_dir_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_specOPget_dir_own_init = 0;

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

errcode file_specOPget_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_specOPget_dir;
    locals.x = x;
        if (file_specOPget_dir_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPget_dir_own_init = 1;
    }
    enter_proc(94);

  LINE(95);
    {
    {
    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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPget_dir_actual;
static Vlist1 vals_file_specOPget_dir = {0, 1, { {0, 2, "", &string_ops}}
};
static siglist0 sigs_file_specOPget_dir = {0, 0};
static Vlist3 locals_file_specOPget_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_specOPget_dir = {0, 0};
Slist0 tformals_file_specOPget_dir = {0, 0};
Slist0 opformals_file_specOPget_dir = {0, 0};
dbg_info_file_specOPget_dir_actual dbg_info_file_specOPget_dir_data = {0, 12, 
    "file_specOPget_dir", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPget_dir, 1, 
    &vals_file_specOPget_dir, &sigs_file_specOPget_dir, &locals_file_specOPget_dir, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPget_dir = (struct dbg_info*)&dbg_info_file_specOPget_dir_data;
extern struct dbg_info* dbg_info_file_specOPget_name;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPget_name_TRACE
int file_specOPget_name_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_specOPget_name_own_init = 0;

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

errcode file_specOPget_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_specOPget_name;
    locals.x = x;
        if (file_specOPget_name_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPget_name_own_init = 1;
    }
    enter_proc(98);

  LINE(99);
    {
    {
    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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPget_name_actual;
static Vlist1 vals_file_specOPget_name = {0, 1, { {0, 2, "", &string_ops}}
};
static siglist0 sigs_file_specOPget_name = {0, 0};
static Vlist3 locals_file_specOPget_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_specOPget_name = {0, 0};
Slist0 tformals_file_specOPget_name = {0, 0};
Slist0 opformals_file_specOPget_name = {0, 0};
dbg_info_file_specOPget_name_actual dbg_info_file_specOPget_name_data = {0, 12, 
    "file_specOPget_name", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPget_name, 1, 
    &vals_file_specOPget_name, &sigs_file_specOPget_name, &locals_file_specOPget_name, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPget_name = (struct dbg_info*)&dbg_info_file_specOPget_name_data;
extern struct dbg_info* dbg_info_file_specOPget_suffix;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPget_suffix_TRACE
int file_specOPget_suffix_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_specOPget_suffix_own_init = 0;

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

errcode file_specOPget_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_specOPget_suffix;
    locals.x = x;
        if (file_specOPget_suffix_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPget_suffix_own_init = 1;
    }
    enter_proc(102);

  LINE(103);
    {
    {
    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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPget_suffix_actual;
static Vlist1 vals_file_specOPget_suffix = {0, 1, { {0, 2, "", &string_ops}}
};
static siglist0 sigs_file_specOPget_suffix = {0, 0};
static Vlist3 locals_file_specOPget_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_specOPget_suffix = {0, 0};
Slist0 tformals_file_specOPget_suffix = {0, 0};
Slist0 opformals_file_specOPget_suffix = {0, 0};
dbg_info_file_specOPget_suffix_actual dbg_info_file_specOPget_suffix_data = {0, 12, 
    "file_specOPget_suffix", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPget_suffix, 1, 
    &vals_file_specOPget_suffix, &sigs_file_specOPget_suffix, &locals_file_specOPget_suffix, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPget_suffix = (struct dbg_info*)&dbg_info_file_specOPget_suffix_data;
extern struct dbg_info* dbg_info_file_specOPget_other;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPget_other_TRACE
int file_specOPget_other_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_specOPget_other_own_init = 0;

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

errcode file_specOPget_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_specOPget_other;
    locals.x = x;
        if (file_specOPget_other_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPget_other_own_init = 1;
    }
    enter_proc(106);

  LINE(107);
    {
    {
    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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPget_other_actual;
static Vlist1 vals_file_specOPget_other = {0, 1, { {0, 2, "", &string_ops}}
};
static siglist0 sigs_file_specOPget_other = {0, 0};
static Vlist3 locals_file_specOPget_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_specOPget_other = {0, 0};
Slist0 tformals_file_specOPget_other = {0, 0};
Slist0 opformals_file_specOPget_other = {0, 0};
dbg_info_file_specOPget_other_actual dbg_info_file_specOPget_other_data = {0, 12, 
    "file_specOPget_other", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPget_other, 1, 
    &vals_file_specOPget_other, &sigs_file_specOPget_other, &locals_file_specOPget_other, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPget_other = (struct dbg_info*)&dbg_info_file_specOPget_other_data;
extern struct dbg_info* dbg_info_file_specOPequal;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPequal_TRACE
int file_specOPequal_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_specOPequal_own_init = 0;

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

errcode file_specOPequal(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_specOPequal;
    locals.x = x;
    locals.y = y;
        if (file_specOPequal_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPequal_own_init = 1;
    }
    enter_proc(110);

  LINE(111);
    {
    {
    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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPequal_actual;
static Vlist1 vals_file_specOPequal = {0, 1, { {0, 2, "", &bool_ops}}
};
static siglist0 sigs_file_specOPequal = {0, 0};
static Vlist4 locals_file_specOPequal = {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_specOPequal = {0, 0};
Slist0 tformals_file_specOPequal = {0, 0};
Slist0 opformals_file_specOPequal = {0, 0};
dbg_info_file_specOPequal_actual dbg_info_file_specOPequal_data = {0, 12, 
    "file_specOPequal", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPequal, 2, 
    &vals_file_specOPequal, &sigs_file_specOPequal, &locals_file_specOPequal, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPequal = (struct dbg_info*)&dbg_info_file_specOPequal_data;
extern struct dbg_info* dbg_info_file_specOPsimilar;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPsimilar_TRACE
int file_specOPsimilar_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_specOPsimilar_own_init = 0;

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

errcode file_specOPsimilar(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_specOPsimilar;
    locals.x = x;
    locals.y = y;
        if (file_specOPsimilar_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPsimilar_own_init = 1;
    }
    enter_proc(114);

  LINE(115);
    {
    {
    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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPsimilar_actual;
static Vlist1 vals_file_specOPsimilar = {0, 1, { {0, 2, "", &bool_ops}}
};
static siglist0 sigs_file_specOPsimilar = {0, 0};
static Vlist4 locals_file_specOPsimilar = {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_specOPsimilar = {0, 0};
Slist0 tformals_file_specOPsimilar = {0, 0};
Slist0 opformals_file_specOPsimilar = {0, 0};
dbg_info_file_specOPsimilar_actual dbg_info_file_specOPsimilar_data = {0, 12, 
    "file_specOPsimilar", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPsimilar, 2, 
    &vals_file_specOPsimilar, &sigs_file_specOPsimilar, &locals_file_specOPsimilar, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPsimilar = (struct dbg_info*)&dbg_info_file_specOPsimilar_data;
extern struct dbg_info* dbg_info_file_specOPcopy;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPcopy_TRACE
int file_specOPcopy_TRACE;

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

errcode file_specOPcopy(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_specOPcopy;
    locals.x = x;
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
    enter_proc(118);

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

extern struct OPS *file_spec_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;
    Vlist3 *locals;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPcopy_actual;
static Vlist1 vals_file_specOPcopy = {0, 1, { {0, 2, "", &file_spec_ops}}
};
static siglist0 sigs_file_specOPcopy = {0, 0};
static Vlist3 locals_file_specOPcopy = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "x", &file_spec_ops}}
};
static Vlist0 popowns_file_specOPcopy = {0, 0};
Slist0 tformals_file_specOPcopy = {0, 0};
Slist0 opformals_file_specOPcopy = {0, 0};
dbg_info_file_specOPcopy_actual dbg_info_file_specOPcopy_data = {0, 12, 
    "file_specOPcopy", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPcopy, 1, 
    &vals_file_specOPcopy, &sigs_file_specOPcopy, &locals_file_specOPcopy, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPcopy = (struct dbg_info*)&dbg_info_file_specOPcopy_data;
extern struct dbg_info* dbg_info_file_specOPprint;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPprint_TRACE
int file_specOPprint_TRACE;
extern OWN_req pstream_ownreqs;
extern struct OPS *pstream_ops;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_specOPprint_own_init = 0;

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

errcode file_specOPprint(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_specOPprint;
    locals.x = x;
    locals.ps = ps;
        if (file_specOPprint_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPprint_own_init = 1;
    }
    enter_proc(122);

  LINE(123);
    {
    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(124);
    {
    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(125);
        {
        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(126);
    {
    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(127);
    {
    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(128);
        {
        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(129);
        {
        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(131);
    {
    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(132);
        {
        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(133);
        {
        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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPprint_actual;
static Vlist0 vals_file_specOPprint = {0, 0};
static siglist0 sigs_file_specOPprint = {0, 0};
static Vlist4 locals_file_specOPprint = {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_specOPprint = {0, 0};
Slist0 tformals_file_specOPprint = {0, 0};
Slist0 opformals_file_specOPprint = {0, 0};
dbg_info_file_specOPprint_actual dbg_info_file_specOPprint_data = {0, 12, 
    "file_specOPprint", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPprint, 2, 
    &vals_file_specOPprint, &sigs_file_specOPprint, &locals_file_specOPprint, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPprint = (struct dbg_info*)&dbg_info_file_specOPprint_data;
extern struct dbg_info* dbg_info_file_specOPencode;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPencode_TRACE
int file_specOPencode_TRACE;
static int file_specOPencode_own_init = 0;

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

errcode file_specOPencode(fs, ist)
CLUREF fs;
CLUREF ist;
    {
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        errcode err;
        errcode ecode2;
        CLUREF fs;
        CLUREF ist;
        } locals;
    locals.fs.num = UNINIT;
    locals.ist.num = UNINIT;
    locals.DBG_INFO = dbg_info_file_specOPencode;
    locals.fs = fs;
    locals.ist = ist;
        if (file_specOPencode_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPencode_own_init = 1;
    }
    enter_proc(137);

  LINE(138);
    {
    CLUREF T_2_1;
    locals.err = file_specOPunparse(locals.fs, &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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPencode_actual;
static Vlist0 vals_file_specOPencode = {0, 0};
static sig_desc1 sig_file_specOPencode_1 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist1 sigs_file_specOPencode = {0, 1, (sig_desc*)&sig_file_specOPencode_1};
static Vlist4 locals_file_specOPencode = {0, 4,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "fs", &file_spec_ops},  {0, 2, "ist", &istream_ops}}
};
static Vlist0 popowns_file_specOPencode = {0, 0};
Slist0 tformals_file_specOPencode = {0, 0};
Slist0 opformals_file_specOPencode = {0, 0};
dbg_info_file_specOPencode_actual dbg_info_file_specOPencode_data = {0, 12, 
    "file_specOPencode", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPencode, 2, 
    &vals_file_specOPencode, &sigs_file_specOPencode, &locals_file_specOPencode, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPencode = (struct dbg_info*)&dbg_info_file_specOPencode_data;
extern struct dbg_info* dbg_info_file_specOPdecode;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPdecode_TRACE
int file_specOPdecode_TRACE;
extern OWN_req file_spec_ownreqs;
static int file_specOPdecode_own_init = 0;

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

errcode file_specOPdecode(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_specOPdecode;
    locals.ist = ist;
        if (file_specOPdecode_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPdecode_own_init = 1;
    }
    enter_proc(142);

  LINE(144);
    {
    {
    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_specOPparse(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(146);
                {
                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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPdecode_actual;
static Vlist1 vals_file_specOPdecode = {0, 1, { {0, 2, "", &file_spec_ops}}
};
static sig_desc0 sig_file_specOPdecode_1 = {0, 3, "end_of_file", {0, 0
}};
static sig_desc1 sig_file_specOPdecode_2 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist2 sigs_file_specOPdecode = {0, 2, (sig_desc*)&sig_file_specOPdecode_1, (sig_desc*)&sig_file_specOPdecode_2};
static Vlist3 locals_file_specOPdecode = {0, 3,{ {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "ist", &istream_ops}}
};
static Vlist0 popowns_file_specOPdecode = {0, 0};
Slist0 tformals_file_specOPdecode = {0, 0};
Slist0 opformals_file_specOPdecode = {0, 0};
dbg_info_file_specOPdecode_actual dbg_info_file_specOPdecode_data = {0, 12, 
    "file_specOPdecode", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPdecode, 1, 
    &vals_file_specOPdecode, &sigs_file_specOPdecode, &locals_file_specOPdecode, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPdecode = (struct dbg_info*)&dbg_info_file_specOPdecode_data;
extern struct dbg_info* dbg_info_file_specOP_gcd;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOP_gcd_TRACE
int file_specOP_gcd_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_specOP_gcd_own_init = 0;

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

errcode file_specOP_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_specOP_gcd;
    locals.x = x;
    locals.tab = tab;
        if (file_specOP_gcd_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOP_gcd_own_init = 1;
    }
    enter_proc(149);

  LINE(150);
    {
    {
    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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOP_gcd_actual;
static Vlist1 vals_file_specOP_gcd = {0, 1, { {0, 2, "", &int_ops}}
};
static siglist0 sigs_file_specOP_gcd = {0, 0};
static Vlist4 locals_file_specOP_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_specOP_gcd = {0, 0};
Slist0 tformals_file_specOP_gcd = {0, 0};
Slist0 opformals_file_specOP_gcd = {0, 0};
dbg_info_file_specOP_gcd_actual dbg_info_file_specOP_gcd_data = {0, 12, 
    "file_specOP_gcd", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOP_gcd, 2, 
    &vals_file_specOP_gcd, &sigs_file_specOP_gcd, &locals_file_specOP_gcd, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOP_gcd = (struct dbg_info*)&dbg_info_file_specOP_gcd_data;
extern struct dbg_info* dbg_info_file_specOPdebug_print;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG file_specOPdebug_print_TRACE
int file_specOPdebug_print_TRACE;
struct OPS  *record_dir_name_other_suffix_ops;
static int file_specOPdebug_print_own_init = 0;

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

errcode file_specOPdebug_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_specOPdebug_print;
    locals._rep = _rep;
    locals.ps = ps;
        if (file_specOPdebug_print_own_init == 0) {
        if (file_spec_own_init == 0) {
            locals.err = file_spec_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        file_specOPdebug_print_own_init = 1;
    }
    enter_proc(1);

  LINE(2);
    {
    locals.err = file_specOPprint(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;
    Vlist16 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_file_specOPdebug_print_actual;
static Vlist0 vals_file_specOPdebug_print = {0, 0};
static siglist0 sigs_file_specOPdebug_print = {0, 0};
static Vlist4 locals_file_specOPdebug_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_specOPdebug_print = {0, 0};
Slist0 tformals_file_specOPdebug_print = {0, 0};
Slist0 opformals_file_specOPdebug_print = {0, 0};
dbg_info_file_specOPdebug_print_actual dbg_info_file_specOPdebug_print_data = {0, 12, 
    "file_specOPdebug_print", "/common/pub/dcurtis-temp/pclu/sys/clu/file_spec", 0, 0, (int)file_specOPdebug_print, 2, 
    &vals_file_specOPdebug_print, &sigs_file_specOPdebug_print, &locals_file_specOPdebug_print, &owns_file_spec, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_file_specOPdebug_print = (struct dbg_info*)&dbg_info_file_specOPdebug_print_data;
typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[15];
} file_spec_OPS;

CLU_proc file_spec_oe__gcd = {{0,0,0,0}, file_specOP_gcd, 0};
CLU_proc file_spec_oe_copy = {{0,0,0,0}, file_specOPcopy, 0};
CLU_proc file_spec_oe_create = {{0,0,0,0}, file_specOPcreate, 0};
CLU_proc file_spec_oe_decode = {{0,0,0,0}, file_specOPdecode, 0};
CLU_proc file_spec_oe_encode = {{0,0,0,0}, file_specOPencode, 0};
CLU_proc file_spec_oe_equal = {{0,0,0,0}, file_specOPequal, 0};
CLU_proc file_spec_oe_get_dir = {{0,0,0,0}, file_specOPget_dir, 0};
CLU_proc file_spec_oe_get_name = {{0,0,0,0}, file_specOPget_name, 0};
CLU_proc file_spec_oe_get_other = {{0,0,0,0}, file_specOPget_other, 0};
CLU_proc file_spec_oe_get_suffix = {{0,0,0,0}, file_specOPget_suffix, 0};
CLU_proc file_spec_oe_parse = {{0,0,0,0}, file_specOPparse, 0};
CLU_proc file_spec_oe_print = {{0,0,0,0}, file_specOPprint, 0};
CLU_proc file_spec_oe_similar = {{0,0,0,0}, file_specOPsimilar, 0};
CLU_proc file_spec_oe_unparse = {{0,0,0,0}, file_specOPunparse, 0};
CLU_proc file_spec_oe_debug_print = {{0,0,0,0}, file_specOPdebug_print, 0};

file_spec_OPS file_spec_ops_actual = {15, (OWNPTR)&file_spec_own_init, (OWNPTR)&file_spec_own_init, {
    {&file_spec_oe__gcd, "_gcd"},
    {&file_spec_oe_copy, "copy"},
    {&file_spec_oe_create, "create"},
    {&file_spec_oe_decode, "decode"},
    {&file_spec_oe_encode, "encode"},
    {&file_spec_oe_equal, "equal"},
    {&file_spec_oe_get_dir, "get_dir"},
    {&file_spec_oe_get_name, "get_name"},
    {&file_spec_oe_get_other, "get_other"},
    {&file_spec_oe_get_suffix, "get_suffix"},
    {&file_spec_oe_parse, "parse"},
    {&file_spec_oe_print, "print"},
    {&file_spec_oe_similar, "similar"},
    {&file_spec_oe_unparse, "unparse"},
    {&file_spec_oe_debug_print, "debug_print"}}};

struct OPS *file_spec_ops = (struct OPS *)&file_spec_ops_actual;

/**** END CLUSTER file_spec ****/
