#include "chdecl.h"
void CH_codegen_newtableinfo(current, sched, cop)
#define ARGUMENTS 6
#include "chhead.h"
select: switch (SELECTOR) {
    case 0: goto c0;
    case 1: goto cb2;
    case 2: goto c3;
    case 3: goto cb4;
    case 4: goto c5;
    case 5: goto c31;
    case 6: goto c38;
    case 7: goto cb43;
    case 8: goto c44;
    case 9: goto c47;
    case 10: goto cb53;
    case 11: goto c54;
    case 12: goto c57;
    case 13: goto c71;
    case 14: goto c79;
    case 15: goto c85;
    case 16: goto c92;
    case 17: goto cb95;
    case 18: goto c96;
    case 19: goto c98;
    case 20: goto c102;
    case 21: goto c116;
    case 22: goto c117;
    case 23: 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:
/* new_record 3.3 , 2 */
  if ((ch_val.record = new_record(2)) == nil) goto ch_depletion;
  (*(REF(3)DOT(3).tsdr)->finalize)(REF(3)DOT(3).value,F_DISCARD,sched);
  REF(3)DOT(3).value = ch_val; REF(3)DOT(3).tsdr = & dr_record;
  current->ip = 3;
cb4:
/* call 3.2.3.16 3.0.2 4 , 2 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(3)DOT(2)DOT(3)DOT(16),
          arguments[1] = DEF(3)DOT(0)DOT(2),
          arguments[2] = DEF(4),
          arguments[2+1] = nil,& arguments[0]),QUAL(2),sched)) != Normal)
     goto ch_raise_exception;
  return;
c5:
/* noop */
  
/* branch_false 3.0.0 , 71 */
  if ( !REF(3)DOT(0)DOT(0).value.boolean ) goto c71;
/* new_record 5 , 2 */
  if ((ch_val.record = new_record(2)) == nil) goto ch_depletion;
  (*(REF(5).tsdr)->finalize)(REF(5).value,F_DISCARD,sched);
  REF(5).value = ch_val; REF(5).tsdr = & dr_record;
/* block , 3 */
  if((ch_returncode = che_block(QUAL(3),sched)) != Normal)
     goto ch_raise_exception;
/* ord_case 6 4.2 */
  REF(6).value.ord_enum = REF(4)DOT(2).value.variant->info.variant_case;
  REF(6).tsdr = & dr_ord_enumeration;
/* notequal . 6 =(3) , 27 */
  if ( REF(6).value.ord_enum != 3 ) goto c27;
/* reveal 4.2 , 3 */
  if (3 != REF(4)DOT(2).value.variant->info.variant_case) goto ch_case_error;
/* size 7 4.2.0.1 */
  REF(7).value.integer = REF(4)DOT(2)DOT(0)DOT(1).value.table->size;
  REF(7).tsdr = & dr_integer;
/* igt . 7 =(256) , 25 */
  if ( REF(7).value.integer > 256 ) goto c25;
/* ilit 5.0 , 80 */
  REF(5)DOT(0).value.integer = 80;
  REF(5)DOT(0).tsdr = & dr_integer;
/* ilit 5.1 , 256 */
  REF(5)DOT(1).value.integer = 256;
  REF(5)DOT(1).tsdr = & dr_integer;
/* enum_lit 8 , 2 */
  REF(8).value.enumeration = 2;
  REF(8).tsdr = & dr_enumeration;
/* branch , 28 */
   goto c28;
c25:
/* exit , 4 */
  ch_e = handler_type__exit; ch_val = QUAL(4); goto ch_exception;
c27:
/* exit , 4 */
  ch_e = handler_type__exit; ch_val = QUAL(4); goto ch_exception;
c28:
/* endblock */
  che_endblock(sched);
/* branch , 38 */
   goto c38;
c31:
/* ilit 5.0 , 8 */
  REF(5)DOT(0).value.integer = 8;
  REF(5)DOT(0).tsdr = & dr_integer;
/* ilit 5.1 , 64 */
  REF(5)DOT(1).value.integer = 64;
  REF(5)DOT(1).tsdr = & dr_integer;
/* enum_lit 8 , 1 */
  REF(8).value.enumeration = 1;
  REF(8).tsdr = & dr_enumeration;
c38:
/* block , 5 */
  if((ch_returncode = che_block(QUAL(5),sched)) != Normal)
     goto ch_raise_exception;
/* chs_lit 9 , "initsize" */
  if( !chs_lit(DEF(9),"initsize") ) goto ch_depletion;
/* find 10 3.1 9 , 0 */
  if (findfunc(DEF(10),DEF(3)DOT(1),(
          arguments[0] = DEF(9),& arguments[0]),sched,0) == FAILURE)
             goto ch_notfound;
/* copy 11 10.1 */
  if((ch_returncode = cp_polymorph(& ch_val, REF(10)DOT(1).value)) != Normal)
     goto ch_raise_exception;
  (*(REF(11).tsdr)->finalize)(REF(11).value,F_DISCARD,sched);
  REF(11).value = ch_val;
  REF(11).tsdr = & dr_polymorph;
/* unwrap 12 11 , 6 */
  if ((ch_returncode = che_unwrap(DEF(12),DEF(11),QUAL(6),sched)) != Normal)
     goto ch_raise_exception;
  current->ip = 7;
cb43:
/* call 3.2.3.12 12 13 , 7 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(3)DOT(2)DOT(3)DOT(12),
          arguments[1] = DEF(12),
          arguments[2] = DEF(13),
          arguments[2+1] = nil,& arguments[0]),QUAL(7),sched)) != Normal)
     goto ch_raise_exception;
  return;
c44:
/* move 5.0 13 */
  REF(5)DOT(0) = REF(13);
  REF(13).tsdr = & dr_bottom;
/* endblock */
  che_endblock(sched);
c47:
/* discard 12 */
  (*(REF(12).tsdr)->finalize)(REF(12).value,F_DISCARD,sched);
  REF(12).tsdr = & dr_bottom;
/* block , 8 */
  if((ch_returncode = che_block(QUAL(8),sched)) != Normal)
     goto ch_raise_exception;
/* chs_lit 14 , "growby" */
  if( !chs_lit(DEF(14),"growby") ) goto ch_depletion;
/* find 15 3.1 14 , 0 */
  if (findfunc(DEF(15),DEF(3)DOT(1),(
          arguments[0] = DEF(14),& arguments[0]),sched,0) == FAILURE)
             goto ch_notfound;
/* copy 16 15.1 */
  if((ch_returncode = cp_polymorph(& ch_val, REF(15)DOT(1).value)) != Normal)
     goto ch_raise_exception;
  (*(REF(16).tsdr)->finalize)(REF(16).value,F_DISCARD,sched);
  REF(16).value = ch_val;
  REF(16).tsdr = & dr_polymorph;
/* unwrap 12 16 , 6 */
  if ((ch_returncode = che_unwrap(DEF(12),DEF(16),QUAL(6),sched)) != Normal)
     goto ch_raise_exception;
  current->ip = 10;
cb53:
/* call 3.2.3.12 12 17 , 7 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(3)DOT(2)DOT(3)DOT(12),
          arguments[1] = DEF(12),
          arguments[2] = DEF(17),
          arguments[2+1] = nil,& arguments[0]),QUAL(7),sched)) != Normal)
     goto ch_raise_exception;
  return;
c54:
/* move 5.1 17 */
  REF(5)DOT(1) = REF(17);
  REF(17).tsdr = & dr_bottom;
/* endblock */
  che_endblock(sched);
c57:
/* discard 12 */
  (*(REF(12).tsdr)->finalize)(REF(12).value,F_DISCARD,sched);
  REF(12).tsdr = & dr_bottom;
/* equal . 8 =(1) , 64 */
  if ( REF(8).value.enumeration == 1 ) goto c64;
/* equal . 8 =(2) , 66 */
  if ( REF(8).value.enumeration == 2 ) goto c66;
/* branch , 68 */
   goto c68;
c64:
/* unite 3.3.0 5 , 1 */
  if ((ch_returncode = che_unite(DEF(3)DOT(3)DOT(0),DEF(5),sched,1
    )) != Normal) goto ch_raise_exception;
/* branch , 79 */
   goto c79;
c66:
/* unite 3.3.0 5 , 2 */
  if ((ch_returncode = che_unite(DEF(3)DOT(3)DOT(0),DEF(5),sched,2
    )) != Normal) goto ch_raise_exception;
/* branch , 79 */
   goto c79;
c68:
/* exit , 9 */
  ch_e = handler_type__exit; ch_val = QUAL(9); goto ch_exception;
c71:
/* size 18 3.0.1 */
  REF(18).value.integer = REF(3)DOT(0)DOT(1).value.table->size;
  REF(18).tsdr = & dr_integer;
/* notequal . 18 =(0) , 77 */
  if ( REF(18).value.integer != 0 ) goto c77;
/* unite 3.3.0 19 , 9 */
  if ((ch_returncode = che_unite(DEF(3)DOT(3)DOT(0),DEF(19),sched,9
    )) != Normal) goto ch_raise_exception;
/* branch , 79 */
   goto c79;
c77:
/* unite 3.3.0 19 , 0 */
  if ((ch_returncode = che_unite(DEF(3)DOT(3)DOT(0),DEF(19),sched,0
    )) != Normal) goto ch_raise_exception;
c79:
/* new_record 20 , 3 */
  if ((ch_val.record = new_record(3)) == nil) goto ch_depletion;
  (*(REF(20).tsdr)->finalize)(REF(20).value,F_DISCARD,sched);
  REF(20).value = ch_val; REF(20).tsdr = & dr_record;
/* new_table 20.0 , 10 */
  if ((ch_returncode = che_new_table(DEF(20)DOT(0),QUAL(10)
    ,sched)) != Normal)  goto ch_raise_exception;
/* new_table 20.1 , 10 */
  if ((ch_returncode = che_new_table(DEF(20)DOT(1),QUAL(10)
    ,sched)) != Normal)  goto ch_raise_exception;
/* new_table 20.2 , 10 */
  if ((ch_returncode = che_new_table(DEF(20)DOT(2),QUAL(10)
    ,sched)) != Normal)  goto ch_raise_exception;
/* copy 21 3.0.1 */
  if((ch_returncode = cp_table(& ch_val, REF(3)DOT(0)DOT(1).value)) != Normal)
     goto ch_raise_exception;
  (*(REF(21).tsdr)->finalize)(REF(21).value,F_DISCARD,sched);
  REF(21).value = ch_val;
  REF(21).tsdr = & dr_table;
/* initget 22 21 , 0,0 */
  (*(REF(22).tsdr)->finalize)(REF(22).value,F_DISCARD,sched);
  if ((ch_returncode = init_selector(DEF(22),DEF(21),nil,sched,GET,0,0
    )) != Normal) goto ch_raise_exception;
c85:
/* get_or_goto 22 21 , 102 */
  if ((ch_returncode = get_selected_object(DEF(22),DEF(21),sched)) != Normal)
     goto c102;
/* unite 23 19 , 4 */
  if ((ch_returncode = che_unite(DEF(23),DEF(19),sched,4)) != Normal)
     goto ch_raise_exception;
/* insert 20.0 23 */
  if ((ch_returncode = insertfunc(DEF(20)DOT(0),DEF(23),FALSE,0)) != Normal)
     goto ch_raise_exception;
/* new_table 24 , 10 */
  if ((ch_returncode = che_new_table(DEF(24),QUAL(10),sched)) != Normal) 
     goto ch_raise_exception;
/* copy 25 22 */
  if((ch_returncode = cp_table(& ch_val, REF(22).value)) != Normal)
     goto ch_raise_exception;
  (*(REF(25).tsdr)->finalize)(REF(25).value,F_DISCARD,sched);
  REF(25).value = ch_val;
  REF(25).tsdr = & dr_table;
/* initget 26 25 , 0,0 */
  (*(REF(26).tsdr)->finalize)(REF(26).value,F_DISCARD,sched);
  if ((ch_returncode = init_selector(DEF(26),DEF(25),nil,sched,GET,0,0
    )) != Normal) goto ch_raise_exception;
c92:
/* get_or_goto 26 25 , 98 */
  if ((ch_returncode = get_selected_object(DEF(26),DEF(25),sched)) != Normal)
     goto c98;
/* discard 27 */
  (*(REF(27).tsdr)->finalize)(REF(27).value,F_DISCARD,sched);
  REF(27).tsdr = & dr_bottom;
/* copy 27 3.0.2 */
  if((ch_returncode = (REF(3)DOT(0)DOT(2).tsdr->copy)(& ch_val, 
    REF(3)DOT(0)DOT(2).value)) != Normal) goto ch_raise_exception;
  (*(REF(27).tsdr)->finalize)(REF(27).value,F_DISCARD,sched);
  REF(27).value = ch_val;
  REF(27).tsdr = datarepmap[REF(3)DOT(0)DOT(2).tsdr->number];
  current->ip = 17;
cb95:
/* call 3.2.3.15 27 26 28 , 11 */
  if ((ch_returncode = che_call((
          arguments[0] = DEF(3)DOT(2)DOT(3)DOT(15),
          arguments[1] = DEF(27),
          arguments[2] = DEF(26),
          arguments[3] = DEF(28),
          arguments[3+1] = nil,& arguments[0]),QUAL(11),sched)) != Normal)
     goto ch_raise_exception;
  return;
c96:
/* insert 24 28 */
  if ((ch_returncode = insertfunc(DEF(24),DEF(28),FALSE,0)) != Normal)
     goto ch_raise_exception;
/* branch , 92 */
   goto c92;
c98:
/* endget 26 25 */
  end_selector(DEF(26),DEF(25),sched,GET);
/* discard 25 */
  (*(REF(25).tsdr)->finalize)(REF(25).value,F_DISCARD,sched);
  REF(25).tsdr = & dr_bottom;
/* insert 20.1 24 */
  if ((ch_returncode = insertfunc(DEF(20)DOT(1),DEF(24),FALSE,0)) != Normal)
     goto ch_raise_exception;
/* branch , 85 */
   goto c85;
c102:
/* endget 22 21 */
  end_selector(DEF(22),DEF(21),sched,GET);
/* discard 21 */
  (*(REF(21).tsdr)->finalize)(REF(21).value,F_DISCARD,sched);
  REF(21).tsdr = & dr_bottom;
/* size 29 20.0 */
  REF(29).value.integer = REF(20)DOT(0).value.table->size;
  REF(29).tsdr = & dr_integer;
/* equal . 29 =(0) , 110 */
  if ( REF(29).value.integer == 0 ) goto c110;
/* unite 3.3.1 20 , 0 */
  if ((ch_returncode = che_unite(DEF(3)DOT(3)DOT(1),DEF(20),sched,0
    )) != Normal) goto ch_raise_exception;
/* branch , 111 */
   goto c111;
c110:
/* unite 3.3.1 19 , 1 */
  if ((ch_returncode = che_unite(DEF(3)DOT(3)DOT(1),DEF(19),sched,1
    )) != Normal) goto ch_raise_exception;
c111:
/* discard 20 */
  (*(REF(20).tsdr)->finalize)(REF(20).value,F_DISCARD,sched);
  REF(20).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 , 117 */
   goto c117;
c116:
/* discard 5 */
  (*(REF(5).tsdr)->finalize)(REF(5).value,F_DISCARD,sched);
  REF(5).tsdr = & dr_bottom;
c117:
/* discard 3 */
  (*(REF(3).tsdr)->finalize)(REF(3).value,F_DISCARD,sched);
  REF(3).tsdr = & dr_bottom;
/* endblock */
  che_endblock(sched);
c120:
/* endprocess */
  che_endprocess(sched); return;
#include "chtail.h"
