YAP 7.1.0
ChYInterface

C-Interface to YAP. More...

Detailed Description

C-Interface to YAP.

The following routines export the YAP internals and architecture

Modules

 Term Handles or Slots
 Term handles correspond to SWI-Prolog's term_t datatype: they are a safe representation of terms.
 
 Term Handles
 Also known as term handles, slots are offsets to entries in the local stack.
 

Macro Definition Documentation

◆ __BEGIN_DECLS

#define __BEGIN_DECLS   /* empty */

Definition at line 65 of file YapInterface.h.

◆ __END_DECLS

#define __END_DECLS   /* empty */

Definition at line 66 of file YapInterface.h.

◆ __YAP_PROLOG__

#define __YAP_PROLOG__   1

Definition at line 36 of file YapInterface.h.

◆ IOSTREAM

#define IOSTREAM   void

Definition at line 396 of file YapInterface.h.

◆ YAP_ARG1

#define YAP_ARG1   YAP_A(1)

Definition at line 90 of file YapInterface.h.

◆ YAP_ARG10

#define YAP_ARG10   YAP_A(10)

Definition at line 99 of file YapInterface.h.

◆ YAP_ARG11

#define YAP_ARG11   YAP_A(11)

Definition at line 100 of file YapInterface.h.

◆ YAP_ARG12

#define YAP_ARG12   YAP_A(12)

Definition at line 101 of file YapInterface.h.

◆ YAP_ARG13

#define YAP_ARG13   YAP_A(13)

Definition at line 102 of file YapInterface.h.

◆ YAP_ARG14

#define YAP_ARG14   YAP_A(14)

Definition at line 103 of file YapInterface.h.

◆ YAP_ARG15

#define YAP_ARG15   YAP_A(15)

Definition at line 104 of file YapInterface.h.

◆ YAP_ARG16

#define YAP_ARG16   YAP_A(16)

Definition at line 105 of file YapInterface.h.

◆ YAP_ARG2

#define YAP_ARG2   YAP_A(2)

Definition at line 91 of file YapInterface.h.

◆ YAP_ARG3

#define YAP_ARG3   YAP_A(3)

Definition at line 92 of file YapInterface.h.

◆ YAP_ARG4

#define YAP_ARG4   YAP_A(4)

Definition at line 93 of file YapInterface.h.

◆ YAP_ARG5

#define YAP_ARG5   YAP_A(5)

Definition at line 94 of file YapInterface.h.

◆ YAP_ARG6

#define YAP_ARG6   YAP_A(6)

Definition at line 95 of file YapInterface.h.

◆ YAP_ARG7

#define YAP_ARG7   YAP_A(7)

Definition at line 96 of file YapInterface.h.

◆ YAP_ARG8

#define YAP_ARG8   YAP_A(8)

Definition at line 97 of file YapInterface.h.

◆ YAP_ARG9

#define YAP_ARG9   YAP_A(9)

Definition at line 98 of file YapInterface.h.

◆ YAP_cut_fail

#define YAP_cut_fail ( )
Value:
do { \
YAP_cut_up(); \
return FALSE; \
} while (0)

Definition at line 300 of file YapInterface.h.

◆ YAP_cut_succeed

#define YAP_cut_succeed ( )
Value:
do { \
YAP_cut_up(); \
return TRUE; \
} while (0)

Definition at line 294 of file YapInterface.h.

◆ YAP_Deref

#define YAP_Deref (   t)    (t)

X_API macro.

declares the symbol as to be exported/imported from a DLL It is mostly ignored in Linux, but honored in WIN32

Returns

Definition at line 86 of file YapInterface.h.

◆ YAP_Error

#define YAP_Error (   id,
  inp,
  ... 
)     YAP_Error__( __FILE__, __FUNCTION__, __LINE__, id, inp, __VA_ARGS__)

Definition at line 365 of file YapInterface.h.

◆ YAP_InitCPred

#define YAP_InitCPred (   N,
  A,
 
)    YAP_UserCPredicate(N, F, A)

Definition at line 715 of file YapInterface.h.

◆ YAP_LookupModule

#define YAP_LookupModule (   T)    (T)

Definition at line 538 of file YapInterface.h.

◆ YAP_MkPointerTerm

#define YAP_MkPointerTerm (   ptr)    YAP_MkIntTerm((YAP_Int)(ptr))

Definition at line 719 of file YapInterface.h.

◆ YAP_ModuleName

#define YAP_ModuleName (   mod)    (mod)

Definition at line 540 of file YapInterface.h.

◆ YAP_PRESERVE_DATA

#define YAP_PRESERVE_DATA (   ptr,
  type 
)    (ptr = (type *)YAP_ExtraSpace())

Definition at line 257 of file YapInterface.h.

◆ YAP_PRESERVED_DATA

#define YAP_PRESERVED_DATA (   ptr,
  type 
)    (ptr = (type *)YAP_ExtraSpace())

Definition at line 258 of file YapInterface.h.

◆ YAP_PRESERVED_DATA_CUT

#define YAP_PRESERVED_DATA_CUT (   ptr,
  type 
)    (ptr = (type *)YAP_ExtraSpaceCut())

Definition at line 259 of file YapInterface.h.

◆ YAPVERSION

#define YAPVERSION   YAP_NUMERIC_VERSION

Definition at line 39 of file YapInterface.h.

Function Documentation

◆ YAP_A()

X_API YAP_Term YAP_A ( int  i)

Definition at line 231 of file c_interface.c.

◆ YAP_AddressFromSlot()

X_API YAP_Term * YAP_AddressFromSlot ( YAP_handle_t  slot)

get the memory address of a slot

Return the address of slot slot: please use with care

Definition at line 850 of file c_interface.c.

◆ YAP_AddressOfTermInSlot()

X_API YAP_Term * YAP_AddressOfTermInSlot ( YAP_handle_t  slot)

get the memory address of the term actually stored in a slot

Definition at line 855 of file c_interface.c.

◆ YAP_AGCRegisterHook()

