YAP 7.1.0
cxx4yap.hh
1
2#include <iostream>
3#include <string>
4#include <vector>
5#include <list>
6#include <unordered_map>
7
8#define _YAP_NOT_INSTALLED_ 1
9//#define YAP_CPP_INTERFACE 1
10
11
12extern "C" {
13
14
15#include "inline-only.h"
16#define _EXPORT_KERNEL 1
17}
18
19
20#include "yapi.hh"
21
22extern "C" {
23
24#include <stdlib.h>
25
26// Bad export from Python
27
28#include <YapConfig.h>
29
30#include <stddef.h>
31
32#if YAP_PYTHON
33
34#include <Python.h>
35
36extern bool python_in_python;
37#endif
38
39#include "Yap.h"
40
41#include "Yatom.h"
42
43#include "YapHeap.h"
44
45#include "clause.h"
46
47#include "yapio.h"
48
49#include "Foreign.h"
50
51#include "attvar.h"
52
53#include "YapText.h"
54
55#if HAVE_STDARG_H
56#include <stdarg.h>
57#endif
58
59#if HAVE_STDINT_H
60#include <stdint.h>
61#endif
62
63#if HAVE_STRING_H
64#include <string.h>
65#endif
66
67#if _MSC_VER || defined(__MINGW32__)
68//#include <windows.h>
69#endif
70// taken from yap_structs.h
71#include "iopreds.h"
72
73X_API extern void YAP_UserCPredicate(const char *, YAP_UserCPred,
74 YAP_Arity arity);
75
76/* extern void UserCPredicateWithArgs(const char *name, int *fn(), unsigned int
77 * arity)
78 */
79X_API extern void YAP_UserCPredicateWithArgs(const char *, YAP_UserCPred,
80 YAP_Arity, YAP_Term);
81
82X_API extern void YAP_UserBackCPredicate(const char *name, YAP_UserCPred init,
83 YAP_UserCPred cont, YAP_Arity arity,
84 YAP_Arity extra);
85
86X_API extern void YAP_UserBackCutCPredicate(const char *name,
87 YAP_UserCPred init,
88 YAP_UserCPred cont,
89 YAP_UserCPred cut, YAP_Arity arity,
90 YAP_Arity extra);
91
92X_API extern YAP_Term YAP_ReadBuffer(const char *s, YAP_Term *tp);
93
94extern YAP_Term YAP_MkcharPTerm(char *s);
95}
96
97typedef std::unordered_map<std::string,Term> class_map;
98
99class_map cxx;
100
101
load_foreign_files/3 has works for the following configurations:
Main definitions.
entry file for the YAP C++ interface