C++ の Chaiscript モジュールが python で動作するようにしようとしています。私の問題は、使用する必要があるメイン クラスがチュートリアルで使用されているものよりも高度であるため、目標を達成するのが難しいことです。
cython で実装したいクラスは次のとおりです。
// chaiscript.hpp
#include "chaiscript_basic.hpp"
#include "language/chaiscript_parser.hpp"
#include "chaiscript_stdlib.hpp"
namespace chaiscript
{
class ChaiScript : public ChaiScript_Basic
{
public:
ChaiScript(std::vector<std::string> t_modulepaths = {},
std::vector<std::string> t_usepaths = {},
const std::vector<Options> &t_opts = chaiscript::default_options())
: ChaiScript_Basic(
chaiscript::Std_Lib::library(),
std::make_unique<parser::ChaiScript_Parser<eval::Noop_Tracer, optimizer::Optimizer_Default>>(),
t_modulepaths, t_usepaths, t_opts)
{
}
};
}
これまでに作成したcythonは次のとおりです。
from libcpp.vector cimport vector
from libcpp.string cimport string
from libcpp.utility cimport *
cdef extern from "./chaiscript.hpp" namespace "chaiscript":
cdef cppclass ChaiScript:
ChaiScript(vector[string] t_modulepaths = {},
vector[string] t_usepaths = {},
const vector[Options] &t_opts = default_options())
cdef class PyChaiscript:
cdef ChaiScript * ptr