X_API YAP_agc_hook YAP_AGCRegisterHook ( YAP_agc_hook  hook)

Definition at line 2558 of file c_interface.c.

◆ YAP_AllocExternalDataInStack()

X_API YAP_Term YAP_AllocExternalDataInStack ( size_t  bytes)

Definition at line 1882 of file c_interface.c.

◆ YAP_AllocSpaceFromYap()

X_API void * YAP_AllocSpaceFromYap ( size_t  size)

Definition at line 1335 of file c_interface.c.

◆ YAP_ArgsToSlots()

X_API YAP_handle_t YAP_ArgsToSlots ( int  HowMany)

copies the first new n YAAM registers to slots

Store the current first HowMany arguments in new slots

Definition at line 2850 of file c_interface.c.

◆ YAP_Argv()

X_API int YAP_Argv ( char ***  argvp)

Definition at line 2966 of file c_interface.c.

◆ YAP_ArityOfFunctor()

X_API YAP_UInt YAP_ArityOfFunctor ( YAP_Functor  f)

Definition at line 699 of file c_interface.c.

◆ YAP_AtomGetHold()

X_API int YAP_AtomGetHold ( YAP_Atom  at)

Definition at line 2554 of file c_interface.c.

◆ YAP_AtomName()

X_API const char * YAP_AtomName ( YAP_Atom  a)

Definition at line 452 of file c_interface.c.

◆ YAP_AtomNameLength()

X_API size_t YAP_AtomNameLength ( YAP_Atom  at)

Definition at line 528 of file c_interface.c.

◆ YAP_AtomReleaseHold()

X_API int YAP_AtomReleaseHold ( YAP_Atom  at)

Definition at line 2556 of file c_interface.c.

◆ YAP_AtomToInt()

X_API YAP_Int YAP_AtomToInt ( YAP_Atom  At)

Definition at line 3145 of file c_interface.c.

◆ YAP_AtomToPred()

X_API YAP_PredEntryPtr YAP_AtomToPred ( YAP_Atom  at)

Definition at line 1714 of file c_interface.c.

◆ YAP_BufferToAtomList()

X_API YAP_Term YAP_BufferToAtomList ( const char *  s)

Definition at line 1511 of file c_interface.c.

◆ YAP_BufferToString()

X_API YAP_Term YAP_BufferToString ( const char *  s)

Definition at line 1389 of file c_interface.c.

◆ YAP_ClearExceptions()

X_API void YAP_ClearExceptions ( void  )

Definition at line 2118 of file c_interface.c.

◆ YAP_CloseAllOpenStreams()

X_API void YAP_CloseAllOpenStreams ( void  )

Definition at line 2389 of file c_interface.c.

◆ YAP_ContinueGoal()

X_API YAP_Bool YAP_ContinueGoal ( void  )

Definition at line 2079 of file c_interface.c.

◆ YAP_CreateModule()

X_API YAP_Module YAP_CreateModule ( YAP_Atom  at)

Definition at line 2498 of file c_interface.c.

◆ YAP_CurrentModule()

X_API YAP_Module YAP_CurrentModule ( void  )

Definition at line 2486 of file c_interface.c.

◆ YAP_CurrentSlot()

X_API YAP_handle_t YAP_CurrentSlot ( void  )

report the current position of the slots, assuming that they occupy the top of the stack

Definition at line 825 of file c_interface.c.

◆ YAP_cut_up()

X_API void YAP_cut_up ( void  )

Definition at line 733 of file c_interface.c.

◆ YAP_cwd()

X_API char * YAP_cwd ( void  )

Definition at line 2568 of file c_interface.c.

◆ YAP_DelayInit()

X_API bool YAP_DelayInit ( YAP_ModInit_t  f,
const char  s[] 
)

YAP_DelayInit()

ensures initialization is done after engine creation It receives a pointer to function and a string describing the module

Definition at line 1030 of file yap-args.c.

◆ YAP_EndConsult()

X_API void YAP_EndConsult ( int  s,
int *  previous_sno,
const char *  previous_cwd 
)

Definition at line 2188 of file c_interface.c.

◆ YAP_EndSlots()

X_API void YAP_EndSlots ( void  )

discard all existing slots: operates as

StartSlots, but should be called when we're done

Definition at line 151 of file c_interface.c.

◆ YAP_Erase()

X_API int YAP_Erase ( void *  handle)

Definition at line 2836 of file c_interface.c.

◆ YAP_Exit()

X_API void YAP_Exit ( int  retval)

Definition at line 2370 of file c_interface.c.

◆ YAP_ExtraSpace()

X_API void * YAP_ExtraSpace ( void  )

Definition at line 718 of file c_interface.c.

◆ YAP_ExtraSpaceCut()

X_API void * YAP_ExtraSpaceCut ( void  )

Definition at line 703 of file c_interface.c.

◆ YAP_FloatOfTerm()

X_API YAP_Float YAP_FloatOfTerm ( YAP_Term  t)

Definition at line 430 of file c_interface.c.

◆ YAP_FloatsToList()

X_API YAP_Term YAP_FloatsToList ( YAP_Float *  dblp,
size_t  sz 
)

Definition at line 2579 of file c_interface.c.

◆ YAP_FlushAllStreams()

X_API void YAP_FlushAllStreams ( void  )

Definition at line 2397 of file c_interface.c.

◆ YAP_foreign_stream()

X_API void * YAP_foreign_stream ( int  sno)

Definition at line 3196 of file c_interface.c.

◆ YAP_FreeSpaceFromYap()

X_API void YAP_FreeSpaceFromYap ( void *  ptr)

Definition at line 1350 of file c_interface.c.

◆ YAP_FullLookupAtom()

X_API YAP_Atom YAP_FullLookupAtom ( const char *  c)

Definition at line 510 of file c_interface.c.

◆ YAP_FunctorToInt()

X_API YAP_Int YAP_FunctorToInt ( YAP_Functor  At)

Definition at line 3170 of file c_interface.c.

◆ YAP_FunctorToPred()

X_API YAP_PredEntryPtr YAP_FunctorToPred ( YAP_Functor  func)

