#include "chdecl.h"
void CH_chcode_choperand(current, sched, cop)
#define ARGUMENTS 10
#include "chhead.h"
select: switch (SELECTOR) {
    case 0: goto c0;
    case 1: goto cb2;
    case 2: goto c3;
    case 3: goto c38;
    case 4: goto c43;
    case 5: goto c48;
    case 6: goto c53;
    case 7: goto c58;
    case 8: goto c63;
    case 9: goto c64;
    case 10: goto cb69;
    case 11: goto c70;
    case 12: goto c73;
    case 13: goto cb76;
    case 14: goto c77;
    case 15: goto c79;
    case 16: goto c86;
    case 17: goto cb96;
    case 18: goto c97;
    case 19: goto c99;
    case 20: goto cb100;
    case 21: goto c101;
    case 22: goto c103;
    case 23: goto c111;
    case 24: goto c114;
    case 25: goto c116;
    case 26: goto c120;  }
c0:
/* block , 0 */
  if((ch_returncode = che_block(QUAL(0),sched)) != Normal)
     goto ch_raise_exception;
/* block , 1 */
  if((ch_returncode = che_block(QUAL(1),sched)) != Normal)
     goto ch_raise_exception;
  current->ip = 1;
cb2:
/* receive 3 0 */
  if ((ch_returncode = che_receive(DEF(3),DEF(0),sched)) != Normal)
     goto ch_raise_exception;
  return;
c3:
/* noop */
  
/* equal . 3.0 =(4) , 15 */
  if ( REF(3)DOT(0).value.enumeration == 4 ) goto c15;
/* equal . 3.0 =(3) , 43 */
  if ( REF(3)DOT(0).value.enumeration == 3 ) goto c43;
/* equal . 3.0 =(2) , 48 */
  if ( REF(3)DOT(0).value.enumeration == 2 ) goto c48;
/* equal . 3.0 =(1) , 53 */
  if ( REF(3)DOT(0).value.enumeration == 1 ) goto c53;
/* equal . 3.0 =(0) , 58 */
  if ( REF(3)DOT(0).value.enumeration == 0 ) goto c58;
/* branch , 63 */
   goto c63;
c15:
/* ord_case 4 3.1.4 */
  REF(4).value.ord_enum = REF(3)DOT(1)DOT(4).value.variant->info.variant_case;
  REF(4).tsdr = & dr_ord_enumeration;
/* oege . 4 =(3) , 20 */
  if ( REF(4).value.ord_enum >= 3 ) goto c20;
/* exit , 2 */
  ch_e = handler_type__exit; ch_val = QUAL(2); goto ch_exception;
c20:
/* block , 3 */
  if((ch_returncode = che_block(QUAL(3),sched)) != Normal)
     goto ch_raise_exception;
/* enum_lit 5 , 5 */
  REF(5).value.enumeration = 5;
  REF(5).tsdr = & dr_enumeration;
/* find 6 3.2 5 , 0 */
  if (findfunc(DEF(6),DEF(3)DOT(2),(
          arguments[0] = DEF(5),& arguments[0]),sched,0) == FAILURE)
             goto ch_notfound;
/* chs_lit 7 , "real" */
  if( !chs_lit(DEF(7),"real") ) goto ch_depletion;
/* equal 8 6.1 7 */
  REF(8).value.boolean = (eq_table(REF(6)DOT(1).value,REF(7).value));
  REF(8).tsdr = & dr_boolean;
/* discard 7 */
  (*(REF(7).tsdr)->finalize)(REF(7).value,F_DISCARD,sched);
  REF(7).tsdr = & dr_bottom;
/* branch_false 8 , 30 */
  if ( !REF(8).value.boolean ) goto c30;
/* chs_lit 9 , "*REF(" */
  if( !chs_lit(DEF(9),"*REF(") ) goto ch_depletion;
/* branch , 32 */
   goto c32;
c30:
/* chs_lit 9 , "REF(" */
  if( !chs_lit(DEF(9),"REF(") ) goto ch_depletion;
c32:
/* chs_lit 10 , ").value." */
  if( !chs_lit(DEF(10),").value.") ) goto ch_depletion;
/* concat 11 10 6.1 */
  if ((ch_returncode = che_concat(DEF(11),DEF(10),DEF(6)DOT(1)
    ,sched)) != Normal) goto ch_raise_exception;
/* discard 10 */
  (*(REF(10).tsdr)->finalize)(REF(10).value,F_DISCARD,sched);
  REF(10).tsdr = & dr_bottom;
/* move 12 11 */
  (*(REF(12).tsdr)->finalize)(REF(12).value,F_DISCARD,sched);
  REF(12) = REF(11);
  REF(11).tsdr = & dr_bottom;
/* endblock */
  che_endblock(sched);
/* branch , 64 */
   goto c64;
c38:
/* chs_lit 9 , "REF(" */
  if( !chs_lit(DEF(9),"REF(") ) goto ch_depletion;
