Commit 84a01b04cbbc132e4a7dd77d458a0c952ebbc104
1 parent
362d261a
- segmentacja wreszcie działa w miarę tak, jak trzeba (poprawiony bug z naj-)
git-svn-id: svn://svn.nlp.ipipan.waw.pl/morfeusz/morfeusz@109 ff4e3ee1-f430-4e82-ade0-24591c43f1fd
Showing
14 changed files
with
163 additions
and
55 deletions
CMakeLists.txt
... | ... | @@ -30,13 +30,13 @@ set (PROJECT_VERSION "${Morfeusz_VERSION_MAJOR}.${Morfeusz_VERSION_MINOR}.${Morf |
30 | 30 | ### USER DEFINED VARIABLES |
31 | 31 | |
32 | 32 | # INPUT_DICTIONARY_CPP |
33 | -set (INPUT_DICTIONARY_CPP "${PROJECT_SOURCE_DIR}/default_fsa.cpp") | |
34 | -set (INPUT_SYNTH_DICTIONARY_CPP "${PROJECT_SOURCE_DIR}/default_synth_fsa.cpp") | |
33 | +set (INPUT_DICTIONARY_CPP "${PROJECT_SOURCE_DIR}/../default_fsa.cpp") | |
34 | +set (INPUT_SYNTH_DICTIONARY_CPP "${PROJECT_SOURCE_DIR}/../default_synth_fsa.cpp") | |
35 | 35 | if ("${INPUT_DICTIONARIES}" STREQUAL "") |
36 | 36 | if ("${EMPTY_INPUT_DICTIONARY}" STREQUAL "TRUE") |
37 | 37 | set (INPUT_DICTIONARIES ${PROJECT_SOURCE_DIR}/input/empty.txt) |
38 | 38 | else () |
39 | - set (INPUT_DICTIONARIES "${PROJECT_SOURCE_DIR}/input/PoliMorf-0.6.7.tab,${PROJECT_SOURCE_DIR}/input/dodatki.tab") | |
39 | + set (INPUT_DICTIONARIES "${PROJECT_SOURCE_DIR}/input/PoliMorfSmall.tab,${PROJECT_SOURCE_DIR}/input/dodatki.tab") | |
40 | 40 | endif () |
41 | 41 | endif () |
42 | 42 | |
... | ... |
fsabuilder/morfeuszbuilder/fsa/state.py
fsabuilder/morfeuszbuilder/segrules/preprocessor.py
... | ... | @@ -6,7 +6,7 @@ Created on 23 sty 2014 |
6 | 6 | import re |
7 | 7 | from pyparsing import * |
8 | 8 | |
9 | -identifier = Word(alphas, bodyChars=alphanums+'_>*+') | |
9 | +identifier = Word(alphas, bodyChars=alphanums+'_>*+!') | |
10 | 10 | define = Keyword('#define').suppress() + identifier + Optional(Suppress('(') + identifier + Suppress(')')) + restOfLine + LineEnd() + StringEnd() |
11 | 11 | ifdef = Keyword('#ifdef').suppress() + identifier + LineEnd() + StringEnd() |
12 | 12 | endif = Keyword('#endif').suppress() + LineEnd() + StringEnd() |
... | ... |
fsabuilder/morfeuszbuilder/segrules/rules.py
... | ... | @@ -122,4 +122,19 @@ class ShiftOrthRule(UnaryRule): |
122 | 122 | startState.setTransitionData(self.child.segnum, 1) |
123 | 123 | |
124 | 124 | def __str__(self): |
125 | - return u'(' + str(self.child) + ')>' | |
126 | 125 | \ No newline at end of file |
126 | + return u'(' + str(self.child) + ')>' | |
127 | + | |
128 | +class ShiftOrthSameTypeRule(UnaryRule): | |
129 | + | |
130 | + def __init__(self, child): | |
131 | + super(ShiftOrthSameTypeRule, self).__init__(child) | |
132 | + | |
133 | + def addToNFA(self, fsa): | |
134 | + raise ValueError() | |
135 | + | |
136 | + def _doAddToNFA(self, startState, endState): | |
137 | + self.child._doAddToNFA(startState, endState) | |
138 | + startState.setTransitionData(self.child.segnum, 2) | |
139 | + | |
140 | + def __str__(self): | |
141 | + return u'(' + str(self.child) + ')!>' | |
... | ... |
fsabuilder/morfeuszbuilder/segrules/rulesParser.py
... | ... | @@ -43,19 +43,19 @@ class RulesParser(object): |
43 | 43 | firstNFA = None |
44 | 44 | for defs in itertools.product(*key2Defs.values()): |
45 | 45 | key2Def = dict([(def2Key[define], define) for define in defs]) |
46 | - print key2Def | |
46 | +# print key2Def | |
47 | 47 | nfa = rulesNFA.RulesNFA() |
48 | 48 | if not firstNFA: |
49 | 49 | firstNFA = nfa |
50 | 50 | combinationEnumeratedLines = segtypesConfigFile.enumerateLinesInSection('combinations') |
51 | 51 | combinationEnumeratedLines = list(preprocessor.preprocess(combinationEnumeratedLines, defs)) |
52 | 52 | for rule in self._doParse(combinationEnumeratedLines, segtypesHelper): |
53 | - print rule | |
53 | +# print rule | |
54 | 54 | rule.addToNFA(nfa) |
55 | - nfa.debug() | |
55 | +# nfa.debug() | |
56 | 56 | dfa = nfa.convertToDFA() |
57 | - print '********* DFA **************' | |
58 | - dfa.debug() | |
57 | +# print '********* DFA **************' | |
58 | +# dfa.debug() | |
59 | 59 | # print dfa.tryToRecognize(bytearray([14])) |
60 | 60 | res.addDFA(key2Def, dfa) |
61 | 61 | return res |
... | ... | @@ -76,8 +76,9 @@ class RulesParser(object): |
76 | 76 | rule = Forward() |
77 | 77 | tagRule = Word(alphanums+'_') |
78 | 78 | shiftOrthRule = tagRule + '>' |
79 | + shiftOrthSameTypeRule = tagRule + '!' + '>' | |
79 | 80 | parenRule = Suppress('(') + rule + Suppress(')') |
80 | - atomicRule = tagRule ^ shiftOrthRule ^ parenRule | |
81 | + atomicRule = tagRule ^ shiftOrthRule ^ shiftOrthSameTypeRule ^ parenRule | |
81 | 82 | zeroOrMoreRule = atomicRule + Suppress('*') |
82 | 83 | oneOrMoreRule = atomicRule + Suppress('+') |
83 | 84 | unaryRule = atomicRule ^ zeroOrMoreRule ^ oneOrMoreRule |
... | ... | @@ -88,6 +89,7 @@ class RulesParser(object): |
88 | 89 | |
89 | 90 | tagRule.setParseAction(lambda string, loc, toks: self._createNewTagRule(toks[0], lineNum, line, segtypesHelper)) |
90 | 91 | shiftOrthRule.setParseAction(lambda string, loc, toks: rules.ShiftOrthRule(toks[0])) |
92 | + shiftOrthSameTypeRule.setParseAction(lambda string, loc, toks: rules.ShiftOrthSameTypeRule(toks[0])) | |
91 | 93 | # parenRule.setParseAction(lambda string, loc, toks: toks[0]) |
92 | 94 | zeroOrMoreRule.setParseAction(lambda string, loc, toks: rules.ZeroOrMoreRule(toks[0])) |
93 | 95 | oneOrMoreRule.setParseAction(lambda string, loc, toks: rules.ConcatRule([toks[0], rules.ZeroOrMoreRule(toks[0])])) |
... | ... |
fsabuilder/morfeuszbuilder/tagset/segtypes.py
... | ... | @@ -26,6 +26,8 @@ class Segtypes(object): |
26 | 26 | self._readTags(segrulesConfigFile) |
27 | 27 | self._indexSegnums() |
28 | 28 | |
29 | + print self.segnum2Segtype | |
30 | + | |
29 | 31 | def _validate(self, msg, lineNum, cond): |
30 | 32 | if not cond: |
31 | 33 | raise exceptions.ConfigFileException(self.filename, lineNum, msg) |
... | ... | @@ -77,7 +79,7 @@ class Segtypes(object): |
77 | 79 | |
78 | 80 | lemma, pos = pattern.split(':') |
79 | 81 | |
80 | - self.patternsList.append(SegtypePattern(lemma, pos + ':%', segnum)) | |
82 | + self.patternsList.append(SegtypePattern(lemma, '%s|%s:%%' % (pos, pos), segnum)) | |
81 | 83 | |
82 | 84 | def _debugSegnums(self): |
83 | 85 | for tagnum, segnum in self._tagnum2Segnum.items(): |
... | ... |
input/segmenty.dat
input/segmenty1.dat
morfeusz/FlexionGraph.cpp
... | ... | @@ -35,18 +35,21 @@ void FlexionGraph::addPath(const std::vector<InterpretedChunk>& path) { |
35 | 35 | // debugGraph(this->graph); |
36 | 36 | for (unsigned int i = 0; i < path.size(); i++) { |
37 | 37 | const InterpretedChunk& chunk = path[i]; |
38 | - if (!chunk.shiftOrth) { | |
38 | + if (!chunk.orthWasShifted) { | |
39 | 39 | if (&chunk == &(path.front()) |
40 | 40 | && &chunk == &(path.back())) { |
41 | 41 | Edge e = {chunk, UINT_MAX}; |
42 | 42 | this->addStartEdge(e); |
43 | - } else if (&chunk == &(path.front())) { | |
43 | + } | |
44 | + else if (&chunk == &(path.front())) { | |
44 | 45 | Edge e = {chunk, this->graph.empty() ? 1 : (unsigned int) this->graph.size()}; |
45 | 46 | this->addStartEdge(e); |
46 | - } else if (&chunk == &(path.back())) { | |
47 | + } | |
48 | + else if (&chunk == &(path.back())) { | |
47 | 49 | Edge e = {chunk, UINT_MAX}; |
48 | 50 | this->addMiddleEdge((unsigned int) this->graph.size(), e); |
49 | - } else { | |
51 | + } | |
52 | + else { | |
50 | 53 | Edge e = {chunk, (int) this->graph.size() + 1}; |
51 | 54 | this->addMiddleEdge((unsigned int) this->graph.size(), e); |
52 | 55 | } |
... | ... |
morfeusz/InterpretedChunk.hpp
... | ... | @@ -17,6 +17,9 @@ struct InterpretedChunk { |
17 | 17 | std::vector<uint32_t> lowercaseCodepoints; |
18 | 18 | InterpsGroup interpsGroup; |
19 | 19 | bool shiftOrth; |
20 | + bool shiftOrthSameType; | |
21 | + bool orthWasShifted; | |
22 | + std::vector<InterpretedChunk> prefixChunks; | |
20 | 23 | }; |
21 | 24 | |
22 | 25 | #endif /* INTERPRETEDCHUNK_HPP */ |
... | ... |
morfeusz/InterpretedChunksDecoder.hpp
... | ... | @@ -29,10 +29,19 @@ public: |
29 | 29 | unsigned int endNode, |
30 | 30 | const InterpretedChunk& interpretedChunk, |
31 | 31 | OutputIterator out) { |
32 | - string orth = env.getCharsetConverter().toString(interpretedChunk.originalCodepoints); | |
32 | + string orth; | |
33 | + string lemmaPrefix; | |
34 | + for (unsigned int i = 0; i < interpretedChunk.prefixChunks.size(); i++) { | |
35 | + const InterpretedChunk& prefixChunk = interpretedChunk.prefixChunks[i]; | |
36 | + orth += env.getCharsetConverter().toString(prefixChunk.originalCodepoints); | |
37 | + lemmaPrefix += convertLemma( | |
38 | + prefixChunk.lowercaseCodepoints, | |
39 | + prefixChunk.interpsGroup.interps[0].lemma); | |
40 | + } | |
41 | + orth += env.getCharsetConverter().toString(interpretedChunk.originalCodepoints); | |
33 | 42 | for (unsigned int i = 0; i < interpretedChunk.interpsGroup.interps.size(); i++) { |
34 | 43 | const EncodedInterpretation& ei = interpretedChunk.interpsGroup.interps[i]; |
35 | - string lemma = convertLemma( | |
44 | + string lemma = lemmaPrefix + convertLemma( | |
36 | 45 | interpretedChunk.lowercaseCodepoints, |
37 | 46 | ei.lemma); |
38 | 47 | *out = MorphInterpretation( |
... | ... |
morfeusz/Morfeusz.cpp
... | ... | @@ -124,6 +124,15 @@ void Morfeusz::analyzeOneWord( |
124 | 124 | inputStart = currInput; |
125 | 125 | } |
126 | 126 | |
127 | +static inline void doShiftOrth(InterpretedChunk& from, InterpretedChunk& to) { | |
128 | + to.prefixChunks.insert( | |
129 | + to.prefixChunks.begin(), | |
130 | + from.prefixChunks.begin(), | |
131 | + from.prefixChunks.end()); | |
132 | + to.prefixChunks.push_back(from); | |
133 | + from.orthWasShifted = true; | |
134 | +} | |
135 | + | |
127 | 136 | void Morfeusz::doAnalyzeOneWord( |
128 | 137 | const char*& inputData, |
129 | 138 | const char* inputEnd, |
... | ... | @@ -150,18 +159,17 @@ void Morfeusz::doAnalyzeOneWord( |
150 | 159 | vector<InterpsGroup> val(state.getValue()); |
151 | 160 | for (unsigned int i = 0; i < val.size(); i++) { |
152 | 161 | InterpsGroup& ig = val[i]; |
153 | - | |
162 | + cerr << (int) ig.type << endl; | |
154 | 163 | SegrulesStateType newSegrulesState = segrulesState; |
155 | 164 | newSegrulesState.proceedToNext(ig.type); |
156 | 165 | if (!newSegrulesState.isSink()) { |
157 | - bool shiftOrth = newSegrulesState.getLastTransitionValue(); | |
158 | - InterpretedChunk ic = {inputData, originalCodepoints, lowercaseCodepoints, ig, shiftOrth}; | |
159 | - if (!accum.empty() && accum.back().shiftOrth) { | |
160 | - ic.originalCodepoints.insert( | |
161 | - ic.originalCodepoints.begin(), | |
162 | - accum.back().originalCodepoints.begin(), | |
163 | - accum.back().originalCodepoints.end()); | |
164 | - ic.chunkStartPtr = accum.back().chunkStartPtr; | |
166 | + bool shiftOrth = newSegrulesState.getLastTransitionValue() == 1; | |
167 | + bool shiftOrthSameType = newSegrulesState.getLastTransitionValue() == 2; | |
168 | + InterpretedChunk ic = {inputData, originalCodepoints, lowercaseCodepoints, ig, shiftOrth, shiftOrthSameType, false}; | |
169 | + if (!accum.empty() | |
170 | + && (accum.back().shiftOrth | |
171 | + || (accum.back().shiftOrthSameType && accum.back().interpsGroup.type == ig.type))) { | |
172 | + doShiftOrth(accum.back(), ic); | |
165 | 173 | } |
166 | 174 | accum.push_back(ic); |
167 | 175 | const char* newCurrInput = currInput; |
... | ... | @@ -179,17 +187,17 @@ void Morfeusz::doAnalyzeOneWord( |
179 | 187 | vector<InterpsGroup > val(state.getValue()); |
180 | 188 | for (unsigned int i = 0; i < val.size(); i++) { |
181 | 189 | InterpsGroup& ig = val[i]; |
190 | + cerr << (int) ig.type << endl; | |
182 | 191 | SegrulesStateType newSegrulesState = segrulesState; |
183 | 192 | newSegrulesState.proceedToNext(ig.type); |
184 | 193 | if (newSegrulesState.isAccepting()) { |
185 | - bool shiftOrth = newSegrulesState.getLastTransitionValue(); | |
186 | - InterpretedChunk ic = {inputData, originalCodepoints, lowercaseCodepoints, ig, shiftOrth}; | |
187 | - if (!accum.empty() && accum.back().shiftOrth) { | |
188 | - ic.originalCodepoints.insert( | |
189 | - ic.originalCodepoints.begin(), | |
190 | - accum.back().originalCodepoints.begin(), | |
191 | - accum.back().originalCodepoints.end()); | |
192 | - ic.chunkStartPtr = accum.back().chunkStartPtr; | |
194 | + bool shiftOrth = newSegrulesState.getLastTransitionValue() == 1; | |
195 | + bool shiftOrthSameType = newSegrulesState.getLastTransitionValue() == 2; | |
196 | + InterpretedChunk ic = {inputData, originalCodepoints, lowercaseCodepoints, ig, shiftOrth, shiftOrthSameType, false}; | |
197 | + if (!accum.empty() | |
198 | + && (accum.back().shiftOrth | |
199 | + || (accum.back().shiftOrthSameType && accum.back().interpsGroup.type == ig.type))) { | |
200 | + doShiftOrth(accum.back(), ic); | |
193 | 201 | } |
194 | 202 | accum.push_back(ic); |
195 | 203 | graph.addPath(accum); |
... | ... |
morfeusz/java/dupa
0 → 100644
1 | + | |
2 | +# SWIG | |
3 | +#set(CMAKE_SWIG_OUTDIR swig) | |
4 | +#FIND_PACKAGE(SWIG REQUIRED) | |
5 | +FIND_PACKAGE(JNI REQUIRED) | |
6 | +#INCLUDE(${SWIG_USE_FILE}) | |
7 | +include(UseJava) | |
8 | + | |
9 | +# SWIG Java | |
10 | +include_directories (${JAVA_INCLUDE_PATH}) | |
11 | +include_directories (..) | |
12 | + | |
13 | +set (SWIG_JAVA_OUTFILE swigJAVA.cpp) | |
14 | +# set (JAVA_WRAPPER_FILE ${CMAKE_SHARED_LIBRARY_PREFIX}morfeusz${CMAKE_SHARED_LIBRARY_SUFFIX}) | |
15 | +add_custom_command ( | |
16 | + OUTPUT ${SWIG_JAVA_OUTFILE} | |
17 | + COMMAND swig -java -c++ -package pl.waw.ipipan.morfeusz -o ${SWIG_JAVA_OUTFILE} -outdir ${CMAKE_SOURCE_DIR}/jmorfeusz/src/main/java/pl/waw/ipipan/morfeusz ${CMAKE_SOURCE_DIR}/morfeusz/morfeusz.i | |
18 | + DEPENDS libmorfeusz | |
19 | +) | |
20 | +#set (CMAKE_SHARED_LINKER_FLAGS "-s -Os -static-libstdc++ -static-libgcc") | |
21 | +add_library (jmorfeusz SHARED ${SWIG_JAVA_OUTFILE}) | |
22 | +target_link_libraries (jmorfeusz ${JAVA_LIBRARIES} libmorfeusz) | |
23 | +add_dependencies (jmorfeusz ${SWIG_JAVA_OUTFILE}) | |
24 | + | |
25 | +#set (CMAKE_SWIG_FLAGS -package pl.waw.ipipan.morfeusz) | |
26 | +#set (CMAKE_SWIG_OUTDIR ${CMAKE_SOURCE_DIR}/jmorfeusz/src/main/java/pl/waw/ipipan/morfeusz) | |
27 | + | |
28 | +#set_source_files_properties (../morfeusz.i PROPERTIES CPLUSPLUS ON) | |
29 | +#SWIG_ADD_MODULE(jmorfeusz java ../morfeusz.i) | |
30 | +#SWIG_LINK_LIBRARIES(jmorfeusz ${JAVA_LIBRARIES}) | |
31 | +#SWIG_LINK_LIBRARIES(jmorfeusz libmorfeusz) | |
32 | + | |
33 | +#if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") | |
34 | +# set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") | |
35 | +# set (CMAKE_SHARED_LINKER_FLAGS "-s -Os -static-libstdc++ -static-libgcc") | |
36 | +#endif () | |
... | ... |
nbproject/configurations.xml
... | ... | @@ -10,6 +10,12 @@ |
10 | 10 | </logicalFolder> |
11 | 11 | <logicalFolder name="f1" displayName="input" projectFiles="true"> |
12 | 12 | </logicalFolder> |
13 | + <logicalFolder name="java" | |
14 | + displayName="java" | |
15 | + projectFiles="true" | |
16 | + root="build1/morfeusz/java"> | |
17 | + <itemPath>build1/morfeusz/java/swigJAVA.cpp</itemPath> | |
18 | + </logicalFolder> | |
13 | 19 | <df root="morfeusz" name="0"> |
14 | 20 | <df name="charset"> |
15 | 21 | <in>CaseConverter.cpp</in> |
... | ... | @@ -60,6 +66,10 @@ |
60 | 66 | <itemPath>build/morfeusz/morfeuszJAVA_wrap.cxx</itemPath> |
61 | 67 | <itemPath>build/morfeusz/morfeuszPYTHON_wrap.cxx</itemPath> |
62 | 68 | </logicalFolder> |
69 | + <logicalFolder name="xxx" displayName="xxx" projectFiles="true" root=".."> | |
70 | + <itemPath>../default_fsa.cpp</itemPath> | |
71 | + <itemPath>../default_synth_fsa.cpp</itemPath> | |
72 | + </logicalFolder> | |
63 | 73 | <logicalFolder name="ExternalFiles" |
64 | 74 | displayName="Important Files" |
65 | 75 | projectFiles="false" |
... | ... | @@ -95,6 +105,10 @@ |
95 | 105 | <executablePath>build/morfeusz/morfeusz_analyzer</executablePath> |
96 | 106 | </makeTool> |
97 | 107 | </makefileType> |
108 | + <item path="../default_fsa.cpp" ex="false" tool="1" flavor2="4"> | |
109 | + </item> | |
110 | + <item path="../default_synth_fsa.cpp" ex="false" tool="1" flavor2="4"> | |
111 | + </item> | |
98 | 112 | <item path="build/default_fsa.cpp" ex="false" tool="1" flavor2="4"> |
99 | 113 | </item> |
100 | 114 | <item path="build/default_synth_fsa.cpp" ex="false" tool="1" flavor2="4"> |
... | ... | @@ -107,6 +121,7 @@ |
107 | 121 | flavor2="8"> |
108 | 122 | <ccTool> |
109 | 123 | <incDir> |
124 | + <pElem>build</pElem> | |
110 | 125 | <pElem>/usr/lib/jvm/default-java/include</pElem> |
111 | 126 | <pElem>morfeusz</pElem> |
112 | 127 | <pElem>build/morfeusz/java</pElem> |
... | ... | @@ -130,6 +145,7 @@ |
130 | 145 | flavor2="8"> |
131 | 146 | <ccTool> |
132 | 147 | <incDir> |
148 | + <pElem>build</pElem> | |
133 | 149 | <pElem>/usr/include/python2.7</pElem> |
134 | 150 | <pElem>morfeusz</pElem> |
135 | 151 | <pElem>build/morfeusz/python</pElem> |
... | ... | @@ -152,11 +168,14 @@ |
152 | 168 | tool="1" |
153 | 169 | flavor2="4"> |
154 | 170 | </item> |
171 | + <item path="build1/morfeusz/java/swigJAVA.cpp" ex="false" tool="1" flavor2="4"> | |
172 | + </item> | |
155 | 173 | <item path="default_fsa.cpp" ex="false" tool="1" flavor2="4"> |
156 | 174 | <ccTool flags="1"> |
157 | 175 | <incDir> |
176 | + <pElem>build1</pElem> | |
158 | 177 | <pElem>morfeusz</pElem> |
159 | - <pElem>build/morfeusz</pElem> | |
178 | + <pElem>build1/morfeusz</pElem> | |
160 | 179 | </incDir> |
161 | 180 | <preprocessorList> |
162 | 181 | <Elem>libmorfeusz_EXPORTS</Elem> |
... | ... | @@ -166,8 +185,9 @@ |
166 | 185 | <item path="default_synth_fsa.cpp" ex="false" tool="1" flavor2="4"> |
167 | 186 | <ccTool flags="1"> |
168 | 187 | <incDir> |
188 | + <pElem>build1</pElem> | |
169 | 189 | <pElem>morfeusz</pElem> |
170 | - <pElem>build/morfeusz</pElem> | |
190 | + <pElem>build1/morfeusz</pElem> | |
171 | 191 | </incDir> |
172 | 192 | <preprocessorList> |
173 | 193 | <Elem>libmorfeusz_EXPORTS</Elem> |
... | ... | @@ -234,18 +254,24 @@ |
234 | 254 | </undefinedList> |
235 | 255 | </ccTool> |
236 | 256 | </folder> |
237 | - <folder path="morfeusz"> | |
257 | + <folder path="java"> | |
238 | 258 | <ccTool> |
239 | 259 | <incDir> |
240 | - <pElem>build</pElem> | |
260 | + <pElem>build1</pElem> | |
261 | + <pElem>morfeusz</pElem> | |
262 | + <pElem>/usr/lib/jvm/java-6-openjdk/include</pElem> | |
241 | 263 | </incDir> |
264 | + <preprocessorList> | |
265 | + <Elem>libjmorfeusz_EXPORTS</Elem> | |
266 | + </preprocessorList> | |
242 | 267 | </ccTool> |
243 | 268 | </folder> |
244 | 269 | <folder path="morfeusz/java"> |
245 | 270 | <ccTool> |
246 | 271 | <incDir> |
272 | + <pElem>build</pElem> | |
247 | 273 | <pElem>morfeusz</pElem> |
248 | - <pElem>/usr/lib/jvm/default-java/include</pElem> | |
274 | + <pElem>/usr/lib/jvm/java-6-openjdk/include</pElem> | |
249 | 275 | </incDir> |
250 | 276 | <preprocessorList> |
251 | 277 | <Elem>libjmorfeusz_EXPORTS</Elem> |
... | ... | @@ -255,6 +281,7 @@ |
255 | 281 | <folder path="morfeusz/python"> |
256 | 282 | <ccTool> |
257 | 283 | <incDir> |
284 | + <pElem>build</pElem> | |
258 | 285 | <pElem>/usr/include/python2.7</pElem> |
259 | 286 | <pElem>morfeusz</pElem> |
260 | 287 | </incDir> |
... | ... | @@ -271,6 +298,18 @@ |
271 | 298 | </undefinedList> |
272 | 299 | </ccTool> |
273 | 300 | </folder> |
301 | + <folder path="xxx"> | |
302 | + <ccTool> | |
303 | + <incDir> | |
304 | + <pElem>build</pElem> | |
305 | + <pElem>morfeusz</pElem> | |
306 | + <pElem>build/morfeusz</pElem> | |
307 | + </incDir> | |
308 | + <preprocessorList> | |
309 | + <Elem>libmorfeusz_EXPORTS</Elem> | |
310 | + </preprocessorList> | |
311 | + </ccTool> | |
312 | + </folder> | |
274 | 313 | <item path="morfeusz/Environment.cpp" ex="false" tool="1" flavor2="4"> |
275 | 314 | <ccTool flags="1"> |
276 | 315 | <incDir> |
... | ... | @@ -368,26 +407,18 @@ |
368 | 407 | </ccTool> |
369 | 408 | </item> |
370 | 409 | <item path="morfeusz/charset/CaseConverter.cpp" ex="false" tool="1" flavor2="4"> |
371 | - <ccTool flags="1"> | |
372 | - </ccTool> | |
373 | 410 | </item> |
374 | 411 | <item path="morfeusz/charset/CharsetConverter.cpp" |
375 | 412 | ex="false" |
376 | 413 | tool="1" |
377 | 414 | flavor2="4"> |
378 | - <ccTool flags="1"> | |
379 | - </ccTool> | |
380 | 415 | </item> |
381 | 416 | <item path="morfeusz/charset/caseconv.cpp" ex="false" tool="1" flavor2="4"> |
382 | - <ccTool flags="1"> | |
383 | - </ccTool> | |
384 | 417 | </item> |
385 | 418 | <item path="morfeusz/charset/conversion_tables.cpp" |
386 | 419 | ex="false" |
387 | 420 | tool="1" |
388 | 421 | flavor2="4"> |
389 | - <ccTool flags="1"> | |
390 | - </ccTool> | |
391 | 422 | </item> |
392 | 423 | <item path="morfeusz/const.cpp" ex="false" tool="1" flavor2="4"> |
393 | 424 | <ccTool flags="1"> |
... | ... | @@ -476,12 +507,8 @@ |
476 | 507 | ex="false" |
477 | 508 | tool="1" |
478 | 509 | flavor2="4"> |
479 | - <ccTool flags="1"> | |
480 | - </ccTool> | |
481 | 510 | </item> |
482 | 511 | <item path="morfeusz/segrules/segrules.cpp" ex="false" tool="1" flavor2="4"> |
483 | - <ccTool flags="1"> | |
484 | - </ccTool> | |
485 | 512 | </item> |
486 | 513 | <item path="morfeusz/test_recognize_dict.cpp" ex="false" tool="1" flavor2="4"> |
487 | 514 | <ccTool flags="0"> |
... | ... |