Definition at line 1709 of file c_interface.c.

◆ YAP_GetFromSlot()

X_API YAP_Term YAP_GetFromSlot ( YAP_handle_t  slot)

read from a slot

Definition at line 845 of file c_interface.c.

◆ YAP_GetStreamFromId()

X_API void * YAP_GetStreamFromId ( int  no)

given a stream descriptor or stream alias (see open/3 ), return YAP's internal handle

Definition at line 2172 of file c_interface.c.

◆ YAP_GetValue()

X_API YAP_Term YAP_GetValue ( YAP_Atom  at)

Definition at line 2356 of file c_interface.c.

◆ YAP_Halt()

X_API void YAP_Halt ( int  i)

Definition at line 2420 of file c_interface.c.

◆ YAP_ImportTerm()

X_API YAP_Term YAP_ImportTerm ( char *  buf)

Definition at line 3106 of file c_interface.c.

◆ YAP_Init()

X_API void YAP_Init ( YAP_init_args yap_init)

Definition at line 1127 of file yap-args.c.

◆ YAP_InitConsult()

X_API int YAP_InitConsult ( int  mode,
const char *  filename,
char *  buf,
int *  previous_sno 
)

Definition at line 2124 of file c_interface.c.

◆ YAP_InitSocks()

X_API int YAP_InitSocks ( const char *  host,
long  port 
)

Definition at line 2372 of file c_interface.c.

◆ YAP_IntsToList()

X_API YAP_Term YAP_IntsToList ( YAP_Int *  dblp,
size_t  sz 
)

Definition at line 2645 of file c_interface.c.

◆ YAP_IntToAtom()

X_API YAP_Atom YAP_IntToAtom ( YAP_Int  i)

Definition at line 3168 of file c_interface.c.

◆ YAP_IntToFunctor()

X_API YAP_Functor YAP_IntToFunctor ( YAP_Int  i)

Definition at line 3200 of file c_interface.c.

◆ YAP_IsBigNumTerm()

X_API YAP_Bool YAP_IsBigNumTerm ( YAP_Term  t)

Definition at line 249 of file c_interface.c.

◆ YAP_IsIntTerm()

X_API YAP_Bool YAP_IsIntTerm ( YAP_Term  t)

Definition at line 241 of file c_interface.c.

◆ YAP_IsLongIntTerm()

X_API YAP_Bool YAP_IsLongIntTerm ( YAP_Term  t)

Definition at line 247 of file c_interface.c.

◆ YAP_IsNonVarTerm()

X_API YAP_Bool YAP_IsNonVarTerm ( YAP_Term  t)

Definition at line 274 of file c_interface.c.

◆ YAP_IsNumberTerm()

X_API YAP_Bool YAP_IsNumberTerm ( YAP_Term  t)

Definition at line 243 of file c_interface.c.

◆ YAP_IsRationalTerm()

X_API YAP_Bool YAP_IsRationalTerm ( YAP_Term  t)

Definition at line 260 of file c_interface.c.

◆ YAP_IsStringTerm()

X_API YAP_Bool YAP_IsStringTerm ( YAP_Term  t)

Definition at line 270 of file c_interface.c.

◆ YAP_IsVarTerm()

X_API YAP_Bool YAP_IsVarTerm ( YAP_Term  t)

Definition at line 272 of file c_interface.c.

◆ YAP_IsWideAtom()

X_API YAP_Bool YAP_IsWideAtom ( YAP_Atom  a)

Definition at line 441 of file c_interface.c.

◆ YAP_LeaveGoal()

X_API YAP_Bool YAP_LeaveGoal ( bool  successful,
YAP_dogoalinfo dgi 
)

Definition at line 1824 of file c_interface.c.

◆ YAP_LookupAtom()

X_API YAP_Atom YAP_LookupAtom ( const char *  c)

Definition at line 474 of file c_interface.c.

◆ YAP_LookupWideAtom()

X_API YAP_Atom YAP_LookupWideAtom ( const wchar_t *  c)

Definition at line 492 of file c_interface.c.

◆ YAP_MkAtomTerm()

X_API YAP_Term YAP_MkAtomTerm ( YAP_Atom  n)

Definition at line 432 of file c_interface.c.

◆ YAP_MkBigNumTerm()

X_API YAP_Term YAP_MkBigNumTerm ( void *  big)

Definition at line 347 of file c_interface.c.

◆ YAP_MkBlobTerm()

X_API YAP_Term YAP_MkBlobTerm ( unsigned int  sz)

Definition at line 386 of file c_interface.c.

◆ YAP_MkFloatTerm()

X_API YAP_Term YAP_MkFloatTerm ( YAP_Float  n)

Definition at line 419 of file c_interface.c.

◆ YAP_MkFunctor()

X_API YAP_Functor YAP_MkFunctor ( YAP_Atom  a,
YAP_UInt  n 
)

Definition at line 693 of file c_interface.c.

◆ YAP_MkIntTerm()

X_API YAP_Term YAP_MkIntTerm ( YAP_Int  n)

Definition at line 293 of file c_interface.c.

◆ YAP_MkNewApplTerm()

X_API YAP_Term YAP_MkNewApplTerm ( YAP_Functor  f,
YAP_UInt  arity 
)

Definition at line 667 of file c_interface.c.

◆ YAP_MkNewPairTerm()

X_API YAP_Term YAP_MkNewPairTerm ( void  )

Definition at line 608 of file c_interface.c.

◆ YAP_MkRationalTerm()

X_API YAP_Term YAP_MkRationalTerm ( void *  big)

Definition at line 366 of file c_interface.c.

◆ YAP_MkStringTerm()

X_API YAP_Term YAP_MkStringTerm ( const char *  n)

Definition at line 303 of file c_interface.c.

◆ YAP_MkUnsignedStringTerm()

X_API YAP_Term YAP_MkUnsignedStringTerm ( const unsigned char *  n)

Definition at line 323 of file c_interface.c.

◆ YAP_MkVarTerm()

X_API YAP_Term YAP_MkVarTerm ( void  )