/* chs_lit 12 , ").value./\052SCALAR*\057" */
  if( !chs_lit(DEF(12),").value./\052SCALAR*\057") ) goto ch_depletion;
/* branch , 64 */
   goto c64;
c43:
/* chs_lit 9 , "REF(" */
  if( !chs_lit(DEF(9),"REF(") ) goto ch_depletion;
/* chs_lit 12 , ").tsdr" */
  if( !chs_lit(DEF(12),").tsdr") ) goto ch_depletion;
/* branch , 64 */
   goto c64;
c48:
/* chs_lit 9 , "REF(" */
  if( !chs_lit(DEF(9),"REF(") ) goto ch_depletion;
/* chs_lit 12 , ").value" */
  if( !chs_lit(DEF(12),").value") ) goto ch_depletion;
/* branch , 64 */
   goto c64;
c53:
/* chs_lit 9 , "REF(" */
  if( !chs_lit(DEF(9),"REF(") ) goto ch_depletion;
/* chs_lit 12 , ")" */
  if( !chs_lit(DEF(12),")") ) goto ch_depletion;
/* branch , 64 */
   goto c64;
c58:
/* chs_lit 9 , "DEF(" */
  if( !chs_lit(DEF(9),"DEF(") ) goto ch_depletion;
/* chs_lit 12 , ")" */
  if( !chs_lit(DEF(12),")") ) goto ch_depletion;
/* branch , 64 */
   goto c64;
c63:
/* exit , 4 */
  ch_e = handler_type__exit; ch_val = QUAL(4); goto ch_exception;
c64:
/* copy 13 3.1.0 */
  if((ch_returncode = cp_table(& ch_val, REF(3)DOT(1)DOT(0).value)) != Normal)
     goto ch_raise_exception;
  (*(REF(13).tsdr)->finalize)(REF(13).value,F_DISCARD,sched);
  REF(13).value = ch_val;
  REF(13).tsdr = & dr_table;
/* privatize 13 */
  if (REF(13).value.table->refcount != 1)
    if ((ch_returncode = doCopyOnWrite(DEF(13))) != Normal)
       goto ch_raise_exception;
/* lookup_at 14 13 =(0) */
  if ( !((ch_t = REF(13).value.table)->size) ) goto ch_notfound;
  (*(REF(14).tsdr)->finalize)(REF(14).value,F_DISCARD,sched);
  (*(ch_t->tbls[ORDER_TBL].des->lookup_at))
    (ch_t, ORDER_TBL, & REF(14).value,0);
  REF(14).tsdr = qdatarepmap[ch_t->tsdr->number];
/* remove_at 15 13 =(0) */
  if ((ch_returncode = remove_at_func(DEF(15),DEF(13),0)) != Normal)
     goto ch_raise_exception;
  current->ip = 10;
cb69:
/* call 3.3.12 15 16 , 5 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(3)DOT(3)DOT(12),
          arguments[1] = DEF(15),
          arguments[2] = DEF(16),
          arguments[2+1] = nil,& arguments[0]),QUAL(5),sched)) != Normal)
     goto ch_raise_exception;
  return;
c70:
/* merge 9 16 */
  if ((ch_returncode = mergefunc(DEF(9),DEF(16),FALSE,0)) != Normal)
     goto ch_raise_exception;
/* copy 17 13 */
  if((ch_returncode = cp_table(& ch_val, REF(13).value)) != Normal)
     goto ch_raise_exception;
  (*(REF(17).tsdr)->finalize)(REF(17).value,F_DISCARD,sched);
  REF(17).value = ch_val;
  REF(17).tsdr = & dr_table;
/* initget 18 17 , 0,0 */
  (*(REF(18).tsdr)->finalize)(REF(18).value,F_DISCARD,sched);
  if ((ch_returncode = init_selector(DEF(18),DEF(17),nil,sched,GET,0,0
    )) != Normal) goto ch_raise_exception;
c73:
/* get_or_goto 18 17 , 79 */
  if ((ch_returncode = get_selected_object(DEF(18),DEF(17),sched)) != Normal)
     goto c79;
/* chs_lit 19 , ")DOT(" */
  if( !chs_lit(DEF(19),")DOT(") ) goto ch_depletion;
/* merge 9 19 */
  if ((ch_returncode = mergefunc(DEF(9),DEF(19),FALSE,0)) != Normal)
     goto ch_raise_exception;
  current->ip = 13;
cb76:
/* call 3.3.12 18 20 , 5 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(3)DOT(3)DOT(12),
          arguments[1] = DEF(18),
          arguments[2] = DEF(20),
          arguments[2+1] = nil,& arguments[0]),QUAL(5),sched)) != Normal)
     goto ch_raise_exception;
  return;
c77:
/* merge 9 20 */
  if ((ch_returncode = mergefunc(DEF(9),DEF(20),FALSE,0)) != Normal)
     goto ch_raise_exception;
/* branch , 73 */
   goto c73;
c79:
/* endget 18 17 */
  end_selector(DEF(18),DEF(17),sched,GET);
