|
1
|
|
|
2
3
4
5
6
7
|
// XXX
// set module name with preprocessor
// because Mac OS X doesn't seem to recognize jniclassname option
#ifdef SWIGJAVA
%module MorfeuszWrapper
#else
|
|
8
|
%module morfeusz2
|
|
9
10
|
#endif
|
|
11
|
%feature("autodoc", "2");
|
|
12
13
|
%{
#include "Morfeusz.hpp"
|
|
14
|
#include "MorphInterpretation.hpp"
|
|
15
|
#include "exceptions.hpp"
|
|
16
|
#include "const.hpp"
|
|
17
18
|
%}
|
|
19
20
21
22
|
%include "std_vector.i"
%include "std_string.i"
#ifdef SWIGJAVA
|
|
23
|
|
|
24
|
%include "enums.swg"
|
|
25
|
|
|
26
27
|
/* Force the generated Java code to use the C enum values rather than making a JNI call */
%javaconst(1);
|
|
28
29
30
31
32
33
|
%pragma(java) jniclasscode=%{
static {
System.loadLibrary("jmorfeusz");
}
%}
|
|
34
35
|
#endif
|
|
36
37
38
39
40
41
42
43
44
45
46
47
48
|
%ignore MorphInterpretation::MorphInterpretation(
int startNode,
int endNode,
const std::string& orth,
const std::string& lemma,
int tagnum,
int namenum,
const Tagset& tagset,
const CharsetConverter& charsetConverter);
%ignore MorphInterpretation::createIgn(int startNode, const std::string& orth, const Tagset& tagset, const CharsetConverter& charsetConverter);
%ignore Tagset::Tagset(const unsigned char* fsaData);
|
|
49
50
51
|
%include "Morfeusz.hpp"
%include "MorphInterpretation.hpp"
|
|
52
|
%include "const.hpp"
|
|
53
|
%include "exceptions.hpp"
|
|
54
|
|
|
55
|
// instantiate vector of interpretations
|
|
56
57
58
59
60
|
namespace std {
// dirty hack so it will compile without no-arg constructor for MorphInterpretation
%ignore vector<MorphInterpretation>::vector(size_type);
%ignore vector<MorphInterpretation>::resize;
|
|
61
|
%template(InterpsVector) vector<MorphInterpretation>;
|
|
62
|
}
|
|
63
64
65
66
67
68
|
#ifdef SWIGPYTHON
%pythoncode %{
def analyze(self, text):
res = InterpsVector()
|
|
69
|
_morfeusz2.Morfeusz_analyze(self, text, res)
|
|
70
71
72
73
74
|
return list(res)
Morfeusz.analyze = analyze
def getOrth(self):
|
|
75
|
return _morfeusz2.MorphInterpretation_getOrth(self).decode('utf8')
|
|
76
77
|
def getLemma(self):
|
|
78
|
return _morfeusz2.MorphInterpretation_getLemma(self).decode('utf8')
|
|
79
80
|
def getTag(self):
|
|
81
|
return _morfeusz2.MorphInterpretation_getTag(self).decode('utf8')
|
|
82
83
|
def getName(self):
|
|
84
|
return _morfeusz2.MorphInterpretation_getName(self).decode('utf8')
|
|
85
86
87
88
89
90
91
|
MorphInterpretation.getOrth = getOrth
MorphInterpretation.getLemma = getLemma
MorphInterpretation.getTag = getTag
MorphInterpretation.getName = getName
%}
#endif
|