Commit 964579d7fbc6aed6d95e2b232aa39c3a0c0ac82b

Authored by Michał Lenart
1 parent 0614066c

- dodanie podstawowych testów generatora

- dostosowanie skryptu buildAll.sh do nowych warunków
- usunięcie nazw własnych z tagsetu
- zintegrowanie słowników analizatora i generatora
- kompilowanie na 32bit
- poprawki w konsolowej wersji

git-svn-id: svn://svn.nlp.ipipan.waw.pl/morfeusz/trunk@258 ff4e3ee1-f430-4e82-ade0-24591c43f1fd
Showing 55 changed files with 4298 additions and 241 deletions

Too many changes to show.

To preserve performance only 54 of 55 files are displayed.

CMakeLists.txt
@@ -6,16 +6,17 @@ set (Morfeusz_VERSION_MAJOR 2) @@ -6,16 +6,17 @@ set (Morfeusz_VERSION_MAJOR 2)
6 set (Morfeusz_VERSION_MINOR 0) 6 set (Morfeusz_VERSION_MINOR 0)
7 set (Morfeusz_VERSION_PATCH 0) 7 set (Morfeusz_VERSION_PATCH 0)
8 set (Morfeusz_VERSION "${Morfeusz_VERSION_MAJOR}.${Morfeusz_VERSION_MINOR}.${Morfeusz_VERSION_PATCH}") 8 set (Morfeusz_VERSION "${Morfeusz_VERSION_MAJOR}.${Morfeusz_VERSION_MINOR}.${Morfeusz_VERSION_PATCH}")
9 -if (VERSION_SUFFIX)  
10 - set (Morfeusz_VERSION_TWEAK "${VERSION_SUFFIX}") 9 +if (DEFAULT_DICT_NAME)
  10 + set (Morfeusz_VERSION_TWEAK "${DEFAULT_DICT_NAME}")
11 set (Morfeusz_VERSION "${Morfeusz_VERSION}_${Morfeusz_VERSION_TWEAK}") 11 set (Morfeusz_VERSION "${Morfeusz_VERSION}_${Morfeusz_VERSION_TWEAK}")
12 endif () 12 endif ()
13 -set (CMAKE_BUILD_TYPE Debug) 13 +set (CMAKE_BUILD_TYPE Release)
14 #~ set (CMAKE_SKIP_RPATH ON) 14 #~ set (CMAKE_SKIP_RPATH ON)
15 15
16 message ("Version=${Morfeusz_VERSION}") 16 message ("Version=${Morfeusz_VERSION}")
17 17
18 add_definitions (-DMORFEUSZ2_VERSION="${Morfeusz_VERSION}") 18 add_definitions (-DMORFEUSZ2_VERSION="${Morfeusz_VERSION}")
  19 +add_definitions (-DDEFAULT_DICT_NAME="${DEFAULT_DICT_NAME}")
19 add_definitions (-DBUILDING_MORFEUSZ) 20 add_definitions (-DBUILDING_MORFEUSZ)
20 21
21 if (NOT CMAKE_CROSSCOMPILING AND NOT SKIP_TESTING) 22 if (NOT CMAKE_CROSSCOMPILING AND NOT SKIP_TESTING)
@@ -34,7 +35,8 @@ elseif ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "") @@ -34,7 +35,8 @@ elseif ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "")
34 elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") 35 elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
35 set (ARCHITECTURE "amd64") 36 set (ARCHITECTURE "amd64")
36 else () 37 else ()
37 - message (FATAL_ERROR "Invalid architecture: ${CMAKE_SYSTEM_PROCESSOR}") 38 + set (ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}")
  39 +# message (FATAL_ERROR "Invalid architecture: ${CMAKE_SYSTEM_PROCESSOR}")
38 endif () 40 endif ()
39 41
40 # PROJECT_VERSION 42 # PROJECT_VERSION
@@ -157,11 +159,6 @@ include (CPack) @@ -157,11 +159,6 @@ include (CPack)
157 ##### END initialize some vars ##### 159 ##### END initialize some vars #####
158 file (COPY fsabuilder doTest.sh testJavaWrapper.sh testPythonWrapper.sh morfeusz/wrappers/python/test.py DESTINATION .) 160 file (COPY fsabuilder doTest.sh testJavaWrapper.sh testPythonWrapper.sh morfeusz/wrappers/python/test.py DESTINATION .)
159 161
160 -#~ configure_file (  
161 - #~ "${PROJECT_SOURCE_DIR}/morfeusz/morfeusz2_version.h.in"  
162 - #~ "${PROJECT_BINARY_DIR}/morfeusz2_version.h"  
163 -#~ )  
164 -#~ include_directories("${PROJECT_BINARY_DIR}" )  
165 ###### add main sources ######## 162 ###### add main sources ########
166 163
167 add_subdirectory (morfeusz) 164 add_subdirectory (morfeusz)
@@ -175,6 +172,12 @@ macro (test_analyzer analyzerDir) @@ -175,6 +172,12 @@ macro (test_analyzer analyzerDir)
175 add_test(TestAnalyzer_${dirname} ./doTest.sh morfeusz analyzer ${analyzerDir}) 172 add_test(TestAnalyzer_${dirname} ./doTest.sh morfeusz analyzer ${analyzerDir})
176 endmacro() 173 endmacro()
177 174
  175 +macro (test_generator generatorDir)
  176 + message ("adding test dir ${generatorDir}")
  177 + get_filename_component (dirname ${generatorTestDir} NAME)
  178 + add_test(TestGenerator_${dirname} ./doTest.sh morfeusz generator ${generatorDir})
  179 +endmacro()
  180 +
178 file (GLOB analyzerTestDirs "tests/analyzer/*") 181 file (GLOB analyzerTestDirs "tests/analyzer/*")
179 if (UNIX) 182 if (UNIX)
180 foreach (analyzerTestDir ${analyzerTestDirs}) 183 foreach (analyzerTestDir ${analyzerTestDirs})
@@ -182,6 +185,13 @@ if (UNIX) @@ -182,6 +185,13 @@ if (UNIX)
182 endforeach() 185 endforeach()
183 endif() 186 endif()
184 187
  188 +file (GLOB generatorTestDirs "tests/generator/*")
  189 +if (UNIX)
  190 + foreach (generatorTestDir ${generatorTestDirs})
  191 + test_generator(${generatorTestDir})
  192 + endforeach()
  193 +endif()
  194 +
185 if (UNIX) 195 if (UNIX)
186 add_test(TestJavaWrapper ./testJavaWrapper.sh "${CMAKE_CURRENT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}") 196 add_test(TestJavaWrapper ./testJavaWrapper.sh "${CMAKE_CURRENT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}")
187 add_test(TestPythonWrapper ./testPythonWrapper.sh "${PROJECT_BINARY_DIR}") 197 add_test(TestPythonWrapper ./testPythonWrapper.sh "${PROJECT_BINARY_DIR}")
buildAll.sh
@@ -3,36 +3,30 @@ @@ -3,36 +3,30 @@
3 set -e -o pipefail 3 set -e -o pipefail
4 4
5 if [ "$#" -ne 3 ]; then 5 if [ "$#" -ne 3 ]; then
6 - echo "Must provide exactly 3 arguments: <CROSSMORFEUSZ_ROOT> <INPUT_DICTIONARIES> <VERSION_SUFFIX>" 6 + echo "Must provide exactly 3 arguments: <CROSSMORFEUSZ_ROOT> <INPUT_DICTIONARIES> <DEFAULT_DICT_NAME>"
7 exit 1 7 exit 1
8 fi 8 fi
9 9
10 export CROSSMORFEUSZ_ROOT="$1" 10 export CROSSMORFEUSZ_ROOT="$1"
11 export INPUT_DICTIONARIES="$2" 11 export INPUT_DICTIONARIES="$2"
12 -export VERSION_SUFFIX="$3" 12 +export DEFAULT_DICT_NAME="$3"
13 export ANALYZER_DICTIONARY_CPP=`mktemp`.cpp 13 export ANALYZER_DICTIONARY_CPP=`mktemp`.cpp
14 export GENERATOR_DICTIONARY_CPP=`mktemp`.cpp 14 export GENERATOR_DICTIONARY_CPP=`mktemp`.cpp
  15 +export DICT_DIR=`mktemp -d`
15 16
16 function buildDictionaries { 17 function buildDictionaries {
17 18
18 - INPUT_TAGSET=input/sgjp-morfeusz.tagset 19 + INPUT_TAGSET=input/morfeusz-sgjp.tagset
19 SEGMENT_RULES_FILE=input/segmenty.dat 20 SEGMENT_RULES_FILE=input/segmenty.dat
20 21
21 python fsabuilder/morfeusz_builder \ 22 python fsabuilder/morfeusz_builder \
22 - --analyzer \  
23 --input-files="$INPUT_DICTIONARIES" \ 23 --input-files="$INPUT_DICTIONARIES" \
24 --tagset-file="$INPUT_TAGSET" \ 24 --tagset-file="$INPUT_TAGSET" \
25 --segments-file="$SEGMENT_RULES_FILE" \ 25 --segments-file="$SEGMENT_RULES_FILE" \
26 - --cpp --serialization-method=V1 \  
27 - -o "$ANALYZER_DICTIONARY_CPP"  
28 -  
29 - python fsabuilder/morfeusz_builder \  
30 - --generator \  
31 - --input-files="$INPUT_DICTIONARIES" \  
32 - --tagset-file="$INPUT_TAGSET" \  
33 - --segments-file="$SEGMENT_RULES_FILE" \  
34 - --cpp --serialization-method=V1 \  
35 - -o "$GENERATOR_DICTIONARY_CPP" 26 + --analyzer-cpp="$ANALYZER_DICTIONARY_CPP" \
  27 + --generator-cpp="$GENERATOR_DICTIONARY_CPP" \
  28 + --dict="$DEFAULT_DICT_NAME" \
  29 + --dict-dir="$DICT_DIR"
36 30
37 echo "DONE building dictionaries" >&2 31 echo "DONE building dictionaries" >&2
38 } 32 }
@@ -62,7 +56,7 @@ function build { @@ -62,7 +56,7 @@ function build {
62 -D TARGET_DIR=$targetDir \ 56 -D TARGET_DIR=$targetDir \
63 -D ANALYZER_DICTIONARY_CPP=$ANALYZER_DICTIONARY_CPP \ 57 -D ANALYZER_DICTIONARY_CPP=$ANALYZER_DICTIONARY_CPP \
64 -D GENERATOR_DICTIONARY_CPP=$GENERATOR_DICTIONARY_CPP \ 58 -D GENERATOR_DICTIONARY_CPP=$GENERATOR_DICTIONARY_CPP \
65 - -D VERSION_SUFFIX=$VERSION_SUFFIX \ 59 + -D DEFAULT_DICT_NAME=$DEFAULT_DICT_NAME \
66 -D SKIP_DICTIONARY_BUILDING=1 \ 60 -D SKIP_DICTIONARY_BUILDING=1 \
67 $srcDir 2>&1 61 $srcDir 2>&1
68 echo "building $toolchain" >&2 62 echo "building $toolchain" >&2
@@ -97,6 +91,6 @@ buildDictionaries 2&gt;&amp;1 | log All all @@ -97,6 +91,6 @@ buildDictionaries 2&gt;&amp;1 | log All all
97 echo "build Windows amd64 package package-java 2>&1 | log Windows amd64" 91 echo "build Windows amd64 package package-java 2>&1 | log Windows amd64"
98 echo "build Windows i386 package package-java 2>&1 | log Windows i386" 92 echo "build Windows i386 package package-java 2>&1 | log Windows i386"
99 echo "build Darwin amd64 package package-java 2>&1 | log Darwin amd64" 93 echo "build Darwin amd64 package package-java 2>&1 | log Darwin amd64"
100 -} | xargs -n1 -P3 -d$'\n' bash -c 94 +} | xargs -n1 -P2 -d$'\n' bash -c
101 95
102 96
fsabuilder/morfeusz_builder
@@ -15,6 +15,7 @@ from morfeuszbuilder.fsa.fsa import FSA @@ -15,6 +15,7 @@ from morfeuszbuilder.fsa.fsa import FSA
15 from morfeuszbuilder.fsa.serializer import Serializer, SerializationMethod 15 from morfeuszbuilder.fsa.serializer import Serializer, SerializationMethod
16 from morfeuszbuilder.tagset.tagset import Tagset 16 from morfeuszbuilder.tagset.tagset import Tagset
17 from morfeuszbuilder.segrules import rulesParser 17 from morfeuszbuilder.segrules import rulesParser
  18 +from morfeuszbuilder.utils import exceptions, limits
18 from optparse import OptionParser 19 from optparse import OptionParser
19 20
20 def _checkOption(opt, parser, msg): 21 def _checkOption(opt, parser, msg):
@@ -168,7 +169,6 @@ def _parseOptions(): @@ -168,7 +169,6 @@ def _parseOptions():
168 return opts 169 return opts
169 170
170 def _concatFiles(inputFiles): 171 def _concatFiles(inputFiles):
171 -# return open(inputFiles[0], 'r')  
172 for inputFile in inputFiles: 172 for inputFile in inputFiles:
173 if inputFile: 173 if inputFile:
174 with open(inputFile, 'r') as f: 174 with open(inputFile, 'r') as f:
@@ -178,14 +178,31 @@ def _concatFiles(inputFiles): @@ -178,14 +178,31 @@ def _concatFiles(inputFiles):
178 else: 178 else:
179 logging.warn(u'Ignoring line: "%s" - contains space in text form or lemma' % line.strip().decode('utf8')) 179 logging.warn(u'Ignoring line: "%s" - contains space in text form or lemma' % line.strip().decode('utf8'))
180 180
181 -def _readPolimorfInput4Analyzer(inputFiles, tagset, encoder, segmentRulesManager): 181 +def _readNamesAndQualifiers(inputFiles):
  182 + names = set([u''])
  183 + qualifiers = set([tuple(frozenset([u'']))])
  184 + for line in _concatFiles(inputFiles):
  185 + line = line.strip().decode('utf8')
  186 + if line:
  187 + _, _, _, name, qualifier = convertinput.parseLine(line)
  188 + names.add(name)
  189 + qualifiers.add(tuple(sorted(qualifier.split(u'|'))))
  190 + namesMap = dict([(name, idx) for idx, name in enumerate(sorted(list(names)))])
  191 + qualifiersMap = dict([(frozenset(quals), idx) for idx, quals in enumerate(sorted(list(qualifiers)))])
  192 + exceptions.validate(
  193 + len(qualifiersMap) <= limits.MAX_QUALIFIERS_COMBINATIONS,
  194 + u'Too many qualifiers combinations. The limit is %d' % limits.MAX_QUALIFIERS_COMBINATIONS)
  195 +
  196 + return namesMap, qualifiersMap
  197 +
  198 +def _readPolimorfInput4Analyzer(inputFiles, tagset, namesMap, qualifiersMap, encoder, segmentRulesManager):
182 logging.info('reading analyzer data from %s', str(inputFiles)) 199 logging.info('reading analyzer data from %s', str(inputFiles))
183 - for entry in convertinput.PolimorfConverter4Analyzer(tagset, encoder, 'utf8', segmentRulesManager).convert(_concatFiles(inputFiles)): 200 + for entry in convertinput.PolimorfConverter4Analyzer(tagset, namesMap, qualifiersMap, encoder, 'utf8', segmentRulesManager).convert(_concatFiles(inputFiles)):
184 yield entry 201 yield entry
185 202
186 -def _readPolimorfInput4Generator(inputFiles, tagset, encoder, segmentRulesManager): 203 +def _readPolimorfInput4Generator(inputFiles, tagset, namesMap, qualifiersMap, encoder, segmentRulesManager):
187 logging.info('reading generator data from %s', str(inputFiles)) 204 logging.info('reading generator data from %s', str(inputFiles))
188 - for entry in convertinput.PolimorfConverter4Generator(tagset, encoder, 'utf8', segmentRulesManager).convert(_concatFiles(inputFiles)): 205 + for entry in convertinput.PolimorfConverter4Generator(tagset, namesMap, qualifiersMap, encoder, 'utf8', segmentRulesManager).convert(_concatFiles(inputFiles)):
189 yield entry 206 yield entry
190 207
191 def _readTrainData(trainFile): 208 def _readTrainData(trainFile):
@@ -210,10 +227,10 @@ def _printStats(fsa): @@ -210,10 +227,10 @@ def _printStats(fsa):
210 logging.info('sink states num: '+str(sinkNum)) 227 logging.info('sink states num: '+str(sinkNum))
211 logging.info('array states num: '+str(arrayNum)) 228 logging.info('array states num: '+str(arrayNum))
212 229
213 -def buildAnalyzerFromPoliMorf(inputFiles, tagset, segmentRulesManager): 230 +def buildAnalyzerFromPoliMorf(inputFiles, tagset, namesMap, qualifiersMap, segmentRulesManager):
214 encoder = encode.MorphEncoder() 231 encoder = encode.MorphEncoder()
215 fsa = FSA(encoder, tagset) 232 fsa = FSA(encoder, tagset)
216 - for word, data in _readPolimorfInput4Analyzer(inputFiles, tagset, encoder, segmentRulesManager): 233 + for word, data in _readPolimorfInput4Analyzer(inputFiles, tagset, namesMap, qualifiersMap, encoder, segmentRulesManager):
217 # print word, data 234 # print word, data
218 fsa.addEntry(word, data) 235 fsa.addEntry(word, data)
219 del word 236 del word
@@ -223,12 +240,12 @@ def buildAnalyzerFromPoliMorf(inputFiles, tagset, segmentRulesManager): @@ -223,12 +240,12 @@ def buildAnalyzerFromPoliMorf(inputFiles, tagset, segmentRulesManager):
223 logging.info('Analyzer FSA stats:') 240 logging.info('Analyzer FSA stats:')
224 logging.info('------') 241 logging.info('------')
225 _printStats(fsa) 242 _printStats(fsa)
226 - return fsa, encoder.qualifiersMap 243 + return fsa
227 244
228 -def buildGeneratorFromPoliMorf(inputFiles, tagset, segmentRulesManager): 245 +def buildGeneratorFromPoliMorf(inputFiles, tagset, namesMap, qualifiersMap, segmentRulesManager):
229 encoder = encode.Encoder4Generator() 246 encoder = encode.Encoder4Generator()
230 fsa = FSA(encoder, tagset) 247 fsa = FSA(encoder, tagset)
231 - inputData = _readPolimorfInput4Generator(inputFiles, tagset, encoder, segmentRulesManager) 248 + inputData = _readPolimorfInput4Generator(inputFiles, tagset, namesMap, qualifiersMap, encoder, segmentRulesManager)
232 for word, data in inputData: 249 for word, data in inputData:
233 fsa.addEntry(word, data) 250 fsa.addEntry(word, data)
234 fsa.close() 251 fsa.close()
@@ -236,21 +253,32 @@ def buildGeneratorFromPoliMorf(inputFiles, tagset, segmentRulesManager): @@ -236,21 +253,32 @@ def buildGeneratorFromPoliMorf(inputFiles, tagset, segmentRulesManager):
236 logging.info('Generator FSA stats:') 253 logging.info('Generator FSA stats:')
237 logging.info('------') 254 logging.info('------')
238 _printStats(fsa) 255 _printStats(fsa)
239 - return fsa, encoder.qualifiersMap 256 + return fsa
240 257
241 -def _doBuildDictionaryPart(opts, isGenerator):  
242 - tagset = Tagset(opts.tagsetFile) 258 +def _doBuildDictionaryPart(opts, tagset, namesMap, qualifiersMap, isGenerator):
  259 +
  260 + logging.info('reading segmentation rules')
243 rulesParserVersion = rulesParser.RulesParser.PARSE4ANALYZER if not isGenerator else rulesParser.RulesParser.PARSE4GENERATOR 261 rulesParserVersion = rulesParser.RulesParser.PARSE4ANALYZER if not isGenerator else rulesParser.RulesParser.PARSE4GENERATOR
244 segmentRulesManager = rulesParser.RulesParser(tagset, rulesParserVersion).parse(opts.segmentsFile) 262 segmentRulesManager = rulesParser.RulesParser(tagset, rulesParserVersion).parse(opts.segmentsFile)
245 - fsa, qualifiersMap = buildAnalyzerFromPoliMorf(opts.inputFiles, tagset, segmentRulesManager)  
246 segmentationRulesData = segmentRulesManager.serialize() 263 segmentationRulesData = segmentRulesManager.serialize()
  264 + logging.info('done reading segmentation rules')
  265 +
  266 + logging.info('building automaton')
  267 + buildFunction = buildAnalyzerFromPoliMorf if not isGenerator else buildGeneratorFromPoliMorf
  268 + fsa = buildFunction(opts.inputFiles, tagset, namesMap, qualifiersMap, segmentRulesManager)
  269 + logging.info('done building automaton')
247 270
248 - if opts.analyzerTrainFile:  
249 - logging.info('training with '+opts.analyzerTrainFile+' ...') 271 + if not isGenerator and opts.analyzerTrainFile:
  272 + logging.info('training analyzer automaton with '+opts.analyzerTrainFile+' ...')
250 fsa.train(_readTrainData(opts.analyzerTrainFile)) 273 fsa.train(_readTrainData(opts.analyzerTrainFile))
251 logging.info('done training') 274 logging.info('done training')
252 275
253 - serializer = Serializer.getSerializer(opts.serializationMethod, fsa, tagset, qualifiersMap, segmentationRulesData) 276 + if isGenerator and opts.generatorTrainFile:
  277 + logging.info('training generator automaton with '+opts.generatorTrainFile+' ...')
  278 + fsa.train(_readTrainData(opts.analyzerTrainFile))
  279 + logging.info('done training')
  280 +
  281 + serializer = Serializer.getSerializer(opts.serializationMethod, fsa, tagset, namesMap, qualifiersMap, segmentationRulesData)
254 if opts.generatorCpp and isGenerator: 282 if opts.generatorCpp and isGenerator:
255 serializer.serialize2CppFile(opts.generatorCpp, isGenerator=isGenerator) 283 serializer.serialize2CppFile(opts.generatorCpp, isGenerator=isGenerator)
256 if opts.analyzerCpp and not isGenerator: 284 if opts.analyzerCpp and not isGenerator:
@@ -267,14 +295,19 @@ def main(opts): @@ -267,14 +295,19 @@ def main(opts):
267 else: 295 else:
268 logging.basicConfig(level=logging.INFO) 296 logging.basicConfig(level=logging.INFO)
269 297
270 - logging.info('reading tagset from %s', opts.tagsetFile) 298 + logging.info('reading tagset')
271 tagset = Tagset(opts.tagsetFile) 299 tagset = Tagset(opts.tagsetFile)
  300 + logging.info('done reading tagset')
  301 +
  302 + logging.info('reading names and qualifiers')
  303 + namesMap, qualifiersMap = _readNamesAndQualifiers(opts.inputFiles)
  304 + logging.info('done reading names and qualifiers')
272 305
273 if not opts.onlyGenerator: 306 if not opts.onlyGenerator:
274 - _doBuildDictionaryPart(opts, isGenerator=False) 307 + _doBuildDictionaryPart(opts, tagset, namesMap, qualifiersMap, isGenerator=False)
275 308
276 - if not opts.onlyGenerator:  
277 - _doBuildDictionaryPart(opts, isGenerator=True) 309 + if not opts.onlyAnalyzer:
  310 + _doBuildDictionaryPart(opts, tagset, namesMap, qualifiersMap, isGenerator=True)
278 311
279 if __name__ == '__main__': 312 if __name__ == '__main__':
280 import os 313 import os
fsabuilder/morfeuszbuilder/fsa/convertinput.py
@@ -27,7 +27,7 @@ def _mergeEntries(inputLines, lowercase): @@ -27,7 +27,7 @@ def _mergeEntries(inputLines, lowercase):
27 if prevInterps: 27 if prevInterps:
28 yield (prevKey, frozenset(prevInterps)) 28 yield (prevKey, frozenset(prevInterps))
29 29
30 -def _parseLine(line): 30 +def parseLine(line):
31 splitLine = line.strip().split(u'\t') 31 splitLine = line.strip().split(u'\t')
32 if len(splitLine) == 5: 32 if len(splitLine) == 5:
33 orth, base, tag, name, qualifier = splitLine 33 orth, base, tag, name, qualifier = splitLine
@@ -44,8 +44,10 @@ def _parseLine(line): @@ -44,8 +44,10 @@ def _parseLine(line):
44 44
45 class PolimorfConverter4Analyzer(object): 45 class PolimorfConverter4Analyzer(object):
46 46
47 - def __init__(self, tagset, encoder, inputEncoding, segmentRulesManager): 47 + def __init__(self, tagset, namesMap, qualifiersMap, encoder, inputEncoding, segmentRulesManager):
48 self.tagset = tagset 48 self.tagset = tagset
  49 + self.namesMap = namesMap
  50 + self.qualifiersMap = qualifiersMap
49 self.encoder = encoder 51 self.encoder = encoder
50 self.inputEncoding = inputEncoding 52 self.inputEncoding = inputEncoding
51 self.segmentRulesManager = segmentRulesManager 53 self.segmentRulesManager = segmentRulesManager
@@ -55,18 +57,21 @@ class PolimorfConverter4Analyzer(object): @@ -55,18 +57,21 @@ class PolimorfConverter4Analyzer(object):
55 for line in inputLines: 57 for line in inputLines:
56 line = line.decode(self.inputEncoding).strip('\n') 58 line = line.decode(self.inputEncoding).strip('\n')
57 if line: 59 if line:
58 - orth, base, tag, name, qualifier = _parseLine(line) 60 + orth, base, tag, name, qualifier = parseLine(line)
59 61
60 tagnum = self.tagset.getTagnum4Tag(tag) 62 tagnum = self.tagset.getTagnum4Tag(tag)
61 - namenum = self.tagset.getNamenum4Name(name) 63 + namenum = self.namesMap[name]
62 typenum = self.segmentRulesManager.lexeme2SegmentTypeNum(base, tagnum) 64 typenum = self.segmentRulesManager.lexeme2SegmentTypeNum(base, tagnum)
  65 + qualifiers = qualifier.split('|') if qualifier else frozenset([u''])
  66 + qualsnum = self.qualifiersMap[frozenset(qualifiers)]
63 yield '\t'.join(( 67 yield '\t'.join((
64 orth.encode(self.inputEncoding), 68 orth.encode(self.inputEncoding),
65 base.encode(self.inputEncoding), 69 base.encode(self.inputEncoding),
66 str(tagnum), 70 str(tagnum),
67 str(namenum), 71 str(namenum),
68 str(typenum), 72 str(typenum),
69 - qualifier.encode(self.inputEncoding))) 73 + str(qualsnum)))
  74 + #~ qualifier.encode(self.inputEncoding)))
70 75
71 # input lines are encoded and partially parsed 76 # input lines are encoded and partially parsed
72 def _sortLines(self, inputLines): 77 def _sortLines(self, inputLines):
@@ -77,20 +82,23 @@ class PolimorfConverter4Analyzer(object): @@ -77,20 +82,23 @@ class PolimorfConverter4Analyzer(object):
77 for line in inputLines: 82 for line in inputLines:
78 line = line.decode(self.inputEncoding).strip(u'\n') 83 line = line.decode(self.inputEncoding).strip(u'\n')
79 if line: 84 if line:
80 - orth, base, tagnum, namenum, typenum, qualifierStr = line.split(u'\t') 85 + orth, base, tagnum, namenum, typenum, qualsnum = line.split(u'\t')
81 tagnum = int(tagnum) 86 tagnum = int(tagnum)
82 namenum = int(namenum) 87 namenum = int(namenum)
83 typenum = int(typenum) 88 typenum = int(typenum)
84 - qualifiers = qualifierStr.split('|') if qualifierStr else []  
85 - yield (orth, Interpretation4Analyzer(orth, base, tagnum, namenum, typenum, qualifiers)) 89 + #~ qualifiers = qualifierStr.split('|') if qualifierStr else []
  90 + qualsnum = int(qualsnum)
  91 + yield (orth, Interpretation4Analyzer(orth, base, tagnum, namenum, typenum, qualsnum))
86 92
87 def convert(self, inputLines): 93 def convert(self, inputLines):
88 return _mergeEntries(self._reallyParseLines(self._sortLines(self._partiallyParseLines(inputLines))), lowercase=True) 94 return _mergeEntries(self._reallyParseLines(self._sortLines(self._partiallyParseLines(inputLines))), lowercase=True)
89 95
90 class PolimorfConverter4Generator(object): 96 class PolimorfConverter4Generator(object):
91 97
92 - def __init__(self, tagset, encoder, inputEncoding, segmentRulesManager): 98 + def __init__(self, tagset, namesMap, qualifiersMap, encoder, inputEncoding, segmentRulesManager):
93 self.tagset = tagset 99 self.tagset = tagset
  100 + self.namesMap = namesMap
  101 + self.qualifiersMap = qualifiersMap
94 self.encoder = encoder 102 self.encoder = encoder
95 self.inputEncoding = inputEncoding 103 self.inputEncoding = inputEncoding
96 self.segmentRulesManager = segmentRulesManager 104 self.segmentRulesManager = segmentRulesManager
@@ -100,7 +108,7 @@ class PolimorfConverter4Generator(object): @@ -100,7 +108,7 @@ class PolimorfConverter4Generator(object):
100 for line in inputLines: 108 for line in inputLines:
101 line = line.decode(self.inputEncoding).strip('\n') 109 line = line.decode(self.inputEncoding).strip('\n')
102 if line: 110 if line:
103 - orth, base, tag, name, qualifier = _parseLine(line) 111 + orth, base, tag, name, qualifier = parseLine(line)
104 if base: 112 if base:
105 homonymId = u'' 113 homonymId = u''
106 if u':' in base: 114 if u':' in base:
@@ -108,7 +116,9 @@ class PolimorfConverter4Generator(object): @@ -108,7 +116,9 @@ class PolimorfConverter4Generator(object):
108 if assumedBase != u'' and assumedHomonymId != u'' and assumedHomonymId.isalnum(): 116 if assumedBase != u'' and assumedHomonymId != u'' and assumedHomonymId.isalnum():
109 base, homonymId = assumedBase, assumedHomonymId 117 base, homonymId = assumedBase, assumedHomonymId
110 tagnum = self.tagset.getTagnum4Tag(tag) 118 tagnum = self.tagset.getTagnum4Tag(tag)
111 - namenum = self.tagset.getNamenum4Name(name) 119 + namenum = self.namesMap[name]
  120 + qualifiers = qualifier.split('|') if qualifier else frozenset([u''])
  121 + qualsnum = self.qualifiersMap[frozenset(qualifiers)]
112 typenum = self.segmentRulesManager.lexeme2SegmentTypeNum(base, tagnum) 122 typenum = self.segmentRulesManager.lexeme2SegmentTypeNum(base, tagnum)
113 123
114 #~ print '\t'.join(( 124 #~ print '\t'.join((
@@ -126,7 +136,7 @@ class PolimorfConverter4Generator(object): @@ -126,7 +136,7 @@ class PolimorfConverter4Generator(object):
126 str(namenum), 136 str(namenum),
127 str(typenum), 137 str(typenum),
128 homonymId.encode(self.inputEncoding), 138 homonymId.encode(self.inputEncoding),
129 - qualifier.encode(self.inputEncoding))) 139 + str(qualsnum)))
130 else: 140 else:
131 logging.warn('Ignoring line: "%s" - contains empty lemma', line.strip()) 141 logging.warn('Ignoring line: "%s" - contains empty lemma', line.strip())
132 142
@@ -139,15 +149,16 @@ class PolimorfConverter4Generator(object): @@ -139,15 +149,16 @@ class PolimorfConverter4Generator(object):
139 for line in inputLines: 149 for line in inputLines:
140 line = line.decode(self.inputEncoding).strip(u'\n') 150 line = line.decode(self.inputEncoding).strip(u'\n')
141 if line and line != prevLine: 151 if line and line != prevLine:
142 - orth, base, tagnum, namenum, typenum, homonymId, qualifierStr = line.split(u'\t') 152 + orth, base, tagnum, namenum, typenum, homonymId, qualsnum = line.split(u'\t')
143 # print orth.encode('utf8'), base.encode('utf8'), homonymId 153 # print orth.encode('utf8'), base.encode('utf8'), homonymId
144 tagnum = int(tagnum) 154 tagnum = int(tagnum)
145 namenum = int(namenum) 155 namenum = int(namenum)
146 typenum = int(typenum) 156 typenum = int(typenum)
147 del prevLine 157 del prevLine
148 prevLine = line 158 prevLine = line
149 - qualifiers = qualifierStr.split('|') if qualifierStr else ()  
150 - yield (base, Interpretation4Generator(orth, base, tagnum, namenum, typenum, homonymId, qualifiers)) 159 + qualsnum = int(qualsnum)
  160 + #~ qualifiers = qualifierStr.split('|') if qualifierStr else ()
  161 + yield (base, Interpretation4Generator(orth, base, tagnum, namenum, typenum, homonymId, qualsnum))
151 162
152 def convert(self, inputLines): 163 def convert(self, inputLines):
153 return _mergeEntries(self._reallyParseLines(self._sortLines(self._partiallyParseLines(inputLines))), lowercase=False) 164 return _mergeEntries(self._reallyParseLines(self._sortLines(self._partiallyParseLines(inputLines))), lowercase=False)
fsabuilder/morfeuszbuilder/fsa/encode.py
@@ -21,7 +21,7 @@ class Encoder(object): @@ -21,7 +21,7 @@ class Encoder(object):
21 ''' 21 '''
22 self.lowercase = lowercase 22 self.lowercase = lowercase
23 self.encoding = encoding 23 self.encoding = encoding
24 - self.qualifiersMap = { frozenset(): 0} 24 + #~ self.qualifiersMap = { frozenset(): 0}
25 25
26 def encodeWord(self, word, lowercase=True): 26 def encodeWord(self, word, lowercase=True):
27 assert type(word) == unicode 27 assert type(word) == unicode
@@ -47,19 +47,20 @@ class Encoder(object): @@ -47,19 +47,20 @@ class Encoder(object):
47 u'Too many segment types. The limit is %d' % limits.MAX_SEGMENT_TYPES) 47 u'Too many segment types. The limit is %d' % limits.MAX_SEGMENT_TYPES)
48 return bytearray([typenum]) 48 return bytearray([typenum])
49 49
50 - def _encodeQualifiers(self, qualifiers):  
51 - res = bytearray()  
52 - key = frozenset(qualifiers)  
53 - if key in self.qualifiersMap:  
54 - n = self.qualifiersMap[key]  
55 - else:  
56 - n = len(self.qualifiersMap)  
57 - self.qualifiersMap[key] = n  
58 - exceptions.validate(  
59 - n <= limits.MAX_QUALIFIERS_COMBINATIONS,  
60 - u'Too many qualifiers combinations. The limit is %d' % limits.MAX_QUALIFIERS_COMBINATIONS)  
61 - res.extend(htons(n))  
62 - return res 50 + #~ def _encodeQualifiers(self, qualifiers):
  51 + #~ res = bytearray()
  52 + #~ key = frozenset(qualifiers)
  53 + #~ if key in self.qualifiersMap:
  54 + #~ exceptions.validate(key in self.qualifiersMap, u'Unknown qualifiers: %s' % qualifiers)
  55 + #~ n = self.qualifiersMap[key]
  56 + #~ else:
  57 + #~ n = len(self.qualifiersMap)
  58 + #~ self.qualifiersMap[key] = n
  59 + #~ exceptions.validate(
  60 + #~ n <= limits.MAX_QUALIFIERS_COMBINATIONS,
  61 + #~ u'Too many qualifiers combinations. The limit is %d' % limits.MAX_QUALIFIERS_COMBINATIONS)
  62 + #~ res.extend(htons(n))
  63 + #~ return res
