diff --git a/swig/Makefile b/swig/Makefile index 338985e33a22bf89ab096829c0cb3f94e678928c..42279069edf541f8d6684bdb0dfc9586f17881e2 100644 --- a/swig/Makefile +++ b/swig/Makefile @@ -23,6 +23,7 @@ CBIN=libcclvalue.o \ libcclmatch.o \ libcclmatchdata.o \ libccltokenmatch.o \ + libcclannotationmatch.o \ libcclexpression.o \ libcclparsedexpression.o \ libcclfunctionaloperator.o \ @@ -192,6 +193,13 @@ libccltokenmatch.o: $(CPP) -shared libccltokenmatch_wrap.o \ $(CCLBIN) $(ANTLRLIB) -o _libccltokenmatch.so +# AnnotationMatch +libcclannotationmatch.o: + $(SWIG) $(SWIGOPTS_LANG) libcclannotationmatch.i + $(CPP) -c libcclannotationmatch_wrap.cxx -I$(PYTHONDIR) -I$(WCCLDIR) $(CPPFLAGS) + $(CPP) -shared libcclannotationmatch_wrap.o \ + $(CCLBIN) $(ANTLRLIB) -o _libcclannotationmatch.so + # Expression libcclexpression.o: $(SWIG) $(SWIGOPTS_LANG) libcclexpression.i diff --git a/swig/libcclannotationmatch.i b/swig/libcclannotationmatch.i new file mode 100644 index 0000000000000000000000000000000000000000..791be9f5269346fb72b3df9fd59ac721765327de --- /dev/null +++ b/swig/libcclannotationmatch.i @@ -0,0 +1,37 @@ +#ifndef SWIG_LIBWCCL_ANNOTATIONMATCH_I +#define SWIG_LIBWCCL_ANNOTATIONMATCH_I + +%module libcclannotationmatch +%{ + #include <libwccl/values/annotationmatch.h> +%} + +%include "std_string.i" +%include "libcclposition.i" +%include "libcclmatchdata.i" +%include "libcorpus/libcorpusannotatedsentence.i" + +%nodefaultctor Wccl::AnnotationMatch; + +namespace Wccl { + class AnnotationMatch : public MatchData { + public: + explicit AnnotationMatch(Position position, const std::string channel); + explicit AnnotationMatch(int pos, const std::string channel); + + /* --------------------------------------------------------------------- */ + bool empty() const; + + /* --------------------------------------------------------------------- */ + Position first_token(const boost::shared_ptr<Corpus2::AnnotatedSentence>&) const; + Position last_token(const boost::shared_ptr<Corpus2::AnnotatedSentence>&) const; + + /* --------------------------------------------------------------------- */ + std::string to_raw_string() const; + }; +} + +using namespace std; +using namespace Wccl; + +#endif /* SWIG_LIBWCCL_ANNOTATIONMATCH_I */