Definition at line 537 of file c_interface.c.

◆ YAP_ModuleUser()

X_API YAP_Term YAP_ModuleUser ( void  )

Definition at line 2877 of file c_interface.c.

◆ YAP_NameOfFunctor()

X_API YAP_Atom YAP_NameOfFunctor ( YAP_Functor  g)

Definition at line 697 of file c_interface.c.

◆ YAP_NBufferToAtomList()

X_API YAP_Term YAP_NBufferToAtomList ( const char *  s,
size_t  len 
)

Definition at line 1529 of file c_interface.c.

◆ YAP_NBufferToString()

X_API YAP_Term YAP_NBufferToString ( const char *  s,
size_t  len 
)

Definition at line 1407 of file c_interface.c.

◆ YAP_NewOpaqueObject()

X_API YAP_Term YAP_NewOpaqueObject ( YAP_opaque_tag_t  tag,
size_t  bytes 
)

Definition at line 1917 of file c_interface.c.

◆ YAP_NewOpaqueType()

X_API YAP_opaque_tag_t YAP_NewOpaqueType ( struct YAP_opaque_handler_struct f)

Definition at line 1898 of file c_interface.c.

◆ YAP_NewSlots()

X_API YAP_handle_t YAP_NewSlots ( int  n)

Definition at line 830 of file c_interface.c.

◆ YAP_NumberOfClausesForPredicate()

X_API YAP_Int YAP_NumberOfClausesForPredicate ( YAP_PredEntryPtr  ape)

Definition at line 2880 of file c_interface.c.

◆ YAP_NWideBufferToAtomList()

X_API YAP_Term YAP_NWideBufferToAtomList ( const wchar_t *  s,
size_t  len 
)

Definition at line 1566 of file c_interface.c.

◆ YAP_NWideBufferToString()

X_API YAP_Term YAP_NWideBufferToString ( const wchar_t *  s,
size_t  len 
)

Definition at line 1444 of file c_interface.c.

◆ YAP_OpenList()

X_API YAP_Term YAP_OpenList ( int  n)

Definition at line 2700 of file c_interface.c.

◆ YAP_parse_yap_arguments()

X_API YAP_file_type_t YAP_parse_yap_arguments ( int  argc,
char *  argv[],
YAP_init_args iap 
)

YAP_parse_yap_arguments(int argc, char *argv[], YAP_init_args *iap)

Parameters
[in]argcthe number of arguments to YAP
[in]argvthe array of arguments to YAP
[in,out]argcthe array with processed settings YAP
Returns

YAP_parse_yap_arguments(int argc, char *argv[], YAP_init_args *iap)

Parameters
argcnumber of arguments
argvarguments
iapoptions, see YAP_init_args
Returns
boot from saved state or restore; error

Definition at line 607 of file yap-args.c.

◆ YAP_PruneGoal()

X_API void YAP_PruneGoal ( YAP_dogoalinfo gi)

Definition at line 2092 of file c_interface.c.

◆ YAP_Read()

X_API YAP_Term YAP_Read ( FILE *  s)

read a Prolog term from an operating system stream $s$

Definition at line 2206 of file c_interface.c.

◆ YAP_ReadClauseFromStream()

X_API YAP_Term YAP_ReadClauseFromStream ( int  s,
YAP_Term  varNames,
YAP_Term   
)

read a Prolog clause from a Prolog opened stream $s$

Similar to YAP_ReadFromStream() but takes /// default options from read_clause/3

◆ YAP_ReadFromStream()

X_API YAP_Term YAP_ReadFromStream ( int  s)

read a Prolog term from a Prolog opened stream $s$

Check YAP_OpenStream() for how to open Prolog streams in C

Definition at line 2217 of file c_interface.c.

◆ YAP_ReallocSpaceFromYap()

X_API void * YAP_ReallocSpaceFromYap ( void *  ptr,
size_t  size 
)

Definition at line 1321 of file c_interface.c.

◆ YAP_Recorded()

X_API YAP_Term YAP_Recorded ( void *  handle)

Definition at line 2803 of file c_interface.c.

◆ YAP_RecoverSlots()

X_API int YAP_RecoverSlots ( int  n,
YAP_handle_t  topSlot 
)

Succeeds if it recovers the space allocated for $n$ contiguous slots starting at topSlot.

Set the contents of slot slot to t

Definition at line 840 of file c_interface.c.

◆ YAP_RepStreamFromId()

X_API void * YAP_RepStreamFromId ( int  sno)

Utility routine to Obtain a pointer to the YAP representation of a stream.

Parameters
snoStream Id
Returns
data structure for stream

Utility routine to Obtain a pointer to the YAP representation of a stream.

Parameters
snoStream Id
Returns
data structure for stream

Definition at line 2387 of file c_interface.c.

◆ YAP_RequiresExtraStack()

X_API int YAP_RequiresExtraStack ( size_t  sz)

Definition at line 3118 of file c_interface.c.

◆ YAP_Reset()

X_API int YAP_Reset ( yap_reset_t  reset,
bool  reset_global 
)

Definition at line 2362 of file c_interface.c.

◆ YAP_RestartGoal()

X_API YAP_Bool YAP_RestartGoal ( void  )

Definition at line 2017 of file c_interface.c.

◆ YAP_RetryGoal()

X_API YAP_Bool YAP_RetryGoal ( YAP_dogoalinfo dgi)

Definition at line 1782 of file c_interface.c.

◆ YAP_SetA()

X_API YAP_Term YAP_SetA ( int  i,
YAP_Term  t 
)

Definition at line 236 of file c_interface.c.

◆ YAP_SetOutputMessage()

X_API void YAP_SetOutputMessage ( void  )

Definition at line 2374 of file c_interface.c.

◆ YAP_ShutdownGoal()

X_API YAP_Bool YAP_ShutdownGoal ( int  backtrack)

Definition at line 2038 of file c_interface.c.

◆ YAP_signal()

X_API void YAP_signal ( int  sig)

Definition at line 2863 of file c_interface.c.

