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

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

extern errcode strip_blanks();
extern errcode stringOPfetch();
extern errcode intOPgt();
extern errcode stringOPindexc();
extern errcode intOPequal();
extern errcode intOPparse();
extern errcode oneofOPmake_4();
extern errcode oneofOPmake_3();
extern errcode realOPparse();
extern errcode oneofOPmake_5();
extern errcode charOPequal();
extern errcode boolOPnot();
extern errcode oneofOPmake_2();
extern errcode stringOPsubstr();
extern errcode i_oparse();
extern errcode charOPi2c();
extern errcode intOPsub();
extern errcode stringOPsize();
extern errcode oneofOPmake_6();
extern errcode charOPge();
extern errcode charOPle();
extern errcode stringOPrest();
extern errcode intOPadd();
extern errcode intOPlt();
extern errcode sequenceOPnew();
extern errcode dexpr_idn();
extern errcode sequenceOPaddh();
extern errcode dparse();
extern errcode sequenceOPfill();
extern errcode _cvt();
extern errcode dparg();
extern errcode string_lindexs();
extern errcode split_tlist();
extern errcode stringOPequal();
extern errcode arrayOPelements();
extern errcode dpfspec();
extern errcode dptype();
extern errcode stringOPconcat();
extern errcode stringOPindexs();
extern errcode arrayOPfetch();
extern errcode dpexprlist();
extern errcode oneofOPmake_1();
extern errcode dpfspeclist();
extern errcode dpfieldexpr();
extern errcode oneofOPmake_13();
extern errcode dpfieldexprlist();
extern errcode oneofOPmake_10();
extern errcode oneofOPmake_8();
CLUREF STR__053_055_0560123456789;
CLUREF STR_0123456789;
CLUREF STR_;
CLUREF STR__135;
CLUREF STR_record;
CLUREF STR_oneof;
CLUREF STR_struct;
CLUREF STR_variant;
CLUREF STR__044_133;
CLUREF STR__044_173;
static int dparse_own_init = 0;

/**** BEGIN PROCEDURE dparse ****/

