From 4af0f47b7ff6dee92b669457b1be1fd49dbd06a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADtor=20Santos=20Costa?= Date: Fri, 4 Nov 2011 09:28:09 +0000 Subject: [PATCH] add this file to repository. --- H/YapTerm.h | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 H/YapTerm.h diff --git a/H/YapTerm.h b/H/YapTerm.h new file mode 100644 index 000000000..6b9a52831 --- /dev/null +++ b/H/YapTerm.h @@ -0,0 +1,137 @@ +/************************************************************************* +* * +* YAP Prolog %W% %G% * +* Yap Prolog was developed at NCCUP - Universidade do Porto * +* * +* Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997 * +* * +************************************************************************** +* * +* File: Yap.h * +* mods: * +* comments: abstract type definitions for YAP * +* version: $Id: Yap.h,v 1.38 2008-06-18 10:02:27 vsc Exp $ * +*************************************************************************/ + +#ifndef _YAP_NOT_INSTALLED_ +#include "YapTermConfig.h" + +typedef void *Functor; +typedef void *Atom; + +#endif + +#ifndef EXTERN +#define EXTERN extern +#endif + +/* defines integer types Int and UInt (unsigned) with the same size as a ptr +** and integer types Short and UShort with half the size of a ptr */ + +#if SIZEOF_INT_P==4 + +#if SIZEOF_INT==4 +/* */ typedef int Int; +/* */ typedef unsigned int UInt; + +#define Int_FORMAT "%d" +#define UInt_FORMAT "%u" + +#elif SIZEOF_LONG_INT==4 +/* */ typedef long int Int; +/* */ typedef unsigned long int UInt; + +#define Int_FORMAT "%ld" +#define UInt_FORMAT "%lu" + +#else +#error Yap require integer types of the same size as a pointer +#endif + +#if SIZEOF_SHORT_INT==2 +/* */ typedef short int Short; +/* */ typedef unsigned short int UShort; + +#else +# error Yap requires integer types half the size of a pointer +#endif + +#elif SIZEOF_INT_P==8 + +#if SIZEOF_INT==8 +/* */ typedef int Int; +/* */ typedef unsigned int UInt; + +#define Int_FORMAT "%d" +#define UInt_FORMAT "%u" + +#elif SIZEOF_LONG_INT==8 +/* */ typedef long int Int; +/* */ typedef unsigned long int UInt; + +#define Int_FORMAT "%ld" +#define UInt_FORMAT "%lu" + +# elif SIZEOF_LONG_LONG_INT==8 +/* */ typedef long long int Int; +/* */ typedef unsigned long long int UInt; + +#define Int_FORMAT "%I64d" +#define UInt_FORMAT "%I64u" + +# else +# error Yap requires integer types of the same size as a pointer +# endif + +# if SIZEOF_SHORT_INT==4 +/* */ typedef short int Short; +/* */ typedef unsigned short int UShort; + +# elif SIZEOF_INT==4 +/* */ typedef int Short; +/* */ typedef unsigned int UShort; + +# else +# error Yap requires integer types half the size of a pointer +# endif + +#else + +# error Yap requires pointers of size 4 or 8 + +#endif + +typedef UInt CELL; +typedef UShort BITS16; +typedef Short SBITS16; +typedef UInt BITS32; + +#define WordSize sizeof(BITS16) +#define CellSize sizeof(CELL) +#define SmallSize sizeof(SMALLUNSGN) + +/************************************************************************************************* + type casting macros +*************************************************************************************************/ + + +typedef CELL Term; + +/* */ typedef double Float; + +#if SIZEOF_INT