◆ YAP_SizeOfExportedTerm()

X_API size_t YAP_SizeOfExportedTerm ( char *  buf)

Definition at line 3110 of file c_interface.c.

◆ YAP_StartSlots()

X_API void YAP_StartSlots ( void  )

initialize the slot data-structure: all existing slots will be discarded

Typically, this would be used at the beginning top-level or other outer quqqery

Definition at line 144 of file c_interface.c.

◆ YAP_TermNil()

X_API YAP_Term YAP_TermNil ( void  )

Definition at line 2550 of file c_interface.c.

◆ YAP_ThreadAttachEngine()

X_API int YAP_ThreadAttachEngine ( int  wid)

Definition at line 2526 of file c_interface.c.

◆ YAP_ThreadCreateEngine()

X_API int YAP_ThreadCreateEngine ( YAP_thread_attr attr)

Definition at line 2518 of file c_interface.c.

◆ YAP_ThreadDestroyEngine()

X_API int YAP_ThreadDestroyEngine ( int  wid)

Definition at line 2542 of file c_interface.c.

◆ YAP_ThreadDetachEngine()

X_API int YAP_ThreadDetachEngine ( int  wid)

Definition at line 2534 of file c_interface.c.

◆ YAP_ThreadSelf()

X_API int YAP_ThreadSelf ( void  )

Definition at line 2510 of file c_interface.c.

◆ YAP_TopGoal()

X_API YAP_PredEntryPtr YAP_TopGoal ( void  )

Definition at line 3202 of file c_interface.c.

◆ YAP_TopOfLocalStack()

X_API YAP_Term * YAP_TopOfLocalStack ( void  )

Definition at line 2422 of file c_interface.c.

◆ YAP_UserBackCPredicate()

X_API void YAP_UserBackCPredicate ( const char *  name,
YAP_UserCPred  init,
YAP_UserCPred  cont,
YAP_Arity  arity,
YAP_Arity  extra 
)

Definition at line 2470 of file c_interface.c.

◆ YAP_UserBackCutCPredicate()

X_API void YAP_UserBackCutCPredicate ( const char *  name,
YAP_UserCPred  init,
YAP_UserCPred  cont,
YAP_UserCPred  cut,
YAP_Arity  arity,
YAP_Arity  extra 
)

Definition at line 2463 of file c_interface.c.

◆ YAP_UserCPredicate()

X_API void YAP_UserCPredicate ( const char *  name,
YAP_UserCPred  def,
YAP_Arity  arity 
)

Definition at line 2451 of file c_interface.c.

◆ YAP_WideAtomName()

X_API const wchar_t * YAP_WideAtomName ( YAP_Atom  a)

Definition at line 459 of file c_interface.c.

◆ YAP_WideBufferToAtomList()

X_API YAP_Term YAP_WideBufferToAtomList ( const wchar_t *  s)

Definition at line 1548 of file c_interface.c.

◆ YAP_WideBufferToString()

X_API YAP_Term YAP_WideBufferToString ( const wchar_t *  s)

Definition at line 1426 of file c_interface.c.

◆ YAP_WriteDynamicBuffer()

X_API char * YAP_WriteDynamicBuffer ( YAP_Term  t,
YAP_encoding_t  enc,
int  flags 
)

write a a term to n user-provided buffer: make sure not tp overflow the buffer even if the text is much larger

Definition at line 2305 of file c_interface.c.

Macros

#define __YAP_PROLOG__   1
 
#define YAPVERSION   YAP_NUMERIC_VERSION
 
#define __BEGIN_DECLS   /* empty */
 
#define __END_DECLS   /* empty */
 
#define YAP_Deref(t)   (t)
 X_API macro. More...
 
#define YAP_ARG1   YAP_A(1)
 
#define YAP_ARG2   YAP_A(2)
 
#define YAP_ARG3   YAP_A(3)
 
#define YAP_ARG4   YAP_A(4)
 
#define YAP_ARG5   YAP_A(5)
 
#define YAP_ARG6   YAP_A(6)
 
#define YAP_ARG7   YAP_A(7)
 
#define YAP_ARG8   YAP_A(8)
 
#define YAP_ARG9   YAP_A(9)
 
#define YAP_ARG10   YAP_A(10)
 
#define YAP_ARG11   YAP_A(11)
 
#define YAP_ARG12   YAP_A(12)
 
#define YAP_ARG13   YAP_A(13)
 
#define YAP_ARG14   YAP_A(14)
 
#define YAP_ARG15   YAP_A(15)
 
#define YAP_ARG16   YAP_A(16)
 
#define YAP_PRESERVE_DATA(ptr, type)   (ptr = (type *)YAP_ExtraSpace())
 
#define YAP_PRESERVED_DATA(ptr, type)   (ptr = (type *)YAP_ExtraSpace())
 
#define YAP_PRESERVED_DATA_CUT(ptr, type)   (ptr = (type *)YAP_ExtraSpaceCut())
 
#define YAP_cut_succeed()
 
#define YAP_cut_fail()
 
#define YAP_Error(id, inp, ...)    YAP_Error__( __FILE__, __FUNCTION__, __LINE__, id, inp, __VA_ARGS__)
 
#define IOSTREAM   void
 
#define YAP_LookupModule(T)   (T)
 
#define YAP_ModuleName(mod)   (mod)
 
#define YAP_InitCPred(N, A, F)   YAP_UserCPredicate(N, F, A)
 
#define YAP_MkPointerTerm(ptr)   YAP_MkIntTerm((YAP_Int)(ptr))
 

Functions

X_API YAP_Term YAP_A (int)
 
X_API YAP_Term YAP_SetA (int, YAP_Term)
 
X_API YAP_Bool YAP_IsVarTerm (YAP_Term)
 
X_API YAP_Bool YAP_IsNonVarTerm (YAP_Term)
 
X_API YAP_Term YAP_MkVarTerm (void)
 
X_API YAP_Bool YAP_IsIntTerm (YAP_Term)
 
X_API YAP_Bool YAP_IsLongIntTerm (YAP_Term)
 
