#include "chdecl.h"
void CH_disassembler_disinteger(current, sched, cop)
#define ARGUMENTS 5
#include "chhead.h"
select: switch (SELECTOR) {
    case 0: goto c0;
    case 1: goto cb1;
    case 2: goto c2;
    case 3: goto c13;
    case 4: goto c44;  }
c0:
/* block , 0 */
  if((ch_returncode = che_block(QUAL(0),sched)) != Normal)
     goto ch_raise_exception;
  current->ip = 1;
cb1:
/* receive 3 0 */
  if ((ch_returncode = che_receive(DEF(3),DEF(0),sched)) != Normal)
     goto ch_raise_exception;
  return;
c2:
/* chs_lit 4 , "0123456789" */
  if( !chs_lit(DEF(4),"0123456789") ) goto ch_depletion;
/* new_table 5 , 1 */
  if ((ch_returncode = che_new_table(DEF(5),QUAL(1),sched)) != Normal) 
     goto ch_raise_exception;
/* ilt 6 3.0 =(0) */
  REF(6).value.boolean = (REF(3)DOT(0).value.integer < 0);
/* branch_false 6 , 12 */
  if ( !REF(6).value.boolean ) goto c12;
/* inegate 7 3.0 */
  REF(7).value.integer = -REF(3)DOT(0).value.integer;
  REF(7).tsdr = & dr_integer;
/* branch , 13 */
   goto c13;
c12:
/* copy 7 3.0 */
  REF(7) = REF(3)DOT(0);
c13:
/* noop */
  
/* ile . 7 =(0) , 27 */
  if ( REF(7).value.integer <= 0 ) goto c27;
/* imod 8 7 =(10) */
  if (!chf_imod(DEF(8),REF(7).value.integer,10)) goto ch_depletion;
/* lookup_at 9 4 8 */
  if((ch_i = REF(8).value.integer) < 0 || ch_i >= (ch_t = REF(4).value
    .table)->size) goto ch_notfound;
  (*(REF(9).tsdr)->finalize)(REF(9).value,F_DISCARD,sched);
  (*(ch_t->tbls[ORDER_TBL].des->lookup_at))
    (ch_t, ORDER_TBL, & REF(9).value,ch_i);
  REF(9).tsdr = qdatarepmap[ch_t->tsdr->number];
/* copy 10 9 */
  if((ch_returncode = (REF(9).tsdr->copy)(& ch_val, REF(9).value)) != Normal)
     goto ch_raise_exception;
  (*(REF(10).tsdr)->finalize)(REF(10).value,F_DISCARD,sched);
  REF(10).value = ch_val;
  REF(10).tsdr = datarepmap[REF(9).tsdr->number];
/* insert_at 5 10 =(0) */
  if ((ch_returncode = insertfunc(DEF(5),DEF(10),TRUE, 0)) != Normal)
     goto ch_raise_exception;
/* idivide 7 7 =(10) */
  REF(7).value.integer = REF(7).value.integer/10;
  REF(7).tsdr = & dr_integer;
/* branch , 13 */
   goto c13;
c27:
/* size 11 5 */
  REF(11).value.integer = REF(5).value.table->size;
  REF(11).tsdr = & dr_integer;
/* notequal . 11 =(0) , 35 */
  if ( REF(11).value.integer != 0 ) goto c35;
/* ordenum_lit 12 , 48 */
  REF(12).value.ord_enum = 48;
  REF(12).tsdr = & dr_ord_enumeration;
/* insert_at 5 12 =(0) */
  if ((ch_returncode = insertfunc(DEF(5),DEF(12),TRUE, 0)) != Normal)
     goto ch_raise_exception;
c35:
/* branch_false 6 , 40 */
  if ( !REF(6).value.boolean ) goto c40;
/* ordenum_lit 13 , 45 */
  REF(13).value.ord_enum = 45;
  REF(13).tsdr = & dr_ord_enumeration;
/* insert_at 5 13 =(0) */
  if ((ch_returncode = insertfunc(DEF(5),DEF(13),TRUE, 0)) != Normal)
     goto ch_raise_exception;
c40:
/* move 3.1 5 */
  (*(REF(3)DOT(1).tsdr)->finalize)(REF(3)DOT(1).value,F_DISCARD,sched);
  REF(3)DOT(1) = REF(5);
  REF(5).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);
c44:
/* endprocess */
  che_endprocess(sched); return;
#include "chtail.h"
