| 
									
										
										
										
											2014-04-28 11:47:09 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define YAP_CPP_INTERFACE 1
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-06 17:47:58 +00:00
										 |  |  | //! @{
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-04 22:31:22 +01:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *   @defgroup yap-cplus-interface An object oriented interface for YAP. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2014-09-11 14:06:57 -05:00
										 |  |  |  *   @ingroup ChYInterface | 
					
						
							| 
									
										
										
										
											2014-05-04 22:31:22 +01:00
										 |  |  |  *    @tableofcontents | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * C++ interface to YAP. Designed to be object oriented and to fit naturally | 
					
						
							|  |  |  |  * with the swig interface language generator. It uses ideas from the old YAP | 
					
						
							|  |  |  |  * interface and from the SWI foreign language interface. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2014-04-28 11:47:09 +01:00
										 |  |  | #include <stdlib.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-22 17:35:05 +01:00
										 |  |  | // Bad export from Python
 | 
					
						
							|  |  |  | #ifdef HAVE_STAT
 | 
					
						
							|  |  |  | #undef HAVE_STAT
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2014-05-04 22:31:22 +01:00
										 |  |  | #include <config.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-03 02:39:57 +00:00
										 |  |  | #if USE_GMP
 | 
					
						
							|  |  |  | #include <gmpxx.h>  
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-11 19:27:54 +01:00
										 |  |  | extern "C" { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-12 01:48:36 +01:00
										 |  |  | #include <stddef.h>
 | 
					
						
							| 
									
										
										
										
											2015-02-09 01:52:10 +00:00
										 |  |  |    | 
					
						
							| 
									
										
										
										
											2014-04-28 11:47:09 +01:00
										 |  |  | #include "Yap.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "Yatom.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "YapHeap.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "pl-shared.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "clause.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "yapio.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "Foreign.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "attvar.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "SWI-Stream.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "YapText.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if HAVE_STDARG_H
 | 
					
						
							|  |  |  | #include <stdarg.h>
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if HAVE_STDINT_H
 | 
					
						
							|  |  |  | #include <stdint.h>
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if HAVE_STRING_H
 | 
					
						
							|  |  |  | #include <string.h>
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-19 15:06:15 +01:00
										 |  |  | #if _MSC_VER || defined(__MINGW32__)
 | 
					
						
							| 
									
										
										
										
											2014-04-28 11:47:09 +01:00
										 |  |  | #include <windows.h>
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-10 00:27:55 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-04 22:31:22 +01:00
										 |  |  | // taken from yap_structs.h
 | 
					
						
							| 
									
										
										
										
											2014-04-28 11:47:09 +01:00
										 |  |  | #include "iopreds.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-11 19:27:54 +01:00
										 |  |  |   extern Term Yap_StringToTerm(const char *s, size_t len, term_t bindings); | 
					
						
							| 
									
										
										
										
											2014-06-04 22:08:37 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-11 19:27:54 +01:00
										 |  |  |   // we cannot consult YapInterface.h, that conflicts with what we declare, though
 | 
					
						
							|  |  |  |   // it shouldn't
 | 
					
						
							| 
									
										
										
										
											2014-04-28 11:47:09 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-09 01:52:10 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-04 22:31:22 +01:00
										 |  |  | //#include <vector>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-11 19:27:54 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-04 22:31:22 +01:00
										 |  |  | class YAPEngine; | 
					
						
							| 
									
										
										
										
											2014-04-28 11:47:09 +01:00
										 |  |  | class YAPAtom; | 
					
						
							|  |  |  | class YAPFunctor; | 
					
						
							| 
									
										
										
										
											2014-06-04 22:08:37 +01:00
										 |  |  | class YAPApplTerm; | 
					
						
							|  |  |  | class YAPPairTerm; | 
					
						
							| 
									
										
										
										
											2014-04-28 11:47:09 +01:00
										 |  |  | class YAPQuery; | 
					
						
							| 
									
										
										
										
											2015-02-09 01:52:10 +00:00
										 |  |  | class YAPModule; | 
					
						
							|  |  |  | class YAPError; | 
					
						
							|  |  |  | class YAPPredicate; | 
					
						
							| 
									
										
										
										
											2014-04-28 11:47:09 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-09 01:52:10 +00:00
										 |  |  | #include "yapa.hh"
 | 
					
						
							| 
									
										
										
										
											2014-05-04 22:31:22 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-09 01:52:10 +00:00
										 |  |  | #include "yapie.hh"
 | 
					
						
							| 
									
										
										
										
											2014-04-28 11:47:09 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-09 01:52:10 +00:00
										 |  |  | #include "yapt.hh"
 | 
					
						
							| 
									
										
										
										
											2014-04-28 11:47:09 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-09 01:52:10 +00:00
										 |  |  | #include "yapdb.hh"
 | 
					
						
							| 
									
										
										
										
											2014-04-28 11:47:09 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-09 01:52:10 +00:00
										 |  |  | #include "yapq.hh"
 | 
					
						
							| 
									
										
										
										
											2014-04-29 11:45:19 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-04 22:31:22 +01:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2014-06-11 19:27:54 +01:00
										 |  |  |  * @} | 
					
						
							| 
									
										
										
										
											2014-05-04 22:31:22 +01:00
										 |  |  |  * | 
					
						
							|  |  |  |  */ |