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

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


extern struct dbg_info* dbg_info_all_file_names;
#undef MY_TRACE_FLAG
#define MY_TRACE_FLAG all_file_names_TRACE
int all_file_names_TRACE;
extern struct OPS *int_ops;
static Vlist1 owns_all_file_names = {0, 1,{ {0, 2, "_init", &int_ops}
}
};
extern errcode all_file_names_IB_1();
extern errcode _all_file_names_();

/**** BEGIN ITERATOR all_file_names ****/

errcode all_file_names(fs, proc, user_locals, iecode)
CLUREF fs;
errcode (*proc)();
char **user_locals;
errcode *iecode;
    {
    errcode ecode;
    struct {
        struct dbg_info *DBG_INFO;
        int DBG_LINE;
        char **user_locals;
        errcode (*proc)();
        errcode err;
        errcode ecode2;
        bool body_ctrl_req;
        CLUREF first;
        CLUREF fn;
        CLUREF fs;
        } locals;
    locals.first.num = UNINIT;
    locals.fn.num = UNINIT;
    locals.fs.num = UNINIT;
    locals.DBG_INFO = dbg_info_all_file_names;
    locals.fs = fs;
    locals.proc = proc;
    locals.user_locals = user_locals;
    locals.user_locals = user_locals;
    locals.proc = proc;
    enter_proc(6);

  LINE(8);
    {
        {locals.first.tf = true;
        }
        }

  LINE(9);
    {
        locals.body_ctrl_req = false;
        locals.err = _all_file_names_(locals.fs, all_file_names_IB_1, &locals, &locals.ecode2);
        if (locals.err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
        if (locals.err == ERR_iterbodysignal) {
            *iecode = locals.ecode2; signal(ERR_iterbodysignal);}
        if (locals.err == ERR_iterbodyexit) {
            *iecode = locals.ecode2; signal(ERR_iterbodyexit);}
        if (locals.body_ctrl_req == true) {
            locals.body_ctrl_req = false;
            if (locals.err == ERR_iteriterbodyreturn) {signal(ERR_ok);}
            if (locals.err == ERR_iteriterbodysignal) {signal(locals.ecode2);}
            if (locals.err == ERR_break) locals.err = ERR_ok;
            if (locals.err == ERR_iteriterbodyexit) locals.err = locals.ecode2;
            }
        else {
            if (locals.err == ERR_iteriterbodyreturn) {signal(ERR_iteriterbodyreturn);}
            if (locals.err == ERR_break) {signal(ERR_break);}
            if (locals.err == ERR_iteriterbodysignal) {
                  *iecode = locals.ecode2; signal(ERR_iteriterbodysignal);}
            if (locals.err == ERR_iteriterbodyexit) {
                  *iecode = locals.ecode2; signal(ERR_iteriterbodyexit);}}
        if (locals.err != ERR_ok) goto ex_1;
        }
    goto end_1;
    ex_1:
        if (locals.err == ERR_bad_format) {signal(ERR_bad_format);}
        else if (locals.err == ERR_not_possible) {signal(ERR_not_possible);}
        else {
            goto ex_0;}
    end_1:;

  LINE(13);
    {
    if (locals.first.num == true) {

  LINE(14);
        {
        {signal (ERR_none);}}
        }
        }/* 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 ITERATOR all_file_names ****/

extern struct OPS *file_name_ops;
extern struct OPS *string_ops;
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;
    siglist3 *sigs;
    Vlist8 *locals;
    Vlist1 *owns;
    Vlist0 *ptowns;
    Vlist0 *popowns;
    Slist0 *type_formals;
    Slist0 *op_formals;
    } dbg_info_all_file_names_actual;
static Vlist1 vals_all_file_names = {0, 1, { {0, 2, "", &file_name_ops}}
};
static sig_desc0 sig_all_file_names_1 = {0, 3, "bad_format", {0, 0
}};
static sig_desc0 sig_all_file_names_2 = {0, 3, "none", {0, 0
}};
static sig_desc1 sig_all_file_names_3 = {0, 4, "not_possible", {0, 1
, { {0, 2, "", &string_ops}}}};
static siglist3 sigs_all_file_names = {0, 3, (sig_desc*)&sig_all_file_names_1, (sig_desc*)&sig_all_file_names_2, (sig_desc*)&sig_all_file_names_3};
static Vlist8 locals_all_file_names = {0, 8,{ {0, 2, "user_locals", &int_ops},  {0, 2, "proc", &int_ops},  {0, 2, "err", &int_ops},  {0, 2, "ecode2", &int_ops},  {0, 2, "body_ctrl_req", &int_ops},  {0, 2, "first", &bool_ops},  {0, 2, "fn", &file_name_ops},  {0, 2, "fs", &string_ops}}
};
static Vlist0 popowns_all_file_names = {0, 0};
Slist0 tformals_all_file_names = {0, 0};
Slist0 opformals_all_file_names = {0, 0};
dbg_info_all_file_names_actual dbg_info_all_file_names_data = {0, 12, 
    "all_file_names", "/common/pub/dcurtis-temp/pclu/lib/clu/all_file_names.clu", 1, 0, (int)all_file_names, 1, 
    &vals_all_file_names, &sigs_all_file_names, &locals_all_file_names, &owns_all_file_names, &NO_VALS, &NO_VALS, &NO_PARMS, &NO_PARMS};
    struct dbg_info *dbg_info_all_file_names = (struct dbg_info*)&dbg_info_all_file_names_data;

/**** BEGIN ITERATOR BODIES for all_file_names ****/

errcode all_file_names_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    struct dbg_info *DBG_INFO;
    int DBG_LINE;
    char **user_locals;
    errcode (*proc)();
    errcode err;
    errcode ecode2;
    bool body_ctrl_req;
    CLUREF first;
    CLUREF fn;
    CLUREF fs;
    } *locals;
{
    locals->fn.num = iv_1.num;
    enter_iter_body_proc(10);

  FB_LINE(10);
    {
    locals->first.tf = false;
    }

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

/**** END ITERATOR BODIES for all_file_names ****/

