コード例 #1
0
ファイル: gpy-object-integer.c プロジェクト: kostyll/gccpy
gpy_object_t *
gpy_obj_integer_not_eq_to (gpy_object_t * o1, gpy_object_t * o2)
{
  gpy_object_t * retval = NULL_OBJECT;
  gpy_object_state_t x = OBJECT_STATE (o1);
  gpy_object_state_t y = OBJECT_STATE (o2);

  if (!strcmp (x.identifier, "Int"))
    {
      if (!strcmp (y.identifier, "Int"))
	{
	  struct gpy_obj_integer_t * t1 = (struct gpy_obj_integer_t *)
	    x.state;
	  struct gpy_obj_integer_t * t2 = (struct gpy_obj_integer_t *)
	    y.state;

	  int x = t1->Int;
	  int y = t2->Int;
	  retval = gpy_rr_fold_integer (x != y);
	}
      else
	fatal ("invalid object type <%s>!\n", y.identifier);
    }
  else
    fatal ("invalid object type <%s>!\n", x.identifier);
  return retval;
}
コード例 #2
0
gpy_object_t *
gpy_obj_integer_add (gpy_object_t * o1, gpy_object_t * o2)
{
  gpy_object_t * retval = NULL_OBJECT;

  gpy_object_state_t * x = o1->o.object_state;
  gpy_object_state_t * y = o2->o.object_state;

  if (!strcmp (x->identifier, "Int"))
    {
      if (!strcmp (y->identifier, "Int"))
	{
	  struct gpy_obj_integer_t *t1 = (struct gpy_obj_integer_t*) x->state;
	  struct gpy_obj_integer_t *t2 = (struct gpy_obj_integer_t*) y->state;

          int z = t1->Int + t2->Int;
	  retval = gpy_rr_fold_integer (z);
	}
      else
	{
	  fatal ("invalid object type <%s>!\n", y->identifier);
	}
    }
  else
    {
      fatal ("invalid object type <%s>!\n", x->identifier);
    }
  return retval;
}