X_API YAP_Bool YAP_IsBigNumTerm (YAP_Term)
 
X_API YAP_Bool YAP_IsRationalTerm (YAP_Term)
 
X_API YAP_Bool YAP_IsFloatTerm (YAP_Term)
 
X_API YAP_Bool YAP_IsNumberTerm (YAP_Term)
 
X_API YAP_Bool YAP_IsDbRefTerm (YAP_Term)
 
X_API YAP_Bool YAP_IsAtomTerm (YAP_Term)
 
X_API YAP_Bool YAP_IsStringTerm (YAP_Term)
 
X_API YAP_Bool YAP_IsPairTerm (YAP_Term)
 
X_API YAP_Bool YAP_IsApplTerm (YAP_Term)
 
X_API YAP_Bool YAP_IsCompoundTerm (YAP_Term)
 
X_API YAP_Term YAP_MkIntTerm (YAP_Int)
 
X_API YAP_Term YAP_MkStringTerm (const char *)
 
X_API YAP_Term YAP_MkUnsignedStringTerm (const unsigned char *)
 
X_API YAP_Term YAP_MkBigNumTerm (void *)
 
X_API YAP_Term YAP_MkRationalTerm (void *)
 
X_API const unsigned char * YAP_UnsignedStringOfTerm (YAP_Term)
 
X_API const char * YAP_StringOfTerm (YAP_Term)
 
X_API YAP_Int YAP_IntOfTerm (YAP_Term)
 
X_API YAP_Bool YAP_BigNumOfTerm (YAP_Term t, void *b)
 
X_API YAP_Bool YAP_RationalOfTerm (YAP_Term, void *)
 
X_API YAP_Term YAP_MkFloatTerm (YAP_Float)
 
X_API YAP_Float YAP_FloatOfTerm (YAP_Term)
 
X_API YAP_Term YAP_MkAtomTerm (YAP_Atom)
 
X_API YAP_Atom YAP_AtomOfTerm (YAP_Term)
 
X_API YAP_Atom YAP_LookupAtom (const char *c)
 
X_API YAP_Atom YAP_LookupWideAtom (const wchar_t *c)
 
X_API YAP_Atom YAP_FullLookupAtom (const char *c)
 
X_API size_t YAP_AtomNameLength (YAP_Atom)
 
X_API YAP_Bool YAP_IsWideAtom (YAP_Atom a)
 
X_API const char * YAP_AtomName (YAP_Atom a)
 
X_API const wchar_t * YAP_WideAtomName (YAP_Atom a)
 
X_API YAP_Term YAP_MkPairTerm (YAP_Term, YAP_Term)
 
X_API YAP_Term YAP_MkListFromTerms (YAP_Term *, YAP_Int)
 
X_API YAP_Term YAP_MkNewPairTerm (void)
 
X_API YAP_Term YAP_HeadOfTerm (YAP_Term)
 
X_API YAP_Term YAP_TailOfTerm (YAP_Term)
 
X_API YAP_Int YAP_SkipList (YAP_Term *, YAP_Term **)
 
X_API YAP_Term YAP_TermNil (void)
 
X_API int YAP_IsTermNil (YAP_Term)
 
X_API YAP_Term YAP_MkApplTerm (YAP_Functor functor, YAP_UInt arity, YAP_Term args[])
 
X_API YAP_Term YAP_MkNewApplTerm (YAP_Functor f, YAP_UInt arity)
 
X_API YAP_Functor YAP_FunctorOfTerm (YAP_Term t)
 
X_API YAP_Term YAP_ArgOfTerm (YAP_UInt n, YAP_Term t)
 
X_API YAP_Term * YAP_ArgsOfTerm (YAP_Term t)
 
X_API YAP_Functor YAP_MkFunctor (YAP_Atom a, YAP_UInt n)
 
X_API YAP_Atom YAP_NameOfFunctor (YAP_Functor g)
 
X_API YAP_UInt YAP_ArityOfFunctor (YAP_Functor f)
 
X_API void * YAP_ExtraSpace (void)
 
X_API void * YAP_ExtraSpaceCut (void)
 
X_API YAP_Bool YAP_Unify (YAP_Term t1, YAP_Term t2)
 
X_API void YAP_UserCPredicate (const char *, YAP_UserCPred, YAP_Arity arity)
 
X_API void YAP_UserCPredicateWithArgs (const char *, YAP_UserCPred, YAP_Arity, YAP_Term)
 
X_API void YAP_UserBackCPredicate (const char *, YAP_UserCPred, YAP_UserCPred, YAP_Arity, YAP_Arity)
 
X_API void YAP_UserBackCutCPredicate (const char *name, YAP_UserCPred, YAP_UserCPred, YAP_UserCPred, YAP_Arity, YAP_Arity)
 
X_API YAP_Int YAP_ListLength (YAP_Term)
 
X_API size_t YAP_UTF8_TextLength (YAP_Term t)
 
X_API YAP_Int YAP_CallProlog (YAP_Term t)
 
X_API void YAP_cut_up (void)
 
X_API void * YAP_AllocSpaceFromYap (size_t)
 
X_API void * YAP_ReallocSpaceFromYap (void *, size_t)
 
X_API void YAP_FreeSpaceFromYap (void *)
 
X_API YAP_Int YAP_RunGoal (YAP_Term)
 
X_API YAP_Int YAP_RunGoalOnce (YAP_Term)
 
X_API YAP_Bool YAP_RestartGoal (void)
 
X_API YAP_Bool YAP_ShutdownGoal (int)
 
X_API YAP_Bool YAP_ContinueGoal (void)
 
X_API void YAP_PruneGoal (YAP_dogoalinfo *)
 
X_API YAP_PredEntryPtr YAP_FunctorToPred (YAP_Functor)
 
X_API YAP_PredEntryPtr YAP_AtomToPred (YAP_Atom)
 
X_API YAP_PredEntryPtr YAP_FunctorToPredInModule (YAP_Functor, YAP_Module)
 
X_API YAP_PredEntryPtr YAP_AtomToPredInModule (YAP_Atom, YAP_Module)
 