63 64
64 def _hasUpperPrefix(self, casePattern): 65 def _hasUpperPrefix(self, casePattern):
65 for i in range(len(casePattern) + 1): 66 for i in range(len(casePattern) + 1):
@@ -213,7 +214,7 @@ class MorphEncoder(Encoder): @@ -213,7 +214,7 @@ class MorphEncoder(Encoder):
213 encodedInterpsList.extend(self._encodeCasePattern(interp.encodedForm.casePattern)) 214 encodedInterpsList.extend(self._encodeCasePattern(interp.encodedForm.casePattern))
214 encodedInterpsList.extend(htons(interp.tagnum)) 215 encodedInterpsList.extend(htons(interp.tagnum))
215 encodedInterpsList.append(interp.namenum) 216 encodedInterpsList.append(interp.namenum)
216 - encodedInterpsList.extend(self._encodeQualifiers(interp.qualifiers)) 217 + encodedInterpsList.extend(htons(interp.qualifiers))
217 218
218 res.extend(htons(len(encodedInterpsList))) 219 res.extend(htons(len(encodedInterpsList)))
219 res.extend(encodedInterpsList) 220 res.extend(encodedInterpsList)
@@ -238,7 +239,7 @@ class Encoder4Generator(Encoder): @@ -238,7 +239,7 @@ class Encoder4Generator(Encoder):
238 encodedInterpsList.extend(serializeString(interp.encodedForm.suffixToAdd)) 239 encodedInterpsList.extend(serializeString(interp.encodedForm.suffixToAdd))
239 encodedInterpsList.extend(htons(interp.tagnum)) 240 encodedInterpsList.extend(htons(interp.tagnum))
240 encodedInterpsList.append(interp.namenum) 241 encodedInterpsList.append(interp.namenum)
241 - encodedInterpsList.extend(self._encodeQualifiers(interp.qualifiers)) 242 + encodedInterpsList.extend(htons(interp.qualifiers))
242 243
243 res.extend(htons(len(encodedInterpsList))) 244 res.extend(htons(len(encodedInterpsList)))
244 res.extend(encodedInterpsList) 245 res.extend(encodedInterpsList)
fsabuilder/morfeuszbuilder/fsa/serializer.py
@@ -21,17 +21,19 @@ class Serializer(object): @@ -21,17 +21,19 @@ class Serializer(object):
21 def __init__(self, fsa): 21 def __init__(self, fsa):
22 self._fsa = fsa 22 self._fsa = fsa
23 self.tagset = None 23 self.tagset = None
  24 + self.namesMap = None
24 self.qualifiersMap = None 25 self.qualifiersMap = None
25 self.segmentationRulesData = None 26 self.segmentationRulesData = None
26 27
27 @staticmethod 28 @staticmethod
28 - def getSerializer(serializationMethod, fsa, tagset, qualifiersMap, segmentationRulesData): 29 + def getSerializer(serializationMethod, fsa, tagset, namesMap, qualifiersMap, segmentationRulesData):
29 res = { 30 res = {
30 SerializationMethod.SIMPLE: SimpleSerializer, 31 SerializationMethod.SIMPLE: SimpleSerializer,
31 SerializationMethod.V1: VLengthSerializer1, 32 SerializationMethod.V1: VLengthSerializer1,
32 SerializationMethod.V2: VLengthSerializer2, 33 SerializationMethod.V2: VLengthSerializer2,
33 }[serializationMethod](fsa) 34 }[serializationMethod](fsa)
34 res.tagset = tagset 35 res.tagset = tagset
  36 + res.namesMap = namesMap
35 res.qualifiersMap = qualifiersMap 37 res.qualifiersMap = qualifiersMap
36 res.segmentationRulesData = segmentationRulesData 38 res.segmentationRulesData = segmentationRulesData
37 return res 39 return res
@@ -77,8 +79,10 @@ class Serializer(object): @@ -77,8 +79,10 @@ class Serializer(object):
77 raise NotImplementedError('Not implemented') 79 raise NotImplementedError('Not implemented')
78 80
79 def fsa2bytearray(self, isGenerator): 81 def fsa2bytearray(self, isGenerator):
80 - tagsetData = self.serializeTagset(self.tagset) 82 + tagsetData = self._serializeTags(self.tagset.tag2tagnum)
  83 + tagsetData.extend(self._serializeTags(self.namesMap))
81 qualifiersData = self.serializeQualifiersMap() 84 qualifiersData = self.serializeQualifiersMap()
  85 + #~ qualifiersData = self._serializeTags(self.qualifiersMap)
82 segmentationRulesData = self.segmentationRulesData 86 segmentationRulesData = self.segmentationRulesData
83 res = bytearray() 87 res = bytearray()
84 res.extend(self.serializePrologue()) 88 res.extend(self.serializePrologue())
@@ -103,24 +107,26 @@ class Serializer(object): @@ -103,24 +107,26 @@ class Serializer(object):
103 return res 107 return res
104 108
105 # serialize tagset data 109 # serialize tagset data
106 - def serializeTagset(self, tagset):  
107 - res = bytearray()  
108 - if tagset:  
109 - res.extend(self._serializeTags(tagset._tag2tagnum))  
110 - res.extend(self._serializeTags(tagset._name2namenum))  
111 - return res 110 + #~ def serializeTagset(self, tagset):
  111 + #~ res = bytearray()
  112 + #~ if tagset:
  113 + #~ res.extend(self._serializeTags(tagset._tag2tagnum))
  114 + #~ res.extend(self._serializeTags(tagset._name2namenum))
  115 + #~ return res
112 116
113 def serializeQualifiersMap(self): 117 def serializeQualifiersMap(self):
114 - res = bytearray()  
115 - res.extend(htons(len(self.qualifiersMap)))  
116 label2labelId = dict([ (u'|'.join(qualifiers), n) for qualifiers, n in sorted(self.qualifiersMap.iteritems(), key=lambda (qs, n): n) ]) 118 label2labelId = dict([ (u'|'.join(qualifiers), n) for qualifiers, n in sorted(self.qualifiersMap.iteritems(), key=lambda (qs, n): n) ])
117 - res.extend(self._serializeTags(label2labelId)) 119 + return self._serializeTags(label2labelId)
  120 + #~ res = bytearray()
  121 + #~ res.extend(htons(len(self.qualifiersMap)))
  122 + #~ label2labelId = dict([ (u'|'.join(qualifiers), n) for qualifiers, n in sorted(self.qualifiersMap.iteritems(), key=lambda (qs, n): n) ])
  123 + #~ res.extend(self._serializeTags(label2labelId))
118 #~ for qualifiers, n in sorted(self.qualifiersMap.iteritems(), key=lambda (qs, n): n): 124 #~ for qualifiers, n in sorted(self.qualifiersMap.iteritems(), key=lambda (qs, n): n):
119 #~ res.append(len(qualifiers)) 125 #~ res.append(len(qualifiers))
120 #~ for q in qualifiers: 126 #~ for q in qualifiers:
121 #~ res.extend(q.encode('utf8')) 127 #~ res.extend(q.encode('utf8'))
122 #~ res.append(0) 128 #~ res.append(0)
123 - return res 129 + #~ return res
124 130
125 def serializePrologue(self): 131 def serializePrologue(self):
126 res = bytearray() 132 res = bytearray()
fsabuilder/morfeuszbuilder/tagset/tagset.py
@@ -14,26 +14,27 @@ class Tagset(object): @@ -14,26 +14,27 @@ class Tagset(object):
14 SEP = '\t' 14 SEP = '\t'
15 15
16 def __init__(self, filename=None, encoding='utf8'): 16 def __init__(self, filename=None, encoding='utf8'):
17 - self._tag2tagnum = {}  
18 - self._name2namenum = {} 17 + self.tag2tagnum = {}
  18 + #~ self._name2namenum = {}
19 if filename: 19 if filename:
20 self._doInit(filename, encoding) 20 self._doInit(filename, encoding)
21 - self._tagnum2tag = dict(map(lambda (k, v): (v, k), self._tag2tagnum.iteritems())) 21 + self._tagnum2tag = dict(map(lambda (k, v): (v, k), self.tag2tagnum.iteritems()))
22 22
23 def _doInit(self, filename, encoding): 23 def _doInit(self, filename, encoding):
24 - addingTo = None 24 + insideTags = False
25 with codecs.open(filename, 'r', encoding) as f: 25 with codecs.open(filename, 'r', encoding) as f:
26 for linenum, line in enumerate(f, start=1): 26 for linenum, line in enumerate(f, start=1):
27 line = line.strip('\n\r') 27 line = line.strip('\n\r')
28 if line == u'[TAGS]': 28 if line == u'[TAGS]':
29 - addingTo = Tagset.TAGS  
30 - elif line == u'[NAMES]':  
31 - addingTo = Tagset.NAMES 29 + insideTags = True
  30 + #~ elif line == u'[NAMES]':
  31 + #~ addingTo = Tagset.NAMES
32 elif line and not line.startswith(u'#'): 32 elif line and not line.startswith(u'#'):
33 - if not addingTo in [Tagset.TAGS, Tagset.NAMES]: 33 + if not insideTags:
34 raise FSABuilderException('"%s" - text outside [TAGS] section in tagset file line %d' % (line, linenum)) 34 raise FSABuilderException('"%s" - text outside [TAGS] section in tagset file line %d' % (line, linenum))
35 - res = {Tagset.TAGS: self._tag2tagnum,  
36 - Tagset.NAMES: self._name2namenum}[addingTo] 35 + res = self.tag2tagnum
  36 + if len(line.split(Tagset.SEP)) != 2:
  37 + raise FSABuilderException('"%s" - invalid line %d' % (line, linenum))
37 tagNum = line.split(Tagset.SEP)[0] 38 tagNum = line.split(Tagset.SEP)[0]
38 tag = line.split(Tagset.SEP)[1] 39 tag = line.split(Tagset.SEP)[1]
39 if tag in res: 40 if tag in res:
@@ -41,19 +42,13 @@ class Tagset(object): @@ -41,19 +42,13 @@ class Tagset(object):
41 res[tag] = int(tagNum) 42 res[tag] = int(tagNum)
42 43
43 def getAllTags(self): 44 def getAllTags(self):
44 - return self._tag2tagnum.keys() 45 + return self.tag2tagnum.keys()
45 46
46 def getTagnum4Tag(self, tag): 47 def getTagnum4Tag(self, tag):
47 - if tag in self._tag2tagnum:  
48 - return self._tag2tagnum[tag] 48 + if tag in self.tag2tagnum:
  49 + return self.tag2tagnum[tag]
49 else: 50 else:
50 raise FSABuilderException('invalid tag: "%s"' % tag) 51 raise FSABuilderException('invalid tag: "%s"' % tag)
51 52
52 - def getNamenum4Name(self, name):  
53 - if name in self._name2namenum:  
54 - return self._name2namenum[name]  
55 - else:  
56 - raise FSABuilderException('invalid name type: "%s"' % name)  
57 -  
58 def getTag4Tagnum(self, tagnum): 53 def getTag4Tagnum(self, tagnum):
59 return self._tagnum2tag[tagnum] 54 return self._tagnum2tag[tagnum]
initializeAnalyzerTest.sh
@@ -6,14 +6,15 @@ DIR=$1 @@ -6,14 +6,15 @@ DIR=$1
6 shift 6 shift
7 ARGS=`cat $DIR/ARGS` 7 ARGS=`cat $DIR/ARGS`
8 8
9 -DICT_FILE=`mktemp` 9 +DICT_DIR=`mktemp -d`
  10 +DICT=test
10 11
11 python fsabuilder/morfeusz_builder \ 12 python fsabuilder/morfeusz_builder \
12 - --analyzer \ 13 + --only-analyzer \
13 --input-files $DIR/dictionary.tab \ 14 --input-files $DIR/dictionary.tab \
14 - -o $DICT_FILE \ 15 + --dict-dir=$DICT_DIR \
  16 + --dict=$DICT \
15 --tagset-file=$DIR/tagset.dat \ 17 --tagset-file=$DIR/tagset.dat \
16 - --segments-file=$DIR/segmentation.dat \  
17 - --serialization-method=V1 18 + --segments-file=$DIR/segmentation.dat
18 19
19 -build/morfeusz/morfeusz_analyzer -i $DICT_FILE $ARGS < $DIR/input.txt > $DIR/output.txt 20 +build/morfeusz/morfeusz_analyzer --dict $DICT --dict-dir $DICT_DIR $ARGS < $DIR/input.txt > $DIR/output.txt
initializeGeneratorTest.sh 0 → 100755
  1 +#!/bin/bash
  2 +
  3 +set -exo pipefail
  4 +
  5 +DIR=$1
  6 +shift
  7 +ARGS=`cat $DIR/ARGS`
  8 +
  9 +DICT_DIR=`mktemp -d`
  10 +DICT=test
  11 +
  12 +python fsabuilder/morfeusz_builder \
  13 + --only-generator \
  14 + --input-files $DIR/dictionary.tab \
  15 + --dict-dir=$DICT_DIR \
  16 + --dict=$DICT \
  17 + --tagset-file=$DIR/tagset.dat \
  18 + --segments-file=$DIR/segmentation.dat
  19 +
  20 +build/morfeusz/morfeusz_generator --dict $DICT --dict-dir $DICT_DIR $ARGS < $DIR/input.txt > $DIR/output.txt
input/morfeusz-sgjp.tagset
@@ -772,31 +772,3 @@ @@ -772,31 +772,3 @@
772 # (special) 772 # (special)
773 236 naj 773 236 naj
774 237 nie 774 237 nie
775 -  
776 -[NAMES]  
777 -0  
778 -1 astr.  
779 -2 budowla  
780 -3 członek rodu  
781 -4 człon nazwiska  
782 -5 człon nazwiska (herb)  
783 -6 człon nazwy firmy  
784 -7 firma  
785 -8 geograficzna  
786 -9 imię  
787 -10 instytucja  
788 -11 język programowania  
789 -12 krój pisma  
790 -13 marka  
791 -14 nazwisko  
792 -15 oprogramowanie  
793 -16 organizacja  
794 -17 patronimicum  
795 -18 pospolita  
796 -19 przydomek  
797 -20 pseudonim  
798 -21 sufiks nazwiska  
799 -22 środek lokomocji  
800 -23 święto  
801 -24 tytuł  
802 -25 własna  
morfeusz/DictionariesRepository.cpp
@@ -6,6 +6,7 @@ @@ -6,6 +6,7 @@
6 */ 6 */
7 7
8 #include <fstream> 8 #include <fstream>
  9 +#include "morfeusz2.h"