/* discard 17 */
  (*(REF(17).tsdr)->finalize)(REF(17).value,F_DISCARD,sched);
  REF(17).tsdr = & dr_bottom;
/* merge 9 12 */
  if ((ch_returncode = mergefunc(DEF(9),DEF(12),FALSE,0)) != Normal)
     goto ch_raise_exception;
/* move 3.4 9 */
  (*(REF(3)DOT(4).tsdr)->finalize)(REF(3)DOT(4).value,F_DISCARD,sched);
  REF(3)DOT(4) = REF(9);
  REF(9).tsdr = & dr_bottom;
/* return 3 */
  if (ch_caller = do_return(REF(3).value)) {
    if (ch_caller->type < CProcess) ch_caller->ip++;
      sched->wakeup_proc(sched, ch_caller);}
  else rem_return(REF(3).value);
  REF(3).tsdr = & dr_bottom;
/* endblock */
  che_endblock(sched);
/* branch , 116 */
   goto c116;
c86:
/* ord_case 21 3.1.4 */
  REF(21).value.ord_enum = REF(3)DOT(1)DOT(4).value.variant
    ->info.variant_case;
  REF(21).tsdr = & dr_ord_enumeration;
/* equal . 21 =(2) , 95 */
  if ( REF(21).value.ord_enum == 2 ) goto c95;
/* equal . 21 =(1) , 99 */
  if ( REF(21).value.ord_enum == 1 ) goto c99;
/* equal . 21 =(0) , 103 */
  if ( REF(21).value.ord_enum == 0 ) goto c103;
/* branch , 111 */
   goto c111;
c95:
/* reveal 3.1.4 , 2 */
  if (2 != REF(3)DOT(1)DOT(4).value.variant->info.variant_case)
     goto ch_case_error;
  current->ip = 17;
cb96:
/* call 3.3.13 3.1.4.0 22 , 6 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(3)DOT(3)DOT(13),
          arguments[1] = DEF(3)DOT(1)DOT(4)DOT(0),
          arguments[2] = DEF(22),
          arguments[2+1] = nil,& arguments[0]),QUAL(6),sched)) != Normal)
     goto ch_raise_exception;
  return;
c97:
/* move 3.4 22 */
  (*(REF(3)DOT(4).tsdr)->finalize)(REF(3)DOT(4).value,F_DISCARD,sched);
  REF(3)DOT(4) = REF(22);
  REF(22).tsdr = & dr_bottom;
/* branch , 114 */
   goto c114;
c99:
/* reveal 3.1.4 , 1 */
  if (1 != REF(3)DOT(1)DOT(4).value.variant->info.variant_case)
     goto ch_case_error;
  current->ip = 20;
cb100:
/* call 3.3.12 3.1.4.0 23 , 5 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(3)DOT(3)DOT(12),
          arguments[1] = DEF(3)DOT(1)DOT(4)DOT(0),
          arguments[2] = DEF(23),
          arguments[2+1] = nil,& arguments[0]),QUAL(5),sched)) != Normal)
     goto ch_raise_exception;
  return;
c101:
/* move 3.4 23 */
  (*(REF(3)DOT(4).tsdr)->finalize)(REF(3)DOT(4).value,F_DISCARD,sched);
  REF(3)DOT(4) = REF(23);
  REF(23).tsdr = & dr_bottom;
/* branch , 114 */
   goto c114;
c103:
/* reveal 3.1.4 , 0 */
  if (0 != REF(3)DOT(1)DOT(4).value.variant->info.variant_case)
     goto ch_case_error;
/* branch_false 3.1.4.0 , 108 */
  if ( !REF(3)DOT(1)DOT(4)DOT(0).value.boolean ) goto c108;
/* chs_lit 3.4 , "TRUE" */
  if( !chs_lit(DEF(3)DOT(4),"TRUE") ) goto ch_depletion;
/* branch , 114 */
   goto c114;
c108:
/* chs_lit 3.4 , "FALSE" */
  if( !chs_lit(DEF(3)DOT(4),"FALSE") ) goto ch_depletion;
/* branch , 114 */
   goto c114;
c111:
/* chs_lit 3.4 , "/\052VALUE*\057" */
  if( !chs_lit(DEF(3)DOT(4),"/\052VALUE*\057") ) goto ch_depletion;
c114:
/* return 3 */
  if (ch_caller = do_return(REF(3).value)) {
    if (ch_caller->type < CProcess) ch_caller->ip++;
      sched->wakeup_proc(sched, ch_caller);}
  else rem_return(REF(3).value);
  REF(3).tsdr = & dr_bottom;
c116:
/* discard 3 */
  (*(REF(3).tsdr)->finalize)(REF(3).value,F_DISCARD,sched);
  REF(3).tsdr = & dr_bottom;
/* discard 13 */
  (*(REF(13).tsdr)->finalize)(REF(13).value,F_DISCARD,sched);
  REF(13).tsdr = & dr_bottom;
/* endblock */
  che_endblock(sched);
c120:
/* endprocess */
  che_endprocess(sched); return;
#include "chtail.h"