X_API YAP_Bool YAP_EnterGoal (YAP_PredEntryPtr, YAP_Term *, YAP_dogoalinfo *)
 
X_API YAP_Bool YAP_RetryGoal (YAP_dogoalinfo *)
 
X_API YAP_Bool YAP_LeaveGoal (bool, YAP_dogoalinfo *)
 
X_API YAP_Bool YAP_GoalHasException (YAP_Term *)
 
X_API void YAP_ClearExceptions (void)
 
X_API int YAP_Reset (yap_reset_t reset, bool reset_global)
 
X_API void YAP_Error__ (const char *f, const char *fn, int pos, int myerrno, YAP_Term t, const char *buf,...)
 
X_API char * YAP_WriteBuffer (YAP_Term, char *, size_t, int)
 
X_API char * YAP_WriteDynamicBuffer (YAP_Term t, YAP_encoding_t enc, int flags)
 write a a term to n user-provided buffer: make sure not tp overflow the buffer even if the text is much larger More...
 
X_API YAP_Term YAP_CopyTerm (YAP_Term t)
 
X_API bool YAP_CompileClause (YAP_Term Cl)
 
X_API int YAP_NewExo (YAP_PredEntryPtr ap, size_t data, void *user_di)
 
X_API int YAP_AssertTuples (YAP_PredEntryPtr pred, const YAP_Term *ts, size_t offset, size_t sz)
 
X_API void YAP_Init (YAP_init_args *)
 
X_API void YAP_FastInit (char saved_state[], int argc, char *argv[])
 
X_API YAP_Term YAP_Read (FILE *s)
 read a Prolog term from an operating system stream $s$ More...
 
X_API YAP_Term YAP_ReadFromStream (int s)
 read a Prolog term from a Prolog opened stream $s$ More...
 
X_API YAP_Term YAP_ReadClauseFromStream (int s, YAP_Term varNames, YAP_Term)
 read a Prolog clause from a Prolog opened stream $s$ More...
 
X_API void YAP_Write (YAP_Term t, FILE *s, int)
 
X_API FILE * YAP_TermToStream (YAP_Term t)
 
X_API int YAP_InitConsult (int mode, const char *filename, char *buf, int *previous_sno)
 
X_API void YAP_EndConsult (int s, int *previous_sno, const char *previous_cwd)
 
X_API void YAP_Exit (int)
 
X_API void YAP_PutValue (YAP_Atom, YAP_Term)
 
X_API YAP_Term YAP_GetValue (YAP_Atom)
 
X_API YAP_Term YAP_FloatsToList (YAP_Float *, size_t)
 
X_API YAP_Int YAP_ListToFloats (YAP_Term, YAP_Float *, size_t)
 
X_API YAP_Term YAP_IntsToList (YAP_Int *, size_t)
 
X_API YAP_Int YAP_ListToInts (YAP_Term, YAP_Int *, size_t)
 
X_API char * YAP_StringToBuffer (YAP_Term, char *, unsigned int)
 
X_API YAP_Term YAP_BufferToString (const char *s)
 
X_API YAP_Term YAP_NBufferToString (const char *s, size_t len)
 
X_API YAP_Term YAP_WideBufferToString (const wchar_t *)
 
X_API YAP_Term YAP_NWideBufferToString (const wchar_t *s, size_t len)
 
X_API YAP_Term YAP_BufferToAtomList (const char *s)
 
X_API YAP_Term YAP_NBufferToAtomList (const char *s, size_t len)
 
X_API YAP_Term YAP_WideBufferToAtomList (const wchar_t *s)
 
X_API YAP_Term YAP_NWideBufferToAtomList (const wchar_t *s, size_t len)
 
X_API YAP_Term YAP_NWideBufferToAtomDiffList (const wchar_t *s, YAP_Term t0, size_t len)
 
X_API YAP_Term YAP_BufferToDiffList (const char *s, YAP_Term t0)
 
X_API YAP_Term YAP_NBufferToDiffList (const char *s, YAP_Term t0, size_t len)
 
X_API YAP_Term YAP_WideBufferToDiffList (const wchar_t *s, YAP_Term t0)
 
X_API YAP_Term YAP_NWideBufferToDiffList (const wchar_t *s, YAP_Term t0, size_t len)
 
X_API YAP_Term YAP_ReadBuffer (const char *s, YAP_Term *tp)
 
X_API int YAP_InitSocks (const char *host, long port)
 
X_API void YAP_SetOutputMessage (void)
 
X_API int YAP_StreamToFileNo (YAP_Term)
 
X_API void * YAP_RepStreamFromId (int sno)
 Utility routine to Obtain a pointer to the YAP representation of a stream. More...
 
X_API void YAP_CloseAllOpenStreams (void)
 
X_API void YAP_FlushAllStreams (void)
 
X_API void YAP_StartSlots (void)
 initialize the slot data-structure: all existing slots will be discarded More...
 
X_API void YAP_EndSlots (void)
 discard all existing slots: operates as More...
 
X_API YAP_handle_t YAP_NewSlots (int)
 
X_API YAP_handle_t YAP_CurrentSlot (void)
 report the current position of the slots, assuming that they occupy the top of the stack More...
 
X_API YAP_handle_t YAP_InitSlot (YAP_Term)
 
X_API YAP_Term YAP_GetFromSlot (YAP_handle_t)
 read from a slot More...
 
X_API YAP_Term * YAP_AddressFromSlot (YAP_handle_t)
 get the memory address of a slot More...
 
X_API YAP_Term * YAP_AddressOfTermInSlot (YAP_handle_t)
 get the memory address of the term actually stored in a slot More...
 
X_API void YAP_PutInSlot (YAP_handle_t, YAP_Term)
 
X_API int YAP_RecoverSlots (int n, YAP_handle_t top_slot)
 Succeeds if it recovers the space allocated for $n$ contiguous slots starting at topSlot. More...
 
X_API YAP_handle_t YAP_ArgsToSlots (int)
 copies the first new n YAAM registers to slots More...
 