9 #include "DictionariesRepository.hpp" 10 #include "DictionariesRepository.hpp"
10 #include "data/default_fsa.hpp" 11 #include "data/default_fsa.hpp"
11 #include "const.hpp" 12 #include "const.hpp"
@@ -40,7 +41,7 @@ namespace morfeusz { @@ -40,7 +41,7 @@ namespace morfeusz {
40 DictionariesRepository::RepositoryEntry defaultEntry; 41 DictionariesRepository::RepositoryEntry defaultEntry;
41 defaultEntry.analyzerDictionary = new Dictionary(DEFAULT_FSA, ANALYZER); 42 defaultEntry.analyzerDictionary = new Dictionary(DEFAULT_FSA, ANALYZER);
42 defaultEntry.generatorDictionary = new Dictionary(DEFAULT_SYNTH_FSA, GENERATOR); 43 defaultEntry.generatorDictionary = new Dictionary(DEFAULT_SYNTH_FSA, GENERATOR);
43 - res[string()] = defaultEntry; 44 + res[Morfeusz::getDefaultDictName()] = defaultEntry;
44 return res; 45 return res;
45 } 46 }
46 47
@@ -49,8 +50,7 @@ namespace morfeusz { @@ -49,8 +50,7 @@ namespace morfeusz {
49 } 50 }
50 51
51 const Dictionary* DictionariesRepository::getDefaultDictionary(MorfeuszProcessorType processorType) { 52 const Dictionary* DictionariesRepository::getDefaultDictionary(MorfeuszProcessorType processorType) {
52 - static string emptyString;  
53 - return this->getDictionary(emptyString, processorType); 53 + return this->getDictionary(Morfeusz::getDefaultDictName(), processorType);
54 } 54 }
55 55
56 Dictionary* DictionariesRepository::RepositoryEntry::getDictionary(MorfeuszProcessorType processorType) const { 56 Dictionary* DictionariesRepository::RepositoryEntry::getDictionary(MorfeuszProcessorType processorType) const {
morfeusz/Dictionary.cpp
@@ -42,4 +42,12 @@ namespace morfeusz { @@ -42,4 +42,12 @@ namespace morfeusz {
42 availableAgglOptions(getAvailableOptions(segrulesFSAsMap, "aggl")), 42 availableAgglOptions(getAvailableOptions(segrulesFSAsMap, "aggl")),
43 availablePraetOptions(getAvailableOptions(segrulesFSAsMap, "praet")) { 43 availablePraetOptions(getAvailableOptions(segrulesFSAsMap, "praet")) {
44 } 44 }
  45 +
  46 + bool Dictionary::isCompatibleWith(const Dictionary& other) const {
  47 + return this->idResolver.isCompatibleWith(other.idResolver)
  48 + && this->availableAgglOptions == other.availableAgglOptions
  49 + && this->availablePraetOptions == other.availablePraetOptions
  50 + && this->defaultSegrulesOptions == other.defaultSegrulesOptions
  51 + && this->separatorsList == other.separatorsList;
  52 + }
45 } 53 }
morfeusz/Dictionary.hpp
@@ -25,6 +25,8 @@ namespace morfeusz { @@ -25,6 +25,8 @@ namespace morfeusz {
25 struct Dictionary { 25 struct Dictionary {
26 Dictionary(const unsigned char* ptr, MorfeuszProcessorType processorType); 26 Dictionary(const unsigned char* ptr, MorfeuszProcessorType processorType);
27 27
  28 + bool isCompatibleWith(const Dictionary& other) const;
  29 +
28 FSAType* fsa; 30 FSAType* fsa;
29 IdResolverImpl idResolver; 31 IdResolverImpl idResolver;
30 std::vector<uint32_t> separatorsList; 32 std::vector<uint32_t> separatorsList;
morfeusz/Environment.cpp
@@ -38,8 +38,9 @@ namespace morfeusz { @@ -38,8 +38,9 @@ namespace morfeusz {
38 fsasMap.clear(); 38 fsasMap.clear();
39 } 39 }
40 40
41 - Environment::Environment(MorfeuszProcessorType processorType)  
42 - : currentCharsetConverter(getCharsetConverter(DEFAULT_MORFEUSZ_CHARSET)), 41 + Environment::Environment(MorfeuszProcessorType processorType, bool usable)
  42 + : usable(usable),
  43 + currentCharsetConverter(getCharsetConverter(DEFAULT_MORFEUSZ_CHARSET)),
43 caseConverter(), 44 caseConverter(),
44 dictionary(DictionariesRepository::instance.getDefaultDictionary(processorType)), 45 dictionary(DictionariesRepository::instance.getDefaultDictionary(processorType)),
45 idResolver(dictionary->idResolver), 46 idResolver(dictionary->idResolver),
@@ -169,11 +170,11 @@ namespace morfeusz { @@ -169,11 +170,11 @@ namespace morfeusz {
169 } 170 }
170 171
171 bool Environment::isUsable() const { 172 bool Environment::isUsable() const {
172 - return this->dictionary != NULL; 173 + return usable;
173 } 174 }
174 175
175 - void Environment::setDictionary(const std::string& dictName) {  
176 - this->dictionary = DictionariesRepository::instance.getDictionary(dictName, this->processorType); 176 + void Environment::setDictionary(const Dictionary* dict) {
  177 + this->dictionary = dict;
177 idResolver = dictionary->idResolver; 178 idResolver = dictionary->idResolver;
178 this->idResolver.setCharsetConverter(currentCharsetConverter); 179 this->idResolver.setCharsetConverter(currentCharsetConverter);
179 currSegrulesOptions = dictionary->defaultSegrulesOptions; 180 currSegrulesOptions = dictionary->defaultSegrulesOptions;
@@ -209,5 +210,4 @@ namespace morfeusz { @@ -209,5 +210,4 @@ namespace morfeusz {
209 const set<string>& Environment::getAvailablePraetOptions() const { 210 const set<string>& Environment::getAvailablePraetOptions() const {
210 return this->dictionary->availablePraetOptions; 211 return this->dictionary->availablePraetOptions;
211 } 212 }
212 -  
213 } 213 }
morfeusz/Environment.hpp
@@ -43,7 +43,7 @@ public: @@ -43,7 +43,7 @@ public:
43 * @param morfeuszProcessor 43 * @param morfeuszProcessor
44 * @param fileStartPtr 44 * @param fileStartPtr
45 */ 45 */
46 - explicit Environment(MorfeuszProcessorType morfeuszProcessor); 46 + explicit Environment(MorfeuszProcessorType morfeuszProcessor, bool usable);
47 47
48 /** 48 /**
49 * Sets charset for this environment. 49 * Sets charset for this environment.
@@ -90,11 +90,11 @@ public: @@ -90,11 +90,11 @@ public:
90 const IdResolverImpl& getIdResolver() const; 90 const IdResolverImpl& getIdResolver() const;
91 91
92 /** 92 /**
93 - * Sets dictionary file used by this environment. 93 + * Sets dictionary by this environment.
94 * 94 *
95 - * @param filename - filename of the dictionary 95 + * @param dict - pointer to the dictionary
96 */ 96 */
97 - void setDictionary(const std::string& dictName); 97 + void setDictionary(const Dictionary* dict);
98 98
99 /** 99 /**
100 * Sets segmentation rules option. 100 * Sets segmentation rules option.
@@ -156,6 +156,7 @@ public: @@ -156,6 +156,7 @@ public:
156 156
157 virtual ~Environment(); 157 virtual ~Environment();
158 private: 158 private:
  159 + bool usable;
159 const CharsetConverter* currentCharsetConverter; 160 const CharsetConverter* currentCharsetConverter;
160 const CaseConverter caseConverter; 161 const CaseConverter caseConverter;
161 162
morfeusz/IdResolverImpl.cpp
@@ -130,4 +130,10 @@ namespace morfeusz { @@ -130,4 +130,10 @@ namespace morfeusz {
130 size_t IdResolverImpl::getLabelsCount() const { 130 size_t IdResolverImpl::getLabelsCount() const {
131 return this->labels.id2String.size(); 131 return this->labels.id2String.size();
132 } 132 }
  133 +
  134 + bool IdResolverImpl::isCompatibleWith(const IdResolverImpl& other) const {
  135 + return this->tags.id2String == other.tags.id2String
  136 + && this->names.id2String == other.names.id2String
  137 + && this->labels.id2String == other.labels.id2String;
  138 + }
133 } 139 }
morfeusz/IdResolverImpl.hpp
@@ -44,7 +44,9 @@ namespace morfeusz { @@ -44,7 +44,9 @@ namespace morfeusz {
44 std::vector<std::string> id2String; 44 std::vector<std::string> id2String;
45 std::map<std::string, int> string2Id; 45 std::map<std::string, int> string2Id;
46 }; 46 };
47 - 47 +
  48 + bool isCompatibleWith(const IdResolverImpl& other) const;
  49 +
48 private: 50 private:
49 51
50 IdStringMapping tags; 52 IdStringMapping tags;
morfeusz/Morfeusz.cpp
@@ -11,6 +11,11 @@ namespace morfeusz { @@ -11,6 +11,11 @@ namespace morfeusz {
11 static string version = MORFEUSZ2_VERSION; 11 static string version = MORFEUSZ2_VERSION;
12 return version; 12 return version;
13 } 13 }
  14 +
  15 + string Morfeusz::getDefaultDictName() {
  16 + static string dictName = DEFAULT_DICT_NAME;
  17 + return dictName;
  18 + }
14 19
15 Morfeusz* Morfeusz::createInstance(MorfeuszUsage usage) { 20 Morfeusz* Morfeusz::createInstance(MorfeuszUsage usage) {
16 return new MorfeuszImpl(usage); 21 return new MorfeuszImpl(usage);
morfeusz/MorfeuszImpl.cpp
@@ -22,6 +22,7 @@ @@ -22,6 +22,7 @@
22 #include "const.hpp" 22 #include "const.hpp"
23 #include "charset/utf8.h" 23 #include "charset/utf8.h"
24 #include "ChunkBounds.hpp" 24 #include "ChunkBounds.hpp"
  25 +#include "DictionariesRepository.hpp"
25 26
26 // TODO - konstruktor kopiujący działający Tak-Jak-Trzeba 27 // TODO - konstruktor kopiujący działający Tak-Jak-Trzeba
27 28
@@ -114,9 +115,10 @@ namespace morfeusz { @@ -114,9 +115,10 @@ namespace morfeusz {
114 } 115 }
115 116
116 MorfeuszImpl::MorfeuszImpl(MorfeuszUsage usage) 117 MorfeuszImpl::MorfeuszImpl(MorfeuszUsage usage)
117 - : usage(usage),  
118 - analyzerEnv(ANALYZER),  
119 - generatorEnv(GENERATOR), 118 + : currDictionary(),
  119 + usage(usage),
  120 + analyzerEnv(ANALYZER, usage != GENERATE_ONLY),
  121 + generatorEnv(GENERATOR, usage != ANALYSE_ONLY),
120 options(createDefaultOptions()), 122 options(createDefaultOptions()),
121 accum(), 123 accum(),
122 notMatchingCaseSegs(0), 124 notMatchingCaseSegs(0),
@@ -131,19 +133,42 @@ namespace morfeusz { @@ -131,19 +133,42 @@ namespace morfeusz {
131 } 133 }
132 134
133 void MorfeuszImpl::setDictionary(const string& dictName) { 135 void MorfeuszImpl::setDictionary(const string& dictName) {
134 - if (usage == ANALYSE_ONLY || usage == BOTH_ANALYSE_AND_GENERATE) {  
135 - analyzerEnv.setDictionary(dictName); 136 +
  137 + if (dictName != currDictionary) {
  138 +
  139 + doSetDictionary(dictName);
  140 +
  141 + currDictionary = dictName;
136 } 142 }
137 - if (usage == GENERATE_ONLY || usage == BOTH_ANALYSE_AND_GENERATE) {  
138 - generatorEnv.setDictionary(dictName); 143 + }
  144 +
  145 + void MorfeuszImpl::doSetDictionary(const string& dictName) {
  146 + switch (usage) {
  147 + case BOTH_ANALYSE_AND_GENERATE:
  148 + {
  149 + const Dictionary* analyzerDict = DictionariesRepository::instance.getDictionary(dictName, ANALYZER);
  150 + const Dictionary* generatorDict = DictionariesRepository::instance.getDictionary(dictName, GENERATOR);
  151 + if (analyzerDict->isCompatibleWith(*generatorDict)) {
  152 + analyzerEnv.setDictionary(analyzerDict);
  153 + generatorEnv.setDictionary(generatorDict);
  154 + } else {
  155 + throw MorfeuszException("Analyzer and generator dictionaries are incompatible");
  156 + }
  157 + }
  158 + break;
  159 + case ANALYSE_ONLY:
  160 + analyzerEnv.setDictionary(DictionariesRepository::instance.getDictionary(dictName, ANALYZER));
  161 + break;
  162 + case GENERATE_ONLY:
  163 + generatorEnv.setDictionary(DictionariesRepository::instance.getDictionary(dictName, GENERATOR));
  164 + break;
139 } 165 }
140 } 166 }
141 - 167 +
142 const Environment& MorfeuszImpl::getAnyEnvironment() const { 168 const Environment& MorfeuszImpl::getAnyEnvironment() const {
143 if (analyzerEnv.isUsable()) { 169 if (analyzerEnv.isUsable()) {
144 return analyzerEnv; 170 return analyzerEnv;
145 - }  
146 - else { 171 + } else {
147 return generatorEnv; 172 return generatorEnv;
148 } 173 }
149 } 174 }
morfeusz/MorfeuszImpl.hpp
@@ -189,7 +189,10 @@ namespace morfeusz { @@ -189,7 +189,10 @@ namespace morfeusz {
189 void ensureIsGenerator() const; 189 void ensureIsGenerator() const;
190 190
191 const Environment& getAnyEnvironment() const; 191 const Environment& getAnyEnvironment() const;
  192 +
  193 + void doSetDictionary(const std::string& dictName);
192 194
  195 + std::string currDictionary;
193 MorfeuszUsage usage; 196 MorfeuszUsage usage;
194 Environment analyzerEnv; 197 Environment analyzerEnv;
195 Environment generatorEnv; 198 Environment generatorEnv;
morfeusz/morfeusz2.h
@@ -108,6 +108,12 @@ namespace morfeusz { @@ -108,6 +108,12 @@ namespace morfeusz {
108 * @return 108 * @return
109 */ 109 */
110 static std::string getVersion(); 110 static std::string getVersion();
  111 +
  112 + /**
  113 + * Returns a string containing default dictionary name.
  114 + * @return
  115 + */
  116 + static std::string getDefaultDictName();
111 117
112 /** 118 /**
113 * Creates actual instance of Morfeusz class. 119 * Creates actual instance of Morfeusz class.
morfeusz/wrappers/java/CMakeLists.txt
@@ -54,7 +54,6 @@ endif () @@ -54,7 +54,6 @@ endif ()
54 54
55 # build jmorfeusz 55 # build jmorfeusz
56 file(GLOB_RECURSE JAVA_SOURCES "${JAVA_SRC_DIR}" "${JAVA_SRC_DIR}/*.java") 56 file(GLOB_RECURSE JAVA_SOURCES "${JAVA_SRC_DIR}" "${JAVA_SRC_DIR}/*.java")
57 -message("SOURCES: ${JAVA_SOURCES}")  
58 add_jar (jmorfeusz 57 add_jar (jmorfeusz
59 SOURCES "${JAVA_SOURCES}" 58 SOURCES "${JAVA_SOURCES}"
60 ENTRY_POINT pl/waw/ipipan/morfeusz/app/App 59 ENTRY_POINT pl/waw/ipipan/morfeusz/app/App
morfeusz/wrappers/python/CMakeLists.txt
@@ -69,7 +69,6 @@ if (${CMAKE_SYSTEM_NAME} MATCHES &quot;Linux&quot;) @@ -69,7 +69,6 @@ if (${CMAKE_SYSTEM_NAME} MATCHES &quot;Linux&quot;)
69 DEPENDS package-python-deb-build 69 DEPENDS package-python-deb-build
70 ) 70 )
71 list (APPEND PACKAGE_DEPENDS package-python-deb) 71 list (APPEND PACKAGE_DEPENDS package-python-deb)
72 - message ("PACKAGE_DEPENDS=${PACKAGE_DEPENDS}")  
73 add_custom_target (package-python 72 add_custom_target (package-python
74 DEPENDS pymorfeusz ${PACKAGE_DEPENDS}) 73 DEPENDS pymorfeusz ${PACKAGE_DEPENDS})
75 elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND NOT CMAKE_CROSSCOMPILING) 74 elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND NOT CMAKE_CROSSCOMPILING)
nbproject/configurations.xml
@@ -168,9 +168,8 @@ @@ -168,9 +168,8 @@
168 <rebuildPropChanged>false</rebuildPropChanged> 168 <rebuildPropChanged>false</rebuildPropChanged>
169 </toolsSet> 169 </toolsSet>
170 <flagsDictionary> 170 <flagsDictionary>
171 - <element flagsID="0" commonFlags="-std=c++98"/> 171 + <element flagsID="0" commonFlags="-std=c++98 -O3"/>
172 <element flagsID="1" commonFlags="-std=c++98 -O3 -fPIC"/> 172 <element flagsID="1" commonFlags="-std=c++98 -O3 -fPIC"/>
173 - <element flagsID="2" commonFlags="-std=c++98 -fPIC"/>  
174 </flagsDictionary> 173 </flagsDictionary>
175 <codeAssistance> 174 <codeAssistance>
176 <includeAdditional>true</includeAdditional> 175 <includeAdditional>true</includeAdditional>
@@ -192,7 +191,6 @@ @@ -192,7 +191,6 @@
192 <pElem>build/fsa</pElem> 191 <pElem>build/fsa</pElem>
193 </incDir> 192 </incDir>
194 <preprocessorList> 193 <preprocessorList>
195 - <Elem>NDEBUG</Elem>  
196 <Elem>_OPTIMIZE__=1</Elem> 194 <Elem>_OPTIMIZE__=1</Elem>
197 <Elem>__PIC__=2</Elem> 195 <Elem>__PIC__=2</Elem>
198 <Elem>__pic__=2</Elem> 196 <Elem>__pic__=2</Elem>
@@ -213,7 +211,6 @@ @@ -213,7 +211,6 @@
213 <pElem>build/fsa</pElem> 211 <pElem>build/fsa</pElem>
214 </incDir> 212 </incDir>
215 <preprocessorList> 213 <preprocessorList>
216 - <Elem>NDEBUG</Elem>  
217 <Elem>_OPTIMIZE__=1</Elem> 214 <Elem>_OPTIMIZE__=1</Elem>
218 <Elem>__PIC__=2</Elem> 215 <Elem>__PIC__=2</Elem>
219 <Elem>__pic__=2</Elem> 216 <Elem>__pic__=2</Elem>
@@ -226,12 +223,13 @@ @@ -226,12 +223,13 @@
226 </ccTool> 223 </ccTool>
227 </item> 224 </item>
228 <item path="build/morfeusz/default_fsa.cpp" ex="false" tool="1" flavor2="4"> 225 <item path="build/morfeusz/default_fsa.cpp" ex="false" tool="1" flavor2="4">
229 - <ccTool flags="2"> 226 + <ccTool flags="1">
230 <incDir> 227 <incDir>
231 <pElem>morfeusz</pElem> 228 <pElem>morfeusz</pElem>
232 </incDir> 229 </incDir>
233 <preprocessorList> 230 <preprocessorList>
234 <Elem>BUILDING_MORFEUSZ</Elem> 231 <Elem>BUILDING_MORFEUSZ</Elem>
  232 + <Elem>DEFAULT_DICT_NAME=""</Elem>
235 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 233 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
236 </preprocessorList> 234 </preprocessorList>
237 </ccTool> 235 </ccTool>
@@ -240,12 +238,13 @@ @@ -240,12 +238,13 @@
240 ex="false" 238 ex="false"
241 tool="1" 239 tool="1"
242 flavor2="4"> 240 flavor2="4">
243 - <ccTool flags="2"> 241 + <ccTool flags="1">
244 <incDir> 242 <incDir>
245 <pElem>morfeusz</pElem> 243 <pElem>morfeusz</pElem>
246 </incDir> 244 </incDir>
247 <preprocessorList> 245 <preprocessorList>
248 <Elem>BUILDING_MORFEUSZ</Elem> 246 <Elem>BUILDING_MORFEUSZ</Elem>
  247 + <Elem>DEFAULT_DICT_NAME=""</Elem>
249 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 248 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
250 </preprocessorList> 249 </preprocessorList>
251 </ccTool> 250 </ccTool>
@@ -266,7 +265,6 @@ @@ -266,7 +265,6 @@
266 <pElem>build/morfeusz/java</pElem> 265 <pElem>build/morfeusz/java</pElem>
267 </incDir> 266 </incDir>
268 <preprocessorList> 267 <preprocessorList>
269 - <Elem>NDEBUG</Elem>  
270 <Elem>_OPTIMIZE__=1</Elem> 268 <Elem>_OPTIMIZE__=1</Elem>
271 <Elem>__PIC__=2</Elem> 269 <Elem>__PIC__=2</Elem>
272 <Elem>__pic__=2</Elem> 270 <Elem>__pic__=2</Elem>
@@ -293,7 +291,6 @@ @@ -293,7 +291,6 @@
293 <pElem>build/morfeusz/perl</pElem> 291 <pElem>build/morfeusz/perl</pElem>
294 </incDir> 292 </incDir>
295 <preprocessorList> 293 <preprocessorList>
296 - <Elem>NDEBUG</Elem>  
297 <Elem>_OPTIMIZE__=1</Elem> 294 <Elem>_OPTIMIZE__=1</Elem>
298 <Elem>morfeusz_perl_EXPORTS</Elem> 295 <Elem>morfeusz_perl_EXPORTS</Elem>
299 </preprocessorList> 296 </preprocessorList>
@@ -316,7 +313,6 @@ @@ -316,7 +313,6 @@
316 <pElem>build/morfeusz/python</pElem> 313 <pElem>build/morfeusz/python</pElem>
317 </incDir> 314 </incDir>
318 <preprocessorList> 315 <preprocessorList>
319 - <Elem>NDEBUG</Elem>  
320 <Elem>_OPTIMIZE__=1</Elem> 316 <Elem>_OPTIMIZE__=1</Elem>
321 <Elem>__PIC__=2</Elem> 317 <Elem>__PIC__=2</Elem>
322 <Elem>__pic__=2</Elem> 318 <Elem>__pic__=2</Elem>
@@ -338,20 +334,21 @@ @@ -338,20 +334,21 @@
338 ex="false" 334 ex="false"
339 tool="1" 335 tool="1"
340 flavor2="4"> 336 flavor2="4">
341 - <ccTool flags="2"> 337 + <ccTool flags="1">
342 </ccTool> 338 </ccTool>
343 </item> 339 </item>
344 <item path="build/morfeusz/wrappers/morfeuszPERL_wrap.cxx" 340 <item path="build/morfeusz/wrappers/morfeuszPERL_wrap.cxx"
345 ex="false" 341 ex="false"
346 tool="1" 342 tool="1"
347 flavor2="4"> 343 flavor2="4">
348 - <ccTool flags="2"> 344 + <ccTool flags="1">
349 <incDir> 345 <incDir>
350 <pElem>/usr/lib/perl/5.14/CORE</pElem> 346 <pElem>/usr/lib/perl/5.14/CORE</pElem>
351 <pElem>build/morfeusz/wrappers/perl</pElem> 347 <pElem>build/morfeusz/wrappers/perl</pElem>
352 </incDir> 348 </incDir>
353 <preprocessorList> 349 <preprocessorList>
354 <Elem>BUILDING_MORFEUSZ</Elem> 350 <Elem>BUILDING_MORFEUSZ</Elem>
  351 + <Elem>DEFAULT_DICT_NAME=""</Elem>
355 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 352 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
356 <Elem>morfeusz_perl_EXPORTS</Elem> 353 <Elem>morfeusz_perl_EXPORTS</Elem>
357 </preprocessorList> 354 </preprocessorList>
@@ -374,7 +371,6 @@ @@ -374,7 +371,6 @@
374 <pElem>morfeusz/build/morfeusz</pElem> 371 <pElem>morfeusz/build/morfeusz</pElem>
375 </incDir> 372 </incDir>
376 <preprocessorList> 373 <preprocessorList>
377 - <Elem>NDEBUG</Elem>  
378 <Elem>_OPTIMIZE__=1</Elem> 374 <Elem>_OPTIMIZE__=1</Elem>
379 </preprocessorList> 375 </preprocessorList>
380 <undefinedList> 376 <undefinedList>
@@ -392,7 +388,6 @@ @@ -392,7 +388,6 @@
392 <pElem>morfeusz/build/morfeusz</pElem> 388 <pElem>morfeusz/build/morfeusz</pElem>
393 </incDir> 389 </incDir>
394 <preprocessorList> 390 <preprocessorList>
395 - <Elem>NDEBUG</Elem>  
396 <Elem>_OPTIMIZE__=1</Elem> 391 <Elem>_OPTIMIZE__=1</Elem>
397 </preprocessorList> 392 </preprocessorList>
398 <undefinedList> 393 <undefinedList>
@@ -408,7 +403,9 @@ @@ -408,7 +403,9 @@
408 </incDir> 403 </incDir>
409 <preprocessorList> 404 <preprocessorList>
410 <Elem>BUILDING_MORFEUSZ</Elem> 405 <Elem>BUILDING_MORFEUSZ</Elem>
  406 + <Elem>DEFAULT_DICT_NAME=""</Elem>
411 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 407 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  408 + <Elem>NDEBUG</Elem>
412 <Elem>libmorfeusz_EXPORTS</Elem> 409 <Elem>libmorfeusz_EXPORTS</Elem>
413 </preprocessorList> 410 </preprocessorList>
414 </ccTool> 411 </ccTool>
@@ -421,7 +418,9 @@ @@ -421,7 +418,9 @@
421 </incDir> 418 </incDir>
422 <preprocessorList> 419 <preprocessorList>
423 <Elem>BUILDING_MORFEUSZ</Elem> 420 <Elem>BUILDING_MORFEUSZ</Elem>
  421 + <Elem>DEFAULT_DICT_NAME=""</Elem>
424 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 422 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  423 + <Elem>NDEBUG</Elem>
425 <Elem>libmorfeusz_EXPORTS</Elem> 424 <Elem>libmorfeusz_EXPORTS</Elem>
426 </preprocessorList> 425 </preprocessorList>
427 </ccTool> 426 </ccTool>
@@ -434,7 +433,9 @@ @@ -434,7 +433,9 @@
434 </incDir> 433 </incDir>
435 <preprocessorList> 434 <preprocessorList>
436 <Elem>BUILDING_MORFEUSZ</Elem> 435 <Elem>BUILDING_MORFEUSZ</Elem>
  436 + <Elem>DEFAULT_DICT_NAME=""</Elem>
437 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 437 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  438 + <Elem>NDEBUG</Elem>
438 <Elem>libmorfeusz_EXPORTS</Elem> 439 <Elem>libmorfeusz_EXPORTS</Elem>
439 </preprocessorList> 440 </preprocessorList>
440 </ccTool> 441 </ccTool>
@@ -447,7 +448,9 @@ @@ -447,7 +448,9 @@
447 </incDir> 448 </incDir>
448 <preprocessorList> 449 <preprocessorList>
449 <Elem>BUILDING_MORFEUSZ</Elem> 450 <Elem>BUILDING_MORFEUSZ</Elem>
  451 + <Elem>DEFAULT_DICT_NAME=""</Elem>
450 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 452 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  453 + <Elem>NDEBUG</Elem>
451 <Elem>libmorfeusz_EXPORTS</Elem> 454 <Elem>libmorfeusz_EXPORTS</Elem>
452 </preprocessorList> 455 </preprocessorList>
453 </ccTool> 456 </ccTool>
@@ -460,7 +463,9 @@ @@ -460,7 +463,9 @@
460 </incDir> 463 </incDir>
461 <preprocessorList> 464 <preprocessorList>
462 <Elem>BUILDING_MORFEUSZ</Elem> 465 <Elem>BUILDING_MORFEUSZ</Elem>
  466 + <Elem>DEFAULT_DICT_NAME=""</Elem>
463 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 467 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  468 + <Elem>NDEBUG</Elem>
464 <Elem>libmorfeusz_EXPORTS</Elem> 469 <Elem>libmorfeusz_EXPORTS</Elem>
465 </preprocessorList> 470 </preprocessorList>
466 </ccTool> 471 </ccTool>
@@ -473,7 +478,9 @@ @@ -473,7 +478,9 @@
473 </incDir> 478 </incDir>
474 <preprocessorList> 479 <preprocessorList>
475 <Elem>BUILDING_MORFEUSZ</Elem> 480 <Elem>BUILDING_MORFEUSZ</Elem>
  481 + <Elem>DEFAULT_DICT_NAME=""</Elem>
476 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 482 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  483 + <Elem>NDEBUG</Elem>
477 <Elem>libmorfeusz_EXPORTS</Elem> 484 <Elem>libmorfeusz_EXPORTS</Elem>
478 </preprocessorList> 485 </preprocessorList>
479 </ccTool> 486 </ccTool>
@@ -486,7 +493,9 @@ @@ -486,7 +493,9 @@
486 </incDir> 493 </incDir>
487 <preprocessorList> 494 <preprocessorList>
488 <Elem>BUILDING_MORFEUSZ</Elem> 495 <Elem>BUILDING_MORFEUSZ</Elem>
  496 + <Elem>DEFAULT_DICT_NAME=""</Elem>
489 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 497 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  498 + <Elem>NDEBUG</Elem>
490 <Elem>libmorfeusz_EXPORTS</Elem> 499 <Elem>libmorfeusz_EXPORTS</Elem>
491 </preprocessorList> 500 </preprocessorList>
492 </ccTool> 501 </ccTool>
@@ -620,6 +629,13 @@ @@ -620,6 +629,13 @@
620 <output>${TESTDIR}/TestFiles/f9</output> 629 <output>${TESTDIR}/TestFiles/f9</output>
621 </linkerTool> 630 </linkerTool>
622 </folder> 631 </folder>
  632 + <folder path="build">
  633 + <ccTool>
  634 + <preprocessorList>
  635 + <Elem>NDEBUG</Elem>
  636 + </preprocessorList>
  637 + </ccTool>
  638 + </folder>
623 <folder path="build/morfeusz"> 639 <folder path="build/morfeusz">
624 <ccTool> 640 <ccTool>
625 <incDir> 641 <incDir>
@@ -634,6 +650,7 @@ @@ -634,6 +650,7 @@
634 </incDir> 650 </incDir>
635 <preprocessorList> 651 <preprocessorList>
636 <Elem>BUILDING_MORFEUSZ</Elem> 652 <Elem>BUILDING_MORFEUSZ</Elem>
  653 + <Elem>DEFAULT_DICT_NAME=""</Elem>
637 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 654 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
638 <Elem>libjmorfeusz_EXPORTS</Elem> 655 <Elem>libjmorfeusz_EXPORTS</Elem>
639 </preprocessorList> 656 </preprocessorList>
@@ -645,9 +662,6 @@ @@ -645,9 +662,6 @@
645 <pElem>build</pElem> 662 <pElem>build</pElem>
646 <pElem>/usr/include/python2.7</pElem> 663 <pElem>/usr/include/python2.7</pElem>
647 </incDir> 664 </incDir>
648 - <preprocessorList>  
649 - <Elem>NDEBUG</Elem>  
650 - </preprocessorList>  
651 </ccTool> 665 </ccTool>
652 </folder> 666 </folder>
653 <folder path="java"> 667 <folder path="java">
@@ -674,6 +688,7 @@ @@ -674,6 +688,7 @@
674 <folder path="morfeusz"> 688 <folder path="morfeusz">
675 <ccTool> 689 <ccTool>
676 <preprocessorList> 690 <preprocessorList>
  691 + <Elem>NDEBUG</Elem>
677 <Elem>libmorfeusz_EXPORTS</Elem> 692 <Elem>libmorfeusz_EXPORTS</Elem>
678 </preprocessorList> 693 </preprocessorList>
679 </ccTool> 694 </ccTool>
@@ -688,7 +703,6 @@ @@ -688,7 +703,6 @@
688 <pElem>/usr/lib/jvm/default-java/include</pElem> 703 <pElem>/usr/lib/jvm/default-java/include</pElem>
689 </incDir> 704 </incDir>
690 <preprocessorList> 705 <preprocessorList>
691 - <Elem>NDEBUG</Elem>  
692 <Elem>_OPTIMIZE__=1</Elem> 706 <Elem>_OPTIMIZE__=1</Elem>
693 <Elem>libjmorfeusz_EXPORTS</Elem> 707 <Elem>libjmorfeusz_EXPORTS</Elem>
694 </preprocessorList> 708 </preprocessorList>
@@ -708,172 +722,192 @@ @@ -708,172 +722,192 @@
708 ex="false" 722 ex="false"
709 tool="1" 723 tool="1"
710 flavor2="4"> 724 flavor2="4">
711 - <ccTool flags="2"> 725 + <ccTool flags="1">
712 <incDir> 726 <incDir>
713 <pElem>morfeusz</pElem> 727 <pElem>morfeusz</pElem>
714 <pElem>build/morfeusz</pElem> 728 <pElem>build/morfeusz</pElem>
715 </incDir> 729 </incDir>
716 <preprocessorList> 730 <preprocessorList>
717 <Elem>BUILDING_MORFEUSZ</Elem> 731 <Elem>BUILDING_MORFEUSZ</Elem>
  732 + <Elem>DEFAULT_DICT_NAME=""</Elem>
718 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 733 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  734 + <Elem>NDEBUG</Elem>
719 <Elem>libmorfeusz_EXPORTS</Elem> 735 <Elem>libmorfeusz_EXPORTS</Elem>
720 </preprocessorList> 736 </preprocessorList>
721 </ccTool> 737 </ccTool>
722 </item> 738 </item>
723 <item path="morfeusz/Dictionary.cpp" ex="false" tool="1" flavor2="4"> 739 <item path="morfeusz/Dictionary.cpp" ex="false" tool="1" flavor2="4">
724 - <ccTool flags="2"> 740 + <ccTool flags="1">
725 <incDir> 741 <incDir>
726 <pElem>morfeusz</pElem> 742 <pElem>morfeusz</pElem>
727 <pElem>build/morfeusz</pElem> 743 <pElem>build/morfeusz</pElem>
728 </incDir> 744 </incDir>
729 <preprocessorList> 745 <preprocessorList>
730 <Elem>BUILDING_MORFEUSZ</Elem> 746 <Elem>BUILDING_MORFEUSZ</Elem>
  747 + <Elem>DEFAULT_DICT_NAME=""</Elem>
731 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 748 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  749 + <Elem>NDEBUG</Elem>
732 <Elem>libmorfeusz_EXPORTS</Elem> 750 <Elem>libmorfeusz_EXPORTS</Elem>
733 </preprocessorList> 751 </preprocessorList>
734 </ccTool> 752 </ccTool>
735 </item> 753 </item>
736 <item path="morfeusz/Environment.cpp" ex="false" tool="1" flavor2="4"> 754 <item path="morfeusz/Environment.cpp" ex="false" tool="1" flavor2="4">
737 - <ccTool flags="2"> 755 + <ccTool flags="1">
738 <incDir> 756 <incDir>
739 <pElem>morfeusz</pElem> 757 <pElem>morfeusz</pElem>
740 <pElem>build/morfeusz</pElem> 758 <pElem>build/morfeusz</pElem>
741 </incDir> 759 </incDir>
742 <preprocessorList> 760 <preprocessorList>
743 <Elem>BUILDING_MORFEUSZ</Elem> 761 <Elem>BUILDING_MORFEUSZ</Elem>
  762 + <Elem>DEFAULT_DICT_NAME=""</Elem>
744 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 763 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  764 + <Elem>NDEBUG</Elem>
745 <Elem>libmorfeusz_EXPORTS</Elem> 765 <Elem>libmorfeusz_EXPORTS</Elem>
746 </preprocessorList> 766 </preprocessorList>
747 </ccTool> 767 </ccTool>
748 </item> 768 </item>
749 <item path="morfeusz/IdResolverImpl.cpp" ex="false" tool="1" flavor2="4"> 769 <item path="morfeusz/IdResolverImpl.cpp" ex="false" tool="1" flavor2="4">
750 - <ccTool flags="2"> 770 + <ccTool flags="1">
751 <incDir> 771 <incDir>
752 <pElem>morfeusz</pElem> 772 <pElem>morfeusz</pElem>
753 <pElem>build/morfeusz</pElem> 773 <pElem>build/morfeusz</pElem>
754 </incDir> 774 </incDir>
755 <preprocessorList> 775 <preprocessorList>
756 <Elem>BUILDING_MORFEUSZ</Elem> 776 <Elem>BUILDING_MORFEUSZ</Elem>
  777 + <Elem>DEFAULT_DICT_NAME=""</Elem>
757 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 778 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  779 + <Elem>NDEBUG</Elem>
758 <Elem>libmorfeusz_EXPORTS</Elem> 780 <Elem>libmorfeusz_EXPORTS</Elem>
759 </preprocessorList> 781 </preprocessorList>
760 </ccTool> 782 </ccTool>
761 </item> 783 </item>
762 <item path="morfeusz/InflexionGraph.cpp" ex="false" tool="1" flavor2="4"> 784 <item path="morfeusz/InflexionGraph.cpp" ex="false" tool="1" flavor2="4">
763 - <ccTool flags="2"> 785 + <ccTool flags="1">
764 <incDir> 786 <incDir>
765 <pElem>morfeusz</pElem> 787 <pElem>morfeusz</pElem>
766 <pElem>build/morfeusz</pElem> 788 <pElem>build/morfeusz</pElem>
767 </incDir> 789 </incDir>
768 <preprocessorList> 790 <preprocessorList>
769 <Elem>BUILDING_MORFEUSZ</Elem> 791 <Elem>BUILDING_MORFEUSZ</Elem>
  792 + <Elem>DEFAULT_DICT_NAME=""</Elem>
770 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 793 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  794 + <Elem>NDEBUG</Elem>
771 <Elem>libmorfeusz_EXPORTS</Elem> 795 <Elem>libmorfeusz_EXPORTS</Elem>
772 </preprocessorList> 796 </preprocessorList>
773 </ccTool> 797 </ccTool>
774 </item> 798 </item>
775 <item path="morfeusz/Morfeusz.cpp" ex="false" tool="1" flavor2="4"> 799 <item path="morfeusz/Morfeusz.cpp" ex="false" tool="1" flavor2="4">
776 - <ccTool flags="2"> 800 + <ccTool flags="1">
777 <incDir> 801 <incDir>
778 <pElem>morfeusz</pElem> 802 <pElem>morfeusz</pElem>
779 <pElem>build/morfeusz</pElem> 803 <pElem>build/morfeusz</pElem>
780 </incDir> 804 </incDir>
781 <preprocessorList> 805 <preprocessorList>
782 <Elem>BUILDING_MORFEUSZ</Elem> 806 <Elem>BUILDING_MORFEUSZ</Elem>
  807 + <Elem>DEFAULT_DICT_NAME=""</Elem>
783 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 808 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  809 + <Elem>NDEBUG</Elem>
784 <Elem>libmorfeusz_EXPORTS</Elem> 810 <Elem>libmorfeusz_EXPORTS</Elem>
785 </preprocessorList> 811 </preprocessorList>
786 </ccTool> 812 </ccTool>
787 </item> 813 </item>
788 <item path="morfeusz/MorfeuszImpl.cpp" ex="false" tool="1" flavor2="4"> 814 <item path="morfeusz/MorfeuszImpl.cpp" ex="false" tool="1" flavor2="4">
789 - <ccTool flags="2"> 815 + <ccTool flags="1">
790 <incDir> 816 <incDir>
791 <pElem>morfeusz</pElem> 817 <pElem>morfeusz</pElem>
792 <pElem>build/morfeusz</pElem> 818 <pElem>build/morfeusz</pElem>
793 </incDir> 819 </incDir>
794 <preprocessorList> 820 <preprocessorList>
795 <Elem>BUILDING_MORFEUSZ</Elem> 821 <Elem>BUILDING_MORFEUSZ</Elem>
  822 + <Elem>DEFAULT_DICT_NAME=""</Elem>
796 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 823 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  824 + <Elem>NDEBUG</Elem>
797 <Elem>libmorfeusz_EXPORTS</Elem> 825 <Elem>libmorfeusz_EXPORTS</Elem>
798 </preprocessorList> 826 </preprocessorList>
799 </ccTool> 827 </ccTool>
800 </item> 828 </item>
801 <item path="morfeusz/MorphInterpretation.cpp" ex="false" tool="1" flavor2="4"> 829 <item path="morfeusz/MorphInterpretation.cpp" ex="false" tool="1" flavor2="4">
802 - <ccTool flags="2"> 830 + <ccTool flags="1">
803 <incDir> 831 <incDir>
804 <pElem>morfeusz</pElem> 832 <pElem>morfeusz</pElem>
805 <pElem>build/morfeusz</pElem> 833 <pElem>build/morfeusz</pElem>
806 </incDir> 834 </incDir>
807 <preprocessorList> 835 <preprocessorList>
808 <Elem>BUILDING_MORFEUSZ</Elem> 836 <Elem>BUILDING_MORFEUSZ</Elem>
  837 + <Elem>DEFAULT_DICT_NAME=""</Elem>
809 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 838 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  839 + <Elem>NDEBUG</Elem>
810 <Elem>libmorfeusz_EXPORTS</Elem> 840 <Elem>libmorfeusz_EXPORTS</Elem>
811 </preprocessorList> 841 </preprocessorList>
812 </ccTool> 842 </ccTool>
813 </item> 843 </item>
814 <item path="morfeusz/ResultsIteratorImpl.cpp" ex="false" tool="1" flavor2="4"> 844 <item path="morfeusz/ResultsIteratorImpl.cpp" ex="false" tool="1" flavor2="4">
815 - <ccTool flags="2"> 845 + <ccTool flags="1">
816 <incDir> 846 <incDir>
817 <pElem>morfeusz</pElem> 847 <pElem>morfeusz</pElem>
818 <pElem>build/morfeusz</pElem> 848 <pElem>build/morfeusz</pElem>
819 </incDir> 849 </incDir>
820 <preprocessorList> 850 <preprocessorList>
821 <Elem>BUILDING_MORFEUSZ</Elem> 851 <Elem>BUILDING_MORFEUSZ</Elem>
  852 + <Elem>DEFAULT_DICT_NAME=""</Elem>
822 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 853 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  854 + <Elem>NDEBUG</Elem>
823 <Elem>libmorfeusz_EXPORTS</Elem> 855 <Elem>libmorfeusz_EXPORTS</Elem>
824 </preprocessorList> 856 </preprocessorList>
825 </ccTool> 857 </ccTool>
826 </item> 858 </item>
827 <item path="morfeusz/c_api/ResultsManager.cpp" ex="false" tool="1" flavor2="4"> 859 <item path="morfeusz/c_api/ResultsManager.cpp" ex="false" tool="1" flavor2="4">
828 - <ccTool flags="2"> 860 + <ccTool flags="1">
829 </ccTool> 861 </ccTool>
830 </item> 862 </item>
831 <item path="morfeusz/case/CaseConverter.cpp" ex="false" tool="1" flavor2="4"> 863 <item path="morfeusz/case/CaseConverter.cpp" ex="false" tool="1" flavor2="4">
832 - <ccTool flags="2"> 864 + <ccTool flags="1">
833 </ccTool> 865 </ccTool>
834 </item> 866 </item>
835 <item path="morfeusz/case/CasePatternHelper.cpp" 867 <item path="morfeusz/case/CasePatternHelper.cpp"
836 ex="false" 868 ex="false"
837 tool="1" 869 tool="1"
838 flavor2="4"> 870 flavor2="4">
839 - <ccTool flags="2"> 871 + <ccTool flags="1">
840 </ccTool> 872 </ccTool>
841 </item> 873 </item>
842 <item path="morfeusz/case/caseconv.cpp" ex="false" tool="1" flavor2="4"> 874 <item path="morfeusz/case/caseconv.cpp" ex="false" tool="1" flavor2="4">
843 - <ccTool flags="2"> 875 + <ccTool flags="1">
844 </ccTool> 876 </ccTool>
845 </item> 877 </item>
846 <item path="morfeusz/charset/CharsetConverter.cpp" 878 <item path="morfeusz/charset/CharsetConverter.cpp"
847 ex="false" 879 ex="false"
848 tool="1" 880 tool="1"
849 flavor2="4"> 881 flavor2="4">
850 - <ccTool flags="2"> 882 + <ccTool flags="1">
851 </ccTool> 883 </ccTool>
852 </item> 884 </item>
853 <item path="morfeusz/charset/TextReader.cpp" ex="false" tool="1" flavor2="4"> 885 <item path="morfeusz/charset/TextReader.cpp" ex="false" tool="1" flavor2="4">
854 - <ccTool flags="2"> 886 + <ccTool flags="1">
855 </ccTool> 887 </ccTool>
856 </item> 888 </item>
857 <item path="morfeusz/charset/conversion_tables.cpp" 889 <item path="morfeusz/charset/conversion_tables.cpp"
858 ex="false" 890 ex="false"
859 tool="1" 891 tool="1"
860 flavor2="4"> 892 flavor2="4">
861 - <ccTool flags="2"> 893 + <ccTool flags="1">
862 </ccTool> 894 </ccTool>
863 </item> 895 </item>
864 <item path="morfeusz/cli/cli.cpp" ex="false" tool="1" flavor2="4"> 896 <item path="morfeusz/cli/cli.cpp" ex="false" tool="1" flavor2="4">
865 - <ccTool flags="2"> 897 + <ccTool flags="1">
866 </ccTool> 898 </ccTool>
867 </item> 899 </item>
868 <item path="morfeusz/const.cpp" ex="false" tool="1" flavor2="4"> 900 <item path="morfeusz/const.cpp" ex="false" tool="1" flavor2="4">
869 - <ccTool flags="2"> 901 + <ccTool flags="1">
870 <incDir> 902 <incDir>
871 <pElem>morfeusz</pElem> 903 <pElem>morfeusz</pElem>
872 <pElem>build/morfeusz</pElem> 904 <pElem>build/morfeusz</pElem>
873 </incDir> 905 </incDir>
874 <preprocessorList> 906 <preprocessorList>
875 <Elem>BUILDING_MORFEUSZ</Elem> 907 <Elem>BUILDING_MORFEUSZ</Elem>
  908 + <Elem>DEFAULT_DICT_NAME=""</Elem>
876 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 909 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  910 + <Elem>NDEBUG</Elem>
877 <Elem>libmorfeusz_EXPORTS</Elem> 911 <Elem>libmorfeusz_EXPORTS</Elem>
878 </preprocessorList> 912 </preprocessorList>
879 </ccTool> 913 </ccTool>
@@ -882,50 +916,52 @@ @@ -882,50 +916,52 @@
882 ex="false" 916 ex="false"
883 tool="1" 917 tool="1"
884 flavor2="4"> 918 flavor2="4">
885 - <ccTool flags="2"> 919 + <ccTool flags="1">
886 </ccTool> 920 </ccTool>
887 </item> 921 </item>
888 <item path="morfeusz/deserialization/MorphDeserializer.cpp" 922 <item path="morfeusz/deserialization/MorphDeserializer.cpp"
889 ex="false" 923 ex="false"
890 tool="1" 924 tool="1"
891 flavor2="4"> 925 flavor2="4">
892 - <ccTool flags="2"> 926 + <ccTool flags="1">
893 </ccTool> 927 </ccTool>
894 </item> 928 </item>
895 <item path="morfeusz/deserialization/morphInterps/InterpretedChunksDecoder.cpp" 929 <item path="morfeusz/deserialization/morphInterps/InterpretedChunksDecoder.cpp"
896 ex="false" 930 ex="false"
897 tool="1" 931 tool="1"
898 flavor2="4"> 932 flavor2="4">
899 - <ccTool flags="2"> 933 + <ccTool flags="1">
900 </ccTool> 934 </ccTool>
901 </item> 935 </item>
902 <item path="morfeusz/deserialization/morphInterps/InterpretedChunksDecoder4Analyzer.cpp" 936 <item path="morfeusz/deserialization/morphInterps/InterpretedChunksDecoder4Analyzer.cpp"
903 ex="false" 937 ex="false"
904 tool="1" 938 tool="1"
905 flavor2="4"> 939 flavor2="4">
906 - <ccTool flags="2"> 940 + <ccTool flags="1">
907 </ccTool> 941 </ccTool>
908 </item> 942 </item>
909 <item path="morfeusz/deserialization/morphInterps/InterpretedChunksDecoder4Generator.cpp" 943 <item path="morfeusz/deserialization/morphInterps/InterpretedChunksDecoder4Generator.cpp"
910 ex="false" 944 ex="false"
911 tool="1" 945 tool="1"
912 flavor2="4"> 946 flavor2="4">
913 - <ccTool flags="2"> 947 + <ccTool flags="1">
914 </ccTool> 948 </ccTool>
915 </item> 949 </item>
916 <item path="morfeusz/fsa/const.cpp" ex="false" tool="1" flavor2="4"> 950 <item path="morfeusz/fsa/const.cpp" ex="false" tool="1" flavor2="4">
917 - <ccTool flags="2"> 951 + <ccTool flags="1">
918 </ccTool> 952 </ccTool>
919 </item> 953 </item>
920 <item path="morfeusz/morfeusz2_c.cpp" ex="false" tool="1" flavor2="4"> 954 <item path="morfeusz/morfeusz2_c.cpp" ex="false" tool="1" flavor2="4">
921 - <ccTool flags="2"> 955 + <ccTool flags="1">
922 <incDir> 956 <incDir>
923 <pElem>morfeusz</pElem> 957 <pElem>morfeusz</pElem>
924 <pElem>build/morfeusz</pElem> 958 <pElem>build/morfeusz</pElem>
925 </incDir> 959 </incDir>
926 <preprocessorList> 960 <preprocessorList>
927 <Elem>BUILDING_MORFEUSZ</Elem> 961 <Elem>BUILDING_MORFEUSZ</Elem>
  962 + <Elem>DEFAULT_DICT_NAME=""</Elem>
928 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 963 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  964 + <Elem>NDEBUG</Elem>
929 <Elem>libmorfeusz_EXPORTS</Elem> 965 <Elem>libmorfeusz_EXPORTS</Elem>
930 </preprocessorList> 966 </preprocessorList>
931 </ccTool> 967 </ccTool>
@@ -938,7 +974,9 @@ @@ -938,7 +974,9 @@
938 </incDir> 974 </incDir>
939 <preprocessorList> 975 <preprocessorList>
940 <Elem>BUILDING_MORFEUSZ</Elem> 976 <Elem>BUILDING_MORFEUSZ</Elem>
  977 + <Elem>DEFAULT_DICT_NAME=""</Elem>
941 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 978 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  979 + <Elem>NDEBUG</Elem>
942 </preprocessorList> 980 </preprocessorList>
943 </ccTool> 981 </ccTool>
944 </item> 982 </item>
@@ -950,16 +988,18 @@ @@ -950,16 +988,18 @@
950 </incDir> 988 </incDir>
951 <preprocessorList> 989 <preprocessorList>
952 <Elem>BUILDING_MORFEUSZ</Elem> 990 <Elem>BUILDING_MORFEUSZ</Elem>
  991 + <Elem>DEFAULT_DICT_NAME=""</Elem>
953 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 992 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  993 + <Elem>NDEBUG</Elem>
954 </preprocessorList> 994 </preprocessorList>
955 </ccTool> 995 </ccTool>
956 </item> 996 </item>
957 <item path="morfeusz/segrules/SegrulesFSA.cpp" ex="false" tool="1" flavor2="4"> 997 <item path="morfeusz/segrules/SegrulesFSA.cpp" ex="false" tool="1" flavor2="4">
958 - <ccTool flags="2"> 998 + <ccTool flags="1">
959 </ccTool> 999 </ccTool>
960 </item> 1000 </item>
961 <item path="morfeusz/segrules/segrules.cpp" ex="false" tool="1" flavor2="4"> 1001 <item path="morfeusz/segrules/segrules.cpp" ex="false" tool="1" flavor2="4">
962 - <ccTool flags="2"> 1002 + <ccTool flags="1">
963 </ccTool> 1003 </ccTool>
964 </item> 1004 </item>
965 <item path="morfeusz/test_runner.cpp" ex="false" tool="1" flavor2="4"> 1005 <item path="morfeusz/test_runner.cpp" ex="false" tool="1" flavor2="4">
@@ -970,7 +1010,9 @@ @@ -970,7 +1010,9 @@
970 </incDir> 1010 </incDir>
971 <preprocessorList> 1011 <preprocessorList>
972 <Elem>BUILDING_MORFEUSZ</Elem> 1012 <Elem>BUILDING_MORFEUSZ</Elem>
  1013 + <Elem>DEFAULT_DICT_NAME=""</Elem>
973 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 1014 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  1015 + <Elem>NDEBUG</Elem>
974 </preprocessorList> 1016 </preprocessorList>
975 </ccTool> 1017 </ccTool>
976 </item> 1018 </item>
@@ -984,7 +1026,9 @@ @@ -984,7 +1026,9 @@
984 </incDir> 1026 </incDir>
985 <preprocessorList> 1027 <preprocessorList>
986 <Elem>BUILDING_MORFEUSZ</Elem> 1028 <Elem>BUILDING_MORFEUSZ</Elem>
  1029 + <Elem>DEFAULT_DICT_NAME=""</Elem>
987 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 1030 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  1031 + <Elem>NDEBUG</Elem>
988 </preprocessorList> 1032 </preprocessorList>
989 </ccTool> 1033 </ccTool>
990 </item> 1034 </item>
@@ -996,7 +1040,9 @@ @@ -996,7 +1040,9 @@
996 </incDir> 1040 </incDir>
997 <preprocessorList> 1041 <preprocessorList>
998 <Elem>BUILDING_MORFEUSZ</Elem> 1042 <Elem>BUILDING_MORFEUSZ</Elem>
  1043 + <Elem>DEFAULT_DICT_NAME=""</Elem>
999 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem> 1044 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  1045 + <Elem>NDEBUG</Elem>
1000 </preprocessorList> 1046 </preprocessorList>
1001 </ccTool> 1047 </ccTool>
1002 </item> 1048 </item>
tests/analyzer/test_digits/tagset.dat
@@ -726,32 +726,3 @@ @@ -726,32 +726,3 @@
726 721 winien:sg:n1.n2:pri:imperf 726 721 winien:sg:n1.n2:pri:imperf
727 722 winien:sg:n1.n2:sec:imperf 727 722 winien:sg:n1.n2:sec:imperf
728 723 winien:sg:n1.n2:ter:imperf 728 723 winien:sg:n1.n2:ter:imperf
729 -  
730 -  
731 -[NAMES]  
732 -0  
733 -1 astr.  
734 -2 budowla  
735 -3 członek rodu  
736 -4 człon nazwiska  
737 -5 człon nazwiska (herb)  
738 -6 człon nazwy firmy  
739 -7 firma  
740 -8 geograficzna  
741 -9 imię  
742 -10 instytucja  
743 -11 język programowania  
744 -12 krój pisma  
745 -13 marka  
746 -14 nazwisko  
747 -15 oprogramowanie  
748 -16 organizacja  
749 -17 patronimicum  
750 -18 pospolita  
751 -19 przydomek  
752 -20 pseudonim  
753 -21 sufiks nazwiska  
754 -22 środek lokomocji  
755 -23 święto  
756 -24 tytuł  
757 -25 własna  
tests/analyzer/test_names/ARGS 0 → 100644
  1 +--aggl permissive
tests/analyzer/test_names/dictionary.tab 0 → 100644
  1 +czerwony czerwony:a1 adj:sg:acc:m3:pos pospolita
  2 +czerwony czerwony:a2 adj:sg:acc:m3:pos niepospolita
  3 +czerwony czerwony:a3 adj:sg:acc:m3:pos zażółć gęślą jaźń
tests/analyzer/test_names/input.txt 0 → 100644
  1 +czerwony
tests/analyzer/test_names/output.txt 0 → 100644
  1 +[0,1,czerwony,czerwony:a1,adj:sg:acc:m3:pos,pospolita,_
  2 + 0,1,czerwony,czerwony:a2,adj:sg:acc:m3:pos,niepospolita,_
  3 + 0,1,czerwony,czerwony:a3,adj:sg:acc:m3:pos,zażółć gęślą jaźń,_]
  4 +
tests/analyzer/test_names/segmentation.dat 0 → 100644
  1 +[options]
  2 +aggl=strict permissive isolated
  3 +praet=split composite
  4 +
  5 +[combinations]
  6 +#define wsz_interp (interp|kropka|przecinek|dywiz)*
  7 +
  8 +#define moze_interp(segmenty) wsz_interp segmenty wsz_interp
  9 +
  10 +# Segmenty występujące samodzielnie:
  11 +#
  12 +# domyślny typ segmentu samodzielnego:
  13 +moze_interp(samodz)
  14 +
  15 +# Pojedyncze znaki interpunkcyjne
  16 +moze_interp(interp|kropka|przecinek|dywiz)
  17 +
  18 +# Liczba zapisana jako ciąg cyfr:
  19 +moze_interp( dig>* dig )
  20 +
  21 +[segment types]
  22 +interp
  23 +kropka
  24 +przecinek
  25 +dywiz
  26 +dig
  27 +samodz
  28 +
  29 +[lexemes]
  30 +kropka .:interp
  31 +przecinek ,:interp
  32 +dywiz -:interp
  33 +
  34 +[tags]
  35 +dig dig
  36 +interp interp
  37 +samodz %
  38 +
  39 +[separator chars]
  40 +# ,
  41 +44
  42 +
  43 +# .
  44 +46
  45 +
  46 +# ;
  47 +59
tests/analyzer/test_names/tagset.dat 0 → 100644
  1 +#!MORFEUSZ-TAGSET 0.1
  2 +
  3 +[TAGS]
  4 +
  5 +0 ign
  6 +1 sp
  7 +2 adja
  8 +3 adjc
  9 +4 adjp
  10 +5 adj:pl:acc:m1.p1:com
  11 +6 adj:pl:acc:m1.p1:pos
  12 +7 adj:pl:acc:m1.p1:sup
  13 +8 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:com
  14 +9 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:pos
  15 +10 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:sup
  16 +11 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  17 +12 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  18 +13 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  19 +14 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  20 +15 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  21 +16 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  22 +17 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  23 +18 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  24 +19 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  25 +20 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  26 +21 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  27 +22 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  28 +23 adj:pl:nom:m1.p1:pos
  29 +24 adj:pl:nom:m2.m3.f.n1.n2.p2.p3:pos
  30 +25 adj:pl:nom.voc:m1.p1:com
  31 +26 adj:pl:nom.voc:m1.p1:pos
  32 +27 adj:pl:nom.voc:m1.p1:sup
  33 +28 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:com
  34 +29 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:pos
  35 +30 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:sup
  36 +31 adj:sg:acc:f:com
  37 +32 adj:sg:acc:f:pos
  38 +33 adj:sg:acc:f:sup
  39 +34 adj:sg:acc:m1.m2:com
  40 +35 adj:sg:acc:m1.m2:pos
  41 +36 adj:sg:acc:m1.m2:sup
  42 +37 adj:sg:acc:m3:com
  43 +38 adj:sg:acc:m3:pos
  44 +39 adj:sg:acc:m3:sup
  45 +40 adj:sg:acc:n1.n2:com
  46 +41 adj:sg:acc:n1.n2:pos
  47 +42 adj:sg:acc:n1.n2:sup
  48 +43 adj:sg:dat:f:com
  49 +44 adj:sg:dat:f:pos
  50 +45 adj:sg:dat:f:sup
  51 +46 adj:sg:dat:m1.m2.m3.n1.n2:com
  52 +47 adj:sg:dat:m1.m2.m3.n1.n2:pos
  53 +48 adj:sg:dat:m1.m2.m3.n1.n2:sup
  54 +49 adj:sg:gen:f:com
  55 +50 adj:sg:gen:f:pos
  56 +51 adj:sg:gen:f:sup
  57 +52 adj:sg:gen:m1.m2.m3.n1.n2:com
  58 +53 adj:sg:gen:m1.m2.m3.n1.n2:pos
  59 +54 adj:sg:gen:m1.m2.m3.n1.n2:sup
  60 +55 adj:sg:inst:f:com
  61 +56 adj:sg:inst:f:pos
  62 +57 adj:sg:inst:f:sup
  63 +58 adj:sg:inst:m1.m2.m3.n1.n2:com
  64 +59 adj:sg:inst:m1.m2.m3.n1.n2:pos
  65 +60 adj:sg:inst:m1.m2.m3.n1.n2:sup
  66 +61 adj:sg:loc:f:com
  67 +62 adj:sg:loc:f:pos
  68 +63 adj:sg:loc:f:sup
  69 +64 adj:sg:loc:m1.m2.m3.n1.n2:com
  70 +65 adj:sg:loc:m1.m2.m3.n1.n2:pos
  71 +66 adj:sg:loc:m1.m2.m3.n1.n2:sup
  72 +67 adj:sg:nom:f:pos
  73 +68 adj:sg:nom:m1.m2.m3:pos
  74 +69 adj:sg:nom:n1.n2:pos
  75 +70 adj:sg:nom.voc:f:com
  76 +71 adj:sg:nom.voc:f:pos
  77 +72 adj:sg:nom.voc:f:sup
  78 +73 adj:sg:nom.voc:m1.m2.m3:com
  79 +74 adj:sg:nom.voc:m1.m2.m3:pos
  80 +75 adj:sg:nom.voc:m1.m2.m3:sup
  81 +76 adj:sg:nom.voc:n1.n2:com
  82 +77 adj:sg:nom.voc:n1.n2:pos
  83 +78 adj:sg:nom.voc:n1.n2:sup
  84 +79 adv
  85 +80 adv:com
  86 +81 adv:pos
  87 +82 adv:sup
  88 +83 aglt:pl:pri:imperf:nwok
  89 +84 aglt:pl:pri:imperf:wok
  90 +85 aglt:pl:sec:imperf:nwok
  91 +86 aglt:pl:sec:imperf:wok
  92 +87 aglt:sg:pri:imperf:nwok
  93 +88 aglt:sg:pri:imperf:wok
  94 +89 aglt:sg:sec:imperf:nwok
  95 +90 aglt:sg:sec:imperf:wok
  96 +91 bedzie:pl:pri:imperf
  97 +92 bedzie:pl:sec:imperf
  98 +93 bedzie:pl:ter:imperf
  99 +94 bedzie:sg:pri:imperf
  100 +95 bedzie:sg:sec:imperf
  101 +96 bedzie:sg:ter:imperf
  102 +97 brev:pun
  103 +98 burk
  104 +99 comp
  105 +100 cond:pl:m1.p1:pri:imperf
  106 +101 cond:pl:m1.p1:pri:imperf.perf
  107 +102 cond:pl:m1.p1:pri:perf
  108 +103 cond:pl:m1.p1:sec:imperf
  109 +104 cond:pl:m1.p1:sec:imperf.perf
  110 +105 cond:pl:m1.p1:sec:perf
  111 +106 cond:pl:m1.p1:ter:imperf
  112 +107 cond:pl:m1.p1:ter:imperf.perf
  113 +108 cond:pl:m1.p1:ter:perf
  114 +109 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf
  115 +110 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf.perf
  116 +111 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:perf
  117 +112 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
  118 +113 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf.perf
  119 +114 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:perf
  120 +115 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
  121 +116 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf.perf
  122 +117 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:perf
  123 +118 cond:sg:f:pri:imperf
  124 +119 cond:sg:f:pri:imperf.perf
  125 +120 cond:sg:f:pri:perf
  126 +121 cond:sg:f:sec:imperf
  127 +122 cond:sg:f:sec:imperf.perf
  128 +123 cond:sg:f:sec:perf
  129 +124 cond:sg:f:ter:imperf
  130 +125 cond:sg:f:ter:imperf.perf
  131 +126 cond:sg:f:ter:perf
  132 +127 cond:sg:m1.m2.m3:pri:imperf
  133 +128 cond:sg:m1.m2.m3:pri:imperf.perf
  134 +129 cond:sg:m1.m2.m3:pri:perf
  135 +130 cond:sg:m1.m2.m3:sec:imperf
  136 +131 cond:sg:m1.m2.m3:sec:imperf.perf
  137 +132 cond:sg:m1.m2.m3:sec:perf
  138 +133 cond:sg:m1.m2.m3:ter:imperf
  139 +134 cond:sg:m1.m2.m3:ter:imperf.perf
  140 +135 cond:sg:m1.m2.m3:ter:perf
  141 +136 cond:sg:n1.n2:imperf
  142 +137 cond:sg:n1.n2:imperf.perf
  143 +138 cond:sg:n1.n2:perf
  144 +139 cond:sg:n1.n2:pri:imperf
  145 +140 cond:sg:n1.n2:pri:imperf.perf
  146 +141 cond:sg:n1.n2:pri:perf
  147 +142 cond:sg:n1.n2:sec:imperf
  148 +143 cond:sg:n1.n2:sec:imperf.perf
  149 +144 cond:sg:n1.n2:sec:perf
  150 +145 cond:sg:n1.n2:ter:imperf
  151 +146 cond:sg:n1.n2:ter:imperf.perf
  152 +147 cond:sg:n1.n2:ter:perf
  153 +148 conj
  154 +149 depr:pl:nom:m2
  155 +150 depr:pl:voc:m2
  156 +151 dig
  157 +152 emoticon
  158 +153 fin:pl:pri:imperf
  159 +154 fin:pl:pri:imperf.perf
  160 +155 fin:pl:pri:perf
  161 +156 fin:pl:sec:imperf
  162 +157 fin:pl:sec:imperf.perf
  163 +158 fin:pl:sec:perf
  164 +159 fin:pl:ter:imperf
  165 +160 fin:pl:ter:imperf.perf
  166 +161 fin:pl:ter:perf
  167 +162 fin:sg:pri:imperf
  168 +163 fin:sg:pri:imperf.perf
  169 +164 fin:sg:pri:perf
  170 +165 fin:sg:sec:imperf
  171 +166 fin:sg:sec:imperf.perf
  172 +167 fin:sg:sec:perf
  173 +168 fin:sg:ter:imperf
  174 +169 fin:sg:ter:imperf.perf
  175 +170 fin:sg:ter:perf
  176 +171 ger:pl:dat.loc:n2:imperf:aff
  177 +172 ger:pl:dat.loc:n2:imperf:neg
  178 +173 ger:pl:dat.loc:n2:imperf.perf:aff
  179 +174 ger:pl:dat.loc:n2:imperf.perf:neg
  180 +175 ger:pl:dat.loc:n2:perf:aff
  181 +176 ger:pl:dat.loc:n2:perf:neg
  182 +177 ger:pl:gen:n2:imperf:aff
  183 +178 ger:pl:gen:n2:imperf:neg
  184 +179 ger:pl:gen:n2:imperf.perf:aff
  185 +180 ger:pl:gen:n2:imperf.perf:neg
  186 +181 ger:pl:gen:n2:perf:aff
  187 +182 ger:pl:gen:n2:perf:neg
  188 +183 ger:pl:inst:n2:imperf:aff
  189 +184 ger:pl:inst:n2:imperf:neg
  190 +185 ger:pl:inst:n2:imperf.perf:aff
  191 +186 ger:pl:inst:n2:imperf.perf:neg
  192 +187 ger:pl:inst:n2:perf:aff
  193 +188 ger:pl:inst:n2:perf:neg
  194 +189 ger:pl:nom.acc:n2:imperf:aff
  195 +190 ger:pl:nom.acc:n2:imperf:neg
  196 +191 ger:pl:nom.acc:n2:imperf.perf:aff
  197 +192 ger:pl:nom.acc:n2:imperf.perf:neg
  198 +193 ger:pl:nom.acc:n2:perf:aff
  199 +194 ger:pl:nom.acc:n2:perf:neg
  200 +195 ger:sg:dat.loc:n2:imperf:aff
  201 +196 ger:sg:dat.loc:n2:imperf:neg
  202 +197 ger:sg:dat.loc:n2:imperf.perf:aff
  203 +198 ger:sg:dat.loc:n2:imperf.perf:neg
  204 +199 ger:sg:dat.loc:n2:perf:aff
  205 +200 ger:sg:dat.loc:n2:perf:neg
  206 +201 ger:sg:gen:n2:imperf:aff
  207 +202 ger:sg:gen:n2:imperf:neg
  208 +203 ger:sg:gen:n2:imperf.perf:aff
  209 +204 ger:sg:gen:n2:imperf.perf:neg
  210 +205 ger:sg:gen:n2:perf:aff
  211 +206 ger:sg:gen:n2:perf:neg
  212 +207 ger:sg:inst:n2:imperf:aff
  213 +208 ger:sg:inst:n2:imperf:neg
  214 +209 ger:sg:inst:n2:imperf.perf:aff
  215 +210 ger:sg:inst:n2:imperf.perf:neg
  216 +211 ger:sg:inst:n2:perf:aff
  217 +212 ger:sg:inst:n2:perf:neg
  218 +213 ger:sg:nom.acc:n2:imperf:aff
  219 +214 ger:sg:nom.acc:n2:imperf:neg
  220 +215 ger:sg:nom.acc:n2:imperf.perf:aff
  221 +216 ger:sg:nom.acc:n2:imperf.perf:neg
  222 +217 ger:sg:nom.acc:n2:perf:aff
  223 +218 ger:sg:nom.acc:n2:perf:neg
  224 +219 imps:imperf
  225 +220 imps:imperf.perf
  226 +221 imps:perf
  227 +222 impt:pl:pri:imperf
  228 +223 impt:pl:pri:imperf.perf
  229 +224 impt:pl:pri:perf
  230 +225 impt:pl:sec:imperf
  231 +226 impt:pl:sec:imperf.perf
  232 +227 impt:pl:sec:perf
  233 +228 impt:sg:sec:imperf
  234 +229 impt:sg:sec:imperf.perf
  235 +230 impt:sg:sec:perf
  236 +231 inf:imperf
  237 +232 inf:imperf.perf
  238 +233 inf:perf
  239 +234 interj
  240 +235 interp
  241 +236 naj
  242 +237 nie
  243 +238 num:comp
  244 +239 num:pl:acc:m1:rec
  245 +240 num:pl:dat.loc:n1.p1.p2:congr.rec
  246 +241 num:pl:dat:m1.m2.m3.n2.f:congr
  247 +242 num:pl:gen.dat.inst.loc:m1.m2.m3.f.n1.n2.p1.p2:congr
  248 +243 num:pl:gen.dat.inst.loc:m1.m2.m3.f.n2:congr
  249 +244 num:pl:gen.dat.loc:m1.m2.m3.n2.f:congr
  250 +245 num:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2:congr
  251 +246 num:pl:gen.loc:m1.m2.m3.n2.f:congr
  252 +247 num:pl:gen:n1.p1.p2:rec
  253 +248 num:pl:inst:f:congr
  254 +249 num:pl:inst:m1.m2.m3.f.n1.n2.p1.p2:congr
  255 +250 num:pl:inst:m1.m2.m3.f.n2:congr
  256 +251 num:pl:inst:m1.m2.m3.n2:congr
  257 +252 num:pl:inst:m1.m2.m3.n2.f:congr
  258 +253 num:pl:inst:n1.p1.p2:rec
  259 +254 num:pl:nom.acc:m1.m2.m3.f.n1.n2.p1.p2:rec
  260 +255 num:pl:nom.acc.voc:f:congr
  261 +256 num:pl:nom.acc.voc:m1:rec
  262 +257 num:pl:nom.acc.voc:m2.m3.f.n1.n2.p1.p2:rec
  263 +258 num:pl:nom.acc.voc:m2.m3.f.n2:rec
  264 +259 num:pl:nom.acc.voc:m2.m3.n2:congr
  265 +260 num:pl:nom.acc.voc:m2.m3.n2.f:congr
  266 +261 num:pl:nom.acc.voc:n1.p1.p2:rec
  267 +262 num:pl:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.f.n1.n2.p1.p2:rec
  268 +263 num:pl:nom.voc:m1:congr
  269 +264 num:pl:nom.voc:m1:rec
  270 +265 num:sg:nom.gen.dat.inst.acc.loc.voc:f:rec
  271 +266 num:sg:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.n1.n2:rec
  272 +267 pact:pl:acc:m1.p1:imperf:aff
  273 +268 pact:pl:acc:m1.p1:imperf:neg
  274 +269 pact:pl:acc:m1.p1:imperf.perf:aff
  275 +270 pact:pl:acc:m1.p1:imperf.perf:neg
  276 +271 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  277 +272 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  278 +273 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  279 +274 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  280 +275 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  281 +276 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  282 +277 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  283 +278 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  284 +279 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  285 +280 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  286 +281 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  287 +282 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  288 +283 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:aff
  289 +284 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:neg
  290 +285 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:aff
  291 +286 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:neg
  292 +287 pact:pl:nom.voc:m1.p1:imperf:aff
  293 +288 pact:pl:nom.voc:m1.p1:imperf:neg
  294 +289 pact:pl:nom.voc:m1.p1:imperf.perf:aff
  295 +290 pact:pl:nom.voc:m1.p1:imperf.perf:neg
  296 +291 pact:sg:acc.inst:f:imperf:aff
  297 +292 pact:sg:acc.inst:f:imperf:neg
  298 +293 pact:sg:acc.inst:f:imperf.perf:aff
  299 +294 pact:sg:acc.inst:f:imperf.perf:neg
  300 +295 pact:sg:acc:m1.m2:imperf:aff
  301 +296 pact:sg:acc:m1.m2:imperf:neg
  302 +297 pact:sg:acc:m1.m2:imperf.perf:aff
  303 +298 pact:sg:acc:m1.m2:imperf.perf:neg
  304 +299 pact:sg:acc:m3:imperf:aff
  305 +300 pact:sg:acc:m3:imperf:neg
  306 +301 pact:sg:acc:m3:imperf.perf:aff
  307 +302 pact:sg:acc:m3:imperf.perf:neg
  308 +303 pact:sg:dat:m1.m2.m3.n1.n2:imperf:aff
  309 +304 pact:sg:dat:m1.m2.m3.n1.n2:imperf:neg
  310 +305 pact:sg:dat:m1.m2.m3.n1.n2:imperf.perf:aff
  311 +306 pact:sg:dat:m1.m2.m3.n1.n2:imperf.perf:neg
  312 +307 pact:sg:gen.dat.loc:f:imperf:aff
  313 +308 pact:sg:gen.dat.loc:f:imperf:neg
  314 +309 pact:sg:gen.dat.loc:f:imperf.perf:aff
  315 +310 pact:sg:gen.dat.loc:f:imperf.perf:neg
  316 +311 pact:sg:gen:m1.m2.m3.n1.n2:imperf:aff
  317 +312 pact:sg:gen:m1.m2.m3.n1.n2:imperf:neg
  318 +313 pact:sg:gen:m1.m2.m3.n1.n2:imperf.perf:aff
  319 +314 pact:sg:gen:m1.m2.m3.n1.n2:imperf.perf:neg
  320 +315 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf:aff
  321 +316 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf:neg
  322 +317 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:aff
  323 +318 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:neg
  324 +319 pact:sg:nom.acc.voc:n1.n2:imperf:aff
  325 +320 pact:sg:nom.acc.voc:n1.n2:imperf:neg
  326 +321 pact:sg:nom.acc.voc:n1.n2:imperf.perf:aff
  327 +322 pact:sg:nom.acc.voc:n1.n2:imperf.perf:neg
  328 +323 pact:sg:nom.voc:f:imperf:aff
  329 +324 pact:sg:nom.voc:f:imperf:neg
  330 +325 pact:sg:nom.voc:f:imperf.perf:aff
  331 +326 pact:sg:nom.voc:f:imperf.perf:neg
  332 +327 pact:sg:nom.voc:m1.m2.m3:imperf:aff
  333 +328 pact:sg:nom.voc:m1.m2.m3:imperf:neg
  334 +329 pact:sg:nom.voc:m1.m2.m3:imperf.perf:aff
  335 +330 pact:sg:nom.voc:m1.m2.m3:imperf.perf:neg
  336 +331 pant:perf
  337 +332 pcon:imperf
  338 +333 ppas:pl:acc:m1.p1:imperf:aff
  339 +334 ppas:pl:acc:m1.p1:imperf:neg
  340 +335 ppas:pl:acc:m1.p1:imperf.perf:aff
  341 +336 ppas:pl:acc:m1.p1:imperf.perf:neg
  342 +337 ppas:pl:acc:m1.p1:perf:aff
  343 +338 ppas:pl:acc:m1.p1:perf:neg
  344 +339 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  345 +340 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  346 +341 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  347 +342 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  348 +343 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
  349 +344 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
  350 +345 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  351 +346 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  352 +347 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  353 +348 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  354 +349 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
  355 +350 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
  356 +351 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  357 +352 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  358 +353 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  359 +354 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  360 +355 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
  361 +356 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
  362 +357 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:aff
  363 +358 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:neg
  364 +359 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:aff
  365 +360 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:neg
  366 +361 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:perf:aff
  367 +362 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:perf:neg
  368 +363 ppas:pl:nom.voc:m1.p1:imperf:aff
  369 +364 ppas:pl:nom.voc:m1.p1:imperf:neg
  370 +365 ppas:pl:nom.voc:m1.p1:imperf.perf:aff
  371 +366 ppas:pl:nom.voc:m1.p1:imperf.perf:neg
  372 +367 ppas:pl:nom.voc:m1.p1:perf:aff
  373 +368 ppas:pl:nom.voc:m1.p1:perf:neg
  374 +369 ppas:sg:acc.inst:f:imperf:aff
  375 +370 ppas:sg:acc.inst:f:imperf:neg
  376 +371 ppas:sg:acc.inst:f:imperf.perf:aff
  377 +372 ppas:sg:acc.inst:f:imperf.perf:neg
  378 +373 ppas:sg:acc.inst:f:perf:aff
  379 +374 ppas:sg:acc.inst:f:perf:neg
  380 +375 ppas:sg:acc:m1.m2:imperf:aff
  381 +376 ppas:sg:acc:m1.m2:imperf:neg
  382 +377 ppas:sg:acc:m1.m2:imperf.perf:aff
  383 +378 ppas:sg:acc:m1.m2:imperf.perf:neg
  384 +379 ppas:sg:acc:m1.m2:perf:aff
  385 +380 ppas:sg:acc:m1.m2:perf:neg
  386 +381 ppas:sg:acc:m3:imperf:aff
  387 +382 ppas:sg:acc:m3:imperf:neg
  388 +383 ppas:sg:acc:m3:imperf.perf:aff
  389 +384 ppas:sg:acc:m3:imperf.perf:neg
  390 +385 ppas:sg:acc:m3:perf:aff
  391 +386 ppas:sg:acc:m3:perf:neg
  392 +387 ppas:sg:dat:m1.m2.m3.n1.n2:imperf:aff
  393 +388 ppas:sg:dat:m1.m2.m3.n1.n2:imperf:neg
  394 +389 ppas:sg:dat:m1.m2.m3.n1.n2:imperf.perf:aff
  395 +390 ppas:sg:dat:m1.m2.m3.n1.n2:imperf.perf:neg
  396 +391 ppas:sg:dat:m1.m2.m3.n1.n2:perf:aff
  397 +392 ppas:sg:dat:m1.m2.m3.n1.n2:perf:neg
  398 +393 ppas:sg:gen.dat.loc:f:imperf:aff
  399 +394 ppas:sg:gen.dat.loc:f:imperf:neg
  400 +395 ppas:sg:gen.dat.loc:f:imperf.perf:aff
  401 +396 ppas:sg:gen.dat.loc:f:imperf.perf:neg
  402 +397 ppas:sg:gen.dat.loc:f:perf:aff
  403 +398 ppas:sg:gen.dat.loc:f:perf:neg
  404 +399 ppas:sg:gen:m1.m2.m3.n1.n2:imperf:aff
  405 +400 ppas:sg:gen:m1.m2.m3.n1.n2:imperf:neg
  406 +401 ppas:sg:gen:m1.m2.m3.n1.n2:imperf.perf:aff
  407 +402 ppas:sg:gen:m1.m2.m3.n1.n2:imperf.perf:neg
  408 +403 ppas:sg:gen:m1.m2.m3.n1.n2:perf:aff
  409 +404 ppas:sg:gen:m1.m2.m3.n1.n2:perf:neg
  410 +405 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf:aff
  411 +406 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf:neg
  412 +407 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:aff
  413 +408 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:neg
  414 +409 ppas:sg:inst.loc:m1.m2.m3.n1.n2:perf:aff
  415 +410 ppas:sg:inst.loc:m1.m2.m3.n1.n2:perf:neg
  416 +411 ppas:sg:nom.acc.voc:n1.n2:imperf:aff
  417 +412 ppas:sg:nom.acc.voc:n1.n2:imperf:neg
  418 +413 ppas:sg:nom.acc.voc:n1.n2:imperf.perf:aff
  419 +414 ppas:sg:nom.acc.voc:n1.n2:imperf.perf:neg
  420 +415 ppas:sg:nom.acc.voc:n1.n2:perf:aff
  421 +416 ppas:sg:nom.acc.voc:n1.n2:perf:neg
  422 +417 ppas:sg:nom.voc:f:imperf:aff
  423 +418 ppas:sg:nom.voc:f:imperf:neg
  424 +419 ppas:sg:nom.voc:f:imperf.perf:aff
  425 +420 ppas:sg:nom.voc:f:imperf.perf:neg
  426 +421 ppas:sg:nom.voc:f:perf:aff
  427 +422 ppas:sg:nom.voc:f:perf:neg
  428 +423 ppas:sg:nom.voc:m1.m2.m3:imperf:aff
  429 +424 ppas:sg:nom.voc:m1.m2.m3:imperf:neg
  430 +425 ppas:sg:nom.voc:m1.m2.m3:imperf.perf:aff
  431 +426 ppas:sg:nom.voc:m1.m2.m3:imperf.perf:neg
  432 +427 ppas:sg:nom.voc:m1.m2.m3:perf:aff
  433 +428 ppas:sg:nom.voc:m1.m2.m3:perf:neg
  434 +429 ppron12:pl:acc:_:pri
  435 +430 ppron12:pl:acc:_:sec
  436 +431 ppron12:pl:dat:_:pri
  437 +432 ppron12:pl:dat:_:sec
  438 +433 ppron12:pl:gen:_:pri
  439 +434 ppron12:pl:gen:_:sec
  440 +435 ppron12:pl:inst:_:pri
  441 +436 ppron12:pl:inst:_:sec
  442 +437 ppron12:pl:loc:_:pri
  443 +438 ppron12:pl:loc:_:sec
  444 +439 ppron12:pl:nom:_:pri
  445 +440 ppron12:pl:nom:_:sec
  446 +441 ppron12:pl:voc:_:pri
  447 +442 ppron12:pl:voc:_:sec
  448 +443 ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:akc
  449 +444 ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:nakc
  450 +445 ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:akc
  451 +446 ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:nakc
  452 +447 ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:akc
  453 +448 ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:nakc
  454 +449 ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:akc
  455 +450 ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:nakc
  456 +451 ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:akc
  457 +452 ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:nakc
  458 +453 ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:akc
  459 +454 ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:nakc
  460 +455 ppron12:sg:inst:m1.m2.m3.f.n1.n2:pri
  461 +456 ppron12:sg:inst:m1.m2.m3.f.n1.n2:sec
  462 +457 ppron12:sg:loc:m1.m2.m3.f.n1.n2:pri
  463 +458 ppron12:sg:loc:m1.m2.m3.f.n1.n2:sec
  464 +459 ppron12:sg:nom:m1.m2.m3.f.n1.n2:pri
  465 +460 ppron12:sg:nom:m1.m2.m3.f.n1.n2:sec
  466 +461 ppron12:sg:voc:m1.m2.m3.f.n1.n2:sec
  467 +462 ppron3:pl:acc:m1.p1:ter:_:npraep
  468 +463 ppron3:pl:acc:m1.p1:ter:_:praep
  469 +464 ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:npraep
  470 +465 ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:praep
  471 +466 ppron3:pl:dat:_:ter:_:npraep
  472 +467 ppron3:pl:dat:_:ter:_:praep
  473 +468 ppron3:pl:gen:_:ter:_:npraep
  474 +469 ppron3:pl:gen:_:ter:_:praep
  475 +470 ppron3:pl:inst:_:ter:_:_
  476 +471 ppron3:pl:loc:_:ter:_:_
  477 +472 ppron3:pl:nom:m1.p1:ter:_:_
  478 +473 ppron3:pl:nom:m2.m3.f.n1.n2.p2.p3:ter:_:_
  479 +474 ppron3:sg:acc:f:ter:_:npraep
  480 +475 ppron3:sg:acc:f:ter:_:praep
  481 +476 ppron3:sg:acc:m1.m2.m3:ter:akc:npraep
  482 +477 ppron3:sg:acc:m1.m2.m3:ter:akc:praep
  483 +478 ppron3:sg:acc:m1.m2.m3:ter:nakc:npraep
  484 +479 ppron3:sg:acc:m1.m2.m3:ter:nakc:praep
  485 +480 ppron3:sg:acc:n1.n2:ter:_:npraep
  486 +481 ppron3:sg:acc:n1.n2:ter:_:praep
  487 +482 ppron3:sg:dat:f:ter:_:npraep
  488 +483 ppron3:sg:dat:f:ter:_:praep
  489 +484 ppron3:sg:dat:m1.m2.m3:ter:akc:npraep
  490 +485 ppron3:sg:dat:m1.m2.m3:ter:nakc:npraep
  491 +486 ppron3:sg:dat:m1.m2.m3:ter:_:praep
  492 +487 ppron3:sg:dat:n1.n2:ter:akc:npraep
  493 +488 ppron3:sg:dat:n1.n2:ter:nakc:npraep
  494 +489 ppron3:sg:dat:n1.n2:ter:_:praep
  495 +490 ppron3:sg:gen.acc:m1.m2.m3:ter:nakc:praep
  496 +491 ppron3:sg:gen:f:ter:_:npraep
  497 +492 ppron3:sg:gen:f:ter:_:praep
  498 +493 ppron3:sg:gen:m1.m2.m3:ter:akc:npraep
  499 +494 ppron3:sg:gen:m1.m2.m3:ter:akc:praep
  500 +495 ppron3:sg:gen:m1.m2.m3:ter:nakc:npraep
  501 +496 ppron3:sg:gen:m1.m2.m3:ter:nakc:praep
  502 +497 ppron3:sg:gen:n1.n2:ter:akc:npraep
  503 +498 ppron3:sg:gen:n1.n2:ter:nakc:npraep
  504 +499 ppron3:sg:gen:n1.n2:ter:_:praep
  505 +500 ppron3:sg:inst:f:ter:_:praep
  506 +501 ppron3:sg:inst:m1.m2.m3:ter:_:_
  507 +502 ppron3:sg:inst:n1.n2:ter:_:_
  508 +503 ppron3:sg:loc:f:ter:_:_
  509 +504 ppron3:sg:loc:m1.m2.m3:ter:_:_
  510 +505 ppron3:sg:loc:n1.n2:ter:_:_
  511 +506 ppron3:sg:nom:f:ter:_:_
  512 +507 ppron3:sg:nom:m1.m2.m3:ter:_:_
  513 +508 ppron3:sg:nom:n1.n2:ter:_:_
  514 +509 praet:pl:m1.p1:imperf
  515 +510 praet:pl:m1.p1:imperf.perf
  516 +511 praet:pl:m1.p1:perf
  517 +512 praet:pl:m1.p1:pri:imperf
  518 +513 praet:pl:m1.p1:pri:imperf.perf
  519 +514 praet:pl:m1.p1:pri:perf
  520 +515 praet:pl:m1.p1:sec:imperf
  521 +516 praet:pl:m1.p1:sec:imperf.perf
  522 +517 praet:pl:m1.p1:sec:perf
  523 +518 praet:pl:m1.p1:ter:imperf
  524 +519 praet:pl:m1.p1:ter:imperf.perf
  525 +520 praet:pl:m1.p1:ter:perf
  526 +521 praet:pl:m2.m3.f.n1.n2.p2.p3:imperf
  527 +522 praet:pl:m2.m3.f.n1.n2.p2.p3:imperf.perf
  528 +523 praet:pl:m2.m3.f.n1.n2.p2.p3:perf
  529 +524 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf
  530 +525 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf.perf
  531 +526 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:perf
  532 +527 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
  533 +528 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf.perf
  534 +529 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:perf
  535 +530 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
  536 +531 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf.perf
  537 +532 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:perf
  538 +533 praet:sg:f:imperf
  539 +534 praet:sg:f:imperf.perf
  540 +535 praet:sg:f:perf
  541 +536 praet:sg:f:pri:imperf
  542 +537 praet:sg:f:pri:imperf.perf
  543 +538 praet:sg:f:pri:perf
  544 +539 praet:sg:f:sec:imperf
  545 +540 praet:sg:f:sec:imperf.perf
  546 +541 praet:sg:f:sec:perf
  547 +542 praet:sg:f:ter:imperf
  548 +543 praet:sg:f:ter:imperf.perf
  549 +544 praet:sg:f:ter:perf
  550 +545 praet:sg:m1.m2.m3:imperf
  551 +546 praet:sg:m1.m2.m3:imperf:agl
  552 +547 praet:sg:m1.m2.m3:imperf:nagl
  553 +548 praet:sg:m1.m2.m3:imperf.perf
  554 +549 praet:sg:m1.m2.m3:perf
  555 +550 praet:sg:m1.m2.m3:perf:agl
  556 +551 praet:sg:m1.m2.m3:perf:nagl
  557 +552 praet:sg:m1.m2.m3:pri:imperf
  558 +553 praet:sg:m1.m2.m3:pri:imperf.perf
  559 +554 praet:sg:m1.m2.m3:pri:perf
  560 +555 praet:sg:m1.m2.m3:sec:imperf
  561 +556 praet:sg:m1.m2.m3:sec:imperf.perf
  562 +557 praet:sg:m1.m2.m3:sec:perf
  563 +558 praet:sg:m1.m2.m3:ter:imperf
  564 +559 praet:sg:m1.m2.m3:ter:imperf.perf
  565 +560 praet:sg:m1.m2.m3:ter:perf
  566 +561 praet:sg:n1.n2:imperf
  567 +562 praet:sg:n1.n2:imperf.perf
  568 +563 praet:sg:n1.n2:perf
  569 +564 praet:sg:n1.n2:pri:imperf
  570 +565 praet:sg:n1.n2:pri:imperf.perf
  571 +566 praet:sg:n1.n2:pri:perf
  572 +567 praet:sg:n1.n2:sec:imperf
  573 +568 praet:sg:n1.n2:sec:imperf.perf
  574 +569 praet:sg:n1.n2:sec:perf
  575 +570 praet:sg:n1.n2:ter:imperf
  576 +571 praet:sg:n1.n2:ter:imperf.perf
  577 +572 praet:sg:n1.n2:ter:perf
  578 +573 pred
  579 +574 prefa
  580 +575 prefppas
  581 +576 prefs
  582 +577 prefv
  583 +578 prep:acc
  584 +579 prep:acc:nwok
  585 +580 prep:acc:wok
  586 +581 prep:dat
  587 +582 prep:gen
  588 +583 prep:gen:nwok
  589 +584 prep:gen:wok
  590 +585 prep:inst
  591 +586 prep:inst:nwok
  592 +587 prep:inst:wok
  593 +588 prep:loc
  594 +589 prep:loc:nwok
  595 +590 prep:loc:wok
  596 +591 prep:nom
  597 +592 qub
  598 +593 romandig
  599 +594 siebie:acc
  600 +595 siebie:dat
  601 +596 siebie:gen
  602 +597 siebie:inst
  603 +598 siebie:loc
  604 +599 substa
  605 +600 subst:pl:acc:f
  606 +601 subst:pl:acc:m1
  607 +602 subst:pl:acc:m2
  608 +603 subst:pl:acc:m3
  609 +604 subst:pl:acc:n1
  610 +605 subst:pl:acc:n2
  611 +606 subst:pl:acc:p1
  612 +607 subst:pl:acc:p2
  613 +608 subst:pl:acc:p3
  614 +609 subst:pl:dat:f
  615 +610 subst:pl:dat:m1
  616 +611 subst:pl:dat:m2
  617 +612 subst:pl:dat:m3
  618 +613 subst:pl:dat:n1
  619 +614 subst:pl:dat:n2
  620 +615 subst:pl:dat:p1
  621 +616 subst:pl:dat:p2
  622 +617 subst:pl:dat:p3
  623 +618 subst:pl:gen:f
  624 +619 subst:pl:gen:m1
  625 +620 subst:pl:gen:m2
  626 +621 subst:pl:gen:m3
  627 +622 subst:pl:gen:n1
  628 +623 subst:pl:gen:n2
  629 +624 subst:pl:gen:p1
  630 +625 subst:pl:gen:p2
  631 +626 subst:pl:gen:p3
  632 +627 subst:pl:inst:f
  633 +628 subst:pl:inst:m1
  634 +629 subst:pl:inst:m2
  635 +630 subst:pl:inst:m3
  636 +631 subst:pl:inst:n1
  637 +632 subst:pl:inst:n2
  638 +633 subst:pl:inst:p1
  639 +634 subst:pl:inst:p2
  640 +635 subst:pl:inst:p3
  641 +636 subst:pl:loc:f
  642 +637 subst:pl:loc:m1
  643 +638 subst:pl:loc:m2
  644 +639 subst:pl:loc:m3
  645 +640 subst:pl:loc:n1
  646 +641 subst:pl:loc:n2
  647 +642 subst:pl:loc:p1
  648 +643 subst:pl:loc:p2
  649 +644 subst:pl:loc:p3
  650 +645 subst:pl:nom:f
  651 +646 subst:pl:nom:m1
  652 +647 subst:pl:nom:m2
  653 +648 subst:pl:nom:m3
  654 +649 subst:pl:nom:n1
  655 +650 subst:pl:nom:n2
  656 +651 subst:pl:nom:p1
  657 +652 subst:pl:nom:p2
  658 +653 subst:pl:nom:p3
  659 +654 subst:pl:voc:f
  660 +655 subst:pl:voc:m1
  661 +656 subst:pl:voc:m2
  662 +657 subst:pl:voc:m3
  663 +658 subst:pl:voc:n1
  664 +659 subst:pl:voc:n2
  665 +660 subst:pl:voc:p1
  666 +661 subst:pl:voc:p2
  667 +662 subst:pl:voc:p3
  668 +663 subst:sg:acc:f
  669 +664 subst:sg:acc:m1
  670 +665 subst:sg:acc:m2
  671 +666 subst:sg:acc:m3
  672 +667 subst:sg:acc:n1
  673 +668 subst:sg:acc:n2
  674 +669 subst:sg:dat:f
  675 +670 subst:sg:dat:m1
  676 +671 subst:sg:dat:m2
  677 +672 subst:sg:dat:m3
  678 +673 subst:sg:dat:n1
  679 +674 subst:sg:dat:n2
  680 +675 subst:sg:gen:f
  681 +676 subst:sg:gen:m1
  682 +677 subst:sg:gen:m2
  683 +678 subst:sg:gen:m3
  684 +679 subst:sg:gen:n1
  685 +680 subst:sg:gen:n2
  686 +681 subst:sg:inst:f
  687 +682 subst:sg:inst:m1
  688 +683 subst:sg:inst:m2
  689 +684 subst:sg:inst:m3
  690 +685 subst:sg:inst:n1
  691 +686 subst:sg:inst:n2
  692 +687 subst:sg:loc:f
  693 +688 subst:sg:loc:m1
  694 +689 subst:sg:loc:m2
  695 +690 subst:sg:loc:m3
  696 +691 subst:sg:loc:n1
  697 +692 subst:sg:loc:n2
  698 +693 subst:sg:nom:f
  699 +694 subst:sg:nom:m1
  700 +695 subst:sg:nom:m2
  701 +696 subst:sg:nom:m3
  702 +697 subst:sg:nom:n1
  703 +698 subst:sg:nom:n2
  704 +699 subst:sg:voc:f
  705 +700 subst:sg:voc:m1
  706 +701 subst:sg:voc:m2
  707 +702 subst:sg:voc:m3
  708 +703 subst:sg:voc:n1
  709 +704 subst:sg:voc:n2
  710 +705 winien:pl:m1.p1:imperf
  711 +706 winien:pl:m1.p1:pri:imperf
  712 +707 winien:pl:m1.p1:sec:imperf
  713 +708 winien:pl:m1.p1:ter:imperf
  714 +709 winien:pl:m2.m3.f.n1.n2.p2.p3:imperf
  715 +710 winien:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
  716 +711 winien:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
  717 +712 winien:sg:f:imperf
  718 +713 winien:sg:f:pri:imperf
  719 +714 winien:sg:f:sec:imperf
  720 +715 winien:sg:f:ter:imperf
  721 +716 winien:sg:m1.m2.m3:imperf
  722 +717 winien:sg:m1.m2.m3:pri:imperf
  723 +718 winien:sg:m1.m2.m3:sec:imperf
  724 +719 winien:sg:m1.m2.m3:ter:imperf
  725 +720 winien:sg:n1.n2:imperf
  726 +721 winien:sg:n1.n2:pri:imperf
  727 +722 winien:sg:n1.n2:sec:imperf
  728 +723 winien:sg:n1.n2:ter:imperf
tests/analyzer/test_qualifiers/ARGS 0 → 100644
  1 +--aggl permissive
tests/analyzer/test_qualifiers/dictionary.tab 0 → 100644
  1 +czerwony czerwony:a1 adj:sg:acc:m3:pos pospolita niebieski
  2 +czerwony czerwony:a2 adj:sg:acc:m3:pos pospolita żółty1|żółty2
  3 +czerwony czerwony:a3 adj:sg:acc:m3:pos pospolita żółty2|żółty1
  4 +czerwony czerwony:a4 adj:sg:acc:m3:pos pospolita żółty1|żółty2|żółty3
tests/analyzer/test_qualifiers/input.txt 0 → 100644
  1 +czerwony
tests/analyzer/test_qualifiers/output.txt 0 → 100644
  1 +[0,1,czerwony,czerwony:a1,adj:sg:acc:m3:pos,pospolita,niebieski
  2 + 0,1,czerwony,czerwony:a2,adj:sg:acc:m3:pos,pospolita,żółty1|żółty2
  3 + 0,1,czerwony,czerwony:a3,adj:sg:acc:m3:pos,pospolita,żółty1|żółty2
  4 + 0,1,czerwony,czerwony:a4,adj:sg:acc:m3:pos,pospolita,żółty1|żółty2|żółty3]
  5 +
tests/analyzer/test_qualifiers/segmentation.dat 0 → 100644
  1 +[options]
  2 +aggl=strict permissive isolated
  3 +praet=split composite
  4 +
  5 +[combinations]
  6 +#define wsz_interp (interp|kropka|przecinek|dywiz)*
  7 +
  8 +#define moze_interp(segmenty) wsz_interp segmenty wsz_interp
  9 +
  10 +# Segmenty występujące samodzielnie:
  11 +#
  12 +# domyślny typ segmentu samodzielnego:
  13 +moze_interp(samodz)
  14 +
  15 +# Pojedyncze znaki interpunkcyjne
  16 +moze_interp(interp|kropka|przecinek|dywiz)
  17 +
  18 +# Liczba zapisana jako ciąg cyfr:
  19 +moze_interp( dig>* dig )
  20 +
  21 +[segment types]
  22 +interp
  23 +kropka
  24 +przecinek
  25 +dywiz
  26 +dig
  27 +samodz
  28 +
  29 +[lexemes]
  30 +kropka .:interp
  31 +przecinek ,:interp
  32 +dywiz -:interp
  33 +
  34 +[tags]
  35 +dig dig
  36 +interp interp
  37 +samodz %
  38 +
  39 +[separator chars]
  40 +# ,
  41 +44
  42 +
  43 +# .
  44 +46
  45 +
  46 +# ;
  47 +59
tests/analyzer/test_qualifiers/tagset.dat 0 → 100644
  1 +#!MORFEUSZ-TAGSET 0.1
  2 +
  3 +[TAGS]
  4 +
  5 +0 ign
  6 +1 sp
  7 +2 adja
  8 +3 adjc
  9 +4 adjp
  10 +5 adj:pl:acc:m1.p1:com
  11 +6 adj:pl:acc:m1.p1:pos
  12 +7 adj:pl:acc:m1.p1:sup
  13 +8 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:com
  14 +9 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:pos
  15 +10 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:sup
  16 +11 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  17 +12 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  18 +13 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  19 +14 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  20 +15 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  21 +16 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  22 +17 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  23 +18 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  24 +19 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  25 +20 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  26 +21 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  27 +22 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  28 +23 adj:pl:nom:m1.p1:pos
  29 +24 adj:pl:nom:m2.m3.f.n1.n2.p2.p3:pos
  30 +25 adj:pl:nom.voc:m1.p1:com
  31 +26 adj:pl:nom.voc:m1.p1:pos
  32 +27 adj:pl:nom.voc:m1.p1:sup
  33 +28 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:com
  34 +29 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:pos
  35 +30 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:sup
  36 +31 adj:sg:acc:f:com
  37 +32 adj:sg:acc:f:pos
  38 +33 adj:sg:acc:f:sup
  39 +34 adj:sg:acc:m1.m2:com
  40 +35 adj:sg:acc:m1.m2:pos
  41 +36 adj:sg:acc:m1.m2:sup
  42 +37 adj:sg:acc:m3:com
  43 +38 adj:sg:acc:m3:pos
  44 +39 adj:sg:acc:m3:sup
  45 +40 adj:sg:acc:n1.n2:com
  46 +41 adj:sg:acc:n1.n2:pos
  47 +42 adj:sg:acc:n1.n2:sup
  48 +43 adj:sg:dat:f:com
  49 +44 adj:sg:dat:f:pos
  50 +45 adj:sg:dat:f:sup
  51 +46 adj:sg:dat:m1.m2.m3.n1.n2:com
  52 +47 adj:sg:dat:m1.m2.m3.n1.n2:pos
  53 +48 adj:sg:dat:m1.m2.m3.n1.n2:sup
  54 +49 adj:sg:gen:f:com
  55 +50 adj:sg:gen:f:pos
  56 +51 adj:sg:gen:f:sup
  57 +52 adj:sg:gen:m1.m2.m3.n1.n2:com
  58 +53 adj:sg:gen:m1.m2.m3.n1.n2:pos
  59 +54 adj:sg:gen:m1.m2.m3.n1.n2:sup
  60 +55 adj:sg:inst:f:com
  61 +56 adj:sg:inst:f:pos
  62 +57 adj:sg:inst:f:sup
  63 +58 adj:sg:inst:m1.m2.m3.n1.n2:com
  64 +59 adj:sg:inst:m1.m2.m3.n1.n2:pos
  65 +60 adj:sg:inst:m1.m2.m3.n1.n2:sup
  66 +61 adj:sg:loc:f:com
  67 +62 adj:sg:loc:f:pos
  68 +63 adj:sg:loc:f:sup
  69 +64 adj:sg:loc:m1.m2.m3.n1.n2:com
  70 +65 adj:sg:loc:m1.m2.m3.n1.n2:pos
  71 +66 adj:sg:loc:m1.m2.m3.n1.n2:sup
  72 +67 adj:sg:nom:f:pos
  73 +68 adj:sg:nom:m1.m2.m3:pos
  74 +69 adj:sg:nom:n1.n2:pos
  75 +70 adj:sg:nom.voc:f:com
  76 +71 adj:sg:nom.voc:f:pos
  77 +72 adj:sg:nom.voc:f:sup
  78 +73 adj:sg:nom.voc:m1.m2.m3:com
  79 +74 adj:sg:nom.voc:m1.m2.m3:pos
  80 +75 adj:sg:nom.voc:m1.m2.m3:sup
  81 +76 adj:sg:nom.voc:n1.n2:com
  82 +77 adj:sg:nom.voc:n1.n2:pos
  83 +78 adj:sg:nom.voc:n1.n2:sup
  84 +79 adv
  85 +80 adv:com
  86 +81 adv:pos
  87 +82 adv:sup
  88 +83 aglt:pl:pri:imperf:nwok
  89 +84 aglt:pl:pri:imperf:wok
  90 +85 aglt:pl:sec:imperf:nwok
  91 +86 aglt:pl:sec:imperf:wok
  92 +87 aglt:sg:pri:imperf:nwok
  93 +88 aglt:sg:pri:imperf:wok
  94 +89 aglt:sg:sec:imperf:nwok
  95 +90 aglt:sg:sec:imperf:wok
  96 +91 bedzie:pl:pri:imperf
  97 +92 bedzie:pl:sec:imperf
  98 +93 bedzie:pl:ter:imperf
  99 +94 bedzie:sg:pri:imperf
  100 +95 bedzie:sg:sec:imperf
  101 +96 bedzie:sg:ter:imperf
  102 +97 brev:pun
  103 +98 burk
  104 +99 comp
  105 +100 cond:pl:m1.p1:pri:imperf
  106 +101 cond:pl:m1.p1:pri:imperf.perf
  107 +102 cond:pl:m1.p1:pri:perf
  108 +103 cond:pl:m1.p1:sec:imperf
  109 +104 cond:pl:m1.p1:sec:imperf.perf
  110 +105 cond:pl:m1.p1:sec:perf
  111 +106 cond:pl:m1.p1:ter:imperf
  112 +107 cond:pl:m1.p1:ter:imperf.perf
  113 +108 cond:pl:m1.p1:ter:perf
  114 +109 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf
  115 +110 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf.perf
  116 +111 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:perf
  117 +112 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
  118 +113 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf.perf
  119 +114 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:perf
  120 +115 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
  121 +116 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf.perf
  122 +117 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:perf
  123 +118 cond:sg:f:pri:imperf
  124 +119 cond:sg:f:pri:imperf.perf
  125 +120 cond:sg:f:pri:perf
  126 +121 cond:sg:f:sec:imperf
  127 +122 cond:sg:f:sec:imperf.perf
  128 +123 cond:sg:f:sec:perf
  129 +124 cond:sg:f:ter:imperf
  130 +125 cond:sg:f:ter:imperf.perf
  131 +126 cond:sg:f:ter:perf
  132 +127 cond:sg:m1.m2.m3:pri:imperf
  133 +128 cond:sg:m1.m2.m3:pri:imperf.perf
  134 +129 cond:sg:m1.m2.m3:pri:perf
  135 +130 cond:sg:m1.m2.m3:sec:imperf
  136 +131 cond:sg:m1.m2.m3:sec:imperf.perf
  137 +132 cond:sg:m1.m2.m3:sec:perf
  138 +133 cond:sg:m1.m2.m3:ter:imperf
  139 +134 cond:sg:m1.m2.m3:ter:imperf.perf
  140 +135 cond:sg:m1.m2.m3:ter:perf
  141 +136 cond:sg:n1.n2:imperf
  142 +137 cond:sg:n1.n2:imperf.perf
  143 +138 cond:sg:n1.n2:perf
  144 +139 cond:sg:n1.n2:pri:imperf
  145 +140 cond:sg:n1.n2:pri:imperf.perf
  146 +141 cond:sg:n1.n2:pri:perf
  147 +142 cond:sg:n1.n2:sec:imperf
  148 +143 cond:sg:n1.n2:sec:imperf.perf
  149 +144 cond:sg:n1.n2:sec:perf
  150 +145 cond:sg:n1.n2:ter:imperf
  151 +146 cond:sg:n1.n2:ter:imperf.perf
  152 +147 cond:sg:n1.n2:ter:perf
  153 +148 conj
  154 +149 depr:pl:nom:m2
  155 +150 depr:pl:voc:m2
  156 +151 dig
  157 +152 emoticon
  158 +153 fin:pl:pri:imperf
  159 +154 fin:pl:pri:imperf.perf
  160 +155 fin:pl:pri:perf
  161 +156 fin:pl:sec:imperf
  162 +157 fin:pl:sec:imperf.perf
  163 +158 fin:pl:sec:perf
  164 +159 fin:pl:ter:imperf
  165 +160 fin:pl:ter:imperf.perf
  166 +161 fin:pl:ter:perf
  167 +162 fin:sg:pri:imperf
  168 +163 fin:sg:pri:imperf.perf
  169 +164 fin:sg:pri:perf
  170 +165 fin:sg:sec:imperf
  171 +166 fin:sg:sec:imperf.perf
  172 +167 fin:sg:sec:perf
  173 +168 fin:sg:ter:imperf
  174 +169 fin:sg:ter:imperf.perf
  175 +170 fin:sg:ter:perf
  176 +171 ger:pl:dat.loc:n2:imperf:aff
  177 +172 ger:pl:dat.loc:n2:imperf:neg
  178 +173 ger:pl:dat.loc:n2:imperf.perf:aff
  179 +174 ger:pl:dat.loc:n2:imperf.perf:neg
  180 +175 ger:pl:dat.loc:n2:perf:aff
  181 +176 ger:pl:dat.loc:n2:perf:neg
  182 +177 ger:pl:gen:n2:imperf:aff
  183 +178 ger:pl:gen:n2:imperf:neg
  184 +179 ger:pl:gen:n2:imperf.perf:aff
  185 +180 ger:pl:gen:n2:imperf.perf:neg
  186 +181 ger:pl:gen:n2:perf:aff
  187 +182 ger:pl:gen:n2:perf:neg
  188 +183 ger:pl:inst:n2:imperf:aff
  189 +184 ger:pl:inst:n2:imperf:neg
  190 +185 ger:pl:inst:n2:imperf.perf:aff
  191 +186 ger:pl:inst:n2:imperf.perf:neg
  192 +187 ger:pl:inst:n2:perf:aff
  193 +188 ger:pl:inst:n2:perf:neg
  194 +189 ger:pl:nom.acc:n2:imperf:aff
  195 +190 ger:pl:nom.acc:n2:imperf:neg
  196 +191 ger:pl:nom.acc:n2:imperf.perf:aff
  197 +192 ger:pl:nom.acc:n2:imperf.perf:neg
  198 +193 ger:pl:nom.acc:n2:perf:aff
  199 +194 ger:pl:nom.acc:n2:perf:neg
  200 +195 ger:sg:dat.loc:n2:imperf:aff
  201 +196 ger:sg:dat.loc:n2:imperf:neg
  202 +197 ger:sg:dat.loc:n2:imperf.perf:aff
  203 +198 ger:sg:dat.loc:n2:imperf.perf:neg
  204 +199 ger:sg:dat.loc:n2:perf:aff
  205 +200 ger:sg:dat.loc:n2:perf:neg
  206 +201 ger:sg:gen:n2:imperf:aff
  207 +202 ger:sg:gen:n2:imperf:neg
  208 +203 ger:sg:gen:n2:imperf.perf:aff
  209 +204 ger:sg:gen:n2:imperf.perf:neg
  210 +205 ger:sg:gen:n2:perf:aff
  211 +206 ger:sg:gen:n2:perf:neg
  212 +207 ger:sg:inst:n2:imperf:aff
  213 +208 ger:sg:inst:n2:imperf:neg
  214 +209 ger:sg:inst:n2:imperf.perf:aff
  215 +210 ger:sg:inst:n2:imperf.perf:neg
  216 +211 ger:sg:inst:n2:perf:aff
  217 +212 ger:sg:inst:n2:perf:neg
  218 +213 ger:sg:nom.acc:n2:imperf:aff
  219 +214 ger:sg:nom.acc:n2:imperf:neg
  220 +215 ger:sg:nom.acc:n2:imperf.perf:aff
  221 +216 ger:sg:nom.acc:n2:imperf.perf:neg
  222 +217 ger:sg:nom.acc:n2:perf:aff
  223 +218 ger:sg:nom.acc:n2:perf:neg
  224 +219 imps:imperf
  225 +220 imps:imperf.perf
  226 +221 imps:perf
  227 +222 impt:pl:pri:imperf
  228 +223 impt:pl:pri:imperf.perf
  229 +224 impt:pl:pri:perf
  230 +225 impt:pl:sec:imperf
  231 +226 impt:pl:sec:imperf.perf
  232 +227 impt:pl:sec:perf
  233 +228 impt:sg:sec:imperf
  234 +229 impt:sg:sec:imperf.perf
  235 +230 impt:sg:sec:perf
  236 +231 inf:imperf
  237 +232 inf:imperf.perf
  238 +233 inf:perf
  239 +234 interj
  240 +235 interp
  241 +236 naj
  242 +237 nie
  243 +238 num:comp
  244 +239 num:pl:acc:m1:rec
  245 +240 num:pl:dat.loc:n1.p1.p2:congr.rec
  246 +241 num:pl:dat:m1.m2.m3.n2.f:congr
  247 +242 num:pl:gen.dat.inst.loc:m1.m2.m3.f.n1.n2.p1.p2:congr
  248 +243 num:pl:gen.dat.inst.loc:m1.m2.m3.f.n2:congr
  249 +244 num:pl:gen.dat.loc:m1.m2.m3.n2.f:congr
  250 +245 num:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2:congr
  251 +246 num:pl:gen.loc:m1.m2.m3.n2.f:congr
  252 +247 num:pl:gen:n1.p1.p2:rec
  253 +248 num:pl:inst:f:congr
  254 +249 num:pl:inst:m1.m2.m3.f.n1.n2.p1.p2:congr
  255 +250 num:pl:inst:m1.m2.m3.f.n2:congr
  256 +251 num:pl:inst:m1.m2.m3.n2:congr
  257 +252 num:pl:inst:m1.m2.m3.n2.f:congr
  258 +253 num:pl:inst:n1.p1.p2:rec
  259 +254 num:pl:nom.acc:m1.m2.m3.f.n1.n2.p1.p2:rec
  260 +255 num:pl:nom.acc.voc:f:congr
  261 +256 num:pl:nom.acc.voc:m1:rec
  262 +257 num:pl:nom.acc.voc:m2.m3.f.n1.n2.p1.p2:rec
  263 +258 num:pl:nom.acc.voc:m2.m3.f.n2:rec
  264 +259 num:pl:nom.acc.voc:m2.m3.n2:congr
  265 +260 num:pl:nom.acc.voc:m2.m3.n2.f:congr
  266 +261 num:pl:nom.acc.voc:n1.p1.p2:rec
  267 +262 num:pl:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.f.n1.n2.p1.p2:rec
  268 +263 num:pl:nom.voc:m1:congr
  269 +264 num:pl:nom.voc:m1:rec
  270 +265 num:sg:nom.gen.dat.inst.acc.loc.voc:f:rec
  271 +266 num:sg:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.n1.n2:rec
  272 +267 pact:pl:acc:m1.p1:imperf:aff
  273 +268 pact:pl:acc:m1.p1:imperf:neg
  274 +269 pact:pl:acc:m1.p1:imperf.perf:aff
  275 +270 pact:pl:acc:m1.p1:imperf.perf:neg
  276 +271 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  277 +272 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  278 +273 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  279 +274 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  280 +275 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  281 +276 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  282 +277 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  283 +278 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  284 +279 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  285 +280 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  286 +281 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  287 +282 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  288 +283 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:aff
  289 +284 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:neg
  290 +285 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:aff
  291 +286 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:neg
  292 +287 pact:pl:nom.voc:m1.p1:imperf:aff
  293 +288 pact:pl:nom.voc:m1.p1:imperf:neg
  294 +289 pact:pl:nom.voc:m1.p1:imperf.perf:aff
  295 +290 pact:pl:nom.voc:m1.p1:imperf.perf:neg
  296 +291 pact:sg:acc.inst:f:imperf:aff
  297 +292 pact:sg:acc.inst:f:imperf:neg
  298 +293 pact:sg:acc.inst:f:imperf.perf:aff
  299 +294 pact:sg:acc.inst:f:imperf.perf:neg
  300 +295 pact:sg:acc:m1.m2:imperf:aff
  301 +296 pact:sg:acc:m1.m2:imperf:neg
  302 +297 pact:sg:acc:m1.m2:imperf.perf:aff
  303 +298 pact:sg:acc:m1.m2:imperf.perf:neg
  304 +299 pact:sg:acc:m3:imperf:aff
  305 +300 pact:sg:acc:m3:imperf:neg
  306 +301 pact:sg:acc:m3:imperf.perf:aff
  307 +302 pact:sg:acc:m3:imperf.perf:neg
  308 +303 pact:sg:dat:m1.m2.m3.n1.n2:imperf:aff
  309 +304 pact:sg:dat:m1.m2.m3.n1.n2:imperf:neg
  310 +305 pact:sg:dat:m1.m2.m3.n1.n2:imperf.perf:aff
  311 +306 pact:sg:dat:m1.m2.m3.n1.n2:imperf.perf:neg
  312 +307 pact:sg:gen.dat.loc:f:imperf:aff
  313 +308 pact:sg:gen.dat.loc:f:imperf:neg
  314 +309 pact:sg:gen.dat.loc:f:imperf.perf:aff
  315 +310 pact:sg:gen.dat.loc:f:imperf.perf:neg
  316 +311 pact:sg:gen:m1.m2.m3.n1.n2:imperf:aff
  317 +312 pact:sg:gen:m1.m2.m3.n1.n2:imperf:neg
  318 +313 pact:sg:gen:m1.m2.m3.n1.n2:imperf.perf:aff
  319 +314 pact:sg:gen:m1.m2.m3.n1.n2:imperf.perf:neg
  320 +315 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf:aff
  321 +316 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf:neg
  322 +317 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:aff
  323 +318 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:neg
  324 +319 pact:sg:nom.acc.voc:n1.n2:imperf:aff
  325 +320 pact:sg:nom.acc.voc:n1.n2:imperf:neg
  326 +321 pact:sg:nom.acc.voc:n1.n2:imperf.perf:aff
  327 +322 pact:sg:nom.acc.voc:n1.n2:imperf.perf:neg
  328 +323 pact:sg:nom.voc:f:imperf:aff
  329 +324 pact:sg:nom.voc:f:imperf:neg
  330 +325 pact:sg:nom.voc:f:imperf.perf:aff
  331 +326 pact:sg:nom.voc:f:imperf.perf:neg
  332 +327 pact:sg:nom.voc:m1.m2.m3:imperf:aff
  333 +328 pact:sg:nom.voc:m1.m2.m3:imperf:neg
  334 +329 pact:sg:nom.voc:m1.m2.m3:imperf.perf:aff
  335 +330 pact:sg:nom.voc:m1.m2.m3:imperf.perf:neg
  336 +331 pant:perf
  337 +332 pcon:imperf
  338 +333 ppas:pl:acc:m1.p1:imperf:aff
  339 +334 ppas:pl:acc:m1.p1:imperf:neg
  340 +335 ppas:pl:acc:m1.p1:imperf.perf:aff
  341 +336 ppas:pl:acc:m1.p1:imperf.perf:neg
  342 +337 ppas:pl:acc:m1.p1:perf:aff
  343 +338 ppas:pl:acc:m1.p1:perf:neg
  344 +339 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  345 +340 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  346 +341 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  347 +342 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  348 +343 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
  349 +344 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
  350 +345 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  351 +346 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  352 +347 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  353 +348 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  354 +349 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
  355 +350 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
  356 +351 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  357 +352 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  358 +353 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  359 +354 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  360 +355 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
  361 +356 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
  362 +357 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:aff
  363 +358 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:neg
  364 +359 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:aff
  365 +360 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:neg
  366 +361 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:perf:aff
  367 +362 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:perf:neg
  368 +363 ppas:pl:nom.voc:m1.p1:imperf:aff
  369 +364 ppas:pl:nom.voc:m1.p1:imperf:neg
  370 +365 ppas:pl:nom.voc:m1.p1:imperf.perf:aff
  371 +366 ppas:pl:nom.voc:m1.p1:imperf.perf:neg
  372 +367 ppas:pl:nom.voc:m1.p1:perf:aff
  373 +368 ppas:pl:nom.voc:m1.p1:perf:neg
  374 +369 ppas:sg:acc.inst:f:imperf:aff
  375 +370 ppas:sg:acc.inst:f:imperf:neg
  376 +371 ppas:sg:acc.inst:f:imperf.perf:aff
  377 +372 ppas:sg:acc.inst:f:imperf.perf:neg
  378 +373 ppas:sg:acc.inst:f:perf:aff
  379 +374 ppas:sg:acc.inst:f:perf:neg
  380 +375 ppas:sg:acc:m1.m2:imperf:aff
  381 +376 ppas:sg:acc:m1.m2:imperf:neg
  382 +377 ppas:sg:acc:m1.m2:imperf.perf:aff
  383 +378 ppas:sg:acc:m1.m2:imperf.perf:neg
  384 +379 ppas:sg:acc:m1.m2:perf:aff
  385 +380 ppas:sg:acc:m1.m2:perf:neg
  386 +381 ppas:sg:acc:m3:imperf:aff
  387 +382 ppas:sg:acc:m3:imperf:neg
  388 +383 ppas:sg:acc:m3:imperf.perf:aff
  389 +384 ppas:sg:acc:m3:imperf.perf:neg
  390 +385 ppas:sg:acc:m3:perf:aff
  391 +386 ppas:sg:acc:m3:perf:neg
  392 +387 ppas:sg:dat:m1.m2.m3.n1.n2:imperf:aff
  393 +388 ppas:sg:dat:m1.m2.m3.n1.n2:imperf:neg
  394 +389 ppas:sg:dat:m1.m2.m3.n1.n2:imperf.perf:aff
  395 +390 ppas:sg:dat:m1.m2.m3.n1.n2:imperf.perf:neg
  396 +391 ppas:sg:dat:m1.m2.m3.n1.n2:perf:aff
  397 +392 ppas:sg:dat:m1.m2.m3.n1.n2:perf:neg
  398 +393 ppas:sg:gen.dat.loc:f:imperf:aff
  399 +394 ppas:sg:gen.dat.loc:f:imperf:neg
  400 +395 ppas:sg:gen.dat.loc:f:imperf.perf:aff
  401 +396 ppas:sg:gen.dat.loc:f:imperf.perf:neg
  402 +397 ppas:sg:gen.dat.loc:f:perf:aff
  403 +398 ppas:sg:gen.dat.loc:f:perf:neg
  404 +399 ppas:sg:gen:m1.m2.m3.n1.n2:imperf:aff
  405 +400 ppas:sg:gen:m1.m2.m3.n1.n2:imperf:neg
  406 +401 ppas:sg:gen:m1.m2.m3.n1.n2:imperf.perf:aff
  407 +402 ppas:sg:gen:m1.m2.m3.n1.n2:imperf.perf:neg
  408 +403 ppas:sg:gen:m1.m2.m3.n1.n2:perf:aff
  409 +404 ppas:sg:gen:m1.m2.m3.n1.n2:perf:neg
  410 +405 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf:aff
  411 +406 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf:neg
  412 +407 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:aff
  413 +408 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:neg
  414 +409 ppas:sg:inst.loc:m1.m2.m3.n1.n2:perf:aff
  415 +410 ppas:sg:inst.loc:m1.m2.m3.n1.n2:perf:neg
  416 +411 ppas:sg:nom.acc.voc:n1.n2:imperf:aff
  417 +412 ppas:sg:nom.acc.voc:n1.n2:imperf:neg
  418 +413 ppas:sg:nom.acc.voc:n1.n2:imperf.perf:aff
  419 +414 ppas:sg:nom.acc.voc:n1.n2:imperf.perf:neg
  420 +415 ppas:sg:nom.acc.voc:n1.n2:perf:aff
  421 +416 ppas:sg:nom.acc.voc:n1.n2:perf:neg
  422 +417 ppas:sg:nom.voc:f:imperf:aff
  423 +418 ppas:sg:nom.voc:f:imperf:neg
  424 +419 ppas:sg:nom.voc:f:imperf.perf:aff
  425 +420 ppas:sg:nom.voc:f:imperf.perf:neg
  426 +421 ppas:sg:nom.voc:f:perf:aff
  427 +422 ppas:sg:nom.voc:f:perf:neg
  428 +423 ppas:sg:nom.voc:m1.m2.m3:imperf:aff
  429 +424 ppas:sg:nom.voc:m1.m2.m3:imperf:neg
  430 +425 ppas:sg:nom.voc:m1.m2.m3:imperf.perf:aff
  431 +426 ppas:sg:nom.voc:m1.m2.m3:imperf.perf:neg
  432 +427 ppas:sg:nom.voc:m1.m2.m3:perf:aff
  433 +428 ppas:sg:nom.voc:m1.m2.m3:perf:neg
  434 +429 ppron12:pl:acc:_:pri
  435 +430 ppron12:pl:acc:_:sec
  436 +431 ppron12:pl:dat:_:pri
  437 +432 ppron12:pl:dat:_:sec
  438 +433 ppron12:pl:gen:_:pri
  439 +434 ppron12:pl:gen:_:sec
  440 +435 ppron12:pl:inst:_:pri
  441 +436 ppron12:pl:inst:_:sec
  442 +437 ppron12:pl:loc:_:pri
  443 +438 ppron12:pl:loc:_:sec
  444 +439 ppron12:pl:nom:_:pri
  445 +440 ppron12:pl:nom:_:sec
  446 +441 ppron12:pl:voc:_:pri
  447 +442 ppron12:pl:voc:_:sec
  448 +443 ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:akc
  449 +444 ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:nakc
  450 +445 ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:akc
  451 +446 ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:nakc
  452 +447 ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:akc
  453 +448 ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:nakc
  454 +449 ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:akc
  455 +450 ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:nakc
  456 +451 ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:akc
  457 +452 ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:nakc
  458 +453 ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:akc
  459 +454 ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:nakc
  460 +455 ppron12:sg:inst:m1.m2.m3.f.n1.n2:pri
  461 +456 ppron12:sg:inst:m1.m2.m3.f.n1.n2:sec
  462 +457 ppron12:sg:loc:m1.m2.m3.f.n1.n2:pri
  463 +458 ppron12:sg:loc:m1.m2.m3.f.n1.n2:sec
  464 +459 ppron12:sg:nom:m1.m2.m3.f.n1.n2:pri
  465 +460 ppron12:sg:nom:m1.m2.m3.f.n1.n2:sec
  466 +461 ppron12:sg:voc:m1.m2.m3.f.n1.n2:sec
  467 +462 ppron3:pl:acc:m1.p1:ter:_:npraep
  468 +463 ppron3:pl:acc:m1.p1:ter:_:praep
  469 +464 ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:npraep
  470 +465 ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:praep
  471 +466 ppron3:pl:dat:_:ter:_:npraep
  472 +467 ppron3:pl:dat:_:ter:_:praep
  473 +468 ppron3:pl:gen:_:ter:_:npraep
  474 +469 ppron3:pl:gen:_:ter:_:praep
  475 +470 ppron3:pl:inst:_:ter:_:_
  476 +471 ppron3:pl:loc:_:ter:_:_
  477 +472 ppron3:pl:nom:m1.p1:ter:_:_
  478 +473 ppron3:pl:nom:m2.m3.f.n1.n2.p2.p3:ter:_:_
  479 +474 ppron3:sg:acc:f:ter:_:npraep
  480 +475 ppron3:sg:acc:f:ter:_:praep
  481 +476 ppron3:sg:acc:m1.m2.m3:ter:akc:npraep
  482 +477 ppron3:sg:acc:m1.m2.m3:ter:akc:praep
  483 +478 ppron3:sg:acc:m1.m2.m3:ter:nakc:npraep
  484 +479 ppron3:sg:acc:m1.m2.m3:ter:nakc:praep
  485 +480 ppron3:sg:acc:n1.n2:ter:_:npraep
  486 +481 ppron3:sg:acc:n1.n2:ter:_:praep
  487 +482 ppron3:sg:dat:f:ter:_:npraep
  488 +483 ppron3:sg:dat:f:ter:_:praep
  489 +484 ppron3:sg:dat:m1.m2.m3:ter:akc:npraep
  490 +485 ppron3:sg:dat:m1.m2.m3:ter:nakc:npraep
  491 +486 ppron3:sg:dat:m1.m2.m3:ter:_:praep
  492 +487 ppron3:sg:dat:n1.n2:ter:akc:npraep
  493 +488 ppron3:sg:dat:n1.n2:ter:nakc:npraep
  494 +489 ppron3:sg:dat:n1.n2:ter:_:praep
  495 +490 ppron3:sg:gen.acc:m1.m2.m3:ter:nakc:praep
  496 +491 ppron3:sg:gen:f:ter:_:npraep
  497 +492 ppron3:sg:gen:f:ter:_:praep
  498 +493 ppron3:sg:gen:m1.m2.m3:ter:akc:npraep
  499 +494 ppron3:sg:gen:m1.m2.m3:ter:akc:praep
  500 +495 ppron3:sg:gen:m1.m2.m3:ter:nakc:npraep
  501 +496 ppron3:sg:gen:m1.m2.m3:ter:nakc:praep
  502 +497 ppron3:sg:gen:n1.n2:ter:akc:npraep
  503 +498 ppron3:sg:gen:n1.n2:ter:nakc:npraep
  504 +499 ppron3:sg:gen:n1.n2:ter:_:praep
  505 +500 ppron3:sg:inst:f:ter:_:praep
  506 +501 ppron3:sg:inst:m1.m2.m3:ter:_:_
  507 +502 ppron3:sg:inst:n1.n2:ter:_:_
  508 +503 ppron3:sg:loc:f:ter:_:_
  509 +504 ppron3:sg:loc:m1.m2.m3:ter:_:_
  510 +505 ppron3:sg:loc:n1.n2:ter:_:_
  511 +506 ppron3:sg:nom:f:ter:_:_
  512 +507 ppron3:sg:nom:m1.m2.m3:ter:_:_
  513 +508 ppron3:sg:nom:n1.n2:ter:_:_
  514 +509 praet:pl:m1.p1:imperf
  515 +510 praet:pl:m1.p1:imperf.perf
  516 +511 praet:pl:m1.p1:perf
  517 +512 praet:pl:m1.p1:pri:imperf
  518 +513 praet:pl:m1.p1:pri:imperf.perf
  519 +514 praet:pl:m1.p1:pri:perf
  520 +515 praet:pl:m1.p1:sec:imperf
  521 +516 praet:pl:m1.p1:sec:imperf.perf
  522 +517 praet:pl:m1.p1:sec:perf
  523 +518 praet:pl:m1.p1:ter:imperf
  524 +519 praet:pl:m1.p1:ter:imperf.perf
  525 +520 praet:pl:m1.p1:ter:perf
  526 +521 praet:pl:m2.m3.f.n1.n2.p2.p3:imperf
  527 +522 praet:pl:m2.m3.f.n1.n2.p2.p3:imperf.perf
  528 +523 praet:pl:m2.m3.f.n1.n2.p2.p3:perf
  529 +524 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf
  530 +525 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf.perf
  531 +526 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:perf
  532 +527 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
  533 +528 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf.perf
  534 +529 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:perf
  535 +530 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
  536 +531 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf.perf
  537 +532 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:perf
  538 +533 praet:sg:f:imperf
  539 +534 praet:sg:f:imperf.perf
  540 +535 praet:sg:f:perf
  541 +536 praet:sg:f:pri:imperf
  542 +537 praet:sg:f:pri:imperf.perf
  543 +538 praet:sg:f:pri:perf
  544 +539 praet:sg:f:sec:imperf
  545 +540 praet:sg:f:sec:imperf.perf
  546 +541 praet:sg:f:sec:perf
  547 +542 praet:sg:f:ter:imperf
  548 +543 praet:sg:f:ter:imperf.perf
  549 +544 praet:sg:f:ter:perf
  550 +545 praet:sg:m1.m2.m3:imperf
  551 +546 praet:sg:m1.m2.m3:imperf:agl
  552 +547 praet:sg:m1.m2.m3:imperf:nagl
  553 +548 praet:sg:m1.m2.m3:imperf.perf
  554 +549 praet:sg:m1.m2.m3:perf
  555 +550 praet:sg:m1.m2.m3:perf:agl
  556 +551 praet:sg:m1.m2.m3:perf:nagl
  557 +552 praet:sg:m1.m2.m3:pri:imperf
  558 +553 praet:sg:m1.m2.m3:pri:imperf.perf
  559 +554 praet:sg:m1.m2.m3:pri:perf
  560 +555 praet:sg:m1.m2.m3:sec:imperf
  561 +556 praet:sg:m1.m2.m3:sec:imperf.perf
  562 +557 praet:sg:m1.m2.m3:sec:perf
  563 +558 praet:sg:m1.m2.m3:ter:imperf
  564 +559 praet:sg:m1.m2.m3:ter:imperf.perf
  565 +560 praet:sg:m1.m2.m3:ter:perf
  566 +561 praet:sg:n1.n2:imperf
  567 +562 praet:sg:n1.n2:imperf.perf
  568 +563 praet:sg:n1.n2:perf
  569 +564 praet:sg:n1.n2:pri:imperf
  570 +565 praet:sg:n1.n2:pri:imperf.perf
  571 +566 praet:sg:n1.n2:pri:perf
  572 +567 praet:sg:n1.n2:sec:imperf
  573 +568 praet:sg:n1.n2:sec:imperf.perf
  574 +569 praet:sg:n1.n2:sec:perf
  575 +570 praet:sg:n1.n2:ter:imperf
  576 +571 praet:sg:n1.n2:ter:imperf.perf
  577 +572 praet:sg:n1.n2:ter:perf
  578 +573 pred
  579 +574 prefa
  580 +575 prefppas
  581 +576 prefs
  582 +577 prefv
  583 +578 prep:acc
  584 +579 prep:acc:nwok
  585 +580 prep:acc:wok
  586 +581 prep:dat
  587 +582 prep:gen
  588 +583 prep:gen:nwok
  589 +584 prep:gen:wok
  590 +585 prep:inst
  591 +586 prep:inst:nwok
  592 +587 prep:inst:wok
  593 +588 prep:loc
  594 +589 prep:loc:nwok
  595 +590 prep:loc:wok
  596 +591 prep:nom
  597 +592 qub
  598 +593 romandig
  599 +594 siebie:acc
  600 +595 siebie:dat
  601 +596 siebie:gen
  602 +597 siebie:inst
  603 +598 siebie:loc
  604 +599 substa
  605 +600 subst:pl:acc:f
  606 +601 subst:pl:acc:m1
  607 +602 subst:pl:acc:m2
  608 +603 subst:pl:acc:m3
  609 +604 subst:pl:acc:n1
  610 +605 subst:pl:acc:n2
  611 +606 subst:pl:acc:p1
  612 +607 subst:pl:acc:p2
  613 +608 subst:pl:acc:p3
  614 +609 subst:pl:dat:f
  615 +610 subst:pl:dat:m1
  616 +611 subst:pl:dat:m2
  617 +612 subst:pl:dat:m3
  618 +613 subst:pl:dat:n1
  619 +614 subst:pl:dat:n2
  620 +615 subst:pl:dat:p1
  621 +616 subst:pl:dat:p2
  622 +617 subst:pl:dat:p3
  623 +618 subst:pl:gen:f
  624 +619 subst:pl:gen:m1
  625 +620 subst:pl:gen:m2
  626 +621 subst:pl:gen:m3
  627 +622 subst:pl:gen:n1
  628 +623 subst:pl:gen:n2
  629 +624 subst:pl:gen:p1
  630 +625 subst:pl:gen:p2
  631 +626 subst:pl:gen:p3
  632 +627 subst:pl:inst:f
  633 +628 subst:pl:inst:m1
  634 +629 subst:pl:inst:m2
  635 +630 subst:pl:inst:m3
  636 +631 subst:pl:inst:n1
  637 +632 subst:pl:inst:n2
  638 +633 subst:pl:inst:p1
  639 +634 subst:pl:inst:p2
  640 +635 subst:pl:inst:p3
  641 +636 subst:pl:loc:f
  642 +637 subst:pl:loc:m1
  643 +638 subst:pl:loc:m2
  644 +639 subst:pl:loc:m3
  645 +640 subst:pl:loc:n1
  646 +641 subst:pl:loc:n2
  647 +642 subst:pl:loc:p1
  648 +643 subst:pl:loc:p2
  649 +644 subst:pl:loc:p3
  650 +645 subst:pl:nom:f
  651 +646 subst:pl:nom:m1
  652 +647 subst:pl:nom:m2
  653 +648 subst:pl:nom:m3
  654 +649 subst:pl:nom:n1
  655 +650 subst:pl:nom:n2
  656 +651 subst:pl:nom:p1
  657 +652 subst:pl:nom:p2
  658 +653 subst:pl:nom:p3
  659 +654 subst:pl:voc:f
  660 +655 subst:pl:voc:m1
  661 +656 subst:pl:voc:m2
  662 +657 subst:pl:voc:m3
  663 +658 subst:pl:voc:n1
  664 +659 subst:pl:voc:n2
  665 +660 subst:pl:voc:p1
  666 +661 subst:pl:voc:p2
  667 +662 subst:pl:voc:p3
  668 +663 subst:sg:acc:f
  669 +664 subst:sg:acc:m1
  670 +665 subst:sg:acc:m2
  671 +666 subst:sg:acc:m3
  672 +667 subst:sg:acc:n1
  673 +668 subst:sg:acc:n2
  674 +669 subst:sg:dat:f
  675 +670 subst:sg:dat:m1
  676 +671 subst:sg:dat:m2
  677 +672 subst:sg:dat:m3
  678 +673 subst:sg:dat:n1
  679 +674 subst:sg:dat:n2
  680 +675 subst:sg:gen:f
  681 +676 subst:sg:gen:m1
  682 +677 subst:sg:gen:m2
  683 +678 subst:sg:gen:m3
  684 +679 subst:sg:gen:n1
  685 +680 subst:sg:gen:n2
  686 +681 subst:sg:inst:f
  687 +682 subst:sg:inst:m1
  688 +683 subst:sg:inst:m2
  689 +684 subst:sg:inst:m3
  690 +685 subst:sg:inst:n1
  691 +686 subst:sg:inst:n2
  692 +687 subst:sg:loc:f
  693 +688 subst:sg:loc:m1
  694 +689 subst:sg:loc:m2
  695 +690 subst:sg:loc:m3
  696 +691 subst:sg:loc:n1
  697 +692 subst:sg:loc:n2
  698 +693 subst:sg:nom:f
  699 +694 subst:sg:nom:m1
  700 +695 subst:sg:nom:m2
  701 +696 subst:sg:nom:m3
  702 +697 subst:sg:nom:n1
  703 +698 subst:sg:nom:n2
  704 +699 subst:sg:voc:f
  705 +700 subst:sg:voc:m1
  706 +701 subst:sg:voc:m2
  707 +702 subst:sg:voc:m3
  708 +703 subst:sg:voc:n1
  709 +704 subst:sg:voc:n2
  710 +705 winien:pl:m1.p1:imperf
  711 +706 winien:pl:m1.p1:pri:imperf
  712 +707 winien:pl:m1.p1:sec:imperf
  713 +708 winien:pl:m1.p1:ter:imperf
  714 +709 winien:pl:m2.m3.f.n1.n2.p2.p3:imperf
  715 +710 winien:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
  716 +711 winien:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
  717 +712 winien:sg:f:imperf
  718 +713 winien:sg:f:pri:imperf
  719 +714 winien:sg:f:sec:imperf
  720 +715 winien:sg:f:ter:imperf
  721 +716 winien:sg:m1.m2.m3:imperf
  722 +717 winien:sg:m1.m2.m3:pri:imperf
  723 +718 winien:sg:m1.m2.m3:sec:imperf
  724 +719 winien:sg:m1.m2.m3:ter:imperf
  725 +720 winien:sg:n1.n2:imperf
  726 +721 winien:sg:n1.n2:pri:imperf
  727 +722 winien:sg:n1.n2:sec:imperf
  728 +723 winien:sg:n1.n2:ter:imperf
tests/generator/test_digits/ARGS 0 → 100644
  1 +--aggl permissive
tests/generator/test_digits/dictionary.tab 0 → 100644
  1 +0 0 dig
  2 +1 1 dig
  3 +2 2 dig
  4 +3 3 dig
  5 +4 4 dig
  6 +5 5 dig
  7 +6 6 dig
  8 +7 7 dig
  9 +8 8 dig
  10 +9 9 dig
tests/generator/test_digits/input.txt 0 → 100644
  1 +1
  2 +12
  3 +123
  4 +1234
  5 +012341
  6 +1234seasdfa
  7 +sdfa123
tests/generator/test_digits/output.txt 0 → 100644
  1 +[1,1,dig,_,_]
  2 +[12,12,dig,_,_]
  3 +[123,123,dig,_,_]
  4 +[1234,1234,dig,_,_]
  5 +[012341,012341,dig,_,_]
  6 +[1234seasdfa,1234seasdfa,ign,_,_]
  7 +[sdfa123,sdfa123,ign,_,_]
  8 +
tests/generator/test_digits/segmentation.dat 0 → 100644
  1 +[options]
  2 +aggl=strict permissive isolated
  3 +praet=split composite
  4 +
  5 +[combinations]
  6 +#define wsz_interp (interp|kropka|przecinek|dywiz)*
  7 +
  8 +#define moze_interp(segmenty) wsz_interp segmenty wsz_interp
  9 +
  10 +# Segmenty występujące samodzielnie:
  11 +#
  12 +# domyślny typ segmentu samodzielnego:
  13 +moze_interp(samodz)
  14 +
  15 +# Pojedyncze znaki interpunkcyjne
  16 +moze_interp(interp|kropka|przecinek|dywiz)
  17 +
  18 +# Liczba zapisana jako ciąg cyfr:
  19 +moze_interp( dig>* dig )
  20 +
  21 +[segment types]
  22 +interp
  23 +kropka
  24 +przecinek
  25 +dywiz
  26 +dig
  27 +samodz
  28 +
  29 +[lexemes]
  30 +kropka .:interp
  31 +przecinek ,:interp
  32 +dywiz -:interp
  33 +
  34 +[tags]
  35 +dig dig
  36 +interp interp
  37 +samodz %
  38 +
  39 +[separator chars]
  40 +# ,
  41 +44
  42 +
  43 +# .
  44 +46
  45 +
  46 +# ;
  47 +59
tests/generator/test_digits/tagset.dat 0 → 100644
  1 +#!MORFEUSZ-TAGSET 0.1
  2 +
  3 +[TAGS]
  4 +
  5 +0 ign
  6 +1 sp
  7 +2 adja
  8 +3 adjc
  9 +4 adjp
  10 +5 adj:pl:acc:m1.p1:com
  11 +6 adj:pl:acc:m1.p1:pos
  12 +7 adj:pl:acc:m1.p1:sup
  13 +8 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:com
  14 +9 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:pos
  15 +10 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:sup
  16 +11 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  17 +12 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  18 +13 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  19 +14 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  20 +15 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  21 +16 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  22 +17 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  23 +18 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  24 +19 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  25 +20 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  26 +21 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  27 +22 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  28 +23 adj:pl:nom:m1.p1:pos
  29 +24 adj:pl:nom:m2.m3.f.n1.n2.p2.p3:pos
  30 +25 adj:pl:nom.voc:m1.p1:com
  31 +26 adj:pl:nom.voc:m1.p1:pos
  32 +27 adj:pl:nom.voc:m1.p1:sup
  33 +28 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:com
  34 +29 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:pos
  35 +30 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:sup
  36 +31 adj:sg:acc:f:com
  37 +32 adj:sg:acc:f:pos
  38 +33 adj:sg:acc:f:sup
  39 +34 adj:sg:acc:m1.m2:com
  40 +35 adj:sg:acc:m1.m2:pos
  41 +36 adj:sg:acc:m1.m2:sup
  42 +37 adj:sg:acc:m3:com
  43 +38 adj:sg:acc:m3:pos
  44 +39 adj:sg:acc:m3:sup
  45 +40 adj:sg:acc:n1.n2:com
  46 +41 adj:sg:acc:n1.n2:pos
  47 +42 adj:sg:acc:n1.n2:sup
  48 +43 adj:sg:dat:f:com
  49 +44 adj:sg:dat:f:pos
  50 +45 adj:sg:dat:f:sup
  51 +46 adj:sg:dat:m1.m2.m3.n1.n2:com
  52 +47 adj:sg:dat:m1.m2.m3.n1.n2:pos
  53 +48 adj:sg:dat:m1.m2.m3.n1.n2:sup
  54 +49 adj:sg:gen:f:com
  55 +50 adj:sg:gen:f:pos
  56 +51 adj:sg:gen:f:sup
  57 +52 adj:sg:gen:m1.m2.m3.n1.n2:com
  58 +53 adj:sg:gen:m1.m2.m3.n1.n2:pos
  59 +54 adj:sg:gen:m1.m2.m3.n1.n2:sup
  60 +55 adj:sg:inst:f:com
  61 +56 adj:sg:inst:f:pos
  62 +57 adj:sg:inst:f:sup
  63 +58 adj:sg:inst:m1.m2.m3.n1.n2:com
  64 +59 adj:sg:inst:m1.m2.m3.n1.n2:pos
  65 +60 adj:sg:inst:m1.m2.m3.n1.n2:sup
  66 +61 adj:sg:loc:f:com
  67 +62 adj:sg:loc:f:pos
  68 +63 adj:sg:loc:f:sup
  69 +64 adj:sg:loc:m1.m2.m3.n1.n2:com
  70 +65 adj:sg:loc:m1.m2.m3.n1.n2:pos
  71 +66 adj:sg:loc:m1.m2.m3.n1.n2:sup
  72 +67 adj:sg:nom:f:pos
  73 +68 adj:sg:nom:m1.m2.m3:pos
  74 +69 adj:sg:nom:n1.n2:pos
  75 +70 adj:sg:nom.voc:f:com
  76 +71 adj:sg:nom.voc:f:pos
  77 +72 adj:sg:nom.voc:f:sup
  78 +73 adj:sg:nom.voc:m1.m2.m3:com
  79 +74 adj:sg:nom.voc:m1.m2.m3:pos
  80 +75 adj:sg:nom.voc:m1.m2.m3:sup
  81 +76 adj:sg:nom.voc:n1.n2:com
  82 +77 adj:sg:nom.voc:n1.n2:pos
  83 +78 adj:sg:nom.voc:n1.n2:sup
  84 +79 adv
  85 +80 adv:com
  86 +81 adv:pos
  87 +82 adv:sup
  88 +83 aglt:pl:pri:imperf:nwok
  89 +84 aglt:pl:pri:imperf:wok
  90 +85 aglt:pl:sec:imperf:nwok
  91 +86 aglt:pl:sec:imperf:wok
  92 +87 aglt:sg:pri:imperf:nwok
  93 +88 aglt:sg:pri:imperf:wok
  94 +89 aglt:sg:sec:imperf:nwok
  95 +90 aglt:sg:sec:imperf:wok
  96 +91 bedzie:pl:pri:imperf
  97 +92 bedzie:pl:sec:imperf
  98 +93 bedzie:pl:ter:imperf
  99 +94 bedzie:sg:pri:imperf
  100 +95 bedzie:sg:sec:imperf
  101 +96 bedzie:sg:ter:imperf
  102 +97 brev:pun
  103 +98 burk
  104 +99 comp
  105 +100 cond:pl:m1.p1:pri:imperf
  106 +101 cond:pl:m1.p1:pri:imperf.perf
  107 +102 cond:pl:m1.p1:pri:perf
  108 +103 cond:pl:m1.p1:sec:imperf
  109 +104 cond:pl:m1.p1:sec:imperf.perf
  110 +105 cond:pl:m1.p1:sec:perf
  111 +106 cond:pl:m1.p1:ter:imperf
  112 +107 cond:pl:m1.p1:ter:imperf.perf
  113 +108 cond:pl:m1.p1:ter:perf
  114 +109 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf
  115 +110 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf.perf
  116 +111 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:perf
  117 +112 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
  118 +113 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf.perf
  119 +114 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:perf
  120 +115 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
  121 +116 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf.perf
  122 +117 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:perf
  123 +118 cond:sg:f:pri:imperf
  124 +119 cond:sg:f:pri:imperf.perf
  125 +120 cond:sg:f:pri:perf
  126 +121 cond:sg:f:sec:imperf
  127 +122 cond:sg:f:sec:imperf.perf
  128 +123 cond:sg:f:sec:perf
  129 +124 cond:sg:f:ter:imperf
  130 +125 cond:sg:f:ter:imperf.perf
  131 +126 cond:sg:f:ter:perf
  132 +127 cond:sg:m1.m2.m3:pri:imperf
  133 +128 cond:sg:m1.m2.m3:pri:imperf.perf
  134 +129 cond:sg:m1.m2.m3:pri:perf
  135 +130 cond:sg:m1.m2.m3:sec:imperf
  136 +131 cond:sg:m1.m2.m3:sec:imperf.perf
  137 +132 cond:sg:m1.m2.m3:sec:perf
  138 +133 cond:sg:m1.m2.m3:ter:imperf
  139 +134 cond:sg:m1.m2.m3:ter:imperf.perf
  140 +135 cond:sg:m1.m2.m3:ter:perf
  141 +136 cond:sg:n1.n2:imperf
  142 +137 cond:sg:n1.n2:imperf.perf
  143 +138 cond:sg:n1.n2:perf
  144 +139 cond:sg:n1.n2:pri:imperf
  145 +140 cond:sg:n1.n2:pri:imperf.perf
  146 +141 cond:sg:n1.n2:pri:perf
  147 +142 cond:sg:n1.n2:sec:imperf
  148 +143 cond:sg:n1.n2:sec:imperf.perf
  149 +144 cond:sg:n1.n2:sec:perf
  150 +145 cond:sg:n1.n2:ter:imperf
  151 +146 cond:sg:n1.n2:ter:imperf.perf
  152 +147 cond:sg:n1.n2:ter:perf
  153 +148 conj
  154 +149 depr:pl:nom:m2
  155 +150 depr:pl:voc:m2
  156 +151 dig
  157 +152 emoticon
  158 +153 fin:pl:pri:imperf
  159 +154 fin:pl:pri:imperf.perf
  160 +155 fin:pl:pri:perf
  161 +156 fin:pl:sec:imperf
  162 +157 fin:pl:sec:imperf.perf
  163 +158 fin:pl:sec:perf
  164 +159 fin:pl:ter:imperf
  165 +160 fin:pl:ter:imperf.perf
  166 +161 fin:pl:ter:perf
  167 +162 fin:sg:pri:imperf
  168 +163 fin:sg:pri:imperf.perf
  169 +164 fin:sg:pri:perf
  170 +165 fin:sg:sec:imperf
  171 +166 fin:sg:sec:imperf.perf
  172 +167 fin:sg:sec:perf
  173 +168 fin:sg:ter:imperf
  174 +169 fin:sg:ter:imperf.perf
  175 +170 fin:sg:ter:perf
  176 +171 ger:pl:dat.loc:n2:imperf:aff
  177 +172 ger:pl:dat.loc:n2:imperf:neg
  178 +173 ger:pl:dat.loc:n2:imperf.perf:aff
  179 +174 ger:pl:dat.loc:n2:imperf.perf:neg
  180 +175 ger:pl:dat.loc:n2:perf:aff
  181 +176 ger:pl:dat.loc:n2:perf:neg
  182 +177 ger:pl:gen:n2:imperf:aff
  183 +178 ger:pl:gen:n2:imperf:neg
  184 +179 ger:pl:gen:n2:imperf.perf:aff
  185 +180 ger:pl:gen:n2:imperf.perf:neg
  186 +181 ger:pl:gen:n2:perf:aff
  187 +182 ger:pl:gen:n2:perf:neg
  188 +183 ger:pl:inst:n2:imperf:aff
  189 +184 ger:pl:inst:n2:imperf:neg
  190 +185 ger:pl:inst:n2:imperf.perf:aff
  191 +186 ger:pl:inst:n2:imperf.perf:neg
  192 +187 ger:pl:inst:n2:perf:aff
  193 +188 ger:pl:inst:n2:perf:neg
  194 +189 ger:pl:nom.acc:n2:imperf:aff
  195 +190 ger:pl:nom.acc:n2:imperf:neg
  196 +191 ger:pl:nom.acc:n2:imperf.perf:aff
  197 +192 ger:pl:nom.acc:n2:imperf.perf:neg
  198 +193 ger:pl:nom.acc:n2:perf:aff
  199 +194 ger:pl:nom.acc:n2:perf:neg
  200 +195 ger:sg:dat.loc:n2:imperf:aff
  201 +196 ger:sg:dat.loc:n2:imperf:neg
  202 +197 ger:sg:dat.loc:n2:imperf.perf:aff
  203 +198 ger:sg:dat.loc:n2:imperf.perf:neg
  204 +199 ger:sg:dat.loc:n2:perf:aff
  205 +200 ger:sg:dat.loc:n2:perf:neg
  206 +201 ger:sg:gen:n2:imperf:aff
  207 +202 ger:sg:gen:n2:imperf:neg
  208 +203 ger:sg:gen:n2:imperf.perf:aff
  209 +204 ger:sg:gen:n2:imperf.perf:neg
  210 +205 ger:sg:gen:n2:perf:aff
  211 +206 ger:sg:gen:n2:perf:neg
  212 +207 ger:sg:inst:n2:imperf:aff
  213 +208 ger:sg:inst:n2:imperf:neg
  214 +209 ger:sg:inst:n2:imperf.perf:aff
  215 +210 ger:sg:inst:n2:imperf.perf:neg
  216 +211 ger:sg:inst:n2:perf:aff
  217 +212 ger:sg:inst:n2:perf:neg
  218 +213 ger:sg:nom.acc:n2:imperf:aff
  219 +214 ger:sg:nom.acc:n2:imperf:neg
  220 +215 ger:sg:nom.acc:n2:imperf.perf:aff
  221 +216 ger:sg:nom.acc:n2:imperf.perf:neg
  222 +217 ger:sg:nom.acc:n2:perf:aff
  223 +218 ger:sg:nom.acc:n2:perf:neg
  224 +219 imps:imperf
  225 +220 imps:imperf.perf
  226 +221 imps:perf
  227 +222 impt:pl:pri:imperf
  228 +223 impt:pl:pri:imperf.perf
  229 +224 impt:pl:pri:perf
  230 +225 impt:pl:sec:imperf
  231 +226 impt:pl:sec:imperf.perf
  232 +227 impt:pl:sec:perf
  233 +228 impt:sg:sec:imperf
  234 +229 impt:sg:sec:imperf.perf
  235 +230 impt:sg:sec:perf
  236 +231 inf:imperf
  237 +232 inf:imperf.perf
  238 +233 inf:perf
  239 +234 interj
  240 +235 interp
  241 +236 naj
  242 +237 nie
  243 +238 num:comp
  244 +239 num:pl:acc:m1:rec
  245 +240 num:pl:dat.loc:n1.p1.p2:congr.rec
  246 +241 num:pl:dat:m1.m2.m3.n2.f:congr
  247 +242 num:pl:gen.dat.inst.loc:m1.m2.m3.f.n1.n2.p1.p2:congr
  248 +243 num:pl:gen.dat.inst.loc:m1.m2.m3.f.n2:congr
  249 +244 num:pl:gen.dat.loc:m1.m2.m3.n2.f:congr
  250 +245 num:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2:congr
  251 +246 num:pl:gen.loc:m1.m2.m3.n2.f:congr
  252 +247 num:pl:gen:n1.p1.p2:rec
  253 +248 num:pl:inst:f:congr
  254 +249 num:pl:inst:m1.m2.m3.f.n1.n2.p1.p2:congr
  255 +250 num:pl:inst:m1.m2.m3.f.n2:congr
  256 +251 num:pl:inst:m1.m2.m3.n2:congr
  257 +252 num:pl:inst:m1.m2.m3.n2.f:congr
  258 +253 num:pl:inst:n1.p1.p2:rec
  259 +254 num:pl:nom.acc:m1.m2.m3.f.n1.n2.p1.p2:rec
  260 +255 num:pl:nom.acc.voc:f:congr
  261 +256 num:pl:nom.acc.voc:m1:rec
  262 +257 num:pl:nom.acc.voc:m2.m3.f.n1.n2.p1.p2:rec
  263 +258 num:pl:nom.acc.voc:m2.m3.f.n2:rec
  264 +259 num:pl:nom.acc.voc:m2.m3.n2:congr
  265 +260 num:pl:nom.acc.voc:m2.m3.n2.f:congr
  266 +261 num:pl:nom.acc.voc:n1.p1.p2:rec
  267 +262 num:pl:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.f.n1.n2.p1.p2:rec
  268 +263 num:pl:nom.voc:m1:congr
  269 +264 num:pl:nom.voc:m1:rec
  270 +265 num:sg:nom.gen.dat.inst.acc.loc.voc:f:rec
  271 +266 num:sg:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.n1.n2:rec
  272 +267 pact:pl:acc:m1.p1:imperf:aff
  273 +268 pact:pl:acc:m1.p1:imperf:neg
  274 +269 pact:pl:acc:m1.p1:imperf.perf:aff
  275 +270 pact:pl:acc:m1.p1:imperf.perf:neg
  276 +271 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  277 +272 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  278 +273 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  279 +274 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  280 +275 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  281 +276 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  282 +277 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  283 +278 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  284 +279 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  285 +280 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  286 +281 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  287 +282 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  288 +283 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:aff
  289 +284 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:neg
  290 +285 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:aff
  291 +286 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:neg
  292 +287 pact:pl:nom.voc:m1.p1:imperf:aff
  293 +288 pact:pl:nom.voc:m1.p1:imperf:neg
  294 +289 pact:pl:nom.voc:m1.p1:imperf.perf:aff
  295 +290 pact:pl:nom.voc:m1.p1:imperf.perf:neg
  296 +291 pact:sg:acc.inst:f:imperf:aff
  297 +292 pact:sg:acc.inst:f:imperf:neg
  298 +293 pact:sg:acc.inst:f:imperf.perf:aff
  299 +294 pact:sg:acc.inst:f:imperf.perf:neg
  300 +295 pact:sg:acc:m1.m2:imperf:aff
  301 +296 pact:sg:acc:m1.m2:imperf:neg
  302 +297 pact:sg:acc:m1.m2:imperf.perf:aff
  303 +298 pact:sg:acc:m1.m2:imperf.perf:neg
  304 +299 pact:sg:acc:m3:imperf:aff
  305 +300 pact:sg:acc:m3:imperf:neg
  306 +301 pact:sg:acc:m3:imperf.perf:aff
  307 +302 pact:sg:acc:m3:imperf.perf:neg
  308 +303 pact:sg:dat:m1.m2.m3.n1.n2:imperf:aff
  309 +304 pact:sg:dat:m1.m2.m3.n1.n2:imperf:neg
  310 +305 pact:sg:dat:m1.m2.m3.n1.n2:imperf.perf:aff
  311 +306 pact:sg:dat:m1.m2.m3.n1.n2:imperf.perf:neg
  312 +307 pact:sg:gen.dat.loc:f:imperf:aff
  313 +308 pact:sg:gen.dat.loc:f:imperf:neg
  314 +309 pact:sg:gen.dat.loc:f:imperf.perf:aff
  315 +310 pact:sg:gen.dat.loc:f:imperf.perf:neg
  316 +311 pact:sg:gen:m1.m2.m3.n1.n2:imperf:aff
  317 +312 pact:sg:gen:m1.m2.m3.n1.n2:imperf:neg
  318 +313 pact:sg:gen:m1.m2.m3.n1.n2:imperf.perf:aff
  319 +314 pact:sg:gen:m1.m2.m3.n1.n2:imperf.perf:neg
  320 +315 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf:aff
  321 +316 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf:neg
  322 +317 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:aff
  323 +318 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:neg
  324 +319 pact:sg:nom.acc.voc:n1.n2:imperf:aff
  325 +320 pact:sg:nom.acc.voc:n1.n2:imperf:neg
  326 +321 pact:sg:nom.acc.voc:n1.n2:imperf.perf:aff
  327 +322 pact:sg:nom.acc.voc:n1.n2:imperf.perf:neg
  328 +323 pact:sg:nom.voc:f:imperf:aff
  329 +324 pact:sg:nom.voc:f:imperf:neg
  330 +325 pact:sg:nom.voc:f:imperf.perf:aff
  331 +326 pact:sg:nom.voc:f:imperf.perf:neg
  332 +327 pact:sg:nom.voc:m1.m2.m3:imperf:aff
  333 +328 pact:sg:nom.voc:m1.m2.m3:imperf:neg
  334 +329 pact:sg:nom.voc:m1.m2.m3:imperf.perf:aff
  335 +330 pact:sg:nom.voc:m1.m2.m3:imperf.perf:neg
  336 +331 pant:perf
  337 +332 pcon:imperf
  338 +333 ppas:pl:acc:m1.p1:imperf:aff
  339 +334 ppas:pl:acc:m1.p1:imperf:neg
  340 +335 ppas:pl:acc:m1.p1:imperf.perf:aff
  341 +336 ppas:pl:acc:m1.p1:imperf.perf:neg
  342 +337 ppas:pl:acc:m1.p1:perf:aff
  343 +338 ppas:pl:acc:m1.p1:perf:neg
  344 +339 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  345 +340 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  346 +341 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  347 +342 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  348 +343 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
  349 +344 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
  350 +345 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  351 +346 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  352 +347 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  353 +348 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  354 +349 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
  355 +350 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
  356 +351 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  357 +352 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  358 +353 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  359 +354 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  360 +355 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
  361 +356 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
  362 +357 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:aff
  363 +358 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:neg
  364 +359 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:aff
  365 +360 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:neg
  366 +361 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:perf:aff
  367 +362 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:perf:neg
  368 +363 ppas:pl:nom.voc:m1.p1:imperf:aff
  369 +364 ppas:pl:nom.voc:m1.p1:imperf:neg
  370 +365 ppas:pl:nom.voc:m1.p1:imperf.perf:aff
  371 +366 ppas:pl:nom.voc:m1.p1:imperf.perf:neg
  372 +367 ppas:pl:nom.voc:m1.p1:perf:aff
  373 +368 ppas:pl:nom.voc:m1.p1:perf:neg
  374 +369 ppas:sg:acc.inst:f:imperf:aff
  375 +370 ppas:sg:acc.inst:f:imperf:neg
  376 +371 ppas:sg:acc.inst:f:imperf.perf:aff
  377 +372 ppas:sg:acc.inst:f:imperf.perf:neg
  378 +373 ppas:sg:acc.inst:f:perf:aff
  379 +374 ppas:sg:acc.inst:f:perf:neg
  380 +375 ppas:sg:acc:m1.m2:imperf:aff
  381 +376 ppas:sg:acc:m1.m2:imperf:neg
  382 +377 ppas:sg:acc:m1.m2:imperf.perf:aff
  383 +378 ppas:sg:acc:m1.m2:imperf.perf:neg
  384 +379 ppas:sg:acc:m1.m2:perf:aff
  385 +380 ppas:sg:acc:m1.m2:perf:neg
  386 +381 ppas:sg:acc:m3:imperf:aff
  387 +382 ppas:sg:acc:m3:imperf:neg
  388 +383 ppas:sg:acc:m3:imperf.perf:aff
  389 +384 ppas:sg:acc:m3:imperf.perf:neg
  390 +385 ppas:sg:acc:m3:perf:aff
  391 +386 ppas:sg:acc:m3:perf:neg
  392 +387 ppas:sg:dat:m1.m2.m3.n1.n2:imperf:aff
  393 +388 ppas:sg:dat:m1.m2.m3.n1.n2:imperf:neg
  394 +389 ppas:sg:dat:m1.m2.m3.n1.n2:imperf.perf:aff
  395 +390 ppas:sg:dat:m1.m2.m3.n1.n2:imperf.perf:neg
  396 +391 ppas:sg:dat:m1.m2.m3.n1.n2:perf:aff
  397 +392 ppas:sg:dat:m1.m2.m3.n1.n2:perf:neg
  398 +393 ppas:sg:gen.dat.loc:f:imperf:aff
  399 +394 ppas:sg:gen.dat.loc:f:imperf:neg
  400 +395 ppas:sg:gen.dat.loc:f:imperf.perf:aff
  401 +396 ppas:sg:gen.dat.loc:f:imperf.perf:neg
  402 +397 ppas:sg:gen.dat.loc:f:perf:aff
  403 +398 ppas:sg:gen.dat.loc:f:perf:neg
  404 +399 ppas:sg:gen:m1.m2.m3.n1.n2:imperf:aff
  405 +400 ppas:sg:gen:m1.m2.m3.n1.n2:imperf:neg
  406 +401 ppas:sg:gen:m1.m2.m3.n1.n2:imperf.perf:aff
  407 +402 ppas:sg:gen:m1.m2.m3.n1.n2:imperf.perf:neg
  408 +403 ppas:sg:gen:m1.m2.m3.n1.n2:perf:aff
  409 +404 ppas:sg:gen:m1.m2.m3.n1.n2:perf:neg
  410 +405 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf:aff
  411 +406 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf:neg
  412 +407 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:aff
  413 +408 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:neg
  414 +409 ppas:sg:inst.loc:m1.m2.m3.n1.n2:perf:aff
  415 +410 ppas:sg:inst.loc:m1.m2.m3.n1.n2:perf:neg
  416 +411 ppas:sg:nom.acc.voc:n1.n2:imperf:aff
  417 +412 ppas:sg:nom.acc.voc:n1.n2:imperf:neg
  418 +413 ppas:sg:nom.acc.voc:n1.n2:imperf.perf:aff
  419 +414 ppas:sg:nom.acc.voc:n1.n2:imperf.perf:neg
  420 +415 ppas:sg:nom.acc.voc:n1.n2:perf:aff
  421 +416 ppas:sg:nom.acc.voc:n1.n2:perf:neg
  422 +417 ppas:sg:nom.voc:f:imperf:aff
  423 +418 ppas:sg:nom.voc:f:imperf:neg
  424 +419 ppas:sg:nom.voc:f:imperf.perf:aff
  425 +420 ppas:sg:nom.voc:f:imperf.perf:neg
  426 +421 ppas:sg:nom.voc:f:perf:aff
  427 +422 ppas:sg:nom.voc:f:perf:neg
  428 +423 ppas:sg:nom.voc:m1.m2.m3:imperf:aff
  429 +424 ppas:sg:nom.voc:m1.m2.m3:imperf:neg
  430 +425 ppas:sg:nom.voc:m1.m2.m3:imperf.perf:aff
  431 +426 ppas:sg:nom.voc:m1.m2.m3:imperf.perf:neg
  432 +427 ppas:sg:nom.voc:m1.m2.m3:perf:aff
  433 +428 ppas:sg:nom.voc:m1.m2.m3:perf:neg
  434 +429 ppron12:pl:acc:_:pri
  435 +430 ppron12:pl:acc:_:sec
  436 +431 ppron12:pl:dat:_:pri
  437 +432 ppron12:pl:dat:_:sec
  438 +433 ppron12:pl:gen:_:pri
  439 +434 ppron12:pl:gen:_:sec
  440 +435 ppron12:pl:inst:_:pri
  441 +436 ppron12:pl:inst:_:sec
  442 +437 ppron12:pl:loc:_:pri
  443 +438 ppron12:pl:loc:_:sec
  444 +439 ppron12:pl:nom:_:pri
  445 +440 ppron12:pl:nom:_:sec
  446 +441 ppron12:pl:voc:_:pri
  447 +442 ppron12:pl:voc:_:sec
  448 +443 ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:akc
  449 +444 ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:nakc
  450 +445 ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:akc
  451 +446 ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:nakc
  452 +447 ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:akc
  453 +448 ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:nakc
  454 +449 ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:akc
  455 +450 ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:nakc
  456 +451 ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:akc
  457 +452 ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:nakc
  458 +453 ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:akc
  459 +454 ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:nakc
  460 +455 ppron12:sg:inst:m1.m2.m3.f.n1.n2:pri
  461 +456 ppron12:sg:inst:m1.m2.m3.f.n1.n2:sec
  462 +457 ppron12:sg:loc:m1.m2.m3.f.n1.n2:pri
  463 +458 ppron12:sg:loc:m1.m2.m3.f.n1.n2:sec
  464 +459 ppron12:sg:nom:m1.m2.m3.f.n1.n2:pri
  465 +460 ppron12:sg:nom:m1.m2.m3.f.n1.n2:sec
  466 +461 ppron12:sg:voc:m1.m2.m3.f.n1.n2:sec
  467 +462 ppron3:pl:acc:m1.p1:ter:_:npraep
  468 +463 ppron3:pl:acc:m1.p1:ter:_:praep
  469 +464 ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:npraep
  470 +465 ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:praep
  471 +466 ppron3:pl:dat:_:ter:_:npraep
  472 +467 ppron3:pl:dat:_:ter:_:praep
  473 +468 ppron3:pl:gen:_:ter:_:npraep
  474 +469 ppron3:pl:gen:_:ter:_:praep
  475 +470 ppron3:pl:inst:_:ter:_:_
  476 +471 ppron3:pl:loc:_:ter:_:_
  477 +472 ppron3:pl:nom:m1.p1:ter:_:_
  478 +473 ppron3:pl:nom:m2.m3.f.n1.n2.p2.p3:ter:_:_
  479 +474 ppron3:sg:acc:f:ter:_:npraep
  480 +475 ppron3:sg:acc:f:ter:_:praep
  481 +476 ppron3:sg:acc:m1.m2.m3:ter:akc:npraep
  482 +477 ppron3:sg:acc:m1.m2.m3:ter:akc:praep
  483 +478 ppron3:sg:acc:m1.m2.m3:ter:nakc:npraep
  484 +479 ppron3:sg:acc:m1.m2.m3:ter:nakc:praep
  485 +480 ppron3:sg:acc:n1.n2:ter:_:npraep
  486 +481 ppron3:sg:acc:n1.n2:ter:_:praep
  487 +482 ppron3:sg:dat:f:ter:_:npraep
  488 +483 ppron3:sg:dat:f:ter:_:praep
  489 +484 ppron3:sg:dat:m1.m2.m3:ter:akc:npraep
  490 +485 ppron3:sg:dat:m1.m2.m3:ter:nakc:npraep
  491 +486 ppron3:sg:dat:m1.m2.m3:ter:_:praep
  492 +487 ppron3:sg:dat:n1.n2:ter:akc:npraep
  493 +488 ppron3:sg:dat:n1.n2:ter:nakc:npraep
  494 +489 ppron3:sg:dat:n1.n2:ter:_:praep
  495 +490 ppron3:sg:gen.acc:m1.m2.m3:ter:nakc:praep
  496 +491 ppron3:sg:gen:f:ter:_:npraep
  497 +492 ppron3:sg:gen:f:ter:_:praep
  498 +493 ppron3:sg:gen:m1.m2.m3:ter:akc:npraep
  499 +494 ppron3:sg:gen:m1.m2.m3:ter:akc:praep
  500 +495 ppron3:sg:gen:m1.m2.m3:ter:nakc:npraep
  501 +496 ppron3:sg:gen:m1.m2.m3:ter:nakc:praep
  502 +497 ppron3:sg:gen:n1.n2:ter:akc:npraep
  503 +498 ppron3:sg:gen:n1.n2:ter:nakc:npraep
  504 +499 ppron3:sg:gen:n1.n2:ter:_:praep
  505 +500 ppron3:sg:inst:f:ter:_:praep
  506 +501 ppron3:sg:inst:m1.m2.m3:ter:_:_
  507 +502 ppron3:sg:inst:n1.n2:ter:_:_
  508 +503 ppron3:sg:loc:f:ter:_:_
  509 +504 ppron3:sg:loc:m1.m2.m3:ter:_:_
  510 +505 ppron3:sg:loc:n1.n2:ter:_:_
  511 +506 ppron3:sg:nom:f:ter:_:_
  512 +507 ppron3:sg:nom:m1.m2.m3:ter:_:_
  513 +508 ppron3:sg:nom:n1.n2:ter:_:_
  514 +509 praet:pl:m1.p1:imperf
  515 +510 praet:pl:m1.p1:imperf.perf
  516 +511 praet:pl:m1.p1:perf
  517 +512 praet:pl:m1.p1:pri:imperf
  518 +513 praet:pl:m1.p1:pri:imperf.perf
  519 +514 praet:pl:m1.p1:pri:perf
  520 +515 praet:pl:m1.p1:sec:imperf
  521 +516 praet:pl:m1.p1:sec:imperf.perf
  522 +517 praet:pl:m1.p1:sec:perf
  523 +518 praet:pl:m1.p1:ter:imperf
  524 +519 praet:pl:m1.p1:ter:imperf.perf
  525 +520 praet:pl:m1.p1:ter:perf
  526 +521 praet:pl:m2.m3.f.n1.n2.p2.p3:imperf
  527 +522 praet:pl:m2.m3.f.n1.n2.p2.p3:imperf.perf
  528 +523 praet:pl:m2.m3.f.n1.n2.p2.p3:perf
  529 +524 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf
  530 +525 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf.perf
  531 +526 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:perf
  532 +527 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
  533 +528 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf.perf
  534 +529 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:perf
  535 +530 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
  536 +531 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf.perf
  537 +532 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:perf
  538 +533 praet:sg:f:imperf
  539 +534 praet:sg:f:imperf.perf
  540 +535 praet:sg:f:perf
  541 +536 praet:sg:f:pri:imperf
  542 +537 praet:sg:f:pri:imperf.perf
  543 +538 praet:sg:f:pri:perf
  544 +539 praet:sg:f:sec:imperf
  545 +540 praet:sg:f:sec:imperf.perf
  546 +541 praet:sg:f:sec:perf
  547 +542 praet:sg:f:ter:imperf
  548 +543 praet:sg:f:ter:imperf.perf
  549 +544 praet:sg:f:ter:perf
  550 +545 praet:sg:m1.m2.m3:imperf
  551 +546 praet:sg:m1.m2.m3:imperf:agl
  552 +547 praet:sg:m1.m2.m3:imperf:nagl
  553 +548 praet:sg:m1.m2.m3:imperf.perf
  554 +549 praet:sg:m1.m2.m3:perf
  555 +550 praet:sg:m1.m2.m3:perf:agl
  556 +551 praet:sg:m1.m2.m3:perf:nagl
  557 +552 praet:sg:m1.m2.m3:pri:imperf
  558 +553 praet:sg:m1.m2.m3:pri:imperf.perf
  559 +554 praet:sg:m1.m2.m3:pri:perf
  560 +555 praet:sg:m1.m2.m3:sec:imperf
  561 +556 praet:sg:m1.m2.m3:sec:imperf.perf
  562 +557 praet:sg:m1.m2.m3:sec:perf
  563 +558 praet:sg:m1.m2.m3:ter:imperf
  564 +559 praet:sg:m1.m2.m3:ter:imperf.perf
  565 +560 praet:sg:m1.m2.m3:ter:perf
  566 +561 praet:sg:n1.n2:imperf
  567 +562 praet:sg:n1.n2:imperf.perf
  568 +563 praet:sg:n1.n2:perf
  569 +564 praet:sg:n1.n2:pri:imperf
  570 +565 praet:sg:n1.n2:pri:imperf.perf
  571 +566 praet:sg:n1.n2:pri:perf
  572 +567 praet:sg:n1.n2:sec:imperf
  573 +568 praet:sg:n1.n2:sec:imperf.perf
  574 +569 praet:sg:n1.n2:sec:perf
  575 +570 praet:sg:n1.n2:ter:imperf
  576 +571 praet:sg:n1.n2:ter:imperf.perf
  577 +572 praet:sg:n1.n2:ter:perf
  578 +573 pred
  579 +574 prefa
  580 +575 prefppas
  581 +576 prefs
  582 +577 prefv
  583 +578 prep:acc
  584 +579 prep:acc:nwok
  585 +580 prep:acc:wok
  586 +581 prep:dat
  587 +582 prep:gen
  588 +583 prep:gen:nwok
  589 +584 prep:gen:wok
  590 +585 prep:inst
  591 +586 prep:inst:nwok
  592 +587 prep:inst:wok
  593 +588 prep:loc
  594 +589 prep:loc:nwok
  595 +590 prep:loc:wok
  596 +591 prep:nom
  597 +592 qub
  598 +593 romandig
  599 +594 siebie:acc
  600 +595 siebie:dat
  601 +596 siebie:gen
  602 +597 siebie:inst
  603 +598 siebie:loc
  604 +599 substa
  605 +600 subst:pl:acc:f
  606 +601 subst:pl:acc:m1
  607 +602 subst:pl:acc:m2
  608 +603 subst:pl:acc:m3
  609 +604 subst:pl:acc:n1
  610 +605 subst:pl:acc:n2
  611 +606 subst:pl:acc:p1
  612 +607 subst:pl:acc:p2
  613 +608 subst:pl:acc:p3
  614 +609 subst:pl:dat:f
  615 +610 subst:pl:dat:m1
  616 +611 subst:pl:dat:m2
  617 +612 subst:pl:dat:m3
  618 +613 subst:pl:dat:n1
  619 +614 subst:pl:dat:n2
  620 +615 subst:pl:dat:p1
  621 +616 subst:pl:dat:p2
  622 +617 subst:pl:dat:p3
  623 +618 subst:pl:gen:f
  624 +619 subst:pl:gen:m1
  625 +620 subst:pl:gen:m2
  626 +621 subst:pl:gen:m3
  627 +622 subst:pl:gen:n1
  628 +623 subst:pl:gen:n2
  629 +624 subst:pl:gen:p1
  630 +625 subst:pl:gen:p2
  631 +626 subst:pl:gen:p3
  632 +627 subst:pl:inst:f
  633 +628 subst:pl:inst:m1
  634 +629 subst:pl:inst:m2
  635 +630 subst:pl:inst:m3
  636 +631 subst:pl:inst:n1
  637 +632 subst:pl:inst:n2
  638 +633 subst:pl:inst:p1
  639 +634 subst:pl:inst:p2
  640 +635 subst:pl:inst:p3
  641 +636 subst:pl:loc:f
  642 +637 subst:pl:loc:m1
  643 +638 subst:pl:loc:m2
  644 +639 subst:pl:loc:m3
  645 +640 subst:pl:loc:n1
  646 +641 subst:pl:loc:n2
  647 +642 subst:pl:loc:p1
  648 +643 subst:pl:loc:p2
  649 +644 subst:pl:loc:p3
  650 +645 subst:pl:nom:f
  651 +646 subst:pl:nom:m1
  652 +647 subst:pl:nom:m2
  653 +648 subst:pl:nom:m3
  654 +649 subst:pl:nom:n1
  655 +650 subst:pl:nom:n2
  656 +651 subst:pl:nom:p1
  657 +652 subst:pl:nom:p2
  658 +653 subst:pl:nom:p3
  659 +654 subst:pl:voc:f
  660 +655 subst:pl:voc:m1
  661 +656 subst:pl:voc:m2
  662 +657 subst:pl:voc:m3
  663 +658 subst:pl:voc:n1
  664 +659 subst:pl:voc:n2
  665 +660 subst:pl:voc:p1
  666 +661 subst:pl:voc:p2
  667 +662 subst:pl:voc:p3
  668 +663 subst:sg:acc:f
  669 +664 subst:sg:acc:m1
  670 +665 subst:sg:acc:m2
  671 +666 subst:sg:acc:m3
  672 +667 subst:sg:acc:n1
  673 +668 subst:sg:acc:n2
  674 +669 subst:sg:dat:f
  675 +670 subst:sg:dat:m1
  676 +671 subst:sg:dat:m2
  677 +672 subst:sg:dat:m3
  678 +673 subst:sg:dat:n1
  679 +674 subst:sg:dat:n2
  680 +675 subst:sg:gen:f
  681 +676 subst:sg:gen:m1
  682 +677 subst:sg:gen:m2
  683 +678 subst:sg:gen:m3
  684 +679 subst:sg:gen:n1
  685 +680 subst:sg:gen:n2
  686 +681 subst:sg:inst:f
  687 +682 subst:sg:inst:m1
  688 +683 subst:sg:inst:m2
  689 +684 subst:sg:inst:m3
  690 +685 subst:sg:inst:n1
  691 +686 subst:sg:inst:n2
  692 +687 subst:sg:loc:f
  693 +688 subst:sg:loc:m1
  694 +689 subst:sg:loc:m2
  695 +690 subst:sg:loc:m3
  696 +691 subst:sg:loc:n1
  697 +692 subst:sg:loc:n2
  698 +693 subst:sg:nom:f
  699 +694 subst:sg:nom:m1
  700 +695 subst:sg:nom:m2
  701 +696 subst:sg:nom:m3
  702 +697 subst:sg:nom:n1
  703 +698 subst:sg:nom:n2
  704 +699 subst:sg:voc:f
  705 +700 subst:sg:voc:m1
  706 +701 subst:sg:voc:m2
  707 +702 subst:sg:voc:m3
  708 +703 subst:sg:voc:n1
  709 +704 subst:sg:voc:n2
  710 +705 winien:pl:m1.p1:imperf
  711 +706 winien:pl:m1.p1:pri:imperf
  712 +707 winien:pl:m1.p1:sec:imperf
  713 +708 winien:pl:m1.p1:ter:imperf
  714 +709 winien:pl:m2.m3.f.n1.n2.p2.p3:imperf
  715 +710 winien:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
  716 +711 winien:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
  717 +712 winien:sg:f:imperf
  718 +713 winien:sg:f:pri:imperf
  719 +714 winien:sg:f:sec:imperf
  720 +715 winien:sg:f:ter:imperf
  721 +716 winien:sg:m1.m2.m3:imperf
  722 +717 winien:sg:m1.m2.m3:pri:imperf
  723 +718 winien:sg:m1.m2.m3:sec:imperf
  724 +719 winien:sg:m1.m2.m3:ter:imperf
  725 +720 winien:sg:n1.n2:imperf
  726 +721 winien:sg:n1.n2:pri:imperf
  727 +722 winien:sg:n1.n2:sec:imperf
  728 +723 winien:sg:n1.n2:ter:imperf
tests/generator/test_names/ARGS 0 → 100644
  1 +--aggl permissive
tests/generator/test_names/dictionary.tab 0 → 100644
  1 +czerwony czerwony:a1 adj:sg:acc:m3:pos pospolita
  2 +czerwony czerwony:a2 adj:sg:acc:m3:pos niepospolita
  3 +czerwony czerwony:a3 adj:sg:acc:m3:pos zażółć gęślą jaźń
tests/generator/test_names/input.txt 0 → 100644
  1 +czerwony
tests/generator/test_names/output.txt 0 → 100644
  1 +[czerwony,czerwony:a1,adj:sg:acc:m3:pos,pospolita,_
  2 + czerwony,czerwony:a2,adj:sg:acc:m3:pos,niepospolita,_
  3 + czerwony,czerwony:a3,adj:sg:acc:m3:pos,zażółć gęślą jaźń,_]
  4 +
tests/generator/test_names/segmentation.dat 0 → 100644
  1 +[options]
  2 +aggl=strict permissive isolated
  3 +praet=split composite
  4 +
  5 +[combinations]
  6 +#define wsz_interp (interp|kropka|przecinek|dywiz)*
  7 +
  8 +#define moze_interp(segmenty) wsz_interp segmenty wsz_interp
  9 +
  10 +# Segmenty występujące samodzielnie:
  11 +#
  12 +# domyślny typ segmentu samodzielnego:
  13 +moze_interp(samodz)
  14 +
  15 +# Pojedyncze znaki interpunkcyjne
  16 +moze_interp(interp|kropka|przecinek|dywiz)
  17 +
  18 +# Liczba zapisana jako ciąg cyfr:
  19 +moze_interp( dig>* dig )
  20 +
  21 +[segment types]
  22 +interp
  23 +kropka
  24 +przecinek
  25 +dywiz
  26 +dig
  27 +samodz
  28 +
  29 +[lexemes]
  30 +kropka .:interp
  31 +przecinek ,:interp
  32 +dywiz -:interp
  33 +
  34 +[tags]
  35 +dig dig
  36 +interp interp
  37 +samodz %
  38 +
  39 +[separator chars]
  40 +# ,
  41 +44
  42 +
  43 +# .
  44 +46
  45 +
  46 +# ;
  47 +59
tests/generator/test_names/tagset.dat 0 → 100644
  1 +#!MORFEUSZ-TAGSET 0.1
  2 +
  3 +[TAGS]
  4 +
  5 +0 ign
  6 +1 sp
  7 +2 adja
  8 +3 adjc
  9 +4 adjp
  10 +5 adj:pl:acc:m1.p1:com
  11 +6 adj:pl:acc:m1.p1:pos
  12 +7 adj:pl:acc:m1.p1:sup
  13 +8 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:com
  14 +9 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:pos
  15 +10 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:sup
  16 +11 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  17 +12 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  18 +13 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  19 +14 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  20 +15 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  21 +16 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  22 +17 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  23 +18 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  24 +19 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  25 +20 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:com
  26 +21 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
  27 +22 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
  28 +23 adj:pl:nom:m1.p1:pos
  29 +24 adj:pl:nom:m2.m3.f.n1.n2.p2.p3:pos
  30 +25 adj:pl:nom.voc:m1.p1:com
  31 +26 adj:pl:nom.voc:m1.p1:pos
  32 +27 adj:pl:nom.voc:m1.p1:sup
  33 +28 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:com
  34 +29 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:pos
  35 +30 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:sup
  36 +31 adj:sg:acc:f:com
  37 +32 adj:sg:acc:f:pos
  38 +33 adj:sg:acc:f:sup
  39 +34 adj:sg:acc:m1.m2:com
  40 +35 adj:sg:acc:m1.m2:pos
  41 +36 adj:sg:acc:m1.m2:sup
  42 +37 adj:sg:acc:m3:com
  43 +38 adj:sg:acc:m3:pos
  44 +39 adj:sg:acc:m3:sup
  45 +40 adj:sg:acc:n1.n2:com
  46 +41 adj:sg:acc:n1.n2:pos
  47 +42 adj:sg:acc:n1.n2:sup
  48 +43 adj:sg:dat:f:com
  49 +44 adj:sg:dat:f:pos
  50 +45 adj:sg:dat:f:sup
  51 +46 adj:sg:dat:m1.m2.m3.n1.n2:com
  52 +47 adj:sg:dat:m1.m2.m3.n1.n2:pos
  53 +48 adj:sg:dat:m1.m2.m3.n1.n2:sup
  54 +49 adj:sg:gen:f:com
  55 +50 adj:sg:gen:f:pos
  56 +51 adj:sg:gen:f:sup
  57 +52 adj:sg:gen:m1.m2.m3.n1.n2:com
  58 +53 adj:sg:gen:m1.m2.m3.n1.n2:pos
  59 +54 adj:sg:gen:m1.m2.m3.n1.n2:sup
  60 +55 adj:sg:inst:f:com
  61 +56 adj:sg:inst:f:pos
  62 +57 adj:sg:inst:f:sup
  63 +58 adj:sg:inst:m1.m2.m3.n1.n2:com
  64 +59 adj:sg:inst:m1.m2.m3.n1.n2:pos
  65 +60 adj:sg:inst:m1.m2.m3.n1.n2:sup
  66 +61 adj:sg:loc:f:com
  67 +62 adj:sg:loc:f:pos
  68 +63 adj:sg:loc:f:sup
  69 +64 adj:sg:loc:m1.m2.m3.n1.n2:com
  70 +65 adj:sg:loc:m1.m2.m3.n1.n2:pos
  71 +66 adj:sg:loc:m1.m2.m3.n1.n2:sup
  72 +67 adj:sg:nom:f:pos
  73 +68 adj:sg:nom:m1.m2.m3:pos
  74 +69 adj:sg:nom:n1.n2:pos
  75 +70 adj:sg:nom.voc:f:com
  76 +71 adj:sg:nom.voc:f:pos
  77 +72 adj:sg:nom.voc:f:sup
  78 +73 adj:sg:nom.voc:m1.m2.m3:com
  79 +74 adj:sg:nom.voc:m1.m2.m3:pos
  80 +75 adj:sg:nom.voc:m1.m2.m3:sup
  81 +76 adj:sg:nom.voc:n1.n2:com
  82 +77 adj:sg:nom.voc:n1.n2:pos
  83 +78 adj:sg:nom.voc:n1.n2:sup
  84 +79 adv
  85 +80 adv:com
  86 +81 adv:pos
  87 +82 adv:sup
  88 +83 aglt:pl:pri:imperf:nwok
  89 +84 aglt:pl:pri:imperf:wok
  90 +85 aglt:pl:sec:imperf:nwok
  91 +86 aglt:pl:sec:imperf:wok
  92 +87 aglt:sg:pri:imperf:nwok
  93 +88 aglt:sg:pri:imperf:wok
  94 +89 aglt:sg:sec:imperf:nwok
  95 +90 aglt:sg:sec:imperf:wok
  96 +91 bedzie:pl:pri:imperf
  97 +92 bedzie:pl:sec:imperf
  98 +93 bedzie:pl:ter:imperf
  99 +94 bedzie:sg:pri:imperf
  100 +95 bedzie:sg:sec:imperf
  101 +96 bedzie:sg:ter:imperf
  102 +97 brev:pun
  103 +98 burk
  104 +99 comp
  105 +100 cond:pl:m1.p1:pri:imperf
  106 +101 cond:pl:m1.p1:pri:imperf.perf
  107 +102 cond:pl:m1.p1:pri:perf
  108 +103 cond:pl:m1.p1:sec:imperf
  109 +104 cond:pl:m1.p1:sec:imperf.perf
  110 +105 cond:pl:m1.p1:sec:perf
  111 +106 cond:pl:m1.p1:ter:imperf
  112 +107 cond:pl:m1.p1:ter:imperf.perf
  113 +108 cond:pl:m1.p1:ter:perf
  114 +109 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf
  115 +110 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf.perf
  116 +111 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:perf
  117 +112 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
  118 +113 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf.perf
  119 +114 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:perf
  120 +115 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
  121 +116 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf.perf
  122 +117 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:perf
  123 +118 cond:sg:f:pri:imperf
  124 +119 cond:sg:f:pri:imperf.perf
  125 +120 cond:sg:f:pri:perf
  126 +121 cond:sg:f:sec:imperf
  127 +122 cond:sg:f:sec:imperf.perf
  128 +123 cond:sg:f:sec:perf
  129 +124 cond:sg:f:ter:imperf
  130 +125 cond:sg:f:ter:imperf.perf
  131 +126 cond:sg:f:ter:perf
  132 +127 cond:sg:m1.m2.m3:pri:imperf
  133 +128 cond:sg:m1.m2.m3:pri:imperf.perf
  134 +129 cond:sg:m1.m2.m3:pri:perf
  135 +130 cond:sg:m1.m2.m3:sec:imperf
  136 +131 cond:sg:m1.m2.m3:sec:imperf.perf
  137 +132 cond:sg:m1.m2.m3:sec:perf
  138 +133 cond:sg:m1.m2.m3:ter:imperf
  139 +134 cond:sg:m1.m2.m3:ter:imperf.perf
  140 +135 cond:sg:m1.m2.m3:ter:perf
  141 +136 cond:sg:n1.n2:imperf
  142 +137 cond:sg:n1.n2:imperf.perf
  143 +138 cond:sg:n1.n2:perf
  144 +139 cond:sg:n1.n2:pri:imperf
  145 +140 cond:sg:n1.n2:pri:imperf.perf
  146 +141 cond:sg:n1.n2:pri:perf
  147 +142 cond:sg:n1.n2:sec:imperf
  148 +143 cond:sg:n1.n2:sec:imperf.perf
  149 +144 cond:sg:n1.n2:sec:perf
  150 +145 cond:sg:n1.n2:ter:imperf
  151 +146 cond:sg:n1.n2:ter:imperf.perf
  152 +147 cond:sg:n1.n2:ter:perf
  153 +148 conj
  154 +149 depr:pl:nom:m2
  155 +150 depr:pl:voc:m2
  156 +151 dig
  157 +152 emoticon
  158 +153 fin:pl:pri:imperf
  159 +154 fin:pl:pri:imperf.perf
  160 +155 fin:pl:pri:perf
  161 +156 fin:pl:sec:imperf
  162 +157 fin:pl:sec:imperf.perf
  163 +158 fin:pl:sec:perf
  164 +159 fin:pl:ter:imperf
  165 +160 fin:pl:ter:imperf.perf
  166 +161 fin:pl:ter:perf
  167 +162 fin:sg:pri:imperf
  168 +163 fin:sg:pri:imperf.perf
  169 +164 fin:sg:pri:perf
  170 +165 fin:sg:sec:imperf
  171 +166 fin:sg:sec:imperf.perf
  172 +167 fin:sg:sec:perf
  173 +168 fin:sg:ter:imperf
  174 +169 fin:sg:ter:imperf.perf
  175 +170 fin:sg:ter:perf
  176 +171 ger:pl:dat.loc:n2:imperf:aff
  177 +172 ger:pl:dat.loc:n2:imperf:neg
  178 +173 ger:pl:dat.loc:n2:imperf.perf:aff
  179 +174 ger:pl:dat.loc:n2:imperf.perf:neg
  180 +175 ger:pl:dat.loc:n2:perf:aff
  181 +176 ger:pl:dat.loc:n2:perf:neg
  182 +177 ger:pl:gen:n2:imperf:aff
  183 +178 ger:pl:gen:n2:imperf:neg
  184 +179 ger:pl:gen:n2:imperf.perf:aff
  185 +180 ger:pl:gen:n2:imperf.perf:neg
  186 +181 ger:pl:gen:n2:perf:aff
  187 +182 ger:pl:gen:n2:perf:neg
  188 +183 ger:pl:inst:n2:imperf:aff
  189 +184 ger:pl:inst:n2:imperf:neg
  190 +185 ger:pl:inst:n2:imperf.perf:aff
  191 +186 ger:pl:inst:n2:imperf.perf:neg
  192 +187 ger:pl:inst:n2:perf:aff
  193 +188 ger:pl:inst:n2:perf:neg
  194 +189 ger:pl:nom.acc:n2:imperf:aff
  195 +190 ger:pl:nom.acc:n2:imperf:neg
  196 +191 ger:pl:nom.acc:n2:imperf.perf:aff
  197 +192 ger:pl:nom.acc:n2:imperf.perf:neg
  198 +193 ger:pl:nom.acc:n2:perf:aff
  199 +194 ger:pl:nom.acc:n2:perf:neg
  200 +195 ger:sg:dat.loc:n2:imperf:aff
  201 +196 ger:sg:dat.loc:n2:imperf:neg
  202 +197 ger:sg:dat.loc:n2:imperf.perf:aff
  203 +198 ger:sg:dat.loc:n2:imperf.perf:neg
  204 +199 ger:sg:dat.loc:n2:perf:aff
  205 +200 ger:sg:dat.loc:n2:perf:neg
  206 +201 ger:sg:gen:n2:imperf:aff
  207 +202 ger:sg:gen:n2:imperf:neg
  208 +203 ger:sg:gen:n2:imperf.perf:aff
  209 +204 ger:sg:gen:n2:imperf.perf:neg
  210 +205 ger:sg:gen:n2:perf:aff
  211 +206 ger:sg:gen:n2:perf:neg
  212 +207 ger:sg:inst:n2:imperf:aff
  213 +208 ger:sg:inst:n2:imperf:neg
  214 +209 ger:sg:inst:n2:imperf.perf:aff
  215 +210 ger:sg:inst:n2:imperf.perf:neg
  216 +211 ger:sg:inst:n2:perf:aff
  217 +212 ger:sg:inst:n2:perf:neg
  218 +213 ger:sg:nom.acc:n2:imperf:aff
  219 +214 ger:sg:nom.acc:n2:imperf:neg
  220 +215 ger:sg:nom.acc:n2:imperf.perf:aff
  221 +216 ger:sg:nom.acc:n2:imperf.perf:neg
  222 +217 ger:sg:nom.acc:n2:perf:aff
  223 +218 ger:sg:nom.acc:n2:perf:neg
  224 +219 imps:imperf
  225 +220 imps:imperf.perf
  226 +221 imps:perf
  227 +222 impt:pl:pri:imperf
  228 +223 impt:pl:pri:imperf.perf
  229 +224 impt:pl:pri:perf
  230 +225 impt:pl:sec:imperf
  231 +226 impt:pl:sec:imperf.perf
  232 +227 impt:pl:sec:perf
  233 +228 impt:sg:sec:imperf
  234 +229 impt:sg:sec:imperf.perf
  235 +230 impt:sg:sec:perf
  236 +231 inf:imperf
  237 +232 inf:imperf.perf
  238 +233 inf:perf
  239 +234 interj
  240 +235 interp
  241 +236 naj
  242 +237 nie
  243 +238 num:comp
  244 +239 num:pl:acc:m1:rec
  245 +240 num:pl:dat.loc:n1.p1.p2:congr.rec
  246 +241 num:pl:dat:m1.m2.m3.n2.f:congr
  247 +242 num:pl:gen.dat.inst.loc:m1.m2.m3.f.n1.n2.p1.p2:congr
  248 +243 num:pl:gen.dat.inst.loc:m1.m2.m3.f.n2:congr
  249 +244 num:pl:gen.dat.loc:m1.m2.m3.n2.f:congr
  250 +245 num:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2:congr
  251 +246 num:pl:gen.loc:m1.m2.m3.n2.f:congr
  252 +247 num:pl:gen:n1.p1.p2:rec
  253 +248 num:pl:inst:f:congr
  254 +249 num:pl:inst:m1.m2.m3.f.n1.n2.p1.p2:congr
  255 +250 num:pl:inst:m1.m2.m3.f.n2:congr
  256 +251 num:pl:inst:m1.m2.m3.n2:congr
  257 +252 num:pl:inst:m1.m2.m3.n2.f:congr
  258 +253 num:pl:inst:n1.p1.p2:rec
  259 +254 num:pl:nom.acc:m1.m2.m3.f.n1.n2.p1.p2:rec
  260 +255 num:pl:nom.acc.voc:f:congr
  261 +256 num:pl:nom.acc.voc:m1:rec
  262 +257 num:pl:nom.acc.voc:m2.m3.f.n1.n2.p1.p2:rec
  263 +258 num:pl:nom.acc.voc:m2.m3.f.n2:rec
  264 +259 num:pl:nom.acc.voc:m2.m3.n2:congr
  265 +260 num:pl:nom.acc.voc:m2.m3.n2.f:congr
  266 +261 num:pl:nom.acc.voc:n1.p1.p2:rec
  267 +262 num:pl:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.f.n1.n2.p1.p2:rec
  268 +263 num:pl:nom.voc:m1:congr
  269 +264 num:pl:nom.voc:m1:rec
  270 +265 num:sg:nom.gen.dat.inst.acc.loc.voc:f:rec
  271 +266 num:sg:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.n1.n2:rec
  272 +267 pact:pl:acc:m1.p1:imperf:aff
  273 +268 pact:pl:acc:m1.p1:imperf:neg
  274 +269 pact:pl:acc:m1.p1:imperf.perf:aff
  275 +270 pact:pl:acc:m1.p1:imperf.perf:neg
  276 +271 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  277 +272 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  278 +273 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  279 +274 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  280 +275 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  281 +276 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  282 +277 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  283 +278 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  284 +279 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  285 +280 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  286 +281 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  287 +282 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  288 +283 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:aff
  289 +284 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:neg
  290 +285 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:aff
  291 +286 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:neg
  292 +287 pact:pl:nom.voc:m1.p1:imperf:aff
  293 +288 pact:pl:nom.voc:m1.p1:imperf:neg
  294 +289 pact:pl:nom.voc:m1.p1:imperf.perf:aff
  295 +290 pact:pl:nom.voc:m1.p1:imperf.perf:neg
  296 +291 pact:sg:acc.inst:f:imperf:aff
  297 +292 pact:sg:acc.inst:f:imperf:neg
  298 +293 pact:sg:acc.inst:f:imperf.perf:aff
  299 +294 pact:sg:acc.inst:f:imperf.perf:neg
  300 +295 pact:sg:acc:m1.m2:imperf:aff
  301 +296 pact:sg:acc:m1.m2:imperf:neg
  302 +297 pact:sg:acc:m1.m2:imperf.perf:aff
  303 +298 pact:sg:acc:m1.m2:imperf.perf:neg
  304 +299 pact:sg:acc:m3:imperf:aff
  305 +300 pact:sg:acc:m3:imperf:neg
  306 +301 pact:sg:acc:m3:imperf.perf:aff
  307 +302 pact:sg:acc:m3:imperf.perf:neg
  308 +303 pact:sg:dat:m1.m2.m3.n1.n2:imperf:aff
  309 +304 pact:sg:dat:m1.m2.m3.n1.n2:imperf:neg
  310 +305 pact:sg:dat:m1.m2.m3.n1.n2:imperf.perf:aff
  311 +306 pact:sg:dat:m1.m2.m3.n1.n2:imperf.perf:neg
  312 +307 pact:sg:gen.dat.loc:f:imperf:aff
  313 +308 pact:sg:gen.dat.loc:f:imperf:neg
  314 +309 pact:sg:gen.dat.loc:f:imperf.perf:aff
  315 +310 pact:sg:gen.dat.loc:f:imperf.perf:neg
  316 +311 pact:sg:gen:m1.m2.m3.n1.n2:imperf:aff
  317 +312 pact:sg:gen:m1.m2.m3.n1.n2:imperf:neg
  318 +313 pact:sg:gen:m1.m2.m3.n1.n2:imperf.perf:aff
  319 +314 pact:sg:gen:m1.m2.m3.n1.n2:imperf.perf:neg
  320 +315 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf:aff
  321 +316 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf:neg
  322 +317 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:aff
  323 +318 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:neg
  324 +319 pact:sg:nom.acc.voc:n1.n2:imperf:aff
  325 +320 pact:sg:nom.acc.voc:n1.n2:imperf:neg
  326 +321 pact:sg:nom.acc.voc:n1.n2:imperf.perf:aff
  327 +322 pact:sg:nom.acc.voc:n1.n2:imperf.perf:neg
  328 +323 pact:sg:nom.voc:f:imperf:aff
  329 +324 pact:sg:nom.voc:f:imperf:neg
  330 +325 pact:sg:nom.voc:f:imperf.perf:aff
  331 +326 pact:sg:nom.voc:f:imperf.perf:neg
  332 +327 pact:sg:nom.voc:m1.m2.m3:imperf:aff
  333 +328 pact:sg:nom.voc:m1.m2.m3:imperf:neg
  334 +329 pact:sg:nom.voc:m1.m2.m3:imperf.perf:aff
  335 +330 pact:sg:nom.voc:m1.m2.m3:imperf.perf:neg
  336 +331 pant:perf
  337 +332 pcon:imperf
  338 +333 ppas:pl:acc:m1.p1:imperf:aff
  339 +334 ppas:pl:acc:m1.p1:imperf:neg
  340 +335 ppas:pl:acc:m1.p1:imperf.perf:aff
  341 +336 ppas:pl:acc:m1.p1:imperf.perf:neg
  342 +337 ppas:pl:acc:m1.p1:perf:aff
  343 +338 ppas:pl:acc:m1.p1:perf:neg
  344 +339 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  345 +340 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  346 +341 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  347 +342 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  348 +343 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
  349 +344 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
  350 +345 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  351 +346 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  352 +347 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  353 +348 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  354 +349 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
  355 +350 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
  356 +351 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
  357 +352 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
  358 +353 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
  359 +354 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
  360 +355 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
  361 +356 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
  362 +357 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:aff
  363 +358 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:neg
  364 +359 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:aff
  365 +360 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:neg
  366 +361 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:perf:aff
  367 +362 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:perf:neg
  368 +363 ppas:pl:nom.voc:m1.p1:imperf:aff
  369 +364 ppas:pl:nom.voc:m1.p1:imperf:neg
  370 +365 ppas:pl:nom.voc:m1.p1:imperf.perf:aff
  371 +366 ppas:pl:nom.voc:m1.p1:imperf.perf:neg
  372 +367 ppas:pl:nom.voc:m1.p1:perf:aff
  373 +368 ppas:pl:nom.voc:m1.p1:perf:neg
  374 +369 ppas:sg:acc.inst:f:imperf:aff
  375 +370 ppas:sg:acc.inst:f:imperf:neg
  376 +371 ppas:sg:acc.inst:f:imperf.perf:aff
  377 +372 ppas:sg:acc.inst:f:imperf.perf:neg
  378 +373 ppas:sg:acc.inst:f:perf:aff
  379 +374 ppas:sg:acc.inst:f:perf:neg
  380 +375 ppas:sg:acc:m1.m2:imperf:aff
  381 +376 ppas:sg:acc:m1.m2:imperf:neg
  382 +377 ppas:sg:acc:m1.m2:imperf.perf:aff
  383 +378 ppas:sg:acc:m1.m2:imperf.perf:neg
  384 +379 ppas:sg:acc:m1.m2:perf:aff
  385 +380 ppas:sg:acc:m1.m2:perf:neg
  386 +381 ppas:sg:acc:m3:imperf:aff
  387 +382 ppas:sg:acc:m3:imperf:neg
  388 +383 ppas:sg:acc:m3:imperf.perf:aff
  389 +384 ppas:sg:acc:m3:imperf.perf:neg
  390 +385 ppas:sg:acc:m3:perf:aff
  391 +386 ppas:sg:acc:m3:perf:neg
  392 +387 ppas:sg:dat:m1.m2.m3.n1.n2:imperf:aff
  393 +388 ppas:sg:dat:m1.m2.m3.n1.n2:imperf:neg
  394 +389 ppas:sg:dat:m1.m2.m3.n1.n2:imperf.perf:aff
  395 +390 ppas:sg:dat:m1.m2.m3.n1.n2:imperf.perf:neg
  396 +391 ppas:sg:dat:m1.m2.m3.n1.n2:perf:aff
  397 +392 ppas:sg:dat:m1.m2.m3.n1.n2:perf:neg
  398 +393 ppas:sg:gen.dat.loc:f:imperf:aff
  399 +394 ppas:sg:gen.dat.loc:f:imperf:neg
  400 +395 ppas:sg:gen.dat.loc:f:imperf.perf:aff
  401 +396 ppas:sg:gen.dat.loc:f:imperf.perf:neg
  402 +397 ppas:sg:gen.dat.loc:f:perf:aff
  403 +398 ppas:sg:gen.dat.loc:f:perf:neg
  404 +399 ppas:sg:gen:m1.m2.m3.n1.n2:imperf:aff
  405 +400 ppas:sg:gen:m1.m2.m3.n1.n2:imperf:neg
  406 +401 ppas:sg:gen:m1.m2.m3.n1.n2:imperf.perf:aff
  407 +402 ppas:sg:gen:m1.m2.m3.n1.n2:imperf.perf:neg
  408 +403 ppas:sg:gen:m1.m2.m3.n1.n2:perf:aff
  409 +404 ppas:sg:gen:m1.m2.m3.n1.n2:perf:neg
  410 +405 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf:aff
  411 +406 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf:neg
  412 +407 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:aff
  413 +408 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:neg
  414 +409 ppas:sg:inst.loc:m1.m2.m3.n1.n2:perf:aff
  415 +410 ppas:sg:inst.loc:m1.m2.m3.n1.n2:perf:neg
  416 +411 ppas:sg:nom.acc.voc:n1.n2:imperf:aff
  417 +412 ppas:sg:nom.acc.voc:n1.n2:imperf:neg
  418 +413 ppas:sg:nom.acc.voc:n1.n2:imperf.perf:aff
  419 +414 ppas:sg:nom.acc.voc:n1.n2:imperf.perf:neg
  420 +415 ppas:sg:nom.acc.voc:n1.n2:perf:aff
  421 +416 ppas:sg:nom.acc.voc:n1.n2:perf:neg
  422 +417 ppas:sg:nom.voc:f:imperf:aff
  423 +418 ppas:sg:nom.voc:f:imperf:neg
  424 +419 ppas:sg:nom.voc:f:imperf.perf:aff
  425 +420 ppas:sg:nom.voc:f:imperf.perf:neg
  426 +421 ppas:sg:nom.voc:f:perf:aff
  427 +422 ppas:sg:nom.voc:f:perf:neg
  428 +423 ppas:sg:nom.voc:m1.m2.m3:imperf:aff
  429 +424 ppas:sg:nom.voc:m1.m2.m3:imperf:neg
  430 +425 ppas:sg:nom.voc:m1.m2.m3:imperf.perf:aff
  431 +426 ppas:sg:nom.voc:m1.m2.m3:imperf.perf:neg
  432 +427 ppas:sg:nom.voc:m1.m2.m3:perf:aff
  433 +428 ppas:sg:nom.voc:m1.m2.m3:perf:neg
  434 +429 ppron12:pl:acc:_:pri
  435 +430 ppron12:pl:acc:_:sec
  436 +431 ppron12:pl:dat:_:pri
  437 +432 ppron12:pl:dat:_:sec
  438 +433 ppron12:pl:gen:_:pri
  439 +434 ppron12:pl:gen:_:sec
  440 +435 ppron12:pl:inst:_:pri
  441 +436 ppron12:pl:inst:_:sec
  442 +437 ppron12:pl:loc:_:pri
  443 +438 ppron12:pl:loc:_:sec
  444 +439 ppron12:pl:nom:_:pri
  445 +440 ppron12:pl:nom:_:sec
  446 +441 ppron12:pl:voc:_:pri
  447 +442 ppron12:pl:voc:_:sec
  448 +443 ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:akc
  449 +444 ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:nakc
  450 +445 ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:akc
  451 +446 ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:nakc
  452 +447 ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:akc
  453 +448 ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:nakc
  454 +449 ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:akc
  455 +450 ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:nakc
  456 +451 ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:akc
  457 +452 ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:nakc
  458 +453 ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:akc
  459 +454 ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:nakc
  460 +455 ppron12:sg:inst:m1.m2.m3.f.n1.n2:pri
  461 +456 ppron12:sg:inst:m1.m2.m3.f.n1.n2:sec
  462 +457 ppron12:sg:loc:m1.m2.m3.f.n1.n2:pri
  463 +458 ppron12:sg:loc:m1.m2.m3.f.n1.n2:sec
  464 +459 ppron12:sg:nom:m1.m2.m3.f.n1.n2:pri
  465 +460 ppron12:sg:nom:m1.m2.m3.f.n1.n2:sec
  466 +461 ppron12:sg:voc:m1.m2.m3.f.n1.n2:sec
  467 +462 ppron3:pl:acc:m1.p1:ter:_:npraep
  468 +463 ppron3:pl:acc:m1.p1:ter:_:praep
  469 +464 ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:npraep
  470 +465 ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:praep
  471 +466 ppron3:pl:dat:_:ter:_:npraep
  472 +467 ppron3:pl:dat:_:ter:_:praep
  473 +468 ppron3:pl:gen:_:ter:_:npraep
  474 +469 ppron3:pl:gen:_:ter:_:praep
  475 +470 ppron3:pl:inst:_:ter:_:_
  476 +471 ppron3:pl:loc:_:ter:_:_
  477 +472 ppron3:pl:nom:m1.p1:ter:_:_
  478 +473 ppron3:pl:nom:m2.m3.f.n1.n2.p2.p3:ter:_:_
  479 +474 ppron3:sg:acc:f:ter:_:npraep
  480 +475 ppron3:sg:acc:f:ter:_:praep
  481 +476 ppron3:sg:acc:m1.m2.m3:ter:akc:npraep
  482 +477 ppron3:sg:acc:m1.m2.m3:ter:akc:praep
  483 +478 ppron3:sg:acc:m1.m2.m3:ter:nakc:npraep
  484 +479 ppron3:sg:acc:m1.m2.m3:ter:nakc:praep
  485 +480 ppron3:sg:acc:n1.n2:ter:_:npraep
  486 +481 ppron3:sg:acc:n1.n2:ter:_:praep
  487 +482 ppron3:sg:dat:f:ter:_:npraep
  488 +483 ppron3:sg:dat:f:ter:_:praep
  489 +484 ppron3:sg:dat:m1.m2.m3:ter:akc:npraep
  490 +485 ppron3:sg:dat:m1.m2.m3:ter:nakc:npraep
  491 +486 ppron3:sg:dat:m1.m2.m3:ter:_:praep
  492 +487 ppron3:sg:dat:n1.n2:ter:akc:npraep
  493 +488 ppron3:sg:dat:n1.n2:ter:nakc:npraep
  494 +489 ppron3:sg:dat:n1.n2:ter:_:praep
  495 +490 ppron3:sg:gen.acc:m1.m2.m3:ter:nakc:praep
  496 +491 ppron3:sg:gen:f:ter:_:npraep
  497 +492 ppron3:sg:gen:f:ter:_:praep
  498 +493 ppron3:sg:gen:m1.m2.m3:ter:akc:npraep
  499 +494 ppron3:sg:gen:m1.m2.m3:ter:akc:praep
  500 +495 ppron3:sg:gen:m1.m2.m3:ter:nakc:npraep
  501 +496 ppron3:sg:gen:m1.m2.m3:ter:nakc:praep
  502 +497 ppron3:sg:gen:n1.n2:ter:akc:npraep
  503 +498 ppron3:sg:gen:n1.n2:ter:nakc:npraep
  504 +499 ppron3:sg:gen:n1.n2:ter:_:praep
  505 +500 ppron3:sg:inst:f:ter:_:praep
  506 +501 ppron3:sg:inst:m1.m2.m3:ter:_:_
  507 +502 ppron3:sg:inst:n1.n2:ter:_:_
  508 +503 ppron3:sg:loc:f:ter:_:_
  509 +504 ppron3:sg:loc:m1.m2.m3:ter:_:_
  510 +505 ppron3:sg:loc:n1.n2:ter:_:_
  511 +506 ppron3:sg:nom:f:ter:_:_
  512 +507 ppron3:sg:nom:m1.m2.m3:ter:_:_
  513 +508 ppron3:sg:nom:n1.n2:ter:_:_
  514 +509 praet:pl:m1.p1:imperf
  515 +510 praet:pl:m1.p1:imperf.perf
  516 +511 praet:pl:m1.p1:perf
  517 +512 praet:pl:m1.p1:pri:imperf
  518 +513 praet:pl:m1.p1:pri:imperf.perf
  519 +514 praet:pl:m1.p1:pri:perf
  520 +515 praet:pl:m1.p1:sec:imperf
  521 +516 praet:pl:m1.p1:sec:imperf.perf
  522 +517 praet:pl:m1.p1:sec:perf
  523 +518 praet:pl:m1.p1:ter:imperf
  524 +519 praet:pl:m1.p1:ter:imperf.perf
  525 +520 praet:pl:m1.p1:ter:perf
  526 +521 praet:pl:m2.m3.f.n1.n2.p2.p3:imperf
  527 +522 praet:pl:m2.m3.f.n1.n2.p2.p3:imperf.perf
  528 +523 praet:pl:m2.m3.f.n1.n2.p2.p3:perf
  529 +524 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf
  530 +525 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf.perf
  531 +526 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:perf
  532 +527 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
  533 +528 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf.perf
  534 +529 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:perf
  535 +530 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
  536 +531 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf.perf
  537 +532 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:perf
  538 +533 praet:sg:f:imperf
  539 +534 praet:sg:f:imperf.perf
  540 +535 praet:sg:f:perf
  541 +536 praet:sg:f:pri:imperf
  542 +537 praet:sg:f:pri:imperf.perf
  543 +538 praet:sg:f:pri:perf
  544 +539 praet:sg:f:sec:imperf
  545 +540 praet:sg:f:sec:imperf.perf
  546 +541 praet:sg:f:sec:perf
  547 +542 praet:sg:f:ter:imperf
  548 +543 praet:sg:f:ter:imperf.perf
  549 +544 praet:sg:f:ter:perf
  550 +545 praet:sg:m1.m2.m3:imperf
  551 +546 praet:sg:m1.m2.m3:imperf:agl
  552 +547 praet:sg:m1.m2.m3:imperf:nagl
  553 +548 praet:sg:m1.m2.m3:imperf.perf
  554 +549 praet:sg:m1.m2.m3:perf
  555 +550 praet:sg:m1.m2.m3:perf:agl
  556 +551 praet:sg:m1.m2.m3:perf:nagl
  557 +552 praet:sg:m1.m2.m3:pri:imperf
  558 +553 praet:sg:m1.m2.m3:pri:imperf.perf
  559 +554 praet:sg:m1.m2.m3:pri:perf
  560 +555 praet:sg:m1.m2.m3:sec:imperf
  561 +556 praet:sg:m1.m2.m3:sec:imperf.perf
  562 +557 praet:sg:m1.m2.m3:sec:perf
  563 +558 praet:sg:m1.m2.m3:ter:imperf
  564 +559 praet:sg:m1.m2.m3:ter:imperf.perf
  565 +560 praet:sg:m1.m2.m3:ter:perf
  566 +561 praet:sg:n1.n2:imperf
  567 +562 praet:sg:n1.n2:imperf.perf
  568 +563 praet:sg:n1.n2:perf
  569 +564 praet:sg:n1.n2:pri:imperf
  570 +565 praet:sg:n1.n2:pri:imperf.perf
  571 +566 praet:sg:n1.n2:pri:perf
  572 +567 praet:sg:n1.n2:sec:imperf
  573 +568 praet:sg:n1.n2:sec:imperf.perf
  574 +569 praet:sg:n1.n2:sec:perf
  575 +570 praet:sg:n1.n2:ter:imperf
  576 +571 praet:sg:n1.n2:ter:imperf.perf
  577 +572 praet:sg:n1.n2:ter:perf
  578 +573 pred
  579 +574 prefa
  580 +575 prefppas
  581 +576 prefs
  582 +577 prefv
  583 +578 prep:acc
  584 +579 prep:acc:nwok
  585 +580 prep:acc:wok
  586 +581 prep:dat
  587 +582 prep:gen
  588 +583 prep:gen:nwok
  589 +584 prep:gen:wok
  590 +585 prep:inst
  591 +586 prep:inst:nwok
  592 +587 prep:inst:wok
  593 +588 prep:loc
  594 +589 prep:loc:nwok
  595 +590 prep:loc:wok
  596 +591 prep:nom
  597 +592 qub
  598 +593 romandig
  599 +594 siebie:acc
  600 +595 siebie:dat
  601 +596 siebie:gen
  602 +597 siebie:inst
  603 +598 siebie:loc
  604 +599 substa
  605 +600 subst:pl:acc:f
  606 +601 subst:pl:acc:m1
  607 +602 subst:pl:acc:m2
  608 +603 subst:pl:acc:m3
  609 +604 subst:pl:acc:n1
  610 +605 subst:pl:acc:n2
  611 +606 subst:pl:acc:p1
  612 +607 subst:pl:acc:p2
  613 +608 subst:pl:acc:p3
  614 +609 subst:pl:dat:f
  615 +610 subst:pl:dat:m1
  616 +611 subst:pl:dat:m2
  617 +612 subst:pl:dat:m3
  618 +613 subst:pl:dat:n1
  619 +614 subst:pl:dat:n2
  620 +615 subst:pl:dat:p1
  621 +616 subst:pl:dat:p2
  622 +617 subst:pl:dat:p3
  623 +618 subst:pl:gen:f
  624 +619 subst:pl:gen:m1
  625 +620 subst:pl:gen:m2
  626 +621 subst:pl:gen:m3
  627 +622 subst:pl:gen:n1
  628 +623 subst:pl:gen:n2
  629 +624 subst:pl:gen:p1
  630 +625 subst:pl:gen:p2
  631 +626 subst:pl:gen:p3
  632 +627 subst:pl:inst:f
  633 +628 subst:pl:inst:m1
  634 +629 subst:pl:inst:m2
  635 +630 subst:pl:inst:m3
  636 +631 subst:pl:inst:n1
  637 +632 subst:pl:inst:n2
  638 +633 subst:pl:inst:p1
  639 +634 subst:pl:inst:p2
  640 +635 subst:pl:inst:p3
  641 +636 subst:pl:loc:f
  642 +637 subst:pl:loc:m1
  643 +638 subst:pl:loc:m2
  644 +639 subst:pl:loc:m3
  645 +640 subst:pl:loc:n1
  646 +641 subst:pl:loc:n2
  647 +642 subst:pl:loc:p1
  648 +643 subst:pl:loc:p2
  649 +644 subst:pl:loc:p3
  650 +645 subst:pl:nom:f
  651 +646 subst:pl:nom:m1
  652 +647 subst:pl:nom:m2
  653 +648 subst:pl:nom:m3
  654 +649 subst:pl:nom:n1
  655 +650 subst:pl:nom:n2
  656 +651 subst:pl:nom:p1
  657 +652 subst:pl:nom:p2
  658 +653 subst:pl:nom:p3
  659 +654 subst:pl:voc:f
  660 +655 subst:pl:voc:m1
  661 +656 subst:pl:voc:m2
  662 +657 subst:pl:voc:m3
  663 +658 subst:pl:voc:n1
  664 +659 subst:pl:voc:n2
  665 +660 subst:pl:voc:p1
  666 +661 subst:pl:voc:p2
  667 +662 subst:pl:voc:p3
  668 +663 subst:sg:acc:f
  669 +664 subst:sg:acc:m1
  670 +665 subst:sg:acc:m2
  671 +666 subst:sg:acc:m3
  672 +667 subst:sg:acc:n1
  673 +668 subst:sg:acc:n2
  674 +669 subst:sg:dat:f
  675 +670 subst:sg:dat:m1
  676 +671 subst:sg:dat:m2
  677 +672 subst:sg:dat:m3
  678 +673 subst:sg:dat:n1
  679 +674 subst:sg:dat:n2
  680 +675 subst:sg:gen:f
  681 +676 subst:sg:gen:m1
  682 +677 subst:sg:gen:m2
  683 +678 subst:sg:gen:m3
  684 +679 subst:sg:gen:n1
  685 +680 subst:sg:gen:n2
  686 +681 subst:sg:inst:f
  687 +682 subst:sg:inst:m1
  688 +683 subst:sg:inst:m2
  689 +684 subst:sg:inst:m3
  690 +685 subst:sg:inst:n1
  691 +686 subst:sg:inst:n2
  692 +687 subst:sg:loc:f
  693 +688 subst:sg:loc:m1
  694 +689 subst:sg:loc:m2
  695 +690 subst:sg:loc:m3
  696 +691 subst:sg:loc:n1
  697 +692 subst:sg:loc:n2
  698 +693 subst:sg:nom:f
  699 +694 subst:sg:nom:m1
  700 +695 subst:sg:nom:m2
  701 +696 subst:sg:nom:m3
  702 +697 subst:sg:nom:n1
  703 +698 subst:sg:nom:n2
  704 +699 subst:sg:voc:f
  705 +700 subst:sg:voc:m1
  706 +701 subst:sg:voc:m2
  707 +702 subst:sg:voc:m3
  708 +703 subst:sg:voc:n1
  709 +704 subst:sg:voc:n2
  710 +705 winien:pl:m1.p1:imperf
  711 +706 winien:pl:m1.p1:pri:imperf
  712 +707 winien:pl:m1.p1:sec:imperf
  713 +708 winien:pl:m1.p1:ter:imperf
  714 +709 winien:pl:m2.m3.f.n1.n2.p2.p3:imperf
  715 +710 winien:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
  716 +711 winien:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
  717 +712 winien:sg:f:imperf
  718 +713 winien:sg:f:pri:imperf
  719 +714 winien:sg:f:sec:imperf
  720 +715 winien:sg:f:ter:imperf
  721 +716 winien:sg:m1.m2.m3:imperf
  722 +717 winien:sg:m1.m2.m3:pri:imperf
  723 +718 winien:sg:m1.m2.m3:sec:imperf
  724 +719 winien:sg:m1.m2.m3:ter:imperf
  725 +720 winien:sg:n1.n2:imperf
  726 +721 winien:sg:n1.n2:pri:imperf
  727 +722 winien:sg:n1.n2:sec:imperf
  728 +723 winien:sg:n1.n2:ter:imperf
tests/generator/test_qualifiers/ARGS 0 → 100644
  1 +--aggl permissive
tests/generator/test_qualifiers/dictionary.tab 0 → 100644
  1 +czerwony czerwony:a1 adj:sg:acc:m3:pos pospolita niebieski
  2 +czerwony czerwony:a2 adj:sg:acc:m3:pos pospolita żółty1|żółty2
  3 +czerwony czerwony:a3 adj:sg:acc:m3:pos pospolita żółty2|żółty1
  4 +czerwony czerwony:a4 adj:sg:acc:m3:pos pospolita żółty1|żółty2|żółty3
tests/generator/test_qualifiers/input.txt 0 → 100644
  1 +czerwony
tests/generator/test_qualifiers/output.txt 0 → 100644
  1 +[czerwony,czerwony:a1,adj:sg:acc:m3:pos,pospolita,niebieski
  2 + czerwony,czerwony:a2,adj:sg:acc:m3:pos,pospolita,żółty1|żółty2
  3 + czerwony,czerwony:a3,adj:sg:acc:m3:pos,pospolita,żółty1|żółty2
  4 + czerwony,czerwony:a4,adj:sg:acc:m3:pos,pospolita,żółty1|żółty2|żółty3]
  5 +
tests/generator/test_qualifiers/segmentation.dat 0 → 100644
  1 +[options]
  2 +aggl=strict permissive isolated
  3 +praet=split composite
  4 +
  5 +[combinations]
  6 +#define wsz_interp (interp|kropka|przecinek|dywiz)*
  7 +
  8 +#define moze_interp(segmenty) wsz_interp segmenty wsz_interp
  9 +
  10 +# Segmenty występujące samodzielnie:
  11 +#
  12 +# domyślny typ segmentu samodzielnego:
  13 +moze_interp(samodz)
  14 +
  15 +# Pojedyncze znaki interpunkcyjne
  16 +moze_interp(interp|kropka|przecinek|dywiz)
  17 +
  18 +# Liczba zapisana jako ciąg cyfr:
  19 +moze_interp( dig>* dig )
  20 +
  21 +[segment types]
  22 +interp
  23 +kropka
  24 +przecinek
  25 +dywiz
  26 +dig
  27 +samodz
  28 +
  29 +[lexemes]
  30 +kropka .:interp
  31 +przecinek ,:interp
  32 +dywiz -:interp
  33 +
  34 +[tags]
  35 +dig dig
  36 +interp interp
  37 +samodz %
  38 +
  39 +[separator chars]
  40 +# ,
  41 +44
  42 +
  43 +# .
  44 +46
  45 +
  46 +# ;
  47 +59