#/*-*- Mode: C++ -*- */
%module{DDC::XS};
//======================================================================
// CQueryCompiler
%name{DDC::XS::CQueryCompiler} class CQueryCompiler : public %name{DDC::XS::Object} ddcObject
{
%accessors{ %get_style{camelcase}; %set_style{camelcase}; };
public:
%name{Query} CQuery* m_pQuery %get;
%name{setQuery} void setQuery(CQuery *query) %code %{ ddcxs_obj_set(m_pQuery, query); %};
//%name{CountKeys} CQCountKeyExprList m_qCountKeys %get %set;
//%name{CountSample} size_t m_qCountSample %get %set;
//%name{CountSort} HitSortEnum m_qCountSort %get %set;
%name{KeepLexerComments} bool m_KeepLexerComments %get %set;
public:
CQueryCompiler();
void CleanParser() %code %{
ddcxs_refcnt_dec(THIS->m_pQuery, ddcxs_obj_refcnt(THIS));
THIS->DisownChildren();
THIS->CleanParser();
%};
%name{ParseQuery_} bool ParseQuery(string QueryStr)
%code %{
try {
ddcxs_refcnt_dec(THIS->m_pQuery, ddcxs_obj_refcnt(THIS));
THIS->DisownChildren();
RETVAL = THIS->ParseQuery(QueryStr);
ddcxs_refcnt_inc(THIS->m_pQuery, ddcxs_obj_refcnt(THIS));
} catch (std::exception &e) {
croak("DDC::XS::CQueryCompiler::ParseQuery() failed: %s", e.what());
};
%};
string QueryToString();
string QueryToJson();
};