#include "int.h"

int int_sort= 0;

udatum
n0 ()
{
  static udatum kkk= 0;

  if (kkk == 0) {
    kkk= ud_alloc ();
    kkk->ino= 0;        /* user coding */
    (void) ud_const (int_sort,kkk);
  }
  return kkk;
}

udatum
n1 ()
{
  static udatum kkk= 0;

  if (kkk == 0) {
    kkk= ud_alloc ();
    kkk->ino= 1;        /* user coding */
    (void) ud_const (int_sort,kkk);
  }
  return kkk;
}

udatum
n2 ()
{
  static udatum kkk= 0;

  if (kkk == 0) {
    kkk= ud_alloc ();
    kkk->ino= 2;        /* user coding */
    (void) ud_const (int_sort,kkk);
  }
  return kkk;
}

udatum
n3 ()
{
  static udatum kkk= 0;

  if (kkk == 0) {
    kkk= ud_alloc ();
    kkk->ino= 3;        /* user coding */
    (void) ud_const (int_sort,kkk);
  }
  return kkk;
}

udatum
eq (t1, t2)
    udatum t1, t2;
{
  udatum r;

  if (t1->ino == t2->ino)
    r= true ();
  else
    r= false ();
  ud_free(int_sort, t1);
  ud_free(int_sort, t2);
  return r;
}

udatum

noteq (t1, t2)
    udatum t1, t2;
{
  udatum r;
  
  if (t1->ino != t2->ino)
    r= true ();
  else
    r= false ();
  ud_free(int_sort, t1);
  ud_free(int_sort, t2);
  return r;
}
udatum
plus (t1, t2)
    udatum t1, t2;
{
  udatum kkk;

  kkk= ud_alloc();
  kkk->ino= t1->ino + t2->ino;
  ud_free(int_sort, t1);
  ud_free(int_sort, t2);
  return kkk;
}
udatum
mod (t1, t2)
    udatum t1, t2;
{
  udatum kkk;

  kkk= ud_alloc();
  kkk->ino= t1->ino % t2->ino;
  ud_free(int_sort, t1);
  ud_free(int_sort, t2);
  return kkk;
}
int
eqint (t1, t2)
    udatum t1, t2;
{
  return (t1->ino == t2->ino);
}
char*
dint (t1)
     udatum  t1;
{
  void* malloc ();
  static char* buff= NULL; /* Y por que no un array directamente? */
  
  if (buff == NULL)
    buff= malloc (16);
  
  sprintf (buff, "%d", t1->ino);
  return buff;
}
