support interface to foreign objects that have a backtrack handler.
This commit is contained in:
@@ -558,11 +558,13 @@ extern X_API int PROTO(YAP_OpInfo,(YAP_Atom, YAP_Term, int, int *, int *));
|
||||
/* YAP_Bool YAP_IsExternalDataInStackTerm(YAP_Term) */
|
||||
extern X_API YAP_Bool PROTO(YAP_IsExternalDataInStackTerm,(YAP_Term));
|
||||
|
||||
/* Term YAP_AllocExternalDataInStack(size_t) */
|
||||
extern X_API YAP_Term PROTO(YAP_AllocExternalDataInStack,(size_t));
|
||||
extern X_API YAP_opaque_tag_t PROTO(YAP_NewOpaqueType,(struct YAP_opaque_handler_struct *));
|
||||
|
||||
/* void *YAP_ExternalDataInStackFromTerm(YAP_Term) */
|
||||
extern X_API void *PROTO(YAP_ExternalDataInStackFromTerm,(YAP_Term));
|
||||
extern X_API YAP_Bool PROTO(YAP_IsOpaqueObjectTerm,(YAP_Term, YAP_opaque_tag_t));
|
||||
|
||||
extern X_API YAP_Term PROTO(YAP_NewOpaqueObject,(YAP_opaque_tag_t, size_t));
|
||||
|
||||
extern X_API void *PROTO(YAP_OpaqueObjectFromTerm,(YAP_Term));
|
||||
|
||||
#define YAP_InitCPred(N,A,F) YAP_UserCPredicate(N,F,A)
|
||||
|
||||
|
@@ -204,6 +204,14 @@ typedef int (*YAP_agc_hook)(void *_Atom);
|
||||
|
||||
typedef void (*YAP_halt_hook)(int exit_code, void *closure);
|
||||
|
||||
typedef int YAP_opaque_tag_t;
|
||||
|
||||
typedef int (*YAP_Opaque_CallOnFail)(void *);
|
||||
|
||||
typedef struct YAP_opaque_handler_struct {
|
||||
YAP_Opaque_CallOnFail fail_handler;
|
||||
} YAP_opaque_handler_t;
|
||||
|
||||
/********* execution mode ***********************/
|
||||
|
||||
typedef enum
|
||||
|
Reference in New Issue
Block a user