Blame view

morfeusz/morfeusz.i 2.2 KB
Michał Lenart authored
1
Michał Lenart authored
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
Michał Lenart authored
8
%module morfeusz2
Michał Lenart authored
9
10
#endif 
Michał Lenart authored
11
%feature("autodoc", "2");
Michał Lenart authored
12
13
%{
#include "Morfeusz.hpp"
Michał Lenart authored
14
#include "MorphInterpretation.hpp"
Michał Lenart authored
15
#include "exceptions.hpp"
Michał Lenart authored
16
#include "const.hpp"
Michał Lenart authored
17
18
%}
Michał Lenart authored
19
20
21
22
%include "std_vector.i"
%include "std_string.i"

#ifdef SWIGJAVA
Michał Lenart authored
23
Michał Lenart authored
24
%include "enums.swg"
Michał Lenart authored
25
Michał Lenart authored
26
27
/* Force the generated Java code to use the C enum values rather than making a JNI call */
%javaconst(1);
Michał Lenart authored
28
29
30
31
32
33

%pragma(java) jniclasscode=%{
  static {
    System.loadLibrary("jmorfeusz");
  }
%}
Michał Lenart authored
34
35
#endif
Michał Lenart authored
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);
Michał Lenart authored
49
50
51

%include "Morfeusz.hpp"
%include "MorphInterpretation.hpp"
Michał Lenart authored
52
%include "const.hpp"
Michał Lenart authored
53
%include "exceptions.hpp"
Michał Lenart authored
54
Michał Lenart authored
55
// instantiate vector of interpretations
Michał Lenart authored
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;
Michał Lenart authored
61
   %template(InterpsVector) vector<MorphInterpretation>;
Michał Lenart authored
62
}
Michał Lenart authored
63
64
65
66
67
68

#ifdef SWIGPYTHON
%pythoncode %{

def analyze(self, text):
  res = InterpsVector()
Michał Lenart authored
69
  _morfeusz2.Morfeusz_analyze(self, text, res)
Michał Lenart authored
70
71
72
73
74
  return list(res)

Morfeusz.analyze = analyze

def getOrth(self):
Michał Lenart authored
75
  return _morfeusz2.MorphInterpretation_getOrth(self).decode('utf8')
Michał Lenart authored
76
77

def getLemma(self):
Michał Lenart authored
78
  return _morfeusz2.MorphInterpretation_getLemma(self).decode('utf8')
Michał Lenart authored
79
80

def getTag(self):
Michał Lenart authored
81
  return _morfeusz2.MorphInterpretation_getTag(self).decode('utf8')
Michał Lenart authored
82
83

def getName(self):
Michał Lenart authored
84
  return _morfeusz2.MorphInterpretation_getName(self).decode('utf8')
Michał Lenart authored
85
86
87
88
89
90
91

MorphInterpretation.getOrth = getOrth
MorphInterpretation.getLemma = getLemma
MorphInterpretation.getTag = getTag
MorphInterpretation.getName = getName
%}
#endif