| 1 | /*
 | 
| 2 |  * Souffle - A Datalog Compiler
 | 
| 3 |  * Copyright (c) 2019, The Souffle Developers. All rights reserved
 | 
| 4 |  * Licensed under the Universal Permissive License v 1.0 as shown at:
 | 
| 5 |  * - https://opensource.org/licenses/UPL
 | 
| 6 |  * - <souffle root>/licenses/SOUFFLE-UPL.txt
 | 
| 7 |  */
 | 
| 8 | 
 | 
| 9 | /************************************************************************
 | 
| 10 |  *
 | 
| 11 |  * @file SwigInterface.i
 | 
| 12 |  *
 | 
| 13 |  * SWIG interface file that transforms SwigInterface.h to the necessary language and creates a wrapper file
 | 
| 14 |  * for it
 | 
| 15 |  *
 | 
| 16 |  ***********************************************************************/
 | 
| 17 | 
 | 
| 18 | %module SwigInterface 
 | 
| 19 | %include "std_string.i" 
 | 
| 20 | %include "std_map.i" 
 | 
| 21 | %include<std_vector.i>
 | 
| 22 | namespace std {
 | 
| 23 |     %template(map_string_string) map<string, string>;
 | 
| 24 | }
 | 
| 25 | 
 | 
| 26 | %{
 | 
| 27 | #include "SwigInterface.h"
 | 
| 28 | #include <iostream>
 | 
| 29 | #include <map>
 | 
| 30 | #include <string>
 | 
| 31 | #include <vector>
 | 
| 32 | using namespace std;
 | 
| 33 | souffle::SouffleProgram* prog;
 | 
| 34 | souffle::Relation* rel;
 | 
| 35 | souffle::Relation* rel_out;
 | 
| 36 | %}
 | 
| 37 | 
 | 
| 38 | %include "SwigInterface.h" 
 | 
| 39 | %newobject newInstance;
 | 
| 40 | SWIGSouffleProgram* newInstance(const std::string& name);
 |