errcode dparse(args, ret_1)
CLUREF args;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF first;
    CLUREF d;
    CLUREF num;
    CLUREF c;
    CLUREF ostr;
    CLUREF onum;
    CLUREF str;
    CLUREF last;
    CLUREF sz;
    CLUREF col;
    CLUREF eq;
    CLUREF rhs;
    CLUREF len;
    CLUREF lhs;
    CLUREF l;
    CLUREF com;
    CLUREF r;
    CLUREF lparen;
    CLUREF op_name;
    CLUREF a;
    CLUREF arg;
    CLUREF loc;
    CLUREF tname;
    CLUREF tparms;
    CLUREF oparms;
    CLUREF parms;
    CLUREF plist;
    CLUREF each_t;
    CLUREF typ;
    CLUREF vals;
    CLUREF parm;
    CLUREF strt;
    CLUREF found;
    CLUREF temp;
    CLUREF dvals;
    CLUREF fspecs;
    CLUREF tg;
    CLUREF dval;
    CLUREF f;
    CLUREF t;
        if (dparse_own_init == 0) {
        stringOPcons("+-.0123456789", CLU_1, CLU_13, &STR__053_055_0560123456789);
        stringOPcons("0123456789", CLU_1, CLU_10, &STR_0123456789);
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("]", CLU_1, CLU_1, &STR__135);
        stringOPcons("record", CLU_1, CLU_6, &STR_record);
        stringOPcons("oneof", CLU_1, CLU_5, &STR_oneof);
        stringOPcons("struct", CLU_1, CLU_6, &STR_struct);
        stringOPcons("variant", CLU_1, CLU_7, &STR_variant);
        stringOPcons("$[", CLU_1, CLU_2, &STR__044_133);
        stringOPcons("${", CLU_1, CLU_2, &STR__044_173);
        dparse_own_init = 1;
    }
    enter_proc(4);

  LINE(5);
    {
    CLUREF T_1_1;
    err = strip_blanks(args, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    args.num = T_1_1.num;
    }

  LINE(7);
    {
        {CLUREF T_1_1;
        err = stringOPfetch(args, CLU_1, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        first.num = T_1_1.num;
        }
        }

  LINE(9);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = stringOPindexc(first, STR__053_055_0560123456789, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    T_1_2.num = (T_1_1.num > 0)? true : false;
    if (T_1_2.num == true) {

  LINE(12);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.ch = '.';
        err = stringOPindexc(T_2_1, args, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        T_2_3.num = (T_2_2.num == 0)? true : false;
        if (T_2_3.num == true) {

  LINE(14);
            {
                {CLUREF T_3_1;
                err = intOPparse(args, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                num.num = T_3_1.num;
                }
                }

  LINE(15);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CellAlloc(3, num.num, T_3_1);
            CellAlloc(4, T_3_1.num, T_3_2);
            d.num = T_3_2.num;
            }

  LINE(16);
            {
            {
            ret_1->num = d.num;
            }
            {signal (ERR_ok);}}
            }
        else {

  LINE(18);
            {
                {CLUREF T_3_1;
                err = realOPparse(args, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                num.num = T_3_1.num;
                }
                }

  LINE(19);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CellAlloc(5, num.num, T_3_1);
            CellAlloc(4, T_3_1.num, T_3_2);
            d.num = T_3_2.num;
            }

  LINE(20);
            {
            {
            ret_1->num = d.num;
            }
            {signal (ERR_ok);}}
            }}/* end if */
        }
    else {
    CLUREF T_1_3;
    CLUREF T_1_4;
    T_1_3.ch = '\'';
    T_1_4.num = (first.ch == T_1_3.ch)? true : false;
    if (T_1_4.num == true) {

  LINE(26);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        err = stringOPfetch(args, CLU_2, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        T_2_2.ch = '\\';
        T_2_3.num = (T_2_1.ch == T_2_2.ch)? true : false;
        T_2_4.num = T_2_3.num ^ 1;
        if (T_2_4.num == true) {

  LINE(28);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            err = stringOPfetch(args, CLU_2, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            CellAlloc(2, T_3_1.num, T_3_2);
            CellAlloc(4, T_3_2.num, T_3_3);
            d.num = T_3_3.num;
            }
            }
        else {

  LINE(30);
            {
                {CLUREF T_3_1;
                err = stringOPfetch(args, CLU_3, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                c.num = T_3_1.num;
                }
                }

  LINE(31);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.ch = '\\';
            T_3_2.num = (c.ch == T_3_1.ch)? true : false;
            if (T_3_2.num == true) {

  LINE(32);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                T_4_1.ch = '\\';
                CellAlloc(2, T_4_1.num, T_4_2);
                CellAlloc(4, T_4_2.num, T_4_3);
                d.num = T_4_3.num;
                }
                }
            else {
            CLUREF T_3_3;
            CLUREF T_3_4;
            T_3_3.ch = '\'';
            T_3_4.num = (c.ch == T_3_3.ch)? true : false;
            if (T_3_4.num == true) {

  LINE(34);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                T_4_1.ch = '\'';
                CellAlloc(2, T_4_1.num, T_4_2);
                CellAlloc(4, T_4_2.num, T_4_3);
                d.num = T_4_3.num;
                }
                }
            else {
            CLUREF T_3_5;
            CLUREF T_3_6;
            T_3_5.ch = '\"';
            T_3_6.num = (c.ch == T_3_5.ch)? true : false;
            if (T_3_6.num == true) {

  LINE(36);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                T_4_1.ch = '\"';
                CellAlloc(2, T_4_1.num, T_4_2);
                CellAlloc(4, T_4_2.num, T_4_3);
                d.num = T_4_3.num;
                }
                }
            else {
            CLUREF T_3_7;
            CLUREF T_3_8;
            T_3_7.ch = 'n';
            T_3_8.num = (c.ch == T_3_7.ch)? true : false;
            if (T_3_8.num == true) {

  LINE(38);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                T_4_1.ch = '\n';
                CellAlloc(2, T_4_1.num, T_4_2);
                CellAlloc(4, T_4_2.num, T_4_3);
                d.num = T_4_3.num;
                }
                }
            else {
            CLUREF T_3_9;
            CLUREF T_3_10;
            T_3_9.ch = 't';
            T_3_10.num = (c.ch == T_3_9.ch)? true : false;
            if (T_3_10.num == true) {

  LINE(40);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                T_4_1.ch = '\t';
                CellAlloc(2, T_4_1.num, T_4_2);
                CellAlloc(4, T_4_2.num, T_4_3);
                d.num = T_4_3.num;
                }
                }
            else {
            CLUREF T_3_11;
            CLUREF T_3_12;
            T_3_11.ch = 'b';
            T_3_12.num = (c.ch == T_3_11.ch)? true : false;
            if (T_3_12.num == true) {

  LINE(42);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                T_4_1.ch = '\b';
                CellAlloc(2, T_4_1.num, T_4_2);
                CellAlloc(4, T_4_2.num, T_4_3);
                d.num = T_4_3.num;
                }
                }
            else {
            CLUREF T_3_13;
            CLUREF T_3_14;
            T_3_13.ch = 'p';
            T_3_14.num = (c.ch == T_3_13.ch)? true : false;
            if (T_3_14.num == true) {

  LINE(44);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                T_4_1.ch = '\f';
                CellAlloc(2, T_4_1.num, T_4_2);
                CellAlloc(4, T_4_2.num, T_4_3);
                d.num = T_4_3.num;
                }
                }
            else {
            CLUREF T_3_15;
            CLUREF T_3_16;
            T_3_15.ch = 'r';
            T_3_16.num = (c.ch == T_3_15.ch)? true : false;
            if (T_3_16.num == true) {

  LINE(46);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                T_4_1.ch = '\r';
                CellAlloc(2, T_4_1.num, T_4_2);
                CellAlloc(4, T_4_2.num, T_4_3);
                d.num = T_4_3.num;
                }
                }
            else {
            CLUREF T_3_17;
            CLUREF T_3_18;
            T_3_17.ch = 'v';
            T_3_18.num = (c.ch == T_3_17.ch)? true : false;
            if (T_3_18.num == true) {

  LINE(48);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                T_4_1.ch = '\v';
                CellAlloc(2, T_4_1.num, T_4_2);
                CellAlloc(4, T_4_2.num, T_4_3);
                d.num = T_4_3.num;
                }
                }
            else {
            CLUREF T_3_19;
            CLUREF T_3_20;
            CLUREF T_3_21;
            err = stringOPindexc(c, STR_0123456789, &T_3_19);
            if (err != ERR_ok) goto ex_0;
            T_3_20.num = (T_3_19.num == 0)? true : false;
            T_3_21.num = T_3_20.num ^ 1;
            if (T_3_21.num == true) {

  LINE(50);
                {
                    {CLUREF T_4_1;
                    err = stringOPsubstr(args, CLU_3, CLU_3, &T_4_1);
                    if (err != ERR_ok) goto ex_0;
                    ostr.num = T_4_1.num;
                    }
                    }

  LINE(51);
                {
                    {CLUREF T_4_1;
                    err = i_oparse(ostr, &T_4_1);
                    if (err != ERR_ok) goto ex_0;
                    onum.num = T_4_1.num;
                    }
                    }

  LINE(52);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                err = charOPi2c(onum, &T_4_1);
                if (err != ERR_ok) goto ex_0;
                CellAlloc(2, T_4_1.num, T_4_2);
                CellAlloc(4, T_4_2.num, T_4_3);
                d.num = T_4_3.num;
                }
                }
                }}}}}}}}}}/* end if */
            }}/* end if */

  LINE(55);
        {
        {
        ret_1->num = d.num;
        }
        {signal (ERR_ok);}}
        }
    else {
    CLUREF T_1_5;
    CLUREF T_1_6;
    T_1_5.ch = '\"';
    T_1_6.num = (first.ch == T_1_5.ch)? true : false;
    if (T_1_6.num == true) {

  LINE(59);
        {
            {CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            err = stringOPsize(args, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            T_2_2.num = T_2_1.num - 1;
             if ((T_2_2.num >= 0 && T_2_1.num < 0 && (-1) < 0) || 
                 (T_2_2.num <= 0 && T_2_1.num > 0 && (-1) > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            err = stringOPsubstr(args, CLU_2, T_2_2, &T_2_3);
            if (err != ERR_ok) goto ex_0;
            str.num = T_2_3.num;
            }
            }

  LINE(60);
        {
            {CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.ch = '\"';
            err = stringOPindexc(T_2_1, str, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            last.num = T_2_2.num;
            }
            }

  LINE(61);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = last.num - 1;
         if ((T_2_1.num >= 0 && last.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && last.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPsubstr(str, CLU_1, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        str.num = T_2_2.num;
        }

  LINE(62);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CellAlloc(6, str.num, T_2_1);
        CellAlloc(4, T_2_1.num, T_2_2);
        d.num = T_2_2.num;
        }

  LINE(63);
        {
        {
        ret_1->num = d.num;
        }
        {signal (ERR_ok);}}
        }
    else {
    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;
    T_1_10.ch = 'a';
    err = charOPge(first, T_1_10, &T_1_11);
    if (err != ERR_ok) goto ex_0;
    T_1_9.num = T_1_11.num;
    if (T_1_11.num) {
        T_1_12.ch = 'z';
        err = charOPle(first, T_1_12, &T_1_13);
        if (err != ERR_ok) goto ex_0;
        T_1_9.num = T_1_13.num;
    }
    T_1_8.num = T_1_9.num;
    if (!T_1_9.num) {
        T_1_14.ch = '_';
        T_1_15.num = (first.ch == T_1_14.ch)? true : false;
        T_1_8.num = T_1_15.num;
    }
    T_1_7.num = T_1_8.num;
    if (!T_1_8.num) {
        T_1_17.ch = 'A';
        err = charOPge(first, T_1_17, &T_1_18);
        if (err != ERR_ok) goto ex_0;
        T_1_16.num = T_1_18.num;
        if (T_1_18.num) {
            T_1_19.ch = 'Z';
            err = charOPle(first, T_1_19, &T_1_20);
            if (err != ERR_ok) goto ex_0;
            T_1_16.num = T_1_20.num;
        }
        T_1_7.num = T_1_16.num;
    }
    if (T_1_7.num == true) {

  LINE(68);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        T_2_1.ch = '=';
        err = stringOPindexc(T_2_1, args, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        T_2_3.num = (T_2_2.num > 0)? true : false;
        if (T_2_3.num == true) {

  LINE(70);
            {
                {CLUREF T_3_1;
                err = stringOPsize(args, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                sz.num = T_3_1.num;
                }
                }

  LINE(71);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.ch = ':';
                err = stringOPindexc(T_3_1, args, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                col.num = T_3_2.num;
                }
                }

  LINE(72);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.ch = '=';
                err = stringOPindexc(T_3_1, args, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                eq.num = T_3_2.num;
                }
                }

  LINE(73);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                T_3_1.num = eq.num + 1;
                 if ((T_3_1.num > 0 && eq.num < 0 && 1 < 0) || 
                     (T_3_1.num < 0 && eq.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPrest(args, T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = strip_blanks(T_3_2, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                rhs.num = T_3_3.num;
                }
                }

  LINE(74);
            {
                {len.num = eq.num;
                }
                }

  LINE(75);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            T_3_2.num = (col.num > 0)? true : false;
            T_3_1.num = T_3_2.num;
            if (T_3_2.num) {
                T_3_3.num = (col.num < len.num)? true : false;
                T_3_1.num = T_3_3.num;
            }
            if (T_3_1.num == true) {
                {
                len.num = col.num;
                }
                }
                }/* end if */

  LINE(76);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                T_3_1.num = len.num - 1;
                 if ((T_3_1.num >= 0 && len.num < 0 && (-1) < 0) || 
                     (T_3_1.num <= 0 && len.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPsubstr(args, CLU_1, T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = strip_blanks(T_3_2, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                lhs.num = T_3_3.num;
                }
                }

  LINE(78);
            {
                {CLUREF T_3_1;
                err = sequenceOPnew(&T_3_1);
                if (err != ERR_ok) goto ex_0;
                l.num = T_3_1.num;
                }
                }

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

  LINE(80);
                {
                    {CLUREF T_4_1;
                    CLUREF T_4_2;
                    T_4_1.ch = ',';
                    err = stringOPindexc(T_4_1, lhs, &T_4_2);
                    if (err != ERR_ok) goto ex_0;
                    com.num = T_4_2.num;
                    }
                    }

  LINE(81);
                {
                CLUREF T_4_1;
                T_4_1.num = (com.num == 0)? true : false;
                if (T_4_1.num == true) {

  LINE(83);
                    {
                    CLUREF T_5_1;
                    CLUREF T_5_2;
                    err = strip_blanks(lhs, &T_5_1);
                    if (err != ERR_ok) goto ex_0;
                    err = dexpr_idn(T_5_1, &T_5_2);
                    if (err != ERR_ok) goto ex_0;
                    d.num = T_5_2.num;
                    }

  LINE(84);
                    {
                    CLUREF T_5_1;
                    err = sequenceOPaddh(l, d, &T_5_1);
                    if (err != ERR_ok) goto ex_0;
                    l.num = T_5_1.num;
                    }

  LINE(85);
                    goto end_while_1;
                    }
                else {

  LINE(87);
                    {
                    CLUREF T_5_1;
                    CLUREF T_5_2;
                    CLUREF T_5_3;
                    CLUREF T_5_4;
                    T_5_1.num = com.num - 1;
                     if ((T_5_1.num >= 0 && com.num < 0 && (-1) < 0) || 
                         (T_5_1.num <= 0 && com.num > 0 && (-1) > 0)) {
                        err = ERR_overflow;
                        goto ex_0;}
                    err = stringOPsubstr(lhs, CLU_1, T_5_1, &T_5_2);
                    if (err != ERR_ok) goto ex_0;
                    err = strip_blanks(T_5_2, &T_5_3);
                    if (err != ERR_ok) goto ex_0;
                    err = dexpr_idn(T_5_3, &T_5_4);
                    if (err != ERR_ok) goto ex_0;
                    d.num = T_5_4.num;
                    }

  LINE(89);
                    {
                    CLUREF T_5_1;
                    CLUREF T_5_2;
                    CLUREF T_5_3;
                    T_5_1.num = com.num + 1;
                     if ((T_5_1.num > 0 && com.num < 0 && 1 < 0) || 
                         (T_5_1.num < 0 && com.num > 0 && 1 > 0)) {
                        err = ERR_overflow;
                        goto ex_0;}
                    err = stringOPrest(lhs, T_5_1, &T_5_2);
                    if (err != ERR_ok) goto ex_0;
                    err = strip_blanks(T_5_2, &T_5_3);
                    if (err != ERR_ok) goto ex_0;
                    lhs.num = T_5_3.num;
                    }

  LINE(90);
                    {
                    CLUREF T_5_1;
                    err = sequenceOPaddh(l, d, &T_5_1);
                    if (err != ERR_ok) goto ex_0;
                    l.num = T_5_1.num;
                    }
                    }}/* end if */
                }
                end_while_1:;

  LINE(94);
            {
            CLUREF T_3_1;
            err = dparse(rhs, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            d.num = T_3_1.num;
            }

  LINE(95);
            {
                {CLUREF T_3_1;
                err = sequenceOPfill(CLU_1, d, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                r.num = T_3_1.num;
                }
                }

  LINE(97);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            CLUREF T_3_4;
            RecordAlloc(2, T_3_1);
            T_3_2.num = l.num;
            T_3_1.vec->data[0]  = T_3_2.num;
            T_3_3.num = r.num;
            T_3_1.vec->data[1]  = T_3_3.num;
            CellAlloc(3, T_3_1.num, T_3_4);
            d.num = T_3_4.num;
            }

  LINE(98);
            {
            {
            ret_1->num = d.num;
            }
            {signal (ERR_ok);}}
            }
        else {
        CLUREF T_2_4;
        CLUREF T_2_5;
        CLUREF T_2_6;
        T_2_4.ch = '(';
        err = stringOPindexc(T_2_4, args, &T_2_5);
        if (err != ERR_ok) goto ex_0;
        T_2_6.num = (T_2_5.num > 0)? true : false;
        if (T_2_6.num == true) {

  LINE(102);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.ch = '(';
                err = stringOPindexc(T_3_1, args, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                lparen.num = T_3_2.num;
                }
                }

  LINE(103);
            {
                {CLUREF T_3_1;
                T_3_1.num = lparen.num - 1;
                 if ((T_3_1.num >= 0 && lparen.num < 0 && (-1) < 0) || 
                     (T_3_1.num <= 0 && lparen.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                len.num = T_3_1.num;
                }
                }

  LINE(104);
            {
                {CLUREF T_3_1;
                err = stringOPsubstr(args, CLU_1, len, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                op_name.num = T_3_1.num;
                }
                }

  LINE(105);
            {
            CLUREF T_3_1;
            err = strip_blanks(op_name, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            op_name.num = T_3_1.num;
            }

  LINE(106);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.num = lparen.num + 1;
             if ((T_3_1.num > 0 && lparen.num < 0 && 1 < 0) || 
                 (T_3_1.num < 0 && lparen.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            err = stringOPrest(args, T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            args.num = T_3_2.num;
            }

  LINE(107);
            {
            CLUREF T_3_1;
            err = strip_blanks(args, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            args.num = T_3_1.num;
            }

  LINE(108);
            {
                {CLUREF T_3_1;
                err = sequenceOPnew(&T_3_1);
                if (err != ERR_ok) goto ex_0;
                a.num = T_3_1.num;
                }
                }

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

  LINE(123);
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                err = dparg(args, &T_5_1, &T_5_2);
                if (err != ERR_ok) goto ex_1;
                arg.num = T_5_1.num;
                args.num = T_5_2.num;
                }

  LINE(124);
                {
                CLUREF T_5_1;
                err = dparse(arg, &T_5_1);
                if (err != ERR_ok) goto ex_1;
                d.num = T_5_1.num;
                }

  LINE(125);
                {
                CLUREF T_5_1;
                err = sequenceOPaddh(a, d, &T_5_1);
                if (err != ERR_ok) goto ex_1;
                a.num = T_5_1.num;
                }
                }
                end_while_2:;
                goto end_1;
                ex_1:
                    if ((err == ERR_none)) {
                    }
                    else {
                        goto ex_0;
                    }
                end_1:;

  LINE(130);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.ch = '$';
                err = stringOPindexc(T_3_1, op_name, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                loc.num = T_3_2.num;
                }
                }

  LINE(131);
            {
                {tname = STR_;
                }
                }

  LINE(132);
            {
                {CLUREF T_3_1;
                err = sequenceOPnew(&T_3_1);
                if (err != ERR_ok) goto ex_0;
                tparms.num = T_3_1.num;
                }
                }

  LINE(133);
            {
                {CLUREF T_3_1;
                err = sequenceOPnew(&T_3_1);
                if (err != ERR_ok) goto ex_0;
                oparms.num = T_3_1.num;
                }
                }

  LINE(134);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.num = (loc.num == 0)? true : false;
            T_3_2.num = T_3_1.num ^ 1;
            if (T_3_2.num == true) {

  LINE(136);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                T_4_1.num = loc.num - 1;
                 if ((T_4_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
                     (T_4_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPsubstr(op_name, CLU_1, T_4_1, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                tname.num = T_4_2.num;
                }

  LINE(137);
                {
                CLUREF T_4_1;
                err = strip_blanks(tname, &T_4_1);
                if (err != ERR_ok) goto ex_0;
                tname.num = T_4_1.num;
                }

  LINE(138);
                {
                CLUREF T_4_1;
                err = stringOPrest(op_name, loc, &T_4_1);
                if (err != ERR_ok) goto ex_0;
                op_name.num = T_4_1.num;
                }

  LINE(139);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                T_4_1.ch = '[';
                err = stringOPindexc(T_4_1, tname, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                loc.num = T_4_2.num;
                }

  LINE(140);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                T_4_1.num = (loc.num == 0)? true : false;
                T_4_2.num = T_4_1.num ^ 1;
                if (T_4_2.num == true) {

  LINE(142);
                    {
                        {CLUREF T_5_1;
                        err = stringOPrest(tname, loc, &T_5_1);
                        if (err != ERR_ok) goto ex_0;
                        parms.num = T_5_1.num;
                        }
                        }

  LINE(143);
                    {
                    CLUREF T_5_1;
                    CLUREF T_5_2;
                    T_5_1.num = loc.num - 1;
                     if ((T_5_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
                         (T_5_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
                        err = ERR_overflow;
                        goto ex_0;}
                    err = stringOPsubstr(tname, CLU_1, T_5_1, &T_5_2);
                    if (err != ERR_ok) goto ex_0;
                    tname.num = T_5_2.num;
                    }

  LINE(144);
                    {
                    CLUREF T_5_1;
                    err = strip_blanks(tname, &T_5_1);
                    if (err != ERR_ok) goto ex_0;
                    tname.num = T_5_1.num;
                    }

  LINE(145);
                    {
                    CLUREF T_5_1;
                    err = string_lindexs(STR__135, parms, &T_5_1);
                    if (err != ERR_ok) goto ex_0;
                    loc.num = T_5_1.num;
                    }

  LINE(146);
                    {
                    CLUREF T_5_1;
                    err = stringOPsubstr(parms, CLU_1, loc, &T_5_1);
                    if (err != ERR_ok) goto ex_0;
                    parms.num = T_5_1.num;
                    }

  LINE(147);
                    {
                    CLUREF T_5_1;
                    err = strip_blanks(parms, &T_5_1);
                    if (err != ERR_ok) goto ex_0;
                    parms.num = T_5_1.num;
                    }

  LINE(148);
                    {
                        {CLUREF T_5_1;
                        err = split_tlist(parms, &T_5_1);
                        if (err != ERR_ok) goto ex_0;
                        plist.num = T_5_1.num;
                        }
                        }

  LINE(149);
                    {
                    CLUREF T_5_1;
                    CLUREF T_5_2;
                    CLUREF T_5_3;
                    CLUREF T_5_4;
                    CLUREF T_5_5;
                    CLUREF T_5_6;
                    CLUREF T_5_7;
                    T_5_4.num = ((tname.str->size != STR_record.str->size)? false :
                        !(bcmp(tname.str->data, STR_record.str->data, tname.str->size)));
                    T_5_3.num = T_5_4.num;
                    if (!T_5_4.num) {
                        T_5_5.num = ((tname.str->size != STR_oneof.str->size)? false :
                            !(bcmp(tname.str->data, STR_oneof.str->data, tname.str->size)));
                        T_5_3.num = T_5_5.num;
                    }
                    T_5_2.num = T_5_3.num;
                    if (!T_5_3.num) {
                        T_5_6.num = ((tname.str->size != STR_struct.str->size)? false :
                            !(bcmp(tname.str->data, STR_struct.str->data, tname.str->size)));
                        T_5_2.num = T_5_6.num;
                    }
                    T_5_1.num = T_5_2.num;
                    if (!T_5_2.num) {
                        T_5_7.num = ((tname.str->size != STR_variant.str->size)? false :
                            !(bcmp(tname.str->data, STR_variant.str->data, tname.str->size)));
                        T_5_1.num = T_5_7.num;
                    }
                    if (T_5_1.num == true) {

  LINE(151);
                        {
                        CLUREF T_6_1;
                        CLUREF T_6_2;
                        CLUREF T_6_3;
                            T_6_2.num = plist.array->ext_high; 
                            T_6_3 = plist;
                            for (T_6_1.num = plist.array->ext_low; T_6_1.num <= T_6_2.num; T_6_1.num++) {
                                if (T_6_1.num > T_6_3.array->ext_high || T_6_1.num < T_6_3.array->ext_low) {
                                    err = ERR_failure;
                                    elist[0].str = array_bounds_exception_STRING;
                                    goto ex_0;}
                                each_t.num = T_6_3.array->store->data[T_6_1.num - T_6_3.array->ext_low + T_6_3.array->int_low];

  LINE(152);
                                {
                                CLUREF T_7_1;
                                CLUREF T_7_2;
                                err = dpfspec(each_t, &T_7_1);
                                if (err != ERR_ok) goto ex_0;
                                err = sequenceOPaddh(tparms, T_7_1, &T_7_2);
                                if (err != ERR_ok) goto ex_0;
                                tparms.num = T_7_2.num;
                                }
                            }
                        }
                        end_inline_for_1:;
                        }
                    else {

  LINE(156);
                        {
                        CLUREF T_6_1;
                        CLUREF T_6_2;
                        CLUREF T_6_3;
                            T_6_2.num = plist.array->ext_high; 
                            T_6_3 = plist;
                            for (T_6_1.num = plist.array->ext_low; T_6_1.num <= T_6_2.num; T_6_1.num++) {
                                if (T_6_1.num > T_6_3.array->ext_high || T_6_1.num < T_6_3.array->ext_low) {
                                    err = ERR_failure;
                                    elist[0].str = array_bounds_exception_STRING;
                                    goto ex_0;}
                                each_t.num = T_6_3.array->store->data[T_6_1.num - T_6_3.array->ext_low + T_6_3.array->int_low];

  LINE(157);
                                {
                                CLUREF T_7_1;
                                CLUREF T_7_2;
                                err = dptype(each_t, &T_7_1);
                                if (err != ERR_ok) goto ex_0;
                                err = sequenceOPaddh(tparms, T_7_1, &T_7_2);
                                if (err != ERR_ok) goto ex_0;
                                tparms.num = T_7_2.num;
                                }
                            }
                        }
                        end_inline_for_2:;
                        }}/* end if */
                    }
                    }/* end if */
                }
                }/* end if */

  LINE(163);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.ch = '[';
            err = stringOPindexc(T_3_1, op_name, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            loc.num = T_3_2.num;
            }

  LINE(164);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.num = (loc.num == 0)? true : false;
            T_3_2.num = T_3_1.num ^ 1;
            if (T_3_2.num == true) {

  LINE(166);
                {
                    {CLUREF T_4_1;
                    err = stringOPrest(op_name, loc, &T_4_1);
                    if (err != ERR_ok) goto ex_0;
                    parms.num = T_4_1.num;
                    }
                    }

  LINE(167);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                T_4_1.num = loc.num - 1;
                 if ((T_4_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
                     (T_4_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPsubstr(op_name, CLU_1, T_4_1, &T_4_2);
                if (err != ERR_ok) goto ex_0;
                op_name.num = T_4_2.num;
                }

  LINE(168);
                {
                CLUREF T_4_1;
                err = strip_blanks(op_name, &T_4_1);
                if (err != ERR_ok) goto ex_0;
                op_name.num = T_4_1.num;
                }

  LINE(169);
                {
                CLUREF T_4_1;
                err = string_lindexs(STR__135, parms, &T_4_1);
                if (err != ERR_ok) goto ex_0;
                loc.num = T_4_1.num;
                }

  LINE(170);
                {
                CLUREF T_4_1;
                err = stringOPsubstr(parms, CLU_1, loc, &T_4_1);
                if (err != ERR_ok) goto ex_0;
                parms.num = T_4_1.num;
                }

  LINE(171);
                {
                CLUREF T_4_1;
                err = strip_blanks(parms, &T_4_1);
                if (err != ERR_ok) goto ex_0;
                parms.num = T_4_1.num;
                }

  LINE(172);
                {
                    {CLUREF T_4_1;
                    err = split_tlist(parms, &T_4_1);
                    if (err != ERR_ok) goto ex_0;
                    plist.num = T_4_1.num;
                    }
                    }

  LINE(173);
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                    T_4_2.num = plist.array->ext_high; 
                    T_4_3 = plist;
                    for (T_4_1.num = plist.array->ext_low; T_4_1.num <= T_4_2.num; T_4_1.num++) {
                        if (T_4_1.num > T_4_3.array->ext_high || T_4_1.num < T_4_3.array->ext_low) {
                            err = ERR_failure;
                            elist[0].str = array_bounds_exception_STRING;
                            goto ex_0;}
                        each_t.num = T_4_3.array->store->data[T_4_1.num - T_4_3.array->ext_low + T_4_3.array->int_low];

  LINE(174);
                        {
                        CLUREF T_5_1;
                        CLUREF T_5_2;
                        err = dptype(each_t, &T_5_1);
                        if (err != ERR_ok) goto ex_0;
                        err = sequenceOPaddh(oparms, T_5_1, &T_5_2);
                        if (err != ERR_ok) goto ex_0;
                        oparms.num = T_5_2.num;
                        }
                    }
                }
                end_inline_for_3:;
                }
                }/* end if */

  LINE(177);
            {
            CLUREF T_3_1;
            err = stringOPconcat(tname, op_name, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            op_name.num = T_3_1.num;
            }

  LINE(178);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            CLUREF T_3_4;
            CLUREF T_3_5;
            RecordAlloc(4, T_3_1);
            T_3_1.vec->data[1]  = op_name.num;
            T_3_2.num = tparms.num;
            T_3_1.vec->data[3]  = T_3_2.num;
            T_3_3.num = oparms.num;
            T_3_1.vec->data[2]  = T_3_3.num;
            T_3_4.num = a.num;
            T_3_1.vec->data[0]  = T_3_4.num;
            CellAlloc(2, T_3_1.num, T_3_5);
            d.num = T_3_5.num;
            }

  LINE(180);
            {
            {
            ret_1->num = d.num;
            }
            {signal (ERR_ok);}}
            }
        else {
        CLUREF T_2_7;
        CLUREF T_2_8;
        err = stringOPindexs(STR__044_133, args, &T_2_7);
        if (err != ERR_ok) goto ex_0;
        T_2_8.num = (T_2_7.num > 0)? true : false;
        if (T_2_8.num == true) {

  LINE(185);
            {
                {CLUREF T_3_1;
                err = stringOPindexs(STR__044_133, args, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                loc.num = T_3_1.num;
                }
                }

  LINE(186);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.num = loc.num - 1;
                 if ((T_3_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
                     (T_3_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPsubstr(args, CLU_1, T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                typ.num = T_3_2.num;
                }
                }

  LINE(187);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.num = loc.num + 2;
                 if ((T_3_1.num > 0 && loc.num < 0 && 2 < 0) || 
                     (T_3_1.num < 0 && loc.num > 0 && 2 > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPrest(args, T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                vals.num = T_3_2.num;
                }
                }

  LINE(188);
            {
            CLUREF T_3_1;
            err = strip_blanks(vals, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            vals.num = T_3_1.num;
            }

  LINE(189);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.ch = '[';
            err = stringOPindexc(T_3_1, typ, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            loc.num = T_3_2.num;
            }

  LINE(190);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                err = stringOPrest(typ, loc, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = split_tlist(T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                if (1 < T_3_2.array->ext_low || 1 > T_3_2.array->ext_high ) {
                    err = ERR_bounds;
                    goto ex_0;}
                T_3_3.num = T_3_2.array->store->data[1 - T_3_2.array->ext_low + T_3_2.array->int_low];
                err = dptype(T_3_3, &T_3_4);
                if (err != ERR_ok) goto ex_0;
                parm.num = T_3_4.num;
                }
                }

  LINE(191);
            {
                {CLUREF T_3_1;
                err = sequenceOPfill(CLU_1, parm, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                parms.num = T_3_1.num;
                }
                }

  LINE(192);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.num = loc.num - 1;
             if ((T_3_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
                 (T_3_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            err = stringOPsubstr(typ, CLU_1, T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            typ.num = T_3_2.num;
            }

  LINE(193);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                CellAlloc(3, 1, T_3_1);
                CellAlloc(4, T_3_1.num, T_3_2);
                strt.num = T_3_2.num;
                }
                }

  LINE(194);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.ch = ':';
                err = stringOPindexc(T_3_1, vals, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                col.num = T_3_2.num;
                }
                }

  LINE(195);
            {
                {found.tf = false;
                }
                }

  LINE(196);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.num = (col.num == 0)? true : false;
            T_3_2.num = T_3_1.num ^ 1;
            if (T_3_2.num == true) {

  LINE(197);
                {
                    {CLUREF T_4_1;
                    CLUREF T_4_2;
                    CLUREF T_4_3;
                    T_4_1.num = col.num - 1;
                     if ((T_4_1.num >= 0 && col.num < 0 && (-1) < 0) || 
                         (T_4_1.num <= 0 && col.num > 0 && (-1) > 0)) {
                        err = ERR_overflow;
                        goto ex_0;}
                    err = stringOPsubstr(vals, CLU_1, T_4_1, &T_4_2);
                    if (err != ERR_ok) goto ex_0;
                    err = strip_blanks(T_4_2, &T_4_3);
                    if (err != ERR_ok) goto ex_0;
                    temp.num = T_4_3.num;
                    }
                    }

  LINE(199);
                {
                found.tf = true;
                }

  LINE(200);
                {
                CLUREF T_5_1;
                err = dparse(temp, &T_5_1);
                if (err != ERR_ok) goto ex_2;
                strt.num = T_5_1.num;
                }
                    goto end_2;
                    ex_2:
                        {

  LINE(202);
                            {
                            found.tf = false;
                            }
                        }
                    end_2:;
                }
                }/* end if */

  LINE(205);
            {
            if (found.num == true) {
                {
                CLUREF T_4_1;
                err = stringOPrest(vals, col, &T_4_1);
                if (err != ERR_ok) goto ex_0;
                vals.num = T_4_1.num;
                }
                }
                }/* end if */

  LINE(206);
            {
                {CLUREF T_3_1;
                err = dpexprlist(vals, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                dvals.num = T_3_1.num;
                }
                }

  LINE(207);
            {
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            CLUREF T_3_4;
            CLUREF T_3_5;
            RecordAlloc(4, T_3_1);
            T_3_1.vec->data[2]  = typ.num;
            T_3_2.num = parms.num;
            T_3_1.vec->data[0]  = T_3_2.num;
            T_3_3.num = strt.num;
            T_3_1.vec->data[1]  = T_3_3.num;
            T_3_4.num = dvals.num;
            T_3_1.vec->data[3]  = T_3_4.num;
            CellAlloc(1, T_3_1.num, T_3_5);
            ret_1->num = T_3_5.num;
            }
            {signal (ERR_ok);}}
            }
        else {
        CLUREF T_2_9;
        CLUREF T_2_10;
        err = stringOPindexs(STR__044_173, args, &T_2_9);
        if (err != ERR_ok) goto ex_0;
        T_2_10.num = (T_2_9.num > 0)? true : false;
        if (T_2_10.num == true) {

  LINE(213);
            {
                {CLUREF T_3_1;
                err = stringOPindexs(STR__044_173, args, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                loc.num = T_3_1.num;
                }
                }

  LINE(214);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.num = loc.num - 1;
                 if ((T_3_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
                     (T_3_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPsubstr(args, CLU_1, T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                typ.num = T_3_2.num;
                }
                }

  LINE(215);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.num = loc.num + 2;
                 if ((T_3_1.num > 0 && loc.num < 0 && 2 < 0) || 
                     (T_3_1.num < 0 && loc.num > 0 && 2 > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPrest(args, T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                vals.num = T_3_2.num;
                }
                }

  LINE(216);
            {
            CLUREF T_3_1;
            err = strip_blanks(vals, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            vals.num = T_3_1.num;
            }

  LINE(217);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.ch = '[';
            err = stringOPindexc(T_3_1, typ, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            loc.num = T_3_2.num;
            }

  LINE(218);
            {
                {CLUREF T_3_1;
                err = stringOPrest(typ, loc, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                parms.num = T_3_1.num;
                }
                }

  LINE(219);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            T_3_1.num = loc.num - 1;
             if ((T_3_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
                 (T_3_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            err = stringOPsubstr(typ, CLU_1, T_3_1, &T_3_2);
            if (err != ERR_ok) goto ex_0;
            typ.num = T_3_2.num;
            }

  LINE(220);
            {
                {CLUREF T_3_1;
                err = dpfspeclist(parms, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                fspecs.num = T_3_1.num;
                }
                }

  LINE(221);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            T_3_2.num = ((typ.str->size != STR_variant.str->size)? false :
                !(bcmp(typ.str->data, STR_variant.str->data, typ.str->size)));
            T_3_1.num = T_3_2.num;
            if (!T_3_2.num) {
                T_3_3.num = ((typ.str->size != STR_oneof.str->size)? false :
                    !(bcmp(typ.str->data, STR_oneof.str->data, typ.str->size)));
                T_3_1.num = T_3_3.num;
            }
            if (T_3_1.num == true) {

  LINE(223);
                {
                    {CLUREF T_4_1;
                    CLUREF T_4_2;
                    err = dpfieldexpr(vals, fspecs, &T_4_1, &T_4_2);
                    if (err != ERR_ok) goto ex_0;
                    tg.num = T_4_1.num;
                    dval.num = T_4_2.num;
                    }
                    }

  LINE(224);
                {
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                CLUREF T_4_4;
                RecordAlloc(4, T_4_1);
                T_4_1.vec->data[2]  = typ.num;
                T_4_2.num = fspecs.num;
                T_4_1.vec->data[0]  = T_4_2.num;
                T_4_3.num = dval.num;
                T_4_1.vec->data[3]  = T_4_3.num;
                T_4_1.vec->data[1]  = tg.num;
                CellAlloc(13, T_4_1.num, T_4_4);
                ret_1->num = T_4_4.num;
                }
                {signal (ERR_ok);}}
                }
            else {

  LINE(227);
                {
                    {CLUREF T_4_1;
                    err = dpfieldexprlist(vals, fspecs, &T_4_1);
                    if (err != ERR_ok) goto ex_0;
                    dvals.num = T_4_1.num;
                    }
                    }

  LINE(228);
                {
                {
                CLUREF T_4_1;
                CLUREF T_4_2;
                CLUREF T_4_3;
                CLUREF T_4_4;
                RecordAlloc(3, T_4_1);
                T_4_1.vec->data[1]  = typ.num;
                T_4_2.num = fspecs.num;
                T_4_1.vec->data[0]  = T_4_2.num;
                T_4_3.num = dvals.num;
                T_4_1.vec->data[2]  = T_4_3.num;
                CellAlloc(10, T_4_1.num, T_4_4);
                ret_1->num = T_4_4.num;
                }
                {signal (ERR_ok);}}
                }}/* end if */
            }
        else {
        CLUREF T_2_11;
        CLUREF T_2_12;
        CLUREF T_2_13;
        T_2_11.ch = ':';
        err = stringOPindexc(T_2_11, args, &T_2_12);
        if (err != ERR_ok) goto ex_0;
        T_2_13.num = (T_2_12.num > 0)? true : false;
        if (T_2_13.num == true) {

  LINE(234);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                T_3_1.ch = ':';
                err = stringOPindexc(T_3_1, args, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                loc.num = T_3_2.num;
                }
                }

  LINE(235);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                T_3_1.num = loc.num - 1;
                 if ((T_3_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
                     (T_3_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPsubstr(args, CLU_1, T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = strip_blanks(T_3_2, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                f.num = T_3_3.num;
                }
                }

  LINE(236);
            {
                {CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                T_3_1.num = loc.num + 1;
                 if ((T_3_1.num > 0 && loc.num < 0 && 1 < 0) || 
                     (T_3_1.num < 0 && loc.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                err = stringOPrest(args, T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                err = strip_blanks(T_3_2, &T_3_3);
                if (err != ERR_ok) goto ex_0;
                err = dptype(T_3_3, &T_3_4);
                if (err != ERR_ok) goto ex_0;
                t.num = T_3_4.num;
                }
                }

  LINE(237);
            {
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            CLUREF T_3_3;
            RecordAlloc(2, T_3_1);
            T_3_1.vec->data[0]  = f.num;
            T_3_2.num = t.num;
            T_3_1.vec->data[1]  = T_3_2.num;
            CellAlloc(5, T_3_1.num, T_3_3);
            ret_1->num = T_3_3.num;
            }
            {signal (ERR_ok);}}
            }
        else {

  LINE(240);
            {
            {
            CLUREF T_3_1;
            err = dexpr_idn(args, &T_3_1);
            if (err != ERR_ok) goto ex_0;
            ret_1->num = T_3_1.num;
            }
            {signal (ERR_ok);}}
            }}}}}}/* end if */
        }
    else {

  LINE(244);
        {
        {
        CLUREF T_2_1;
        CellAlloc(8, nil, T_2_1);
        ret_1->num = T_2_1.num;
        }
        {signal (ERR_ok);}}
        }}}}}/* end if */
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE dparse ****/


CLUREF STR_true;
CLUREF STR_false;
static int dexpr_idn_own_init = 0;

/**** BEGIN PROCEDURE dexpr_idn ****/

errcode dexpr_idn(arg, ret_1)
CLUREF arg;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (dexpr_idn_own_init == 0) {
        stringOPcons("true", CLU_1, CLU_4, &STR_true);
        stringOPcons("false", CLU_1, CLU_5, &STR_false);
        dexpr_idn_own_init = 1;
    }
    enter_proc(248);

  LINE(249);
    {
    CLUREF T_1_1;
    T_1_1.num = ((arg.str->size != STR_true.str->size)? false :
        !(bcmp(arg.str->data, STR_true.str->data, arg.str->size)));
    if (T_1_1.num == true) {
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CellAlloc(1, true, T_2_1);
        CellAlloc(4, T_2_1.num, T_2_2);
        ret_1->num = T_2_2.num;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(250);
    {
    CLUREF T_1_1;
    T_1_1.num = ((arg.str->size != STR_false.str->size)? false :
        !(bcmp(arg.str->data, STR_false.str->data, arg.str->size)));
    if (T_1_1.num == true) {
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CellAlloc(1, false, T_2_1);
        CellAlloc(4, T_2_1.num, T_2_2);
        ret_1->num = T_2_2.num;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(251);
    {
    {
    CLUREF T_1_1;
    CellAlloc(6, arg.num, T_1_1);
    ret_1->num = T_1_1.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE dexpr_idn ****/


extern errcode intOPfrom_to();

/**** BEGIN PROCEDURE dparg ****/

errcode dparg(args, ret_1, ret_2)
CLUREF args;
CLUREF *ret_1;
CLUREF *ret_2;
    {
    errcode err;
    errcode ecode2;
    CLUREF level;
    CLUREF count;
    CLUREF i;
    CLUREF c;
    CLUREF next_arg;
    enter_proc(254);

  LINE(255);
    {
        {level.num = 0;
        }
        }

  LINE(256);
    {
        {CLUREF T_1_1;
        err = stringOPsize(args, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        count.num = T_1_1.num;
        }
        }

  LINE(257);
    {
        {i.num = 1;
        }
        }

  LINE(258);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
        T_1_2.num = count.num;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            i.num = T_1_1.num;

  LINE(259);
            {
                {CLUREF T_2_1;
                err = stringOPfetch(args, i, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                c.num = T_2_1.num;
                }
                }

  LINE(260);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            T_2_2.ch = ')';
            T_2_3.num = (c.ch == T_2_2.ch)? true : false;
            T_2_1.num = T_2_3.num;
            if (T_2_3.num) {
                T_2_4.num = (level.num == 0)? true : false;
                T_2_1.num = T_2_4.num;
            }
            if (T_2_1.num == true) {
                goto end_inline_for_1;
                }
                }/* end if */

  LINE(261);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            T_2_2.ch = ',';
            T_2_3.num = (c.ch == T_2_2.ch)? true : false;
            T_2_1.num = T_2_3.num;
            if (T_2_3.num) {
                T_2_4.num = (level.num == 0)? true : false;
                T_2_1.num = T_2_4.num;
            }
            if (T_2_1.num == true) {
                goto end_inline_for_1;
                }
                }/* end if */

  LINE(262);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.ch = '(';
            T_2_2.num = (c.ch == T_2_1.ch)? true : false;
            if (T_2_2.num == true) {
                {
                CLUREF T_3_1;
                T_3_1.num = level.num + 1;
                 if ((T_3_1.num > 0 && level.num < 0 && 1 < 0) || 
                     (T_3_1.num < 0 && level.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                level.num = T_3_1.num;
                }
                }
                }/* end if */

  LINE(263);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.ch = ')';
            T_2_2.num = (c.ch == T_2_1.ch)? true : false;
            if (T_2_2.num == true) {
                {
                CLUREF T_3_1;
                T_3_1.num = level.num - 1;
                 if ((T_3_1.num >= 0 && level.num < 0 && (-1) < 0) || 
                     (T_3_1.num <= 0 && level.num > 0 && (-1) > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                level.num = T_3_1.num;
                }
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(265);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        T_1_1.num = i.num - 1;
         if ((T_1_1.num >= 0 && i.num < 0 && (-1) < 0) || 
             (T_1_1.num <= 0 && i.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPsubstr(args, CLU_1, T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        err = strip_blanks(T_1_2, &T_1_3);
        if (err != ERR_ok) goto ex_0;
        next_arg.num = T_1_3.num;
        }
        }

  LINE(266);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = stringOPsize(next_arg, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    T_1_2.num = (T_1_1.num == 0)? true : false;
    if (T_1_2.num == true) {
        {
        {signal (ERR_none);}}
        }
        }/* end if */

  LINE(267);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_1.num = i.num + 1;
     if ((T_1_1.num > 0 && i.num < 0 && 1 < 0) || 
         (T_1_1.num < 0 && i.num > 0 && 1 > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    err = stringOPrest(args, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    err = strip_blanks(T_1_2, &T_1_3);
    if (err != ERR_ok) goto ex_0;
    args.num = T_1_3.num;
    }

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

/**** END PROCEDURE dparg ****/


extern errcode dpfieldexpr_IB_1();
extern errcode sequenceOPsize();
extern errcode stringOPempty();
extern errcode stringOPchars();
extern errcode stringOPappend();
extern errcode recordOPget_1();
extern errcode oneofOPvalue_5();
extern errcode sequenceOPfetch();
static int dpfieldexpr_own_init = 0;

/**** BEGIN PROCEDURE dpfieldexpr ****/

errcode dpfieldexpr(line, parms, ret_1, ret_2)
CLUREF line;
CLUREF parms;
CLUREF *ret_1;
CLUREF *ret_2;
    {
    struct {
        errcode err;
        errcode ecode2;
        CLUREF sz;
        CLUREF d;
        CLUREF tg;
        CLUREF this_arg;
        CLUREF this_field;
        CLUREF skipped;
        CLUREF c;
        CLUREF i;
        CLUREF line;
        CLUREF parms;
        } locals;
    locals.line = line;
    locals.parms = parms;
        if (dpfieldexpr_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        dpfieldexpr_own_init = 1;
    }
    enter_proc(273);

  LINE(274);
    {
        {CLUREF T_1_1;
        T_1_1.num = locals.parms.vec->size;
        locals.sz.num = T_1_1.num;
        }
        }

  LINE(275);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    locals.err = stringOPfetch(locals.line, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_2.ch = ':';
    T_1_3.num = (T_1_1.ch == T_1_2.ch)? true : false;
    if (T_1_3.num == true) {
        {
        CLUREF T_2_1;
        locals.err = stringOPrest(locals.line, CLU_2, &T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.line.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(277);
    {
        {locals.tg.num = 0;
        }
        }

  LINE(278);
    for (;;) {
        CLUREF T_1_1;
        CLUREF T_1_2;
        locals.err = stringOPempty(locals.line, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_2.num = T_1_1.num ^ 1;
        if (T_1_2.num != true) { break; }

  LINE(279);
        {
            {locals.this_arg = STR_;
            }
            }

  LINE(280);
        {
            {locals.this_field = STR_;
            }
            }

  LINE(281);
        {
            {locals.skipped.num = 0;
            }
            }

  LINE(282);
        {
            locals.err = stringOPchars(locals.line, dpfieldexpr_IB_1, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {
            ret_1->num = elist[0].num;
            ret_2->num = elist[1].num;
            signal(ERR_ok);}
            if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
            if (locals.err == ERR_break) locals.err = ERR_ok;
            if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
            if (locals.err != ERR_ok) goto ex_0;
            }

  LINE(294);
        {
        CLUREF T_2_1;
        locals.err = strip_blanks(locals.this_arg, &T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.this_arg.num = T_2_1.num;
        }

  LINE(295);
        {
        CLUREF T_2_1;
        locals.err = strip_blanks(locals.this_field, &T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.this_field.num = T_2_1.num;
        }

  LINE(296);
        {
        CLUREF T_2_1;
        locals.err = dparse(locals.this_arg, &T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.d.num = T_2_1.num;
        }

  LINE(297);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
            T_2_2.num = locals.sz.num;
            for (T_2_1.num = 1; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                locals.i.num = T_2_1.num;

  LINE(298);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                if (locals.i.num < 1 || locals.i.num > locals.parms.vec->size ) {
                    locals.err = ERR_bounds;
                    goto ex_0;}
                T_3_1.num = locals.parms.vec->data[locals.i.num - 1];
                if (T_3_1.cell->tag != 5) {locals.err = ERR_wrong_tag; goto ex_0;}
                T_3_2.num = T_3_1.cell->value;
                T_3_3.num = T_3_2.vec->data[0];
                T_3_4.num = ((locals.this_field.str->size != T_3_3.str->size)? false :
                    !(bcmp(locals.this_field.str->data, T_3_3.str->data, locals.this_field.str->size)));
                if (T_3_4.num == true) {

  LINE(299);
                    {
                    locals.tg.num = locals.i.num;
                    }

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

  LINE(304);
    {
    {
    ret_1->num = locals.tg.num;
    }
    {
    ret_2->num = locals.d.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 dpfieldexpr ****/


/**** BEGIN ITERATOR BODIES for dpfieldexpr ****/

errcode dpfieldexpr_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF sz;
    CLUREF d;
    CLUREF tg;
    CLUREF this_arg;
    CLUREF this_field;
    CLUREF skipped;
    CLUREF c;
    CLUREF i;
    CLUREF line;
    CLUREF parms;
    } *locals;
{
    locals->c.num = iv_1.num;
    enter_iter_body_proc(283);

  FB_LINE(283);
    {
    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;
    T_1_3.ch = ',';
    T_1_4.num = (locals->c.ch == T_1_3.ch)? true : false;
    T_1_2.num = T_1_4.num;
    if (!T_1_4.num) {
        T_1_5.ch = ']';
        T_1_6.num = (locals->c.ch == T_1_5.ch)? true : false;
        T_1_2.num = T_1_6.num;
    }
    T_1_1.num = T_1_2.num;
    if (!T_1_2.num) {
        T_1_7.ch = '}';
        T_1_8.num = (locals->c.ch == T_1_7.ch)? true : false;
        T_1_1.num = T_1_8.num;
    }
    if (T_1_1.num == true) {

  FB_LINE(284);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        locals->err = stringOPsize(locals->this_arg, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        T_2_2.num = T_2_1.num + 2;
         if ((T_2_2.num > 0 && T_2_1.num < 0 && 2 < 0) || 
             (T_2_2.num < 0 && T_2_1.num > 0 && 2 > 0)) {
            locals->err = ERR_overflow;
            goto ex_0;}
        T_2_3.num = T_2_2.num + locals->skipped.num;
         if ((T_2_3.num > 0 && T_2_2.num < 0 && locals->skipped.num < 0) || 
             (T_2_3.num < 0 && T_2_2.num > 0 && locals->skipped.num > 0)) {
            locals->err = ERR_overflow;
            goto ex_0;}
        locals->err = stringOPrest(locals->line, T_2_3, &T_2_4);
        if (locals->err != ERR_ok) goto ex_0;
        locals->line.num = T_2_4.num;
        }

  FB_LINE(285);
        {signal(ERR_break);}
        }
    else {
    CLUREF T_1_9;
    CLUREF T_1_10;
    T_1_9.ch = ':';
    T_1_10.num = (locals->c.ch == T_1_9.ch)? true : false;
    if (T_1_10.num == true) {

  FB_LINE(287);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        locals->err = stringOPsize(locals->this_arg, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        T_2_2.num = T_2_1.num + 1;
         if ((T_2_2.num > 0 && T_2_1.num < 0 && 1 < 0) || 
             (T_2_2.num < 0 && T_2_1.num > 0 && 1 > 0)) {
            locals->err = ERR_overflow;
            goto ex_0;}
        locals->skipped.num = T_2_2.num;
        }

  FB_LINE(288);
        {
        locals->this_field.num = locals->this_arg.num;
        }

  FB_LINE(289);
        {
        locals->this_arg = STR_;
        }
        }
    else {

  FB_LINE(291);
        {
        CLUREF T_2_1;
        locals->err = stringOPappend(locals->this_arg, locals->c, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        locals->this_arg.num = T_2_1.num;
        }
        }}}/* end if */
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end dpfieldexpr_IB_1 */

/**** END ITERATOR BODIES for dpfieldexpr ****/


extern errcode dpfieldexprlist_IB_1();
extern errcode arrayOPfill();
extern errcode arrayOPstore();
extern errcode sequenceOPa2s();
static int dpfieldexprlist_own_init = 0;

/**** BEGIN PROCEDURE dpfieldexprlist ****/

errcode dpfieldexprlist(line, parms, ret_1)
CLUREF line;
CLUREF parms;
CLUREF *ret_1;
    {
    struct {
        errcode err;
        errcode ecode2;
        CLUREF sz;
        CLUREF fake_elt;
        CLUREF nda;
        CLUREF this_arg;
        CLUREF this_field;
        CLUREF skipped;
        CLUREF c;
        CLUREF d;
        CLUREF i;
        CLUREF line;
        CLUREF parms;
        } locals;
    locals.line = line;
    locals.parms = parms;
        if (dpfieldexprlist_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        dpfieldexprlist_own_init = 1;
    }
    enter_proc(309);

  LINE(311);
    {
        {CLUREF T_1_1;
        T_1_1.num = locals.parms.vec->size;
        locals.sz.num = T_1_1.num;
        }
        }

  LINE(312);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CellAlloc(3, 0, T_1_1);
        CellAlloc(4, T_1_1.num, T_1_2);
        locals.fake_elt.num = T_1_2.num;
        }
        }

  LINE(313);
    {
        {CLUREF T_1_1;
        locals.err = arrayOPfill(CLU_1, locals.sz, locals.fake_elt, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.nda.num = T_1_1.num;
        }
        }

  LINE(314);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    locals.err = stringOPfetch(locals.line, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_2.ch = ':';
    T_1_3.num = (T_1_1.ch == T_1_2.ch)? true : false;
    if (T_1_3.num == true) {
        {
        CLUREF T_2_1;
        locals.err = stringOPrest(locals.line, CLU_2, &T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.line.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(315);
    for (;;) {
        CLUREF T_1_1;
        CLUREF T_1_2;
        locals.err = stringOPempty(locals.line, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_2.num = T_1_1.num ^ 1;
        if (T_1_2.num != true) { break; }

  LINE(316);
        {
            {locals.this_arg = STR_;
            }
            }

  LINE(317);
        {
            {locals.this_field = STR_;
            }
            }

  LINE(318);
        {
            {locals.skipped.num = 0;
            }
            }

  LINE(319);
        {
            locals.err = stringOPchars(locals.line, dpfieldexprlist_IB_1, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {
            ret_1->num = elist[0].num;
            signal(ERR_ok);}
            if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
            if (locals.err == ERR_break) locals.err = ERR_ok;
            if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
            if (locals.err != ERR_ok) goto ex_0;
            }

  LINE(331);
        {
        CLUREF T_2_1;
        locals.err = strip_blanks(locals.this_arg, &T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.this_arg.num = T_2_1.num;
        }

  LINE(332);
        {
        CLUREF T_2_1;
        locals.err = strip_blanks(locals.this_field, &T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.this_field.num = T_2_1.num;
        }

  LINE(333);
        {
            {CLUREF T_2_1;
            locals.err = dparse(locals.this_arg, &T_2_1);
            if (locals.err != ERR_ok) goto ex_0;
            locals.d.num = T_2_1.num;
            }
            }

  LINE(334);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
            T_2_2.num = locals.sz.num;
            for (T_2_1.num = 1; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                locals.i.num = T_2_1.num;

  LINE(335);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                CLUREF T_3_3;
                CLUREF T_3_4;
                if (locals.i.num < 1 || locals.i.num > locals.parms.vec->size ) {
                    locals.err = ERR_bounds;
                    goto ex_0;}
                T_3_1.num = locals.parms.vec->data[locals.i.num - 1];
                if (T_3_1.cell->tag != 5) {locals.err = ERR_wrong_tag; goto ex_0;}
                T_3_2.num = T_3_1.cell->value;
                T_3_3.num = T_3_2.vec->data[0];
                T_3_4.num = ((locals.this_field.str->size != T_3_3.str->size)? false :
                    !(bcmp(locals.this_field.str->data, T_3_3.str->data, locals.this_field.str->size)));
                if (T_3_4.num == true) {

  LINE(336);
                    {
                    {
                    if (locals.i.num < locals.nda.array->ext_low || locals.i.num > locals.nda.array->ext_high) {
                        locals.err = ERR_bounds;
                        goto ex_0;}
                    locals.nda.array->store->data[locals.i.num + locals.nda.array->int_low - locals.nda.array->ext_low] = locals.d.num;
                    }
                    }
                    }
                    }/* end if */
            }
        }
        end_inline_for_1:;
        }
        end_while_1:;

  LINE(340);
    {
    {
    CLUREF T_1_1;
    locals.err = sequenceOPa2s(locals.nda, &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 dpfieldexprlist ****/


/**** BEGIN ITERATOR BODIES for dpfieldexprlist ****/

errcode dpfieldexprlist_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF sz;
    CLUREF fake_elt;
    CLUREF nda;
    CLUREF this_arg;
    CLUREF this_field;
    CLUREF skipped;
    CLUREF c;
    CLUREF d;
    CLUREF i;
    CLUREF line;
    CLUREF parms;
    } *locals;
{
    locals->c.num = iv_1.num;
    enter_iter_body_proc(320);

  FB_LINE(320);
    {
    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;
    T_1_3.ch = ',';
    T_1_4.num = (locals->c.ch == T_1_3.ch)? true : false;
    T_1_2.num = T_1_4.num;
    if (!T_1_4.num) {
        T_1_5.ch = ']';
        T_1_6.num = (locals->c.ch == T_1_5.ch)? true : false;
        T_1_2.num = T_1_6.num;
    }
    T_1_1.num = T_1_2.num;
    if (!T_1_2.num) {
        T_1_7.ch = '}';
        T_1_8.num = (locals->c.ch == T_1_7.ch)? true : false;
        T_1_1.num = T_1_8.num;
    }
    if (T_1_1.num == true) {

  FB_LINE(321);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        CLUREF T_2_4;
        locals->err = stringOPsize(locals->this_arg, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        T_2_2.num = T_2_1.num + 2;
         if ((T_2_2.num > 0 && T_2_1.num < 0 && 2 < 0) || 
             (T_2_2.num < 0 && T_2_1.num > 0 && 2 > 0)) {
            locals->err = ERR_overflow;
            goto ex_0;}
        T_2_3.num = T_2_2.num + locals->skipped.num;
         if ((T_2_3.num > 0 && T_2_2.num < 0 && locals->skipped.num < 0) || 
             (T_2_3.num < 0 && T_2_2.num > 0 && locals->skipped.num > 0)) {
            locals->err = ERR_overflow;
            goto ex_0;}
        locals->err = stringOPrest(locals->line, T_2_3, &T_2_4);
        if (locals->err != ERR_ok) goto ex_0;
        locals->line.num = T_2_4.num;
        }

  FB_LINE(322);
        {signal(ERR_break);}
        }
    else {
    CLUREF T_1_9;
    CLUREF T_1_10;
    T_1_9.ch = ':';
    T_1_10.num = (locals->c.ch == T_1_9.ch)? true : false;
    if (T_1_10.num == true) {

  FB_LINE(324);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        locals->err = stringOPsize(locals->this_arg, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        T_2_2.num = T_2_1.num + 1;
         if ((T_2_2.num > 0 && T_2_1.num < 0 && 1 < 0) || 
             (T_2_2.num < 0 && T_2_1.num > 0 && 1 > 0)) {
            locals->err = ERR_overflow;
            goto ex_0;}
        locals->skipped.num = T_2_2.num;
        }

  FB_LINE(325);
        {
        locals->this_field.num = locals->this_arg.num;
        }

  FB_LINE(326);
        {
        locals->this_arg = STR_;
        }
        }
    else {

  FB_LINE(328);
        {
        CLUREF T_2_1;
        locals->err = stringOPappend(locals->this_arg, locals->c, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        locals->this_arg.num = T_2_1.num;
        }
        }}}/* end if */
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end dpfieldexprlist_IB_1 */

/**** END ITERATOR BODIES for dpfieldexprlist ****/


extern errcode dpexprlist_IB_1();
static int dpexprlist_own_init = 0;

/**** BEGIN PROCEDURE dpexprlist ****/

errcode dpexprlist(line, ret_1)
CLUREF line;
CLUREF *ret_1;
    {
    struct {
        errcode err;
        errcode ecode2;
        CLUREF dl;
        CLUREF this_arg;
        CLUREF c;
        CLUREF d;
        CLUREF line;
        } locals;
    locals.line = line;
        if (dpexprlist_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        dpexprlist_own_init = 1;
    }
    enter_proc(344);

  LINE(345);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    locals.err = stringOPfetch(locals.line, CLU_1, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_2.ch = ':';
    T_1_3.num = (T_1_1.ch == T_1_2.ch)? true : false;
    if (T_1_3.num == true) {
        {
        CLUREF T_2_1;
        locals.err = stringOPrest(locals.line, CLU_2, &T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.line.num = T_2_1.num;
        }
        }
        }/* end if */

  LINE(346);
    {
        {CLUREF T_1_1;
        locals.err = sequenceOPnew(&T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.dl.num = T_1_1.num;
        }
        }

  LINE(347);
    for (;;) {
        CLUREF T_1_1;
        CLUREF T_1_2;
        locals.err = stringOPempty(locals.line, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_2.num = T_1_1.num ^ 1;
        if (T_1_2.num != true) { break; }

  LINE(348);
        {
            {locals.this_arg = STR_;
            }
            }

  LINE(349);
        {
            locals.err = stringOPchars(locals.line, dpexprlist_IB_1, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {
            ret_1->num = elist[0].num;
            signal(ERR_ok);}
            if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
            if (locals.err == ERR_break) locals.err = ERR_ok;
            if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
            if (locals.err != ERR_ok) goto ex_0;
            }

  LINE(358);
        {
        CLUREF T_2_1;
        locals.err = strip_blanks(locals.this_arg, &T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.this_arg.num = T_2_1.num;
        }

  LINE(359);
        {
            {CLUREF T_2_1;
            locals.err = dparse(locals.this_arg, &T_2_1);
            if (locals.err != ERR_ok) goto ex_0;
            locals.d.num = T_2_1.num;
            }
            }

  LINE(360);
        {
        CLUREF T_2_1;
        locals.err = sequenceOPaddh(locals.dl, locals.d, &T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.dl.num = T_2_1.num;
        }
        }
        end_while_1:;

  LINE(362);
    {
    {
    ret_1->num = locals.dl.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 dpexprlist ****/


/**** BEGIN ITERATOR BODIES for dpexprlist ****/

errcode dpexprlist_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF dl;
    CLUREF this_arg;
    CLUREF c;
    CLUREF d;
    CLUREF line;
    } *locals;
{
    locals->c.num = iv_1.num;
    enter_iter_body_proc(350);

  FB_LINE(350);
    {
    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;
    T_1_3.ch = ',';
    T_1_4.num = (locals->c.ch == T_1_3.ch)? true : false;
    T_1_2.num = T_1_4.num;
    if (!T_1_4.num) {
        T_1_5.ch = ']';
        T_1_6.num = (locals->c.ch == T_1_5.ch)? true : false;
        T_1_2.num = T_1_6.num;
    }
    T_1_1.num = T_1_2.num;
    if (!T_1_2.num) {
        T_1_7.ch = '}';
        T_1_8.num = (locals->c.ch == T_1_7.ch)? true : false;
        T_1_1.num = T_1_8.num;
    }
    if (T_1_1.num == true) {

  FB_LINE(352);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        locals->err = stringOPsize(locals->this_arg, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        T_2_2.num = T_2_1.num + 2;
         if ((T_2_2.num > 0 && T_2_1.num < 0 && 2 < 0) || 
             (T_2_2.num < 0 && T_2_1.num > 0 && 2 > 0)) {
            locals->err = ERR_overflow;
            goto ex_0;}
        locals->err = stringOPrest(locals->line, T_2_2, &T_2_3);
        if (locals->err != ERR_ok) goto ex_0;
        locals->line.num = T_2_3.num;
        }

  FB_LINE(353);
        {signal(ERR_break);}
        }
    else {

  FB_LINE(355);
        {
        CLUREF T_2_1;
        locals->err = stringOPappend(locals->this_arg, locals->c, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        locals->this_arg.num = T_2_1.num;
        }
        }}/* end if */
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end dpexprlist_IB_1 */

/**** END ITERATOR BODIES for dpexprlist ****/


extern errcode arrayOPpredict();
extern errcode sequenceOPelements();
extern errcode arrayOPsize();
extern errcode stringOPlt();
extern errcode arrayOPaddh();

/**** BEGIN PROCEDURE dpfspeclist ****/

errcode dpfspeclist(line, ret_1)
CLUREF line;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF fl;
    CLUREF parms;
    CLUREF each_s;
    CLUREF df;
    CLUREF nfa;
    CLUREF each_d;
    CLUREF each_f;
    CLUREF nm;
    CLUREF sz;
    CLUREF x;
    CLUREF i;
    CLUREF j;
    CLUREF ox;
    enter_proc(367);

  LINE(369);
    {
        {CLUREF T_1_1;
        err = sequenceOPnew(&T_1_1);
        if (err != ERR_ok) goto ex_0;
        fl.num = T_1_1.num;
        }
        }

  LINE(370);
    {
        {CLUREF T_1_1;
        err = split_tlist(line, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        parms.num = T_1_1.num;
        }
        }

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

  LINE(372);
            {
                {CLUREF T_2_1;
                err = dpfspec(each_s, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                df.num = T_2_1.num;
                }
                }

  LINE(373);
            {
            CLUREF T_2_1;
            err = sequenceOPaddh(fl, df, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            fl.num = T_2_1.num;
            }
        }
    }
    end_inline_for_1:;

  LINE(375);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = fl.vec->size;
        err = arrayOPpredict(CLU_1, T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        nfa.num = T_1_2.num;
        }
        }

  LINE(376);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = fl.vec->size; 
        T_1_3 = fl;
        for (T_1_1.num = 1; T_1_1.num <= T_1_2.num; T_1_1.num++) {
            each_d.num = T_1_3.vec->data[T_1_1.num - 1];

  LINE(377);
            {
                {CLUREF T_2_1;
                if (each_d.cell->tag != 5) {err = ERR_wrong_tag; goto ex_0;}
                T_2_1.num = each_d.cell->value;
                each_f.num = T_2_1.num;
                }
                }

  LINE(378);
            {
                {CLUREF T_2_1;
                T_2_1.num = each_f.vec->data[0];
                nm.num = T_2_1.num;
                }
                }

  LINE(379);
            {
                {CLUREF T_2_1;
                T_2_1.num = nfa.array->ext_size;
                sz.num = T_2_1.num;
                }
                }

  LINE(380);
            {
                {x.num = each_d.num;
                }
                }

  LINE(381);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
                T_2_2.num = sz.num;
                for (T_2_1.num = 1; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                    i.num = T_2_1.num;

  LINE(382);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    CLUREF T_3_3;
                    CLUREF T_3_4;
                    if (i.num < nfa.array->ext_low || i.num > nfa.array->ext_high ) {
                        err = ERR_bounds;
                        goto ex_0;}
                    T_3_1.num = nfa.array->store->data[i.num - nfa.array->ext_low + nfa.array->int_low];
                    if (T_3_1.cell->tag != 5) {err = ERR_wrong_tag; goto ex_0;}
                    T_3_2.num = T_3_1.cell->value;
                    T_3_3.num = T_3_2.vec->data[0];
                    err = stringOPlt(T_3_3, nm, &T_3_4);
                    if (err != ERR_ok) goto ex_0;
                    if (T_3_4.num == true) {
                        continue;
                        }
                    else {

  LINE(384);
                        {
                        CLUREF T_4_1;
                        CLUREF T_4_2;
                            T_4_2.num = sz.num;
                            for (T_4_1.num = i.num; T_4_1.num <= T_4_2.num; T_4_1.num++) {
                                j.num = T_4_1.num;

  LINE(385);
                                {
                                    {CLUREF T_5_1;
                                    if (j.num < nfa.array->ext_low || j.num > nfa.array->ext_high ) {
                                        err = ERR_bounds;
                                        goto ex_0;}
                                    T_5_1.num = nfa.array->store->data[j.num - nfa.array->ext_low + nfa.array->int_low];
                                    ox.num = T_5_1.num;
                                    }
                                    }

  LINE(386);
                                {
                                {
                                if (j.num < nfa.array->ext_low || j.num > nfa.array->ext_high) {
                                    err = ERR_bounds;
                                    goto ex_0;}
                                nfa.array->store->data[j.num + nfa.array->int_low - nfa.array->ext_low] = x.num;
                                }
                                }

  LINE(387);
                                {
                                x.num = ox.num;
                                }
                            }
                        }
                        end_inline_for_4:;

  LINE(389);
                        goto end_inline_for_3;
                        }}/* end if */
                }
            }
            end_inline_for_3:;

  LINE(392);
            {
            {
            if ((nfa.array->int_low + nfa.array->ext_size + 1) < nfa.array->int_size) {
                nfa.array->store->data[nfa.array->int_low + nfa.array->ext_size] = x.num;
                nfa.array->ext_size++; nfa.array->ext_high++;}
            else {
                err = arrayOPaddh(nfa, x);
                if (err != ERR_ok) goto ex_0;}
            }
            }
        }
    }
    end_inline_for_2:;

  LINE(394);
    {
    CLUREF T_1_1;
    err = sequenceOPa2s(nfa, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    fl.num = T_1_1.num;
    }

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

/**** END PROCEDURE dpfspeclist ****/


extern errcode dpfspec_IB_1();
static int dpfspec_own_init = 0;

/**** BEGIN PROCEDURE dpfspec ****/

errcode dpfspec(line, ret_1)
CLUREF line;
CLUREF *ret_1;
    {
    struct {
        errcode err;
        errcode ecode2;
        CLUREF n;
        CLUREF t;
        CLUREF first;
        CLUREF c;
        CLUREF bcount;
        CLUREF f;
        CLUREF line;
        } locals;
    locals.line = line;
        if (dpfspec_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        dpfspec_own_init = 1;
    }
    enter_proc(398);

  LINE(399);
    {
        {locals.n = STR_;
        }
        }

  LINE(400);
    {
        {locals.t = STR_;
        }
        }

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

  LINE(403);
    {
        {locals.bcount.num = 0;
        }
        }

  LINE(404);
    {
        locals.err = stringOPchars(locals.line, dpfspec_IB_1, &locals, &locals.ecode2);
        if (locals.err == ERR_iterbodyreturn) {
        ret_1->num = elist[0].num;
        signal(ERR_ok);}
        if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
        if (locals.err == ERR_break) locals.err = ERR_ok;
        if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
        if (locals.err != ERR_ok) goto ex_0;
        }

  LINE(420);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        RecordAlloc(2, T_1_1);
        T_1_1.vec->data[0]  = locals.n.num;
        locals.err = dptype(locals.t, &T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        T_1_3.num = T_1_2.num;
        T_1_1.vec->data[1]  = T_1_3.num;
        locals.f.num = T_1_1.num;
        }
        }

  LINE(421);
    {
    {
    CLUREF T_1_1;
    CellAlloc(5, locals.f.num, T_1_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 dpfspec ****/


/**** BEGIN ITERATOR BODIES for dpfspec ****/

errcode dpfspec_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF n;
    CLUREF t;
    CLUREF first;
    CLUREF c;
    CLUREF bcount;
    CLUREF f;
    CLUREF line;
    } *locals;
{
    locals->c.num = iv_1.num;
    enter_iter_body_proc(405);

  FB_LINE(405);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    T_1_2.ch = ',';
    T_1_3.num = (locals->c.ch == T_1_2.ch)? true : false;
    T_1_1.num = T_1_3.num;
    if (T_1_3.num) {
        T_1_4.num = (locals->bcount.num == 0)? true : false;
        T_1_1.num = T_1_4.num;
    }
    if (T_1_1.num == true) {

  FB_LINE(407);
        {
            {CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            RecordAlloc(2, T_2_1);
            T_2_1.vec->data[0]  = locals->n.num;
            locals->err = dptype(locals->t, &T_2_2);
            if (locals->err != ERR_ok) goto ex_0;
            T_2_3.num = T_2_2.num;
            T_2_1.vec->data[1]  = T_2_3.num;
            locals->f.num = T_2_1.num;
            }
            }

  FB_LINE(408);
        {
        {
        CLUREF T_2_1;
        CellAlloc(5, locals->f.num, T_2_1);
        elist[0] = T_2_1;
        }
        *iecode = ERR_ok;
        {signal(ERR_iterbodyreturn);}
        }
        }
        }/* end if */

  FB_LINE(410);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.ch = '[';
    T_1_2.num = (locals->c.ch == T_1_1.ch)? true : false;
    if (T_1_2.num == true) {
        {
        CLUREF T_2_1;
        T_2_1.num = locals->bcount.num + 1;
         if ((T_2_1.num > 0 && locals->bcount.num < 0 && 1 < 0) || 
             (T_2_1.num < 0 && locals->bcount.num > 0 && 1 > 0)) {
            locals->err = ERR_overflow;
            goto ex_0;}
        locals->bcount.num = T_2_1.num;
        }
        }
        }/* end if */

  FB_LINE(411);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.ch = ']';
    T_1_2.num = (locals->c.ch == T_1_1.ch)? true : false;
    if (T_1_2.num == true) {
        {
        CLUREF T_2_1;
        T_2_1.num = locals->bcount.num - 1;
         if ((T_2_1.num >= 0 && locals->bcount.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && locals->bcount.num > 0 && (-1) > 0)) {
            locals->err = ERR_overflow;
            goto ex_0;}
        locals->bcount.num = T_2_1.num;
        }
        }
        }/* end if */

  FB_LINE(412);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_2.ch = ':';
    T_1_3.num = (locals->c.ch == T_1_2.ch)? true : false;
    T_1_1.num = T_1_3.num;
    if (T_1_3.num) {
        T_1_1.num = locals->first.num;
    }
    if (T_1_1.num == true) {
        {
        locals->first.tf = false;
        }
        {signal(ERR_ok);}
        }
        }/* end if */

  FB_LINE(413);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.ch = ' ';
    T_1_2.num = (locals->c.ch == T_1_1.ch)? true : false;
    if (T_1_2.num == true) {
        {signal(ERR_ok);}
        }
        }/* end if */

  FB_LINE(414);
    {
    if (locals->first.num == true) {

  FB_LINE(415);
        {
        CLUREF T_2_1;
        locals->err = stringOPappend(locals->n, locals->c, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        locals->n.num = T_2_1.num;
        }
        }
    else {

  FB_LINE(417);
        {
        CLUREF T_2_1;
        locals->err = stringOPappend(locals->t, locals->c, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        locals->t.num = T_2_1.num;
        }
        }}/* end if */
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end dpfspec_IB_1 */

/**** END ITERATOR BODIES for dpfspec ****/


extern errcode split_tlist_IB_1();
static int split_tlist_own_init = 0;

/**** BEGIN PROCEDURE split_tlist ****/

errcode split_tlist(tl, ret_1)
CLUREF tl;
CLUREF *ret_1;
    {
    struct {
        errcode err;
        errcode ecode2;
        CLUREF loc;
        CLUREF new;
        CLUREF elt;
        CLUREF ch;
        CLUREF bcount;
        CLUREF tl;
        } locals;
    locals.tl = tl;
        if (split_tlist_own_init == 0) {
        stringOPcons("]", CLU_1, CLU_1, &STR__135);
        stringOPcons("", CLU_1, CLU_0, &STR_);
        split_tlist_own_init = 1;
    }
    enter_proc(424);

  LINE(426);
    {
    CLUREF T_1_1;
    locals.err = strip_blanks(locals.tl, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.tl.num = T_1_1.num;
    }

  LINE(427);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.ch = '[';
        locals.err = stringOPindexc(T_1_1, locals.tl, &T_1_2);
        if (locals.err != ERR_ok) goto ex_0;
        locals.loc.num = T_1_2.num;
        }
        }

  LINE(428);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = locals.loc.num + 1;
     if ((T_1_1.num > 0 && locals.loc.num < 0 && 1 < 0) || 
         (T_1_1.num < 0 && locals.loc.num > 0 && 1 > 0)) {
        locals.err = ERR_overflow;
        goto ex_0;}
    locals.err = stringOPrest(locals.tl, T_1_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    locals.tl.num = T_1_2.num;
    }

  LINE(429);
    {
    CLUREF T_1_1;
    locals.err = string_lindexs(STR__135, locals.tl, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.loc.num = T_1_1.num;
    }

  LINE(430);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = locals.loc.num - 1;
     if ((T_1_1.num >= 0 && locals.loc.num < 0 && (-1) < 0) || 
         (T_1_1.num <= 0 && locals.loc.num > 0 && (-1) > 0)) {
        locals.err = ERR_overflow;
        goto ex_0;}
    locals.err = stringOPsubstr(locals.tl, CLU_1, T_1_1, &T_1_2);
    if (locals.err != ERR_ok) goto ex_0;
    locals.tl.num = T_1_2.num;
    }

  LINE(431);
    {
    CLUREF T_1_1;
    locals.err = strip_blanks(locals.tl, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    locals.tl.num = T_1_1.num;
    }

  LINE(432);
    {
        {CLUREF T_1_1;
        locals.err = arrayOPpredict(CLU_1, CLU_20, &T_1_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.new.num = T_1_1.num;
        }
        }

  LINE(433);
    {
        {locals.elt = STR_;
        }
        }

  LINE(435);
    {
        {locals.bcount.num = 0;
        }
        }

  LINE(436);
    {
        locals.err = stringOPchars(locals.tl, split_tlist_IB_1, &locals, &locals.ecode2);
        if (locals.err == ERR_iterbodyreturn) {
        ret_1->num = elist[0].num;
        signal(ERR_ok);}
        if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
        if (locals.err == ERR_break) locals.err = ERR_ok;
        if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
        if (locals.err != ERR_ok) goto ex_0;
        }

  LINE(446);
    {
    {
    if ((locals.new.array->int_low + locals.new.array->ext_size + 1) < locals.new.array->int_size) {
        locals.new.array->store->data[locals.new.array->int_low + locals.new.array->ext_size] = locals.elt.num;
        locals.new.array->ext_size++; locals.new.array->ext_high++;}
    else {
        locals.err = arrayOPaddh(locals.new, locals.elt);
        if (locals.err != ERR_ok) goto ex_0;}
    }
    }

  LINE(447);
    {
    {
    ret_1->num = locals.new.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 split_tlist ****/


/**** BEGIN ITERATOR BODIES for split_tlist ****/

errcode split_tlist_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF loc;
    CLUREF new;
    CLUREF elt;
    CLUREF ch;
    CLUREF bcount;
    CLUREF tl;
    } *locals;
{
    locals->ch.num = iv_1.num;
    enter_iter_body_proc(437);

  FB_LINE(437);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    CLUREF T_1_4;
    T_1_2.ch = ',';
    T_1_3.num = (locals->ch.ch == T_1_2.ch)? true : false;
    T_1_1.num = T_1_3.num;
    if (T_1_3.num) {
        T_1_4.num = (locals->bcount.num == 0)? true : false;
        T_1_1.num = T_1_4.num;
    }
    if (T_1_1.num == true) {

  FB_LINE(438);
        {
        {
        if ((locals->new.array->int_low + locals->new.array->ext_size + 1) < locals->new.array->int_size) {
            locals->new.array->store->data[locals->new.array->int_low + locals->new.array->ext_size] = locals->elt.num;
            locals->new.array->ext_size++; locals->new.array->ext_high++;}
        else {
            locals->err = arrayOPaddh(locals->new, locals->elt);
            if (locals->err != ERR_ok) goto ex_0;}
        }
        }

  FB_LINE(439);
        {
        locals->elt = STR_;
        }

  FB_LINE(440);
        {signal(ERR_ok);}
        }
        }/* end if */

  FB_LINE(442);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.ch = '[';
    T_1_2.num = (locals->ch.ch == T_1_1.ch)? true : false;
    if (T_1_2.num == true) {
        {
        CLUREF T_2_1;
        T_2_1.num = locals->bcount.num + 1;
         if ((T_2_1.num > 0 && locals->bcount.num < 0 && 1 < 0) || 
             (T_2_1.num < 0 && locals->bcount.num > 0 && 1 > 0)) {
            locals->err = ERR_overflow;
            goto ex_0;}
        locals->bcount.num = T_2_1.num;
        }
        }
        }/* end if */

  FB_LINE(443);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.ch = ']';
    T_1_2.num = (locals->ch.ch == T_1_1.ch)? true : false;
    if (T_1_2.num == true) {
        {
        CLUREF T_2_1;
        T_2_1.num = locals->bcount.num - 1;
         if ((T_2_1.num >= 0 && locals->bcount.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && locals->bcount.num > 0 && (-1) > 0)) {
            locals->err = ERR_overflow;
            goto ex_0;}
        locals->bcount.num = T_2_1.num;
        }
        }
        }/* end if */

  FB_LINE(444);
    {
    CLUREF T_1_1;
    locals->err = stringOPappend(locals->elt, locals->ch, &T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    locals->elt.num = T_1_1.num;
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end split_tlist_IB_1 */

/**** END ITERATOR BODIES for split_tlist ****/


extern errcode oneofOPmake_11();
extern errcode oneofOPmake_12();
CLUREF STR__133;
static int dptype_own_init = 0;

/**** BEGIN PROCEDURE dptype ****/

errcode dptype(tstr, ret_1)
CLUREF tstr;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF loc;
    CLUREF tname;
    CLUREF sparms;
    CLUREF slist;
    CLUREF dlist;
    CLUREF each_s;
    CLUREF tparms;
    CLUREF tlist;
        if (dptype_own_init == 0) {
        stringOPcons("[", CLU_1, CLU_1, &STR__133);
        stringOPcons("record", CLU_1, CLU_6, &STR_record);
        stringOPcons("struct", CLU_1, CLU_6, &STR_struct);
        stringOPcons("oneof", CLU_1, CLU_5, &STR_oneof);
        stringOPcons("variant", CLU_1, CLU_7, &STR_variant);
        dptype_own_init = 1;
    }
    enter_proc(450);

  LINE(451);
    {
    CLUREF T_1_1;
    err = strip_blanks(tstr, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    tstr.num = T_1_1.num;
    }

  LINE(452);
    {
        {CLUREF T_1_1;
        err = stringOPindexs(STR__133, tstr, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        loc.num = T_1_1.num;
        }
        }

  LINE(453);
    {
    CLUREF T_1_1;
    T_1_1.num = (loc.num == 0)? true : false;
    if (T_1_1.num == true) {
        {
        {
        CLUREF T_2_1;
        CellAlloc(6, tstr.num, T_2_1);
        ret_1->num = T_2_1.num;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(454);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        T_1_1.num = loc.num - 1;
         if ((T_1_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
             (T_1_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPsubstr(tstr, CLU_1, T_1_1, &T_1_2);
        if (err != ERR_ok) goto ex_0;
        tname.num = T_1_2.num;
        }
        }

  LINE(455);
    {
    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_4.num = ((tname.str->size != STR_record.str->size)? false :
        !(bcmp(tname.str->data, STR_record.str->data, tname.str->size)));
    T_1_3.num = T_1_4.num;
    if (!T_1_4.num) {
        T_1_5.num = ((tname.str->size != STR_struct.str->size)? false :
            !(bcmp(tname.str->data, STR_struct.str->data, tname.str->size)));
        T_1_3.num = T_1_5.num;
    }
    T_1_2.num = T_1_3.num;
    if (!T_1_3.num) {
        T_1_6.num = ((tname.str->size != STR_oneof.str->size)? false :
            !(bcmp(tname.str->data, STR_oneof.str->data, tname.str->size)));
        T_1_2.num = T_1_6.num;
    }
    T_1_1.num = T_1_2.num;
    if (!T_1_2.num) {
        T_1_7.num = ((tname.str->size != STR_variant.str->size)? false :
            !(bcmp(tname.str->data, STR_variant.str->data, tname.str->size)));
        T_1_1.num = T_1_7.num;
    }
    if (T_1_1.num == true) {

  LINE(457);
        {
            {CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = loc.num - 1;
             if ((T_2_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
                 (T_2_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            err = stringOPrest(tstr, T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            sparms.num = T_2_2.num;
            }
            }

  LINE(458);
        {
            {CLUREF T_2_1;
            err = split_tlist(sparms, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            slist.num = T_2_1.num;
            }
            }

  LINE(459);
        {
            {CLUREF T_2_1;
            err = sequenceOPnew(&T_2_1);
            if (err != ERR_ok) goto ex_0;
            dlist.num = T_2_1.num;
            }
            }

  LINE(460);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
            T_2_2.num = slist.array->ext_high; 
            T_2_3 = slist;
            for (T_2_1.num = slist.array->ext_low; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                if (T_2_1.num > T_2_3.array->ext_high || T_2_1.num < T_2_3.array->ext_low) {
                    err = ERR_failure;
                    elist[0].str = array_bounds_exception_STRING;
                    goto ex_0;}
                each_s.num = T_2_3.array->store->data[T_2_1.num - T_2_3.array->ext_low + T_2_3.array->int_low];

  LINE(461);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                err = dpfspec(each_s, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = sequenceOPaddh(dlist, T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                dlist.num = T_3_2.num;
                }
            }
        }
        end_inline_for_1:;

  LINE(463);
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        RecordAlloc(2, T_2_1);
        T_2_1.vec->data[0]  = tname.num;
        T_2_2.num = dlist.num;
        T_2_1.vec->data[1]  = T_2_2.num;
        CellAlloc(11, T_2_1.num, T_2_3);
        ret_1->num = T_2_3.num;
        }
        {signal (ERR_ok);}}
        }
    else {

  LINE(465);
        {
            {CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = loc.num - 1;
             if ((T_2_1.num >= 0 && loc.num < 0 && (-1) < 0) || 
                 (T_2_1.num <= 0 && loc.num > 0 && (-1) > 0)) {
                err = ERR_overflow;
                goto ex_0;}
            err = stringOPrest(tstr, T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            tparms.num = T_2_2.num;
            }
            }

  LINE(466);
        {
            {CLUREF T_2_1;
            err = split_tlist(tparms, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            tlist.num = T_2_1.num;
            }
            }

  LINE(467);
        {
            {CLUREF T_2_1;
            err = sequenceOPnew(&T_2_1);
            if (err != ERR_ok) goto ex_0;
            dlist.num = T_2_1.num;
            }
            }

  LINE(468);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
            T_2_2.num = tlist.array->ext_high; 
            T_2_3 = tlist;
            for (T_2_1.num = tlist.array->ext_low; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                if (T_2_1.num > T_2_3.array->ext_high || T_2_1.num < T_2_3.array->ext_low) {
                    err = ERR_failure;
                    elist[0].str = array_bounds_exception_STRING;
                    goto ex_0;}
                each_s.num = T_2_3.array->store->data[T_2_1.num - T_2_3.array->ext_low + T_2_3.array->int_low];

  LINE(469);
                {
                CLUREF T_3_1;
                CLUREF T_3_2;
                err = dptype(each_s, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = sequenceOPaddh(dlist, T_3_1, &T_3_2);
                if (err != ERR_ok) goto ex_0;
                dlist.num = T_3_2.num;
                }
            }
        }
        end_inline_for_2:;

  LINE(471);
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CLUREF T_2_3;
        RecordAlloc(2, T_2_1);
        T_2_1.vec->data[0]  = tname.num;
        T_2_2.num = dlist.num;
        T_2_1.vec->data[1]  = T_2_2.num;
        CellAlloc(12, T_2_1.num, T_2_3);
        ret_1->num = T_2_3.num;
        }
        {signal (ERR_ok);}}
        }}/* end if */
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE dptype ****/


extern errcode remblank();
extern errcode intOPfrom_to_by();

/**** BEGIN PROCEDURE strip_blanks ****/

errcode strip_blanks(s, ret_1)
CLUREF s;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF count;
    CLUREF sz;
    CLUREF i;
    enter_proc(475);

  LINE(478);
    {
    CLUREF T_1_1;
    err = remblank(s, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    s.num = T_1_1.num;
    }

  LINE(481);
    {
        {count.num = 0;
        }
        }

  LINE(482);
    {
        {CLUREF T_1_1;
        err = stringOPsize(s, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        sz.num = T_1_1.num;
        }
        }

  LINE(483);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
        T_1_2.num = 1;
        T_1_3.num = -1;
        for (T_1_1.num = sz.num; ((T_1_3.num == 0) || ((T_1_3.num > 0)? (T_1_1.num <= T_1_2.num) : (T_1_1.num >= T_1_2.num))); T_1_1.num += T_1_3.num) {
            i.num = T_1_1.num;

  LINE(484);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            err = stringOPfetch(s, i, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            T_2_2.ch = ' ';
            T_2_3.num = (T_2_1.ch == T_2_2.ch)? true : false;
            if (T_2_3.num == true) {
                {
                CLUREF T_3_1;
                T_3_1.num = count.num + 1;
                 if ((T_3_1.num > 0 && count.num < 0 && 1 < 0) || 
                     (T_3_1.num < 0 && count.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_0;}
                count.num = T_3_1.num;
                }
                }
            else {

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

  LINE(487);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = sz.num - count.num;
     if ((T_1_1.num >= 0 && sz.num < 0 && (-count.num) < 0) || 
         (T_1_1.num <= 0 && sz.num > 0 && (-count.num) > 0)) {
        err = ERR_overflow;
        goto ex_0;}
    err = stringOPsubstr(s, CLU_1, T_1_1, &T_1_2);
    if (err != ERR_ok) goto ex_0;
    s.num = T_1_2.num;
    }

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

/**** END PROCEDURE strip_blanks ****/


/**** BEGIN CLUSTER src ****/

extern errcode file_nameOPcreate();
extern errcode streamOPclose();
extern errcode file_nameOPparse();
extern errcode srcOPfind_module();
extern errcode streamOPgetl();
extern errcode streamOPputl();
extern errcode streamOPopen();
extern errcode _environ();
extern errcode streamOPputs();
extern errcode intOPunparse();
CLUREF STR__012Not_040that_040many_040lines_040in_040the_040file_040_0501_051_012;
CLUREF STR_read;
CLUREF STR_pclu;
CLUREF STR_CLUHOME;
CLUREF STR__012Can_047t_040open_040file_072_040;
CLUREF STR__012;
CLUREF STR__040or_040;
CLUREF STR__012Not_040that_040many_040lines_040in_040the_040file_040_0502_051_012;
CLUREF STR__052_076;
CLUREF STR__040_040;
CLUREF STR__072_011;
CLUREF STR__044;
CLUREF STR_OP;
CLUREF STR_cluster;
CLUREF STR_proc;
CLUREF STR_iter;
static int src_own_init = 0;
OWN_req src_ownreqs = {0,0};
CLUREF srcOPcurrent_file_name;
CLUREF srcOPcurrent_module;
CLUREF srcOPcurrent_file;
CLUREF srcOPcurrent_line;
CLUREF srcOPstream_exists;
CLUREF srcOPcurrent_stream;
errcode src_own_init_proc()
{
    errcode err;
    enter_own_init_proc();
        if (src_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("\nNot that many lines in the file (1)\n", CLU_1, CLU_37, &STR__012Not_040that_040many_040lines_040in_040the_040file_040_0501_051_012);
        stringOPcons("read", CLU_1, CLU_4, &STR_read);
        stringOPcons("pclu", CLU_1, CLU_4, &STR_pclu);
        stringOPcons("CLUHOME", CLU_1, CLU_7, &STR_CLUHOME);
        stringOPcons("\nCan\'t open file: ", CLU_1, CLU_18, &STR__012Can_047t_040open_040file_072_040);
        stringOPcons("\n", CLU_1, CLU_1, &STR__012);
        stringOPcons(" or ", CLU_1, CLU_4, &STR__040or_040);
        stringOPcons("\nNot that many lines in the file (2)\n", CLU_1, CLU_37, &STR__012Not_040that_040many_040lines_040in_040the_040file_040_0502_051_012);
        stringOPcons("*>", CLU_1, CLU_2, &STR__052_076);
        stringOPcons("  ", CLU_1, CLU_2, &STR__040_040);
        stringOPcons(":\t", CLU_1, CLU_2, &STR__072_011);
        stringOPcons("$", CLU_1, CLU_1, &STR__044);
        stringOPcons("OP", CLU_1, CLU_2, &STR_OP);
        stringOPcons("cluster", CLU_1, CLU_7, &STR_cluster);
        stringOPcons("proc", CLU_1, CLU_4, &STR_proc);
        stringOPcons("iter", CLU_1, CLU_4, &STR_iter);
        src_own_init = 1;
        {
            {srcOPcurrent_file_name = STR_;
            }
            }
        {
            {srcOPcurrent_module = STR_;
            }
            }
        {
            {CLUREF T_0_1;
            err = file_nameOPcreate(STR_, STR_, STR_, STR_, &T_0_1);
            if (err != ERR_ok) goto ex_0;
            srcOPcurrent_file.num = T_0_1.num;
            }
            }
        {
            {srcOPcurrent_line.num = -1;
            }
            }
        {
            {srcOPstream_exists.tf = false;
            }
            }
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(err); {signal(ERR_failure);}
        }
    }


/**** BEGIN PROCEDURE set_context ****/

errcode srcOPset_context(fn, mod)
CLUREF fn;
CLUREF mod;
    {
    errcode err;
    errcode ecode2;
        if (src_own_init == 0) {
            err = src_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(500);

  LINE(501);
    {
    if (srcOPstream_exists.num == true) {
        {
        err = streamOPclose(srcOPcurrent_stream);
        if (err != ERR_ok) goto ex_0;
        }
        {
        srcOPstream_exists.tf = false;
        }
        }
        }/* end if */

  LINE(502);
    {
    srcOPcurrent_file_name.num = fn.num;
    }

  LINE(503);
    {
    srcOPcurrent_module.num = mod.num;
    }

  LINE(504);
    {
    CLUREF T_1_1;
    err = file_nameOPparse(fn, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    srcOPcurrent_file.num = T_1_1.num;
    }

  LINE(505);
    {
    CLUREF T_2_1;
    err = srcOPfind_module(fn, mod, &T_2_1);
    if (err != ERR_ok) goto ex_1;
    srcOPcurrent_line.num = T_2_1.num;
    }
    goto end_1;
    ex_1:
        if (err == ERR_not_found) {signal(ERR_not_found);}
        else {
            goto ex_0;}
    end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE set_context ****/

static int srcOPget_context_own_init = 0;

/**** BEGIN PROCEDURE get_context ****/

errcode srcOPget_context(ret_1, ret_2, ret_3)
CLUREF *ret_1;
CLUREF *ret_2;
CLUREF *ret_3;
    {
    errcode err;
    errcode ecode2;
        if (srcOPget_context_own_init == 0) {
        if (src_own_init == 0) {
            err = src_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        srcOPget_context_own_init = 1;
    }
    enter_proc(509);

  LINE(510);
    {
    CLUREF T_1_1;
    T_1_1.num = ((srcOPcurrent_file_name.str->size != STR_.str->size)? false :
        !(bcmp(srcOPcurrent_file_name.str->data, STR_.str->data, srcOPcurrent_file_name.str->size)));
    if (T_1_1.num == true) {
        {
        {signal (ERR_not_found);}}
        }
        }/* end if */

  LINE(511);
    {
    {
    ret_1->num = srcOPcurrent_file_name.num;
    }
    {
    ret_2->num = srcOPcurrent_module.num;
    }
    {
    ret_3->num = srcOPcurrent_line.num;
    }
    {signal (ERR_ok);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_context ****/

static int srcOPlist_own_init = 0;

/**** BEGIN PROCEDURE list ****/

errcode srcOPlist(tyo, fname, mod, first_line, last_line, flag_line, number, flag)
CLUREF tyo;
CLUREF fname;
CLUREF mod;
CLUREF first_line;
CLUREF last_line;
CLUREF flag_line;
CLUREF number;
CLUREF flag;
    {
    errcode err;
    errcode ecode2;
    CLUREF l;
    CLUREF i;
    CLUREF probable_file;
    CLUREF newfn;
    CLUREF loc;
    CLUREF trailer;
        if (srcOPlist_own_init == 0) {
        if (src_own_init == 0) {
            err = src_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        srcOPlist_own_init = 1;
    }
    enter_proc(514);

  LINE(523);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    CLUREF T_1_3;
    T_1_2.num = ((mod.str->size != srcOPcurrent_module.str->size)? false :
        !(bcmp(mod.str->data, srcOPcurrent_module.str->data, mod.str->size)));
    T_1_1.num = T_1_2.num;
    if (T_1_2.num) {
        T_1_3.num = (first_line.num > srcOPcurrent_line.num)? true : false;
        T_1_1.num = T_1_3.num;
    }
    if (T_1_1.num == true) {

  LINE(525);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
            T_3_1.num = srcOPcurrent_line.num + 1;
             if ((T_3_1.num > 0 && srcOPcurrent_line.num < 0 && 1 < 0) || 
                 (T_3_1.num < 0 && srcOPcurrent_line.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            T_3_2.num = first_line.num - 1;
             if ((T_3_2.num >= 0 && first_line.num < 0 && (-1) < 0) || 
                 (T_3_2.num <= 0 && first_line.num > 0 && (-1) > 0)) {
                err = ERR_overflow;
                goto ex_1;}
            T_3_4.num = T_3_2.num;
            for (T_3_3.num = T_3_1.num; T_3_3.num <= T_3_4.num; T_3_3.num++) {
                i.num = T_3_3.num;

  LINE(526);
                {
                CLUREF T_4_1;
                err = streamOPgetl(srcOPcurrent_stream, &T_4_1);
                if (err != ERR_ok) goto ex_1;
                l.num = T_4_1.num;
                }
            }
        }
        end_inline_for_1:;
            goto end_1;
            ex_1:
                if ((err == ERR_end_of_file)) {

  LINE(529);
                    {
                    err = streamOPputl(tyo, STR__012Not_040that_040many_040lines_040in_040the_040file_040_0501_051_012);
                    if (err != ERR_ok) goto ex_0;
                    }
                }
                else {
                    goto ex_0;
                }
            end_1:;
        }
    else {

  LINE(532);
        {
        if (srcOPstream_exists.num == true) {

  LINE(533);
            {
            err = streamOPclose(srcOPcurrent_stream);
            if (err != ERR_ok) goto ex_0;
            }
            }
            }/* end if */

  LINE(535);
        {
            {CLUREF T_2_1;
            err = file_nameOPparse(fname, &T_2_1);
            if (err != ERR_ok) goto ex_0;
            probable_file.num = T_2_1.num;
            }
            }

  LINE(536);
        {
        CLUREF T_3_1;
        err = streamOPopen(probable_file, STR_read, &T_3_1);
        if (err != ERR_ok) goto ex_2;
        srcOPcurrent_stream.num = T_3_1.num;
        }
            goto end_2;
            ex_2:
                if ((err == ERR_not_possible)) {

  LINE(538);
                    {
                        {newfn = STR_;
                        }
                        }

  LINE(539);
                    {

  LINE(540);
                        {
                            {CLUREF T_5_1;
                            err = stringOPindexs(STR_pclu, fname, &T_5_1);
                            if (err != ERR_ok) goto ex_3;
                            loc.num = T_5_1.num;
                            }
                            }

  LINE(541);
                        {
                            {CLUREF T_5_1;
                            err = stringOPrest(fname, loc, &T_5_1);
                            if (err != ERR_ok) goto ex_3;
                            trailer.num = T_5_1.num;
                            }
                            }

  LINE(542);
                        {
                        CLUREF T_5_1;
                        CLUREF T_5_2;
                        T_5_1.ch = '/';
                        err = stringOPindexc(T_5_1, trailer, &T_5_2);
                        if (err != ERR_ok) goto ex_3;
                        loc.num = T_5_2.num;
                        }

  LINE(543);
                        {
                        CLUREF T_5_1;
                        err = stringOPrest(trailer, loc, &T_5_1);
                        if (err != ERR_ok) goto ex_3;
                        trailer.num = T_5_1.num;
                        }

  LINE(544);
                        {
                        CLUREF T_5_1;
                        CLUREF T_5_2;
                        err = _environ(STR_CLUHOME, &T_5_1);
                        if (err != ERR_ok) goto ex_3;
                        err = stringOPconcat(T_5_1, trailer, &T_5_2);
                        if (err != ERR_ok) goto ex_3;
                        newfn.num = T_5_2.num;
                        }

  LINE(545);
                        {
                        CLUREF T_5_1;
                        err = file_nameOPparse(newfn, &T_5_1);
                        if (err != ERR_ok) goto ex_3;
                        probable_file.num = T_5_1.num;
                        }

  LINE(546);
                        {
                        CLUREF T_5_1;
                        err = streamOPopen(probable_file, STR_read, &T_5_1);
                        if (err != ERR_ok) goto ex_3;
                        srcOPcurrent_stream.num = T_5_1.num;
                        }
                        }
                        goto end_3;
                        ex_3:
                            {

  LINE(549);
                                {
                                CLUREF T_4_1;
                                T_4_1.num = ((newfn.str->size != STR_.str->size)? false :
                                    !(bcmp(newfn.str->data, STR_.str->data, newfn.str->size)));
                                if (T_4_1.num == true) {

  LINE(550);
                                    {
                                    CLUREF T_5_1;
                                    CLUREF T_5_2;
                                    err = stringOPconcat(STR__012Can_047t_040open_040file_072_040, fname, &T_5_1);
                                    if (err != ERR_ok) goto ex_0;
                                    err = stringOPconcat(T_5_1, STR__012, &T_5_2);
                                    if (err != ERR_ok) goto ex_0;
                                    err = streamOPputl(tyo, T_5_2);
                                    if (err != ERR_ok) goto ex_0;
                                    }
                                    }
                                else {

  LINE(553);
                                    {
                                    CLUREF T_5_1;
                                    CLUREF T_5_2;
                                    CLUREF T_5_3;
                                    CLUREF T_5_4;
                                    err = stringOPconcat(STR__012Can_047t_040open_040file_072_040, fname, &T_5_1);
                                    if (err != ERR_ok) goto ex_0;
                                    err = stringOPconcat(T_5_1, STR__040or_040, &T_5_2);
                                    if (err != ERR_ok) goto ex_0;
                                    err = stringOPconcat(T_5_2, newfn, &T_5_3);
                                    if (err != ERR_ok) goto ex_0;
                                    err = stringOPconcat(T_5_3, STR__012, &T_5_4);
                                    if (err != ERR_ok) goto ex_0;
                                    err = streamOPputl(tyo, T_5_4);
                                    if (err != ERR_ok) goto ex_0;
                                    }
                                    }}/* end if */

  LINE(556);
                                {
                                {signal (ERR_ok);}}
                            }
                        end_3:;
                }
                else {
                    goto ex_0;
                }
            end_2:;

  LINE(559);
        {
        srcOPcurrent_module.num = mod.num;
        }

  LINE(560);
        {
        srcOPcurrent_file_name.num = fname.num;
        }

  LINE(561);
        {
        srcOPcurrent_file.num = probable_file.num;
        }

  LINE(562);
        {
        srcOPstream_exists.tf = true;
        }

  LINE(563);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
            T_3_1.num = first_line.num - 1;
             if ((T_3_1.num >= 0 && first_line.num < 0 && (-1) < 0) || 
                 (T_3_1.num <= 0 && first_line.num > 0 && (-1) > 0)) {
                err = ERR_overflow;
                goto ex_4;}
            T_3_3.num = T_3_1.num;
            for (T_3_2.num = 1; T_3_2.num <= T_3_3.num; T_3_2.num++) {
                i.num = T_3_2.num;

  LINE(564);
                {
                CLUREF T_4_1;
                err = streamOPgetl(srcOPcurrent_stream, &T_4_1);
                if (err != ERR_ok) goto ex_4;
                l.num = T_4_1.num;
                }
            }
        }
        end_inline_for_2:;
            goto end_4;
            ex_4:
                if ((err == ERR_end_of_file)) {

  LINE(567);
                    {
                    err = streamOPputl(tyo, STR__012Not_040that_040many_040lines_040in_040the_040file_040_0502_051_012);
                    if (err != ERR_ok) goto ex_0;
                    }
                }
                else {
                    goto ex_0;
                }
            end_4:;
        }}/* end if */

  LINE(570);
    {
    CLUREF T_2_1;
    CLUREF T_2_2;
        T_2_2.num = last_line.num;
        for (T_2_1.num = first_line.num; T_2_1.num <= T_2_2.num; T_2_1.num++) {
            i.num = T_2_1.num;

  LINE(571);
            {
            CLUREF T_3_1;
            err = streamOPgetl(srcOPcurrent_stream, &T_3_1);
            if (err != ERR_ok) goto ex_5;
            l.num = T_3_1.num;
            }

  LINE(572);
            {
            if (flag.num == true) {

  LINE(573);
                {
                CLUREF T_4_1;
                T_4_1.num = (i.num == flag_line.num)? true : false;
                if (T_4_1.num == true) {

  LINE(575);
                    {
                    err = streamOPputs(tyo, STR__052_076);
                    if (err != ERR_ok) goto ex_5;
                    }
                    }
                else {

  LINE(577);
                    {
                    err = streamOPputs(tyo, STR__040_040);
                    if (err != ERR_ok) goto ex_5;
                    }
                    }}/* end if */
                }
                }/* end if */

  LINE(580);
            {
            if (number.num == true) {

  LINE(581);
                {
                CLUREF T_4_1;
                err = intOPunparse(i, &T_4_1);
                if (err != ERR_ok) goto ex_5;
                err = streamOPputs(tyo, T_4_1);
                if (err != ERR_ok) goto ex_5;
                }

  LINE(582);
                {
                err = streamOPputs(tyo, STR__072_011);
                if (err != ERR_ok) goto ex_5;
                }
                }
                }/* end if */

  LINE(584);
            {
            err = streamOPputl(tyo, l);
            if (err != ERR_ok) goto ex_5;
            }

  LINE(585);
            {
            srcOPcurrent_line.num = last_line.num;
            }
        }
    }
    end_inline_for_3:;
        goto end_5;
        ex_5:
            if ((err == ERR_end_of_file)) {
            }
            else {
                goto ex_0;
            }
        end_5:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE list ****/

static int srcOPfind_module_own_init = 0;

/**** BEGIN PROCEDURE find_module ****/

errcode srcOPfind_module(fname, mod, ret_1)
CLUREF fname;
CLUREF mod;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF fn;
    CLUREF temp_stream;
    CLUREF loc;
    CLUREF trailer;
    CLUREF oper;
    CLUREF sep;
    CLUREF sepsize;
    CLUREF i;
    CLUREF sz;
    CLUREF l;
    CLUREF l2;
    CLUREF index;
        if (srcOPfind_module_own_init == 0) {
        if (src_own_init == 0) {
            err = src_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        srcOPfind_module_own_init = 1;
    }
    enter_proc(593);

  LINE(595);
    {
        {CLUREF T_1_1;
        err = file_nameOPparse(fname, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        fn.num = T_1_1.num;
        }
        }

  LINE(596);
    {
        {CLUREF T_2_1;
        err = streamOPopen(fn, STR_read, &T_2_1);
        if (err != ERR_ok) goto ex_1;
        temp_stream.num = T_2_1.num;
        }
        }
        goto end_1;
        ex_1:
            if ((err == ERR_not_possible)) {

  LINE(598);
                {
                    {CLUREF T_2_1;
                    err = stringOPindexs(STR_pclu, fname, &T_2_1);
                    if (err != ERR_ok) goto ex_0;
                    loc.num = T_2_1.num;
                    }
                    }

  LINE(599);
                {
                    {CLUREF T_2_1;
                    err = stringOPrest(fname, loc, &T_2_1);
                    if (err != ERR_ok) goto ex_0;
                    trailer.num = T_2_1.num;
                    }
                    }

  LINE(600);
                {
                CLUREF T_2_1;
                CLUREF T_2_2;
                T_2_1.ch = '/';
                err = stringOPindexc(T_2_1, trailer, &T_2_2);
                if (err != ERR_ok) goto ex_0;
                loc.num = T_2_2.num;
                }

  LINE(601);
                {
                CLUREF T_2_1;
                err = stringOPrest(trailer, loc, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                trailer.num = T_2_1.num;
                }

  LINE(602);
                {
                CLUREF T_2_1;
                CLUREF T_2_2;
                CLUREF T_2_3;
                err = _environ(STR_CLUHOME, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                err = stringOPconcat(T_2_1, trailer, &T_2_2);
                if (err != ERR_ok) goto ex_0;
                err = file_nameOPparse(T_2_2, &T_2_3);
                if (err != ERR_ok) goto ex_0;
                fn.num = T_2_3.num;
                }

  LINE(603);
                {
                CLUREF T_2_1;
                err = streamOPopen(fn, STR_read, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                temp_stream.num = T_2_1.num;
                }
            }
            else {
                goto ex_0;
            }
        end_1:;

  LINE(607);
    {
        {oper = STR_;
        }
        }

  LINE(608);
    {
        {CLUREF T_1_1;
        err = stringOPindexs(STR__044, mod, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        sep.num = T_1_1.num;
        }
        }

  LINE(609);
    {
        {sepsize.num = 1;
        }
        }

  LINE(610);
    {
    CLUREF T_1_1;
    T_1_1.num = (sep.num == 0)? true : false;
    if (T_1_1.num == true) {

  LINE(611);
        {
        CLUREF T_2_1;
        err = stringOPindexs(STR_OP, mod, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        sep.num = T_2_1.num;
        }

  LINE(612);
        {
        sepsize.num = 2;
        }
        }
        }/* end if */

  LINE(614);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    T_1_1.num = (sep.num == 0)? true : false;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {

  LINE(615);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = sep.num + sepsize.num;
         if ((T_2_1.num > 0 && sep.num < 0 && sepsize.num < 0) || 
             (T_2_1.num < 0 && sep.num > 0 && sepsize.num > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPrest(mod, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        oper.num = T_2_2.num;
        }

  LINE(616);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.num = sep.num - 1;
         if ((T_2_1.num >= 0 && sep.num < 0 && (-1) < 0) || 
             (T_2_1.num <= 0 && sep.num > 0 && (-1) > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPsubstr(mod, CLU_1, T_2_1, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        mod.num = T_2_2.num;
        }
        }
        }/* end if */

  LINE(620);
    {
        {i.num = 1;
        }
        }

  LINE(621);
    {
        {CLUREF T_1_1;
        err = stringOPsize(mod, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        sz.num = T_1_1.num;
        }
        }

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

  LINE(623);
        {

  LINE(624);
            {
                {CLUREF T_4_1;
                err = streamOPgetl(temp_stream, &T_4_1);
                if (err != ERR_ok) goto ex_2;
                l.num = T_4_1.num;
                }
                }

  LINE(625);
            {
                {CLUREF T_4_1;
                err = remblank(l, &T_4_1);
                if (err != ERR_ok) goto ex_2;
                l2.num = T_4_1.num;
                }
                }

  LINE(626);
            {
                {CLUREF T_4_1;
                err = stringOPindexs(mod, l2, &T_4_1);
                if (err != ERR_ok) goto ex_2;
                index.num = T_4_1.num;
                }
                }

  LINE(627);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = (index.num == 1)? true : false;
            T_4_2.num = T_4_1.num ^ 1;
            if (T_4_2.num == true) {
                {
                CLUREF T_5_1;
                T_5_1.num = i.num + 1;
                 if ((T_5_1.num > 0 && i.num < 0 && 1 < 0) || 
                     (T_5_1.num < 0 && i.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_2;}
                i.num = T_5_1.num;
                }
                continue;
                }
                }/* end if */

  LINE(628);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = sz.num + 1;
             if ((T_4_1.num > 0 && sz.num < 0 && 1 < 0) || 
                 (T_4_1.num < 0 && sz.num > 0 && 1 > 0)) {
                err = ERR_overflow;
                goto ex_2;}
            err = stringOPrest(l2, T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_2;
            l2.num = T_4_2.num;
            }

  LINE(629);
            {
            CLUREF T_4_1;
            err = remblank(l2, &T_4_1);
            if (err != ERR_ok) goto ex_2;
            l2.num = T_4_1.num;
            }

  LINE(630);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            CLUREF T_4_4;
            err = stringOPfetch(l2, CLU_1, &T_4_1);
            if (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) {
                {
                CLUREF T_5_1;
                T_5_1.num = i.num + 1;
                 if ((T_5_1.num > 0 && i.num < 0 && 1 < 0) || 
                     (T_5_1.num < 0 && i.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_2;}
                i.num = T_5_1.num;
                }
                continue;
                }
                }/* end if */

  LINE(631);
            {
            CLUREF T_4_1;
            err = stringOPrest(l2, CLU_2, &T_4_1);
            if (err != ERR_ok) goto ex_2;
            l2.num = T_4_1.num;
            }

  LINE(632);
            {
            CLUREF T_4_1;
            err = remblank(l2, &T_4_1);
            if (err != ERR_ok) goto ex_2;
            l2.num = T_4_1.num;
            }

  LINE(633);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            T_4_1.num = ((oper.str->size != STR_.str->size)? false :
                !(bcmp(oper.str->data, STR_.str->data, oper.str->size)));
            T_4_2.num = T_4_1.num ^ 1;
            if (T_4_2.num == true) {

  LINE(635);
                {
                CLUREF T_5_1;
                err = stringOPindexs(STR_cluster, l2, &T_5_1);
                if (err != ERR_ok) goto ex_2;
                index.num = T_5_1.num;
                }

  LINE(636);
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                T_5_1.num = (index.num == 1)? true : false;
                T_5_2.num = T_5_1.num ^ 1;
                if (T_5_2.num == true) {
                    {
                    CLUREF T_6_1;
                    T_6_1.num = i.num + 1;
                     if ((T_6_1.num > 0 && i.num < 0 && 1 < 0) || 
                         (T_6_1.num < 0 && i.num > 0 && 1 > 0)) {
                        err = ERR_overflow;
                        goto ex_2;}
                    i.num = T_6_1.num;
                    }
                    continue;
                    }
                    }/* end if */
                }
            else {

  LINE(638);
                {
                CLUREF T_5_1;
                err = stringOPindexs(STR_proc, l2, &T_5_1);
                if (err != ERR_ok) goto ex_2;
                index.num = T_5_1.num;
                }

  LINE(639);
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                T_5_1.num = (index.num == 1)? true : false;
                T_5_2.num = T_5_1.num ^ 1;
                if (T_5_2.num == true) {
                    {
                    CLUREF T_6_1;
                    err = stringOPindexs(STR_iter, l2, &T_6_1);
                    if (err != ERR_ok) goto ex_2;
                    index.num = T_6_1.num;
                    }
                    }
                    }/* end if */

  LINE(640);
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                T_5_1.num = (index.num == 1)? true : false;
                T_5_2.num = T_5_1.num ^ 1;
                if (T_5_2.num == true) {
                    {
                    CLUREF T_6_1;
                    T_6_1.num = i.num + 1;
                     if ((T_6_1.num > 0 && i.num < 0 && 1 < 0) || 
                         (T_6_1.num < 0 && i.num > 0 && 1 > 0)) {
                        err = ERR_overflow;
                        goto ex_2;}
                    i.num = T_6_1.num;
                    }
                    continue;
                    }
                    }/* end if */
                }}/* end if */
            }
            goto end_2;
            ex_2:
                if ((err == ERR_end_of_file)) {

  LINE(643);
                    {
                    err = streamOPclose(temp_stream);
                    if (err != ERR_ok) goto ex_0;
                    }

  LINE(644);
                    {
                    {signal (ERR_not_found);}}
                }
                else {

  LINE(645);
                    {
                    CLUREF T_3_1;
                    T_3_1.num = i.num + 1;
                     if ((T_3_1.num > 0 && i.num < 0 && 1 < 0) || 
                         (T_3_1.num < 0 && i.num > 0 && 1 > 0)) {
                        err = ERR_overflow;
                        goto ex_0;}
                    i.num = T_3_1.num;
                    }
                    continue;
                }
            end_2:;

  LINE(647);
        goto end_while_1;
        }
        end_while_1:;

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

  LINE(651);
        {
        CLUREF T_2_1;
        err = stringOPsize(oper, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        sz.num = T_2_1.num;
        }

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

  LINE(653);
            {

  LINE(654);
                {
                    {CLUREF T_5_1;
                    err = streamOPgetl(temp_stream, &T_5_1);
                    if (err != ERR_ok) goto ex_3;
                    l.num = T_5_1.num;
                    }
                    }

  LINE(655);
                {
                    {CLUREF T_5_1;
                    err = remblank(l, &T_5_1);
                    if (err != ERR_ok) goto ex_3;
                    l2.num = T_5_1.num;
                    }
                    }

  LINE(656);
                {
                    {CLUREF T_5_1;
                    err = stringOPindexs(oper, l2, &T_5_1);
                    if (err != ERR_ok) goto ex_3;
                    index.num = T_5_1.num;
                    }
                    }

  LINE(657);
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                T_5_1.num = (index.num == 1)? true : false;
                T_5_2.num = T_5_1.num ^ 1;
                if (T_5_2.num == true) {
                    {
                    CLUREF T_6_1;
                    T_6_1.num = i.num + 1;
                     if ((T_6_1.num > 0 && i.num < 0 && 1 < 0) || 
                         (T_6_1.num < 0 && i.num > 0 && 1 > 0)) {
                        err = ERR_overflow;
                        goto ex_3;}
                    i.num = T_6_1.num;
                    }
                    continue;
                    }
                    }/* end if */

  LINE(658);
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                T_5_1.num = sz.num + 1;
                 if ((T_5_1.num > 0 && sz.num < 0 && 1 < 0) || 
                     (T_5_1.num < 0 && sz.num > 0 && 1 > 0)) {
                    err = ERR_overflow;
                    goto ex_3;}
                err = stringOPrest(l2, T_5_1, &T_5_2);
                if (err != ERR_ok) goto ex_3;
                l2.num = T_5_2.num;
                }

  LINE(659);
                {
                CLUREF T_5_1;
                err = remblank(l2, &T_5_1);
                if (err != ERR_ok) goto ex_3;
                l2.num = T_5_1.num;
                }

  LINE(660);
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                CLUREF T_5_3;
                CLUREF T_5_4;
                err = stringOPfetch(l2, CLU_1, &T_5_1);
                if (err != ERR_ok) goto ex_3;
                T_5_2.ch = '=';
                T_5_3.num = (T_5_1.ch == T_5_2.ch)? true : false;
                T_5_4.num = T_5_3.num ^ 1;
                if (T_5_4.num == true) {
                    {
                    CLUREF T_6_1;
                    T_6_1.num = i.num + 1;
                     if ((T_6_1.num > 0 && i.num < 0 && 1 < 0) || 
                         (T_6_1.num < 0 && i.num > 0 && 1 > 0)) {
                        err = ERR_overflow;
                        goto ex_3;}
                    i.num = T_6_1.num;
                    }
                    continue;
                    }
                    }/* end if */

  LINE(661);
                {
                CLUREF T_5_1;
                err = stringOPrest(l2, CLU_2, &T_5_1);
                if (err != ERR_ok) goto ex_3;
                l2.num = T_5_1.num;
                }

  LINE(662);
                {
                CLUREF T_5_1;
                err = remblank(l2, &T_5_1);
                if (err != ERR_ok) goto ex_3;
                l2.num = T_5_1.num;
                }

  LINE(663);
                {
                CLUREF T_5_1;
                err = stringOPindexs(STR_proc, l2, &T_5_1);
                if (err != ERR_ok) goto ex_3;
                index.num = T_5_1.num;
                }

  LINE(664);
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                T_5_1.num = (index.num == 1)? true : false;
                T_5_2.num = T_5_1.num ^ 1;
                if (T_5_2.num == true) {
                    {
                    CLUREF T_6_1;
                    err = stringOPindexs(STR_iter, l2, &T_6_1);
                    if (err != ERR_ok) goto ex_3;
                    index.num = T_6_1.num;
                    }
                    }
                    }/* end if */

  LINE(665);
                {
                CLUREF T_5_1;
                CLUREF T_5_2;
                T_5_1.num = (index.num == 1)? true : false;
                T_5_2.num = T_5_1.num ^ 1;
                if (T_5_2.num == true) {
                    {
                    CLUREF T_6_1;
                    T_6_1.num = i.num + 1;
                     if ((T_6_1.num > 0 && i.num < 0 && 1 < 0) || 
                         (T_6_1.num < 0 && i.num > 0 && 1 > 0)) {
                        err = ERR_overflow;
                        goto ex_3;}
                    i.num = T_6_1.num;
                    }
                    continue;
                    }
                    }/* end if */
                }
                goto end_3;
                ex_3:
                    if ((err == ERR_end_of_file)) {

  LINE(667);
                        {
                        err = streamOPclose(temp_stream);
                        if (err != ERR_ok) goto ex_0;
                        }

  LINE(668);
                        {
                        {signal (ERR_not_found);}}
                    }
                    else {

  LINE(669);
                        {
                        CLUREF T_4_1;
                        T_4_1.num = i.num + 1;
                         if ((T_4_1.num > 0 && i.num < 0 && 1 < 0) || 
                             (T_4_1.num < 0 && i.num > 0 && 1 > 0)) {
                            err = ERR_overflow;
                            goto ex_0;}
                        i.num = T_4_1.num;
                        }
                        continue;
                    }
                end_3:;

  LINE(671);
            goto end_while_2;
            }
            end_while_2:;
        }
        }/* end if */

  LINE(674);
    {
    err = streamOPclose(temp_stream);
    if (err != ERR_ok) goto ex_0;
    }

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

/**** END PROCEDURE find_module ****/

typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[4];
} src_OPS;

CLU_proc src_oe_find_module = {{0,0,0,0}, srcOPfind_module, 0};
CLU_proc src_oe_get_context = {{0,0,0,0}, srcOPget_context, 0};
CLU_proc src_oe_list = {{0,0,0,0}, srcOPlist, 0};
CLU_proc src_oe_set_context = {{0,0,0,0}, srcOPset_context, 0};

src_OPS src_ops_actual = {4, (OWNPTR)&src_own_init, (OWNPTR)&src_own_init, {
    {&src_oe_find_module, "find_module"},
    {&src_oe_get_context, "get_context"},
    {&src_oe_list, "list"},
    {&src_oe_set_context, "set_context"}}};

struct OPS *src_ops = (struct OPS *)&src_ops_actual;

/**** END CLUSTER src ****/

/**** BEGIN CLUSTER dvar ****/

extern errcode arrayOPnew();
extern errcode recordOPget_2();
extern errcode recordOPset_2();
static int dvar_own_init = 0;
OWN_req dvar_ownreqs = {0,0};
CLUREF dvarOPdvars;
errcode dvar_own_init_proc()
{
    errcode err;
    enter_own_init_proc();
        if (dvar_own_init == 0) {
        stringOPcons("true", CLU_1, CLU_4, &STR_true);
        stringOPcons("false", CLU_1, CLU_5, &STR_false);
        dvar_own_init = 1;
        {
            {CLUREF T_0_1;
            err = arrayOPnew(&T_0_1);
            if (err != ERR_ok) goto ex_0;
            dvarOPdvars.num = T_0_1.num;
            }
            }
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(err); {signal(ERR_failure);}
        }
    }

static int dvarOPget_value_own_init = 0;

/**** BEGIN PROCEDURE get_value ****/

errcode dvarOPget_value(nm, ret_1)
CLUREF nm;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF e;
    CLUREF c;
    CLUREF i;
    CLUREF b;
    CLUREF ch;
    CLUREF s;
    CLUREF r;
    CLUREF o;
        if (dvarOPget_value_own_init == 0) {
        if (dvar_own_init == 0) {
            err = dvar_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dvarOPget_value_own_init = 1;
    }
    enter_proc(689);

  LINE(691);
    {
    CLUREF T_1_1;
    T_1_1.num = ((nm.str->size != STR_true.str->size)? false :
        !(bcmp(nm.str->data, STR_true.str->data, nm.str->size)));
    if (T_1_1.num == true) {
        {
        {
        CLUREF T_2_1;
        T_2_1.num = true;
        ret_1->num = T_2_1.num;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(692);
    {
    CLUREF T_1_1;
    T_1_1.num = ((nm.str->size != STR_false.str->size)? false :
        !(bcmp(nm.str->data, STR_false.str->data, nm.str->size)));
    if (T_1_1.num == true) {
        {
        {
        CLUREF T_2_1;
        T_2_1.num = false;
        ret_1->num = T_2_1.num;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

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

  LINE(694);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = e.vec->data[0];
            T_2_2.num = ((T_2_1.str->size != nm.str->size)? false :
                !(bcmp(T_2_1.str->data, nm.str->data, T_2_1.str->size)));
            if (T_2_2.num == true) {

  LINE(695);
                {
                CLUREF T_3_1;
                T_3_1.num = e.vec->data[1];
                switch (T_3_1.cell->tag) {
                case 4: 
                     {CLUREF T_3_2;
                    T_3_2.num = T_3_1.cell->value;
                    c.num = T_3_2.num;

  LINE(697);
                        {
                        switch (c.cell->tag) {
                        case 3: 
                             {CLUREF T_4_1;
                            T_4_1.num = c.cell->value;
                            i.num = T_4_1.num;

  LINE(699);
                                {
                                {
                                CLUREF T_5_1;
                                T_5_1.num = i.num;
                                ret_1->num = T_5_1.num;
                                }
                                {signal (ERR_ok);}}
                                break;
                                }
                        case 1: 
                             {CLUREF T_4_2;
                            T_4_2.num = c.cell->value;
                            b.num = T_4_2.num;

  LINE(701);
                                {
                                {
                                CLUREF T_5_1;
                                T_5_1.num = b.num;
                                ret_1->num = T_5_1.num;
                                }
                                {signal (ERR_ok);}}
                                break;
                                }
                        case 4: 
                             {

  LINE(703);
                                {
                                {
                                CLUREF T_5_1;
                                T_5_1.num = nil;
                                ret_1->num = T_5_1.num;
                                }
                                {signal (ERR_ok);}}
                                break;
                                }
                        case 2: 
                             {CLUREF T_4_3;
                            T_4_3.num = c.cell->value;
                            ch.num = T_4_3.num;

  LINE(705);
                                {
                                {
                                CLUREF T_5_1;
                                T_5_1.num = ch.num;
                                ret_1->num = T_5_1.num;
                                }
                                {signal (ERR_ok);}}
                                break;
                                }
                        case 6: 
                             {CLUREF T_4_4;
                            T_4_4.num = c.cell->value;
                            s.num = T_4_4.num;

  LINE(707);
                                {
                                {
                                CLUREF T_5_1;
                                T_5_1.num = s.num;
                                ret_1->num = T_5_1.num;
                                }
                                {signal (ERR_ok);}}
                                break;
                                }
                        case 5: 
                             {CLUREF T_4_5;
                            T_4_5.num = c.cell->value;
                            r.num = T_4_5.num;

  LINE(709);
                                {
                                {
                                CLUREF T_5_1;
                                T_5_1.num = r.num;
                                ret_1->num = T_5_1.num;
                                }
                                {signal (ERR_ok);}}
                                break;
                                }
                        }
                        }
                        break;
                        }
                case 9: 
                     {CLUREF T_3_3;
                    T_3_3.num = T_3_1.cell->value;
                    o.num = T_3_3.num;

  LINE(712);
                        {
                        {
                        CLUREF T_4_1;
                        T_4_1.num = o.vec->data[1];
                        ret_1->num = T_4_1.num;
                        }
                        {signal (ERR_ok);}}
                        break;
                        }
                default: {
                }
                }
                }
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(717);
    {
    {signal (ERR_not_found);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_value ****/

static int dvarOPget_dexpr_own_init = 0;

/**** BEGIN PROCEDURE get_dexpr ****/

errcode dvarOPget_dexpr(nm, ret_1)
CLUREF nm;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF e;
        if (dvarOPget_dexpr_own_init == 0) {
        if (dvar_own_init == 0) {
            err = dvar_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dvarOPget_dexpr_own_init = 1;
    }
    enter_proc(720);

  LINE(721);
    {
    CLUREF T_1_1;
    T_1_1.num = ((nm.str->size != STR_true.str->size)? false :
        !(bcmp(nm.str->data, STR_true.str->data, nm.str->size)));
    if (T_1_1.num == true) {
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CellAlloc(1, true, T_2_1);
        CellAlloc(4, T_2_1.num, T_2_2);
        ret_1->num = T_2_2.num;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

  LINE(722);
    {
    CLUREF T_1_1;
    T_1_1.num = ((nm.str->size != STR_false.str->size)? false :
        !(bcmp(nm.str->data, STR_false.str->data, nm.str->size)));
    if (T_1_1.num == true) {
        {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        CellAlloc(1, false, T_2_1);
        CellAlloc(4, T_2_1.num, T_2_2);
        ret_1->num = T_2_2.num;
        }
        {signal (ERR_ok);}}
        }
        }/* end if */

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

  LINE(724);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = e.vec->data[0];
            T_2_2.num = ((T_2_1.str->size != nm.str->size)? false :
                !(bcmp(T_2_1.str->data, nm.str->data, T_2_1.str->size)));
            if (T_2_2.num == true) {
                {
                {
                CLUREF T_3_1;
                T_3_1.num = e.vec->data[1];
                ret_1->num = T_3_1.num;
                }
                {signal (ERR_ok);}}
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(726);
    {
    {signal (ERR_not_found);}}
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE get_dexpr ****/


/**** BEGIN PROCEDURE set_value ****/

errcode dvarOPset_value(nm, val)
CLUREF nm;
CLUREF val;
    {
    errcode err;
    errcode ecode2;
    CLUREF e;
        if (dvar_own_init == 0) {
            err = dvar_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(729);

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

  LINE(731);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = e.vec->data[0];
            T_2_2.num = ((T_2_1.str->size != nm.str->size)? false :
                !(bcmp(T_2_1.str->data, nm.str->data, T_2_1.str->size)));
            if (T_2_2.num == true) {

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

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

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

/**** END PROCEDURE set_value ****/

typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[3];
} dvar_OPS;

CLU_proc dvar_oe_get_dexpr = {{0,0,0,0}, dvarOPget_dexpr, 0};
CLU_proc dvar_oe_get_value = {{0,0,0,0}, dvarOPget_value, 0};
CLU_proc dvar_oe_set_value = {{0,0,0,0}, dvarOPset_value, 0};

dvar_OPS dvar_ops_actual = {3, (OWNPTR)&dvar_own_init, (OWNPTR)&dvar_own_init, {
    {&dvar_oe_get_dexpr, "get_dexpr"},
    {&dvar_oe_get_value, "get_value"},
    {&dvar_oe_set_value, "set_value"}}};

struct OPS *dvar_ops = (struct OPS *)&dvar_ops_actual;

/**** END CLUSTER dvar ****/

/**** BEGIN CLUSTER alias ****/

extern errcode alias_IB_1();
extern errcode dbg_envOPdump();
extern errcode aliasOPexpand_alias_asst();
extern errcode stringOPc2s();
extern errcode aliasOPsubst();
CLUREF STR_No_040alias_040found_040for_040;
CLUREF STR_all;
CLUREF STR__040_040_040;
CLUREF STR__040;
static int alias_own_init = 0;
OWN_req alias_ownreqs = {0,0};
CLUREF aliasOPalias_list;
CLUREF aliasOPtyo;
CLUREF aliasOPexpansion_count;
errcode alias_own_init_proc()
{
    errcode err;
    enter_own_init_proc();
        if (alias_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("No alias found for ", CLU_1, CLU_19, &STR_No_040alias_040found_040for_040);
        stringOPcons("all", CLU_1, CLU_3, &STR_all);
        stringOPcons("   ", CLU_1, CLU_3, &STR__040_040_040);
        stringOPcons(" ", CLU_1, CLU_1, &STR__040);
        alias_own_init = 1;
        {
            {CLUREF T_0_1;
            err = arrayOPnew(&T_0_1);
            if (err != ERR_ok) goto ex_0;
            aliasOPalias_list.num = T_0_1.num;
            }
            }
        {
            {aliasOPexpansion_count.num = 0;
            }
            }
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(err); {signal(ERR_failure);}
        }
    }


/**** BEGIN PROCEDURE init ****/

errcode aliasOPinit(st)
CLUREF st;
    {
    errcode err;
    errcode ecode2;
        if (alias_own_init == 0) {
            err = alias_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(750);

  LINE(751);
    {
    aliasOPtyo.num = st.num;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE init ****/


/**** BEGIN PROCEDURE add_alias ****/

errcode aliasOPadd_alias(args, arglist)
CLUREF args;
CLUREF arglist;
    {
    errcode err;
    errcode ecode2;
    CLUREF new_al_nm;
    CLUREF loc;
    CLUREF new_al_val;
    CLUREF found;
    CLUREF nth_al;
        if (alias_own_init == 0) {
            err = alias_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(754);

  LINE(755);
    {
        {CLUREF T_1_1;
        if (1 < arglist.array->ext_low || 1 > arglist.array->ext_high ) {
            err = ERR_bounds;
            goto ex_0;}
        T_1_1.num = arglist.array->store->data[1 - arglist.array->ext_low + arglist.array->int_low];
        new_al_nm.num = T_1_1.num;
        }
        }

  LINE(756);
    {
        {CLUREF T_1_1;
        err = stringOPindexs(new_al_nm, args, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        loc.num = T_1_1.num;
        }
        }

  LINE(757);
    {
        {CLUREF T_1_1;
        CLUREF T_1_2;
        CLUREF T_1_3;
        err = stringOPsize(new_al_nm, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        T_1_2.num = loc.num + T_1_1.num;
         if ((T_1_2.num > 0 && loc.num < 0 && T_1_1.num < 0) || 
             (T_1_2.num < 0 && loc.num > 0 && T_1_1.num > 0)) {
            err = ERR_overflow;
            goto ex_0;}
        err = stringOPrest(args, T_1_2, &T_1_3);
        if (err != ERR_ok) goto ex_0;
        new_al_val.num = T_1_3.num;
        }
        }

  LINE(758);
    {
        {found.tf = false;
        }
        }

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

  LINE(760);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = nth_al.vec->data[0];
            T_2_2.num = ((new_al_nm.str->size != T_2_1.str->size)? false :
                !(bcmp(new_al_nm.str->data, T_2_1.str->data, new_al_nm.str->size)));
            if (T_2_2.num == true) {

  LINE(761);
                {
                nth_al.vec->data[1]  = new_al_val.num;
                }
                {
                found.tf = true;
                }
                goto end_inline_for_1;
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(763);
    {
    CLUREF T_1_1;
    T_1_1.num = found.num ^ 1;
    if (T_1_1.num == true) {

  LINE(764);
        {
        CLUREF T_2_1;
        RecordAlloc(2, T_2_1);
        T_2_1.vec->data[0]  = new_al_nm.num;
        T_2_1.vec->data[1]  = new_al_val.num;
        {
        if ((aliasOPalias_list.array->int_low + aliasOPalias_list.array->ext_size + 1) < aliasOPalias_list.array->int_size) {
            aliasOPalias_list.array->store->data[aliasOPalias_list.array->int_low + aliasOPalias_list.array->ext_size] = T_2_1.num;
            aliasOPalias_list.array->ext_size++; aliasOPalias_list.array->ext_high++;}
        else {
            err = arrayOPaddh(aliasOPalias_list, T_2_1);
            if (err != ERR_ok) goto ex_0;}
        }
        }
        }
        }/* end if */

  LINE(766);
    {
    err = dbg_envOPdump();
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE add_alias ****/

static int aliasOPremove_alias_own_init = 0;

/**** BEGIN PROCEDURE remove_alias ****/

errcode aliasOPremove_alias(als)
CLUREF als;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_al;
    CLUREF found;
    CLUREF nth_al;
    CLUREF new_alias_list;
        if (aliasOPremove_alias_own_init == 0) {
        if (alias_own_init == 0) {
            err = alias_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        aliasOPremove_alias_own_init = 1;
    }
    enter_proc(769);

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

  LINE(771);
            {
                {found.tf = false;
                }
                }

  LINE(772);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
                T_2_2.num = aliasOPalias_list.array->ext_high; 
                T_2_3 = aliasOPalias_list;
                for (T_2_1.num = aliasOPalias_list.array->ext_low; T_2_1.num <= T_2_2.num; T_2_1.num++) {
                    if (T_2_1.num > T_2_3.array->ext_high || T_2_1.num < T_2_3.array->ext_low) {
                        err = ERR_failure;
                        elist[0].str = array_bounds_exception_STRING;
                        goto ex_0;}
                    nth_al.num = T_2_3.array->store->data[T_2_1.num - T_2_3.array->ext_low + T_2_3.array->int_low];

  LINE(773);
                    {
                    CLUREF T_3_1;
                    CLUREF T_3_2;
                    T_3_1.num = nth_al.vec->data[0];
                    T_3_2.num = ((each_al.str->size != T_3_1.str->size)? false :
                        !(bcmp(each_al.str->data, T_3_1.str->data, each_al.str->size)));
                    if (T_3_2.num == true) {

  LINE(774);
                        {
                        nth_al.vec->data[1]  = STR_.num;
                        }
                        {
                        found.tf = true;
                        }
                        goto end_inline_for_2;
                        }
                        }/* end if */
                }
            }
            end_inline_for_2:;

  LINE(776);
            {
            CLUREF T_2_1;
            T_2_1.num = found.num ^ 1;
            if (T_2_1.num == true) {

  LINE(777);
                {
                CLUREF T_3_1;
                err = stringOPconcat(STR_No_040alias_040found_040for_040, each_al, &T_3_1);
                if (err != ERR_ok) goto ex_0;
                err = streamOPputl(aliasOPtyo, T_3_1);
                if (err != ERR_ok) goto ex_0;
                }
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

  LINE(780);
    {
        {CLUREF T_1_1;
        err = arrayOPnew(&T_1_1);
        if (err != ERR_ok) goto ex_0;
        new_alias_list.num = T_1_1.num;
        }
        }

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

  LINE(782);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = nth_al.vec->data[1];
            err = stringOPempty(T_2_1, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            if (T_2_2.num == true) {
                continue;
                }
                }/* end if */

  LINE(783);
            {
            {
            if ((new_alias_list.array->int_low + new_alias_list.array->ext_size + 1) < new_alias_list.array->int_size) {
                new_alias_list.array->store->data[new_alias_list.array->int_low + new_alias_list.array->ext_size] = nth_al.num;
                new_alias_list.array->ext_size++; new_alias_list.array->ext_high++;}
            else {
                err = arrayOPaddh(new_alias_list, nth_al);
                if (err != ERR_ok) goto ex_0;}
            }
            }
        }
    }
    end_inline_for_3:;

  LINE(785);
    {
    aliasOPalias_list.num = new_alias_list.num;
    }

  LINE(786);
    {
    err = dbg_envOPdump();
    if (err != ERR_ok) goto ex_0;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE remove_alias ****/

static int aliasOPshow_alias_own_init = 0;

/**** BEGIN PROCEDURE show_alias ****/

errcode aliasOPshow_alias(al)
CLUREF al;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_al;
        if (aliasOPshow_alias_own_init == 0) {
        if (alias_own_init == 0) {
            err = alias_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        aliasOPshow_alias_own_init = 1;
    }
    enter_proc(789);

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

  LINE(791);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            T_2_2.num = ((al.str->size != STR_all.str->size)? false :
                !(bcmp(al.str->data, STR_all.str->data, al.str->size)));
            T_2_1.num = T_2_2.num;
            if (!T_2_2.num) {
                T_2_3.num = each_al.vec->data[0];
                T_2_4.num = ((T_2_3.str->size != al.str->size)? false :
                    !(bcmp(T_2_3.str->data, al.str->data, T_2_3.str->size)));
                T_2_1.num = T_2_4.num;
            }
            if (T_2_1.num == true) {

  LINE(792);
                {
                CLUREF T_3_1;
                T_3_1.num = each_al.vec->data[0];
                err = streamOPputs(aliasOPtyo, T_3_1);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(793);
                {
                err = streamOPputs(aliasOPtyo, STR__040_040_040);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(794);
                {
                CLUREF T_3_1;
                T_3_1.num = each_al.vec->data[1];
                err = streamOPputl(aliasOPtyo, T_3_1);
                if (err != ERR_ok) goto ex_0;
                }
                }
                }/* end if */
        }
    }
    end_inline_for_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE show_alias ****/


/**** BEGIN PROCEDURE expand_alias ****/

errcode aliasOPexpand_alias(line, ret_1)
CLUREF line;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
        if (alias_own_init == 0) {
            err = alias_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(799);

  LINE(800);
    {
    aliasOPexpansion_count.num = 0;
    }

  LINE(801);
    {
    {
    CLUREF T_2_1;
    err = aliasOPexpand_alias_asst(line, &T_2_1);
    if (err != ERR_ok) goto ex_1;
    ret_1->num = T_2_1.num;
    }
    {signal (ERR_ok);}}
    goto end_1;
    ex_1:
        if (errcmp(err, "ERR_too_many")) {signal("ERR_too_many");}
        else {
            goto ex_0;}
    end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE expand_alias ****/

extern errcode aliasOPexpand_alias_asst_IB_1();
static int aliasOPexpand_alias_asst_own_init = 0;

/**** BEGIN PROCEDURE expand_alias_asst ****/

errcode aliasOPexpand_alias_asst(line, ret_1)
CLUREF line;
CLUREF *ret_1;
    {
    struct {
        errcode err;
        errcode ecode2;
        CLUREF output_line;
        CLUREF tok;
        CLUREF tok_alert;
        CLUREF c;
        CLUREF line;
        } locals;
    locals.line = line;
        if (aliasOPexpand_alias_asst_own_init == 0) {
        if (alias_own_init == 0) {
            locals.err = alias_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        aliasOPexpand_alias_asst_own_init = 1;
    }
    enter_proc(805);

  LINE(813);
    {
    CLUREF T_1_1;
    T_1_1.num = aliasOPexpansion_count.num + 1;
     if ((T_1_1.num > 0 && aliasOPexpansion_count.num < 0 && 1 < 0) || 
         (T_1_1.num < 0 && aliasOPexpansion_count.num > 0 && 1 > 0)) {
        locals.err = ERR_overflow;
        goto ex_0;}
    aliasOPexpansion_count.num = T_1_1.num;
    }

  LINE(814);
    {
    CLUREF T_1_1;
    T_1_1.num = (aliasOPexpansion_count.num > 10)? true : false;
    if (T_1_1.num == true) {
        {
        {signal ("ERR_too_many");}}
        }
        }/* end if */

  LINE(815);
    {
        {locals.output_line = STR_;
        }
        }

  LINE(816);
    {
        {locals.tok = STR_;
        }
        }

  LINE(817);
    {
        {locals.tok_alert.tf = true;
        }
        }

  LINE(818);
    {
        locals.err = stringOPchars(locals.line, aliasOPexpand_alias_asst_IB_1, &locals, &locals.ecode2);
        if (locals.err == ERR_iterbodyreturn) {
        ret_1->num = elist[0].num;
        signal(ERR_ok);}
        if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
        if (locals.err == ERR_break) locals.err = ERR_ok;
        if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
        if (locals.err != ERR_ok) goto ex_0;
        }

  LINE(836);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    locals.err = stringOPempty(locals.tok, &T_1_1);
    if (locals.err != ERR_ok) goto ex_0;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        locals.err = aliasOPsubst(locals.tok, &T_2_1);
        if (locals.err != ERR_ok) goto ex_0;
        locals.err = stringOPconcat(locals.output_line, T_2_1, &T_2_2);
        if (locals.err != ERR_ok) goto ex_0;
        locals.output_line.num = T_2_2.num;
        }
        }
        }/* end if */

  LINE(838);
    {
    CLUREF T_1_1;
    T_1_1.num = ((locals.output_line.str->size != locals.line.str->size)? false :
        !(bcmp(locals.output_line.str->data, locals.line.str->data, locals.output_line.str->size)));
    if (T_1_1.num == true) {
        {
        {
        ret_1->num = locals.output_line.num;
        }
        {signal (ERR_ok);}}
        }
    else {

  LINE(839);
        {
        {
        CLUREF T_3_1;
        locals.err = aliasOPexpand_alias_asst(locals.output_line, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        ret_1->num = T_3_1.num;
        }
        {signal (ERR_ok);}}
        goto end_1;
        ex_1:
            if (errcmp(locals.err, "ERR_too_many")) {signal("ERR_too_many");}
            else {
                goto ex_0;}
        end_1:;
        }}/* 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: elist[0].str = no_return_values_STRING;
        {signal(ERR_failure);}
    }

/**** END PROCEDURE expand_alias_asst ****/


/**** BEGIN ITERATOR BODIES for expand_alias_asst ****/

errcode aliasOPexpand_alias_asst_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF output_line;
    CLUREF tok;
    CLUREF tok_alert;
    CLUREF c;
    CLUREF line;
    } *locals;
{
    locals->c.num = iv_1.num;
    enter_iter_body_proc(819);

  FB_LINE(819);
    {
    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;
    T_1_1.num = locals->tok_alert.num;
    if (locals->tok_alert.num) {
        T_1_5.ch = 'a';
        locals->err = charOPge(locals->c, T_1_5, &T_1_6);
        if (locals->err != ERR_ok) goto ex_0;
        T_1_4.num = T_1_6.num;
        if (T_1_6.num) {
            T_1_7.ch = 'z';
            locals->err = charOPle(locals->c, T_1_7, &T_1_8);
            if (locals->err != ERR_ok) goto ex_0;
            T_1_4.num = T_1_8.num;
        }
        T_1_3.num = T_1_4.num;
        if (!T_1_4.num) {
            T_1_10.ch = 'A';
            locals->err = charOPge(locals->c, T_1_10, &T_1_11);
            if (locals->err != ERR_ok) goto ex_0;
            T_1_9.num = T_1_11.num;
            if (T_1_11.num) {
                T_1_12.ch = 'Z';
                locals->err = charOPle(locals->c, T_1_12, &T_1_13);
                if (locals->err != ERR_ok) goto ex_0;
                T_1_9.num = T_1_13.num;
            }
            T_1_3.num = T_1_9.num;
        }
        T_1_2.num = T_1_3.num;
        if (!T_1_3.num) {
            T_1_15.ch = '0';
            locals->err = charOPge(locals->c, T_1_15, &T_1_16);
            if (locals->err != ERR_ok) goto ex_0;
            T_1_14.num = T_1_16.num;
            if (T_1_16.num) {
                T_1_17.ch = '9';
                locals->err = charOPle(locals->c, T_1_17, &T_1_18);
                if (locals->err != ERR_ok) goto ex_0;
                T_1_14.num = T_1_18.num;
            }
            T_1_2.num = T_1_14.num;
        }
        T_1_1.num = T_1_2.num;
    }
    if (T_1_1.num == true) {

  FB_LINE(824);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        locals->err = stringOPc2s(locals->c, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        locals->err = stringOPconcat(locals->tok, T_2_1, &T_2_2);
        if (locals->err != ERR_ok) goto ex_0;
        locals->tok.num = T_2_2.num;
        }
        }
    else {

  FB_LINE(826);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.ch = '\'';
        T_2_2.num = (locals->c.ch == T_2_1.ch)? true : false;
        if (T_2_2.num == true) {
            {
            CLUREF T_3_1;
            T_3_1.num = locals->tok_alert.num ^ 1;
            locals->tok_alert.num = T_3_1.num;
            }
            }
            }/* end if */

  FB_LINE(827);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        T_2_1.ch = '\"';
        T_2_2.num = (locals->c.ch == T_2_1.ch)? true : false;
        if (T_2_2.num == true) {
            {
            CLUREF T_3_1;
            T_3_1.num = locals->tok_alert.num ^ 1;
            locals->tok_alert.num = T_3_1.num;
            }
            }
            }/* end if */

  FB_LINE(828);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        locals->err = stringOPempty(locals->tok, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        T_2_2.num = T_2_1.num ^ 1;
        if (T_2_2.num == true) {

  FB_LINE(829);
            {
            CLUREF T_3_1;
            CLUREF T_3_2;
            locals->err = aliasOPsubst(locals->tok, &T_3_1);
            if (locals->err != ERR_ok) goto ex_0;
            locals->err = stringOPconcat(locals->output_line, T_3_1, &T_3_2);
            if (locals->err != ERR_ok) goto ex_0;
            locals->output_line.num = T_3_2.num;
            }

  FB_LINE(830);
            {
            locals->tok = STR_;
            }
            }
            }/* end if */

  FB_LINE(832);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        locals->err = stringOPc2s(locals->c, &T_2_1);
        if (locals->err != ERR_ok) goto ex_0;
        locals->err = stringOPconcat(locals->output_line, T_2_1, &T_2_2);
        if (locals->err != ERR_ok) goto ex_0;
        locals->output_line.num = T_2_2.num;
        }
        }}/* end if */
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end aliasOPexpand_alias_asst_IB_1 */

/**** END ITERATOR BODIES for expand_alias_asst ****/


/**** BEGIN PROCEDURE subst ****/

errcode aliasOPsubst(tok, ret_1)
CLUREF tok;
CLUREF *ret_1;
    {
    errcode err;
    errcode ecode2;
    CLUREF each_al;
        if (alias_own_init == 0) {
            err = alias_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
    enter_proc(842);

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

  LINE(846);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            T_2_1.num = each_al.vec->data[0];
            T_2_2.num = ((T_2_1.str->size != tok.str->size)? false :
                !(bcmp(T_2_1.str->data, tok.str->data, T_2_1.str->size)));
            if (T_2_2.num == true) {

  LINE(847);
                {
                {
                CLUREF T_3_1;
                T_3_1.num = each_al.vec->data[1];
                ret_1->num = T_3_1.num;
                }
                {signal (ERR_ok);}}
                }
                }/* end if */
        }
    }
    end_inline_for_1:;

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

/**** END PROCEDURE subst ****/

static int aliasOPelements_own_init = 0;

/**** BEGIN ITERATOR elements ****/

errcode aliasOPelements(proc, user_locals, iecode)
errcode (*proc)();
char **user_locals;
errcode *iecode;
    {
    errcode ecode;
    errcode err;
    errcode ecode2;
    bool body_ctrl_req;
    CLUREF each_al;
        if (aliasOPelements_own_init == 0) {
        if (alias_own_init == 0) {
            err = alias_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        aliasOPelements_own_init = 1;
    }
    enter_proc(853);

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

  LINE(855);
            {
            CLUREF T_2_1;
            CLUREF T_2_2;
            CLUREF T_2_3;
            CLUREF T_2_4;
            T_2_1.num = each_al.vec->data[0];
            err = stringOPconcat(T_2_1, STR__040, &T_2_2);
            if (err != ERR_ok) goto ex_0;
            T_2_3.num = each_al.vec->data[1];
            err = stringOPconcat(T_2_2, T_2_3, &T_2_4);
            if (err != ERR_ok) goto ex_0;
            err = proc(T_2_4, user_locals, iecode);
            if (err != ERR_ok) {
            if (err == ERR_break) {signal(ERR_break);}
            if (err == ERR_iterbodyreturn) {signal(ERR_iterbodyreturn);}
            if (err == ERR_iterbodyexit) {signal(ERR_iterbodyexit);}
            if (err == ERR_iterbodysignal) {signal(ERR_iterbodysignal);}
            {signal(err);
                }}
            }
        }
    }
    end_inline_for_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END ITERATOR elements ****/

typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[6];
} alias_OPS;

CLU_proc alias_oe_add_alias = {{0,0,0,0}, aliasOPadd_alias, 0};
CLU_proc alias_oe_elements = {{0,0,0,0}, aliasOPelements, 0};
CLU_proc alias_oe_expand_alias = {{0,0,0,0}, aliasOPexpand_alias, 0};
CLU_proc alias_oe_init = {{0,0,0,0}, aliasOPinit, 0};
CLU_proc alias_oe_remove_alias = {{0,0,0,0}, aliasOPremove_alias, 0};
CLU_proc alias_oe_show_alias = {{0,0,0,0}, aliasOPshow_alias, 0};

alias_OPS alias_ops_actual = {6, (OWNPTR)&alias_own_init, (OWNPTR)&alias_own_init, {
    {&alias_oe_add_alias, "add_alias"},
    {&alias_oe_elements, "elements"},
    {&alias_oe_expand_alias, "expand_alias"},
    {&alias_oe_init, "init"},
    {&alias_oe_remove_alias, "remove_alias"},
    {&alias_oe_show_alias, "show_alias"}}};

struct OPS *alias_ops = (struct OPS *)&alias_ops_actual;

/**** END CLUSTER alias ****/

/**** BEGIN CLUSTER dbg_env ****/

extern errcode dbg_env_IB_1();
extern errcode dbg_env_IB_2();
extern errcode dbg_env_IB_3();
extern errcode dbg_env_IB_4();
extern errcode dbg_env_IB_5();
extern errcode _get_xjname();
extern errcode extend_file_name();
extern errcode dbg_envOPsetup();
extern errcode file_exists();
extern errcode parse_line();
extern errcode ctl_ptsOPbp_add();
extern errcode ctl_ptsOPsig_add();
extern errcode intOPge();
extern errcode arrayOPreml();
extern errcode arrayOPset_low();
extern errcode aliasOPadd_alias();
extern errcode pstreamOPset_max_width();
extern errcode pstreamOPset_max_depth();
extern errcode delete_file();
extern errcode ctl_ptsOPsbp_elements();
extern errcode ctl_ptsOPfbp_elements();
extern errcode ctl_ptsOPlbp_elements();
extern errcode ctl_ptsOPsig_elements();
extern errcode aliasOPelements();
extern errcode pstreamOPget_max_width();
extern errcode pstreamOPget_max_depth();
CLUREF STR_bkpts;
CLUREF STR_L;
CLUREF STR_bad_040format_040breakpoints_040file_0401;
CLUREF STR_l;
CLUREF STR_bad_040format_040integer_040in_040breakpoint_040file;
CLUREF STR_breakpoint_040;
CLUREF STR__040not_040found_054_040continuing;
CLUREF STR_F;
CLUREF STR_bad_040format_040breakpoints_040file_0402;
CLUREF STR_f;
CLUREF STR_S;
CLUREF STR_bad_040format_040breakpoints_040file_0403;
CLUREF STR_s;
CLUREF STR_T;
CLUREF STR_bad_040format_040breakpoints_040file_0404;
CLUREF STR_A;
CLUREF STR_bad_040format_040breakpoints_040file_0405;
CLUREF STR_P;
CLUREF STR_bad_040format_040breakpoints_040file_0406;
CLUREF STR_breakpoints_040file_040loading_040failed_072_040;
CLUREF STR_write;
CLUREF STR_S_040;
CLUREF STR_F_040;
CLUREF STR_L_040;
CLUREF STR_T_040;
CLUREF STR_A_040;
CLUREF STR_P_040;
CLUREF STR_environment_040dump_040failed_072_040;
static int dbg_env_own_init = 0;
OWN_req dbg_env_ownreqs = {0,0};
CLUREF dbg_envOPdir;
CLUREF dbg_envOPbkptfn;
CLUREF dbg_envOPinit;
CLUREF dbg_envOPtyo;
CLUREF dbg_envOPpst_tyo;
errcode dbg_env_own_init_proc()
{
    errcode err;
    enter_own_init_proc();
        if (dbg_env_own_init == 0) {
        stringOPcons("", CLU_1, CLU_0, &STR_);
        stringOPcons("bkpts", CLU_1, CLU_5, &STR_bkpts);
        stringOPcons("read", CLU_1, CLU_4, &STR_read);
        stringOPcons("L", CLU_1, CLU_1, &STR_L);
        stringOPcons("bad format breakpoints file 1", CLU_1, CLU_29, &STR_bad_040format_040breakpoints_040file_0401);
        stringOPcons("l", CLU_1, CLU_1, &STR_l);
        stringOPcons("bad format integer in breakpoint file", CLU_1, CLU_37, &STR_bad_040format_040integer_040in_040breakpoint_040file);
        stringOPcons("breakpoint ", CLU_1, CLU_11, &STR_breakpoint_040);
        stringOPcons(" not found, continuing", CLU_1, CLU_22, &STR__040not_040found_054_040continuing);
        stringOPcons("F", CLU_1, CLU_1, &STR_F);
        stringOPcons("bad format breakpoints file 2", CLU_1, CLU_29, &STR_bad_040format_040breakpoints_040file_0402);
        stringOPcons("f", CLU_1, CLU_1, &STR_f);
        stringOPcons("S", CLU_1, CLU_1, &STR_S);
        stringOPcons("bad format breakpoints file 3", CLU_1, CLU_29, &STR_bad_040format_040breakpoints_040file_0403);
        stringOPcons("s", CLU_1, CLU_1, &STR_s);
        stringOPcons("T", CLU_1, CLU_1, &STR_T);
        stringOPcons("bad format breakpoints file 4", CLU_1, CLU_29, &STR_bad_040format_040breakpoints_040file_0404);
        stringOPcons("A", CLU_1, CLU_1, &STR_A);
        stringOPcons("bad format breakpoints file 5", CLU_1, CLU_29, &STR_bad_040format_040breakpoints_040file_0405);
        stringOPcons("P", CLU_1, CLU_1, &STR_P);
        stringOPcons("bad format breakpoints file 6", CLU_1, CLU_29, &STR_bad_040format_040breakpoints_040file_0406);
        stringOPcons("breakpoints file loading failed: ", CLU_1, CLU_33, &STR_breakpoints_040file_040loading_040failed_072_040);
        stringOPcons("write", CLU_1, CLU_5, &STR_write);
        stringOPcons("S ", CLU_1, CLU_2, &STR_S_040);
        stringOPcons("F ", CLU_1, CLU_2, &STR_F_040);
        stringOPcons("L ", CLU_1, CLU_2, &STR_L_040);
        stringOPcons("T ", CLU_1, CLU_2, &STR_T_040);
        stringOPcons("A ", CLU_1, CLU_2, &STR_A_040);
        stringOPcons("P ", CLU_1, CLU_2, &STR_P_040);
        stringOPcons(" ", CLU_1, CLU_1, &STR__040);
        stringOPcons("environment dump failed: ", CLU_1, CLU_25, &STR_environment_040dump_040failed_072_040);
        dbg_env_own_init = 1;
        {
            {dbg_envOPdir = STR_;
            }
            }
        {
            {dbg_envOPinit.tf = false;
            }
            }
        {signal(ERR_ok);}
    ex_0: pclu_unhandled(err); {signal(ERR_failure);}
        }
    }

static int dbg_envOPsetup_own_init = 0;

/**** BEGIN PROCEDURE setup ****/

errcode dbg_envOPsetup()
    {
    errcode err;
    errcode ecode2;
    CLUREF pgm_name;
        if (dbg_envOPsetup_own_init == 0) {
        if (dbg_env_own_init == 0) {
            err = dbg_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_envOPsetup_own_init = 1;
    }
    enter_proc(870);

  LINE(871);
    {

  LINE(872);
        {
            {CLUREF T_2_1;
            err = _get_xjname(&T_2_1);
            if (err != ERR_ok) goto ex_0;
            pgm_name.num = T_2_1.num;
            }
            }

  LINE(875);
        {
        CLUREF T_2_1;
        CLUREF T_2_2;
        err = file_nameOPparse(pgm_name, &T_2_1);
        if (err != ERR_ok) goto ex_0;
        err = extend_file_name(T_2_1, STR_bkpts, &T_2_2);
        if (err != ERR_ok) goto ex_0;
        dbg_envOPbkptfn.num = T_2_2.num;
        }
        }

  LINE(877);
    {
    dbg_envOPinit.tf = true;
    }
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE setup ****/

static int dbg_envOPload_own_init = 0;

/**** BEGIN PROCEDURE load ****/

errcode dbg_envOPload(outst, ptyo)
CLUREF outst;
CLUREF ptyo;
    {
    errcode err;
    errcode ecode2;
    CLUREF inst;
    CLUREF l;
    CLUREF args;
    CLUREF why;
        if (dbg_envOPload_own_init == 0) {
        if (dbg_env_own_init == 0) {
            err = dbg_env_own_init_proc();
            if (err != ERR_ok) goto ex_0;
            }
        dbg_envOPload_own_init = 1;
    }
    enter_proc(880);

  LINE(881);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_envOPinit.num ^ 1;
    if (T_1_1.num == true) {
        {
        err = dbg_envOPsetup();
        if (err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(882);
    {
    dbg_envOPtyo.num = outst.num;
    }

  LINE(883);
    {
    dbg_envOPpst_tyo.num = ptyo.num;
    }

  LINE(884);
    {
    CLUREF T_1_1;
    CLUREF T_1_2;
    err = file_exists(dbg_envOPbkptfn, &T_1_1);
    if (err != ERR_ok) goto ex_0;
    T_1_2.num = T_1_1.num ^ 1;
    if (T_1_2.num == true) {

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

  LINE(889);
    {
        {CLUREF T_1_1;
        err = streamOPopen(dbg_envOPbkptfn, STR_read, &T_1_1);
        if (err != ERR_ok) goto ex_0;
        inst.num = T_1_1.num;
        }
        }

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

  LINE(891);
        {
            {CLUREF T_3_1;
            err = streamOPgetl(inst, &T_3_1);
            if (err != ERR_ok) goto ex_1;
            l.num = T_3_1.num;
            }
            }

  LINE(892);
        {
            {CLUREF T_3_1;
            err = parse_line(l, &T_3_1);
            if (err != ERR_ok) goto ex_1;
            args.num = T_3_1.num;
            }
            }

  LINE(893);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        if (1 < args.array->ext_low || 1 > args.array->ext_high ) {
            err = ERR_bounds;
            goto ex_1;}
        T_3_1.num = args.array->store->data[1 - args.array->ext_low + args.array->int_low];
        T_3_2.num = ((T_3_1.str->size != STR_L.str->size)? false :
            !(bcmp(T_3_1.str->data, STR_L.str->data, T_3_1.str->size)));
        if (T_3_2.num == true) {

  LINE(895);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            T_4_1.num = args.array->ext_size;
            T_4_2.num = (T_4_1.num == 3)? true : false;
            T_4_3.num = T_4_2.num ^ 1;
            if (T_4_3.num == true) {

  LINE(896);
                {
                err = streamOPputl(dbg_envOPtyo, STR_bad_040format_040breakpoints_040file_0401);
                if (err != ERR_ok) goto ex_1;
                }

  LINE(897);
                {
                    err = "ERR_done";
                    goto ex_1;
                    }
                }
                }/* end if */

  LINE(899);
            {
            CLUREF T_5_1;
            CLUREF T_5_2;
            CLUREF T_5_3;
            if (2 < args.array->ext_low || 2 > args.array->ext_high ) {
                err = ERR_bounds;
                goto ex_2;}
            T_5_1.num = args.array->store->data[2 - args.array->ext_low + args.array->int_low];
            if (3 < args.array->ext_low || 3 > args.array->ext_high ) {
                err = ERR_bounds;
                goto ex_2;}
            T_5_2.num = args.array->store->data[3 - args.array->ext_low + args.array->int_low];
            err = intOPparse(T_5_2, &T_5_3);
            if (err != ERR_ok) goto ex_2;
            err = ctl_ptsOPbp_add(T_5_1, STR_l, T_5_3);
            if (err != ERR_ok) goto ex_2;
            }
                goto end_2;
                ex_2:
                    if ((err == ERR_bad_format)) {

  LINE(901);
                        {
                        err = streamOPputl(dbg_envOPtyo, STR_bad_040format_040integer_040in_040breakpoint_040file);
                        if (err != ERR_ok) goto ex_1;
                        }

  LINE(902);
                        {
                            err = "ERR_done";
                            goto ex_1;
                            }
                    }
                    else if ((err == ERR_not_found)) {

  LINE(904);
                        {
                        CLUREF T_5_1;
                        CLUREF T_5_2;
                        CLUREF T_5_3;
                        if (2 < args.array->ext_low || 2 > args.array->ext_high ) {
                            err = ERR_bounds;
                            goto ex_1;}
                        T_5_1.num = args.array->store->data[2 - args.array->ext_low + args.array->int_low];
                        err = stringOPconcat(STR_breakpoint_040, T_5_1, &T_5_2);
                        if (err != ERR_ok) goto ex_1;
                        err = stringOPconcat(T_5_2, STR__040not_040found_054_040continuing, &T_5_3);
                        if (err != ERR_ok) goto ex_1;
                        err = streamOPputl(dbg_envOPtyo, T_5_3);
                        if (err != ERR_ok) goto ex_1;
                        }
                    }
                    else {
                        goto ex_1;
                    }
                end_2:;
            }
        else {
        CLUREF T_3_3;
        CLUREF T_3_4;
        if (1 < args.array->ext_low || 1 > args.array->ext_high ) {
            err = ERR_bounds;
            goto ex_1;}
        T_3_3.num = args.array->store->data[1 - args.array->ext_low + args.array->int_low];
        T_3_4.num = ((T_3_3.str->size != STR_F.str->size)? false :
            !(bcmp(T_3_3.str->data, STR_F.str->data, T_3_3.str->size)));
        if (T_3_4.num == true) {

  LINE(909);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            T_4_1.num = args.array->ext_size;
            T_4_2.num = (T_4_1.num == 2)? true : false;
            T_4_3.num = T_4_2.num ^ 1;
            if (T_4_3.num == true) {

  LINE(910);
                {
                err = streamOPputl(dbg_envOPtyo, STR_bad_040format_040breakpoints_040file_0402);
                if (err != ERR_ok) goto ex_1;
                }

  LINE(911);
                {
                    err = "ERR_done";
                    goto ex_1;
                    }
                }
                }/* end if */

  LINE(913);
            {
            CLUREF T_5_1;
            if (2 < args.array->ext_low || 2 > args.array->ext_high ) {
                err = ERR_bounds;
                goto ex_3;}
            T_5_1.num = args.array->store->data[2 - args.array->ext_low + args.array->int_low];
            err = ctl_ptsOPbp_add(T_5_1, STR_f, CLU_0);
            if (err != ERR_ok) goto ex_3;
            }
                goto end_3;
                ex_3:
                    if ((err == ERR_not_found)) {

  LINE(915);
                        {
                        CLUREF T_5_1;
                        CLUREF T_5_2;
                        CLUREF T_5_3;
                        if (2 < args.array->ext_low || 2 > args.array->ext_high ) {
                            err = ERR_bounds;
                            goto ex_1;}
                        T_5_1.num = args.array->store->data[2 - args.array->ext_low + args.array->int_low];
                        err = stringOPconcat(STR_breakpoint_040, T_5_1, &T_5_2);
                        if (err != ERR_ok) goto ex_1;
                        err = stringOPconcat(T_5_2, STR__040not_040found_054_040continuing, &T_5_3);
                        if (err != ERR_ok) goto ex_1;
                        err = streamOPputl(dbg_envOPtyo, T_5_3);
                        if (err != ERR_ok) goto ex_1;
                        }
                    }
                    else {
                        goto ex_1;
                    }
                end_3:;
            }
        else {
        CLUREF T_3_5;
        CLUREF T_3_6;
        if (1 < args.array->ext_low || 1 > args.array->ext_high ) {
            err = ERR_bounds;
            goto ex_1;}
        T_3_5.num = args.array->store->data[1 - args.array->ext_low + args.array->int_low];
        T_3_6.num = ((T_3_5.str->size != STR_S.str->size)? false :
            !(bcmp(T_3_5.str->data, STR_S.str->data, T_3_5.str->size)));
        if (T_3_6.num == true) {

  LINE(920);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            T_4_1.num = args.array->ext_size;
            T_4_2.num = (T_4_1.num == 2)? true : false;
            T_4_3.num = T_4_2.num ^ 1;
            if (T_4_3.num == true) {

  LINE(921);
                {
                err = streamOPputl(dbg_envOPtyo, STR_bad_040format_040breakpoints_040file_0403);
                if (err != ERR_ok) goto ex_1;
                }

  LINE(922);
                {
                    err = "ERR_done";
                    goto ex_1;
                    }
                }
                }/* end if */

  LINE(924);
            {
            CLUREF T_5_1;
            if (2 < args.array->ext_low || 2 > args.array->ext_high ) {
                err = ERR_bounds;
                goto ex_4;}
            T_5_1.num = args.array->store->data[2 - args.array->ext_low + args.array->int_low];
            err = ctl_ptsOPbp_add(T_5_1, STR_s, CLU_0);
            if (err != ERR_ok) goto ex_4;
            }
                goto end_4;
                ex_4:
                    if ((err == ERR_not_found)) {

  LINE(926);
                        {
                        CLUREF T_5_1;
                        CLUREF T_5_2;
                        CLUREF T_5_3;
                        if (2 < args.array->ext_low || 2 > args.array->ext_high ) {
                            err = ERR_bounds;
                            goto ex_1;}
                        T_5_1.num = args.array->store->data[2 - args.array->ext_low + args.array->int_low];
                        err = stringOPconcat(STR_breakpoint_040, T_5_1, &T_5_2);
                        if (err != ERR_ok) goto ex_1;
                        err = stringOPconcat(T_5_2, STR__040not_040found_054_040continuing, &T_5_3);
                        if (err != ERR_ok) goto ex_1;
                        err = streamOPputl(dbg_envOPtyo, T_5_3);
                        if (err != ERR_ok) goto ex_1;
                        }
                    }
                    else {
                        goto ex_1;
                    }
                end_4:;
            }
        else {
        CLUREF T_3_7;
        CLUREF T_3_8;
        if (1 < args.array->ext_low || 1 > args.array->ext_high ) {
            err = ERR_bounds;
            goto ex_1;}
        T_3_7.num = args.array->store->data[1 - args.array->ext_low + args.array->int_low];
        T_3_8.num = ((T_3_7.str->size != STR_T.str->size)? false :
            !(bcmp(T_3_7.str->data, STR_T.str->data, T_3_7.str->size)));
        if (T_3_8.num == true) {

  LINE(931);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            T_4_1.num = args.array->ext_size;
            T_4_2.num = (T_4_1.num == 2)? true : false;
            T_4_3.num = T_4_2.num ^ 1;
            if (T_4_3.num == true) {

  LINE(932);
                {
                err = streamOPputl(dbg_envOPtyo, STR_bad_040format_040breakpoints_040file_0404);
                if (err != ERR_ok) goto ex_1;
                }

  LINE(933);
                {
                    err = "ERR_done";
                    goto ex_1;
                    }
                }
                }/* end if */

  LINE(935);
            {
            CLUREF T_5_1;
            if (2 < args.array->ext_low || 2 > args.array->ext_high ) {
                err = ERR_bounds;
                goto ex_5;}
            T_5_1.num = args.array->store->data[2 - args.array->ext_low + args.array->int_low];
            err = ctl_ptsOPsig_add(T_5_1);
            if (err != ERR_ok) goto ex_5;
            }
                goto end_5;
                ex_5:
                    if ((err == ERR_not_found)) {

  LINE(937);
                        {
                        CLUREF T_5_1;
                        CLUREF T_5_2;
                        CLUREF T_5_3;
                        if (2 < args.array->ext_low || 2 > args.array->ext_high ) {
                            err = ERR_bounds;
                            goto ex_1;}
                        T_5_1.num = args.array->store->data[2 - args.array->ext_low + args.array->int_low];
                        err = stringOPconcat(STR_breakpoint_040, T_5_1, &T_5_2);
                        if (err != ERR_ok) goto ex_1;
                        err = stringOPconcat(T_5_2, STR__040not_040found_054_040continuing, &T_5_3);
                        if (err != ERR_ok) goto ex_1;
                        err = streamOPputl(dbg_envOPtyo, T_5_3);
                        if (err != ERR_ok) goto ex_1;
                        }
                    }
                    else {
                        goto ex_1;
                    }
                end_5:;
            }
        else {
        CLUREF T_3_9;
        CLUREF T_3_10;
        if (1 < args.array->ext_low || 1 > args.array->ext_high ) {
            err = ERR_bounds;
            goto ex_1;}
        T_3_9.num = args.array->store->data[1 - args.array->ext_low + args.array->int_low];
        T_3_10.num = ((T_3_9.str->size != STR_A.str->size)? false :
            !(bcmp(T_3_9.str->data, STR_A.str->data, T_3_9.str->size)));
        if (T_3_10.num == true) {

  LINE(942);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            T_4_1.num = args.array->ext_size;
            T_4_2.num = (T_4_1.num >= 3)? true : false;
            T_4_3.num = T_4_2.num ^ 1;
            if (T_4_3.num == true) {

  LINE(943);
                {
                err = streamOPputl(dbg_envOPtyo, STR_bad_040format_040breakpoints_040file_0405);
                if (err != ERR_ok) goto ex_1;
                }

  LINE(944);
                {
                    err = "ERR_done";
                    goto ex_1;
                    }
                }
                }/* end if */

  LINE(946);
            {
            CLUREF T_4_1;
            err = arrayOPreml(args, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            }
            {
            err = arrayOPset_low(args, CLU_1);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(947);
            {
            CLUREF T_4_1;
            err = stringOPrest(l, CLU_2, &T_4_1);
            if (err != ERR_ok) goto ex_1;
            err = aliasOPadd_alias(T_4_1, args);
            if (err != ERR_ok) goto ex_1;
            }
            }
        else {
        CLUREF T_3_11;
        CLUREF T_3_12;
        if (1 < args.array->ext_low || 1 > args.array->ext_high ) {
            err = ERR_bounds;
            goto ex_1;}
        T_3_11.num = args.array->store->data[1 - args.array->ext_low + args.array->int_low];
        T_3_12.num = ((T_3_11.str->size != STR_P.str->size)? false :
            !(bcmp(T_3_11.str->data, STR_P.str->data, T_3_11.str->size)));
        if (T_3_12.num == true) {

  LINE(950);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            CLUREF T_4_3;
            T_4_1.num = args.array->ext_size;
            T_4_2.num = (T_4_1.num == 3)? true : false;
            T_4_3.num = T_4_2.num ^ 1;
            if (T_4_3.num == true) {

  LINE(951);
                {
                err = streamOPputl(dbg_envOPtyo, STR_bad_040format_040breakpoints_040file_0406);
                if (err != ERR_ok) goto ex_1;
                }

  LINE(952);
                {
                    err = "ERR_done";
                    goto ex_1;
                    }
                }
                }/* end if */

  LINE(954);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            if (2 < args.array->ext_low || 2 > args.array->ext_high ) {
                err = ERR_bounds;
                goto ex_1;}
            T_4_1.num = args.array->store->data[2 - args.array->ext_low + args.array->int_low];
            err = intOPparse(T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            err = pstreamOPset_max_width(dbg_envOPpst_tyo, T_4_2);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(955);
            {
            CLUREF T_4_1;
            CLUREF T_4_2;
            if (3 < args.array->ext_low || 3 > args.array->ext_high ) {
                err = ERR_bounds;
                goto ex_1;}
            T_4_1.num = args.array->store->data[3 - args.array->ext_low + args.array->int_low];
            err = intOPparse(T_4_1, &T_4_2);
            if (err != ERR_ok) goto ex_1;
            err = pstreamOPset_max_depth(dbg_envOPpst_tyo, T_4_2);
            if (err != ERR_ok) goto ex_1;
            }
            }
        else {

  LINE(957);
            {
            err = streamOPputl(dbg_envOPtyo, STR_bad_040format_040breakpoints_040file_0404);
            if (err != ERR_ok) goto ex_1;
            }

  LINE(958);
            {
                err = "ERR_done";
                goto ex_1;
                }
            }}}}}}}/* end if */
        }
        end_while_1:;
        goto end_1;
        ex_1:
            if (errcmp(err, "ERR_done")) {
            }
            else if ((err == ERR_end_of_file)) {

  LINE(963);
                {
                err = streamOPclose(inst);
                if (err != ERR_ok) goto ex_6;
                }
                    goto end_6;
                    ex_6:
                        {
                        }
                    end_6:;

  LINE(965);
                {
                {signal (ERR_ok);}}
            }
            else {
                CLUREF why;
                why = _pclu_erstr(err);

  LINE(967);
                {
                CLUREF T_2_1;
                err = stringOPconcat(STR_breakpoints_040file_040loading_040failed_072_040, why, &T_2_1);
                if (err != ERR_ok) goto ex_0;
                err = streamOPputl(dbg_envOPtyo, T_2_1);
                if (err != ERR_ok) goto ex_0;
                }

  LINE(968);
                {
                err = streamOPclose(inst);
                if (err != ERR_ok) goto ex_7;
                }
                    goto end_7;
                    ex_7:
                        {
                        }
                    end_7:;

  LINE(970);
                {
                {signal (ERR_ok);}}
            }
        end_1:;
    goto end_0;
    ex_0:
        {
            if (err == ERR_failure) {signal(ERR_failure);}
            elist[0] = _pclu_erstr(err);
            {signal(ERR_failure);}
        }
    end_0: {signal(ERR_ok);}
    }

/**** END PROCEDURE load ****/

extern errcode dbg_envOPdump_IB_1();
extern errcode dbg_envOPdump_IB_2();
extern errcode dbg_envOPdump_IB_3();
extern errcode dbg_envOPdump_IB_4();
extern errcode dbg_envOPdump_IB_5();
static int dbg_envOPdump_own_init = 0;

/**** BEGIN PROCEDURE dump ****/

errcode dbg_envOPdump()
    {
    struct {
        errcode err;
        errcode ecode2;
        CLUREF outst_exists;
        CLUREF outst;
        CLUREF bkpt;
        CLUREF al;
        CLUREF errstr;
        } locals;
        if (dbg_envOPdump_own_init == 0) {
        if (dbg_env_own_init == 0) {
            locals.err = dbg_env_own_init_proc();
            if (locals.err != ERR_ok) goto ex_0;
            }
        dbg_envOPdump_own_init = 1;
    }
    enter_proc(974);

  LINE(975);
    {
    CLUREF T_1_1;
    T_1_1.num = dbg_envOPinit.num ^ 1;
    if (T_1_1.num == true) {
        {
        locals.err = dbg_envOPsetup();
        if (locals.err != ERR_ok) goto ex_0;
        }
        }
        }/* end if */

  LINE(976);
    {
        {locals.outst_exists.tf = false;
        }
        }

  LINE(978);
    {

  LINE(979);
        {
        CLUREF T_3_1;
        locals.err = file_exists(dbg_envOPbkptfn, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        if (T_3_1.num == true) {
            {
            locals.err = delete_file(dbg_envOPbkptfn);
            if (locals.err != ERR_ok) goto ex_1;
            }
            }
            }/* end if */

  LINE(980);
        {
        CLUREF T_3_1;
        locals.err = streamOPopen(dbg_envOPbkptfn, STR_write, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        locals.outst.num = T_3_1.num;
        }

  LINE(981);
        {
        locals.outst_exists.tf = true;
        }

  LINE(982);
        {
            locals.err = ctl_ptsOPsbp_elements(dbg_envOPdump_IB_1, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {
            signal(ERR_ok);}
            if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
            if (locals.err == ERR_break) locals.err = ERR_ok;
            if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
            if (locals.err != ERR_ok) goto ex_1;
            }

  LINE(985);
        {
            locals.err = ctl_ptsOPfbp_elements(dbg_envOPdump_IB_2, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {
            signal(ERR_ok);}
            if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
            if (locals.err == ERR_break) locals.err = ERR_ok;
            if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
            if (locals.err != ERR_ok) goto ex_1;
            }

  LINE(988);
        {
            locals.err = ctl_ptsOPlbp_elements(dbg_envOPdump_IB_3, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {
            signal(ERR_ok);}
            if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
            if (locals.err == ERR_break) locals.err = ERR_ok;
            if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
            if (locals.err != ERR_ok) goto ex_1;
            }

  LINE(991);
        {
            locals.err = ctl_ptsOPsig_elements(dbg_envOPdump_IB_4, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {
            signal(ERR_ok);}
            if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
            if (locals.err == ERR_break) locals.err = ERR_ok;
            if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
            if (locals.err != ERR_ok) goto ex_1;
            }

  LINE(994);
        {
            locals.err = aliasOPelements(dbg_envOPdump_IB_5, &locals, &locals.ecode2);
            if (locals.err == ERR_iterbodyreturn) {
            signal(ERR_ok);}
            if (locals.err == ERR_iterbodysignal) {signal(locals.ecode2);}
            if (locals.err == ERR_break) locals.err = ERR_ok;
            if (locals.err == ERR_iterbodyexit) locals.err = locals.ecode2;
            if (locals.err != ERR_ok) goto ex_1;
            }

  LINE(997);
        {
        CLUREF T_3_1;
        CLUREF T_3_2;
        CLUREF T_3_3;
        CLUREF T_3_4;
        CLUREF T_3_5;
        CLUREF T_3_6;
        CLUREF T_3_7;
        locals.err = pstreamOPget_max_width(dbg_envOPpst_tyo, &T_3_1);
        if (locals.err != ERR_ok) goto ex_1;
        locals.err = intOPunparse(T_3_1, &T_3_2);
        if (locals.err != ERR_ok) goto ex_1;
        locals.err = stringOPconcat(STR_P_040, T_3_2, &T_3_3);
        if (locals.err != ERR_ok) goto ex_1;
        locals.err = stringOPconcat(T_3_3, STR__040, &T_3_4);
        if (locals.err != ERR_ok) goto ex_1;
        locals.err = pstreamOPget_max_depth(dbg_envOPpst_tyo, &T_3_5);
        if (locals.err != ERR_ok) goto ex_1;
        locals.err = intOPunparse(T_3_5, &T_3_6);
        if (locals.err != ERR_ok) goto ex_1;
        locals.err = stringOPconcat(T_3_4, T_3_6, &T_3_7);
        if (locals.err != ERR_ok) goto ex_1;
        locals.err = streamOPputl(locals.outst, T_3_7);
        if (locals.err != ERR_ok) goto ex_1;
        }

  LINE(999);
        {
        locals.err = streamOPclose(locals.outst);
        if (locals.err != ERR_ok) goto ex_1;
        }
        }
        goto end_1;
        ex_1:
            {
                CLUREF errstr;
                locals.errstr = _pclu_erstr(locals.err);

  LINE(1002);
                {
                CLUREF T_2_1;
                locals.err = stringOPconcat(STR_environment_040dump_040failed_072_040, locals.errstr, &T_2_1);
                if (locals.err != ERR_ok) goto ex_0;
                locals.err = streamOPputl(dbg_envOPtyo, T_2_1);
                if (locals.err != ERR_ok) goto ex_0;
                }

  LINE(1003);
                {
                if (locals.outst_exists.num == true) {
                    {
                    locals.err = streamOPclose(locals.outst);
                    if (locals.err != ERR_ok) goto ex_2;
                    }
                    }
                    }/* end if */
                    goto end_2;
                    ex_2:
                        {
                        }
                    end_2:;
            }
        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 dump ****/


/**** BEGIN ITERATOR BODIES for dump ****/

errcode dbg_envOPdump_IB_1(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF outst_exists;
    CLUREF outst;
    CLUREF bkpt;
    CLUREF al;
    CLUREF errstr;
    } *locals;
{
    locals->bkpt.num = iv_1.num;
    enter_iter_body_proc(983);

  FB_LINE(983);
    {
    CLUREF T_1_1;
    locals->err = stringOPconcat(STR_S_040, locals->bkpt, &T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    locals->err = streamOPputl(locals->outst, T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end dbg_envOPdump_IB_1 */
errcode dbg_envOPdump_IB_2(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF outst_exists;
    CLUREF outst;
    CLUREF bkpt;
    CLUREF al;
    CLUREF errstr;
    } *locals;
{
    locals->bkpt.num = iv_1.num;
    enter_iter_body_proc(986);

  FB_LINE(986);
    {
    CLUREF T_1_1;
    locals->err = stringOPconcat(STR_F_040, locals->bkpt, &T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    locals->err = streamOPputl(locals->outst, T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end dbg_envOPdump_IB_2 */
errcode dbg_envOPdump_IB_3(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF outst_exists;
    CLUREF outst;
    CLUREF bkpt;
    CLUREF al;
    CLUREF errstr;
    } *locals;
{
    locals->bkpt.num = iv_1.num;
    enter_iter_body_proc(989);

  FB_LINE(989);
    {
    CLUREF T_1_1;
    locals->err = stringOPconcat(STR_L_040, locals->bkpt, &T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    locals->err = streamOPputl(locals->outst, T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end dbg_envOPdump_IB_3 */
errcode dbg_envOPdump_IB_4(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF outst_exists;
    CLUREF outst;
    CLUREF bkpt;
    CLUREF al;
    CLUREF errstr;
    } *locals;
{
    locals->bkpt.num = iv_1.num;
    enter_iter_body_proc(992);

  FB_LINE(992);
    {
    CLUREF T_1_1;
    locals->err = stringOPconcat(STR_T_040, locals->bkpt, &T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    locals->err = streamOPputl(locals->outst, T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end dbg_envOPdump_IB_4 */
errcode dbg_envOPdump_IB_5(iv_1, locals, iecode)
errcode *iecode;
CLUREF iv_1;
struct {
    errcode err;
    errcode ecode2;
    CLUREF outst_exists;
    CLUREF outst;
    CLUREF bkpt;
    CLUREF al;
    CLUREF errstr;
    } *locals;
{
    locals->al.num = iv_1.num;
    enter_iter_body_proc(995);

  FB_LINE(995);
    {
    CLUREF T_1_1;
    locals->err = stringOPconcat(STR_A_040, locals->al, &T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    locals->err = streamOPputl(locals->outst, T_1_1);
    if (locals->err != ERR_ok) goto ex_0;
    }
    {signal(ERR_ok);}
    ex_0:
        {
            *iecode = locals->err;
            {signal(ERR_iterbodyexit);}}
    end_0: {signal(ERR_ok);}
    }/* end dbg_envOPdump_IB_5 */

/**** END ITERATOR BODIES for dump ****/

typedef struct{
    int count;
    OWNPTR type_owns;
    OWNPTR op_owns;
    struct OP_ENTRY entry[2];
} dbg_env_OPS;

CLU_proc dbg_env_oe_dump = {{0,0,0,0}, dbg_envOPdump, 0};
CLU_proc dbg_env_oe_load = {{0,0,0,0}, dbg_envOPload, 0};

dbg_env_OPS dbg_env_ops_actual = {2, (OWNPTR)&dbg_env_own_init, (OWNPTR)&dbg_env_own_init, {
    {&dbg_env_oe_dump, "dump"},
    {&dbg_env_oe_load, "load"}}};

struct OPS *dbg_env_ops = (struct OPS *)&dbg_env_ops_actual;

/**** END CLUSTER dbg_env ****/
