SORTREC _S_RUNTIME_integer;

XREAD(read__integer)
 { int i,s,v; FOURBYTES FPOS=mark_POS();
   EAT_WHITESPACE();
   i=0,s=1;
   if (LAST_CH=='-') { drop_POS(FPOS); FPOS=mark_POS(); s= -1; GET_CHAR();}
   if (v=((LAST_CH>='0')&&(LAST_CH<='9'))) {
    do { i=10*i+(LAST_CH-'0');
         drop_POS(FPOS);
         FPOS=mark_POS();
       }
    while ((GET_CHAR()>='0')&&(LAST_CH<='9'));
   }
   to_POS(FPOS);
   *RES= v ? (TERM)(s*i) : A;
   *OK= v ? true : false;
   *SYSO= SYSI;
 }
 
XWRITE(write__integer)
 { char s[20];
   sprintf(s,"%d",(int)A);
   S_OUT(s);
   *OK= true;
   *SYSO= SYSI;
 }

XCOPY(copy__integer)
 { return A;}

XFREE(free__integer)
 {
 }

XEQ(_X61_X61__integer)
 { return (TERM)((int)A1==(int)A2); } 


void
DEFUN_VOID(INTEGER_RINITIALIZE) {
   _S_RUNTIME_integer=NEW_ESORT(read__integer,write__integer,
                                copy__integer,free__integer,
                                _X61_X61__integer
                               ,"integer"
			       );
  _S_RUNTIME_integer->numcons = -2;
}