X_API void YAP_SlotsToArgs (int, YAP_handle_t)
 
X_API void YAP_Throw (YAP_Term)
 
X_API void YAP_AsyncThrow (YAP_Term)
 
X_API void YAP_Halt (int)
 
X_API YAP_Term * YAP_TopOfLocalStack (void)
 
X_API void * YAP_Predicate (YAP_Atom, YAP_Arity, YAP_Term)
 
X_API void YAP_PredicateInfo (void *, YAP_Atom *, YAP_Arity *, YAP_Module *)
 
X_API YAP_Module YAP_CurrentModule (void)
 
X_API YAP_Module YAP_SetCurrentModule (YAP_Module)
 
X_API YAP_Module YAP_CreateModule (YAP_Atom)
 
X_API YAP_Term YAP_StripModule (YAP_Term, YAP_Module *)
 
X_API int YAP_AtomGetHold (YAP_Atom)
 
X_API int YAP_AtomReleaseHold (YAP_Atom)
 
X_API YAP_agc_hook YAP_AGCRegisterHook (YAP_agc_hook hook)
 
X_API int YAP_HaltRegisterHook (YAP_halt_hook, void *)
 
X_API char * YAP_cwd (void)
 
X_API int YAP_ThreadSelf (void)
 
X_API int YAP_ThreadCreateEngine (YAP_thread_attr *attr)
 
X_API int YAP_ThreadAttachEngine (int)
 
X_API int YAP_ThreadDetachEngine (int)
 
X_API int YAP_ThreadDestroyEngine (int)
 
X_API YAP_Term YAP_MkBlobTerm (unsigned int)
 
X_API void * YAP_BlobOfTerm (YAP_Term)
 
X_API int YAP_CompareTerms (YAP_Term, YAP_Term)
 
X_API YAP_Term YAP_OpenList (int)
 
X_API YAP_Term YAP_ExtendList (YAP_Term, YAP_Term)
 
X_API int YAP_CloseList (YAP_Term, YAP_Term)
 
X_API int YAP_IsAttVar (YAP_Term)
 
X_API YAP_Term YAP_AttsOfVar (YAP_Term)
 
X_API void * YAP_FileDescriptorFromStream (YAP_Term)
 
X_API int YAP_FileNoFromStream (YAP_Term)
 
X_API void * YAP_Record (YAP_Term)
 
X_API YAP_Term YAP_Recorded (void *)
 
X_API int YAP_Erase (void *)
 
X_API int YAP_Variant (YAP_Term, YAP_Term)
 
X_API YAP_Int YAP_NumberVars (YAP_Term, YAP_Int)
 
X_API YAP_Term YAP_UnNumberVars (YAP_Term)
 
X_API int YAP_IsNumberedVariable (YAP_Term)
 
X_API int YAP_Unifiable (YAP_Term, YAP_Term)
 
X_API int YAP_ExactlyEqual (YAP_Term, YAP_Term)
 
X_API YAP_Int YAP_TermHash (YAP_Term, YAP_Int, YAP_Int, int)
 
X_API void YAP_signal (int)
 
X_API YAP_Term YAP_GetYAPFlag (YAP_Term flag)
 
X_API int YAP_SetYAPFlag (YAP_Term flag, YAP_Term set)
 
X_API YAP_Int YAP_VarSlotToNumber (YAP_Int)
 
X_API YAP_Term YAP_ModuleUser (void)
 
X_API YAP_Int YAP_NumberOfClausesForPredicate (YAP_PredEntryPtr)
 
X_API int YAP_MaxOpPriority (YAP_Atom, YAP_Term)
 
X_API int YAP_OpInfo (YAP_Atom, YAP_Term, int, int *, int *)
 
X_API YAP_Bool YAP_IsExternalDataInStackTerm (YAP_Term)
 
X_API YAP_Term YAP_AllocExternalDataInStack (size_t bytes)
 
X_API void * YAP_ExternalDataInStackFromTerm (YAP_Term t)
 
X_API YAP_opaque_tag_t YAP_NewOpaqueType (struct YAP_opaque_handler_struct *f)
 
X_API YAP_Bool YAP_IsOpaqueObjectTerm (YAP_Term t, YAP_opaque_tag_t tag)
 
X_API YAP_Term YAP_NewOpaqueObject (YAP_opaque_tag_t tag, size_t bytes)
 
X_API void * YAP_OpaqueObjectFromTerm (YAP_Term t)
 
X_API YAP_CELL * YAP_HeapStoreOpaqueTerm (YAP_Term t)
 
X_API int YAP_Argv (char ***)
 
X_API bool YAP_DelayInit (YAP_ModInit_t f, const char s[])
 YAP_DelayInit() More...
 
X_API YAP_tag_t YAP_TagOfTerm (YAP_Term)
 
X_API size_t YAP_ExportTerm (YAP_Term, char *, size_t)
 
X_API size_t YAP_SizeOfExportedTerm (char *)
 
X_API YAP_Term YAP_ImportTerm (char *)
 
X_API int YAP_RequiresExtraStack (size_t)
 
X_API YAP_file_type_t YAP_parse_yap_arguments (int argc, char *argv[], YAP_init_args *iap)
 YAP_parse_yap_arguments(int argc, char *argv[], YAP_init_args *iap) More...
 
X_API void * YAP_foreign_stream (int sno)
 
X_API YAP_Int YAP_AtomToInt (YAP_Atom At)
 
X_API YAP_Atom YAP_IntToAtom (YAP_Int i)
 
X_API YAP_Int YAP_FunctorToInt (YAP_Functor At)
 
X_API YAP_Functor YAP_IntToFunctor (YAP_Int i)
 
X_API YAP_PredEntryPtr YAP_TopGoal (void)
 
X_API void * YAP_GetStreamFromId (int no)
 given a stream descriptor or stream alias (see open/3 ), return YAP's internal handle More...
 
X_API void * YAP_PointerOfTerm (YAP_Term t)
 
X_API void * YAP_FetchArray (YAP_Term t1, intptr_t *sz, int *type)