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 6 set (Morfeusz_VERSION_MINOR 0)
7 7 set (Morfeusz_VERSION_PATCH 0)
8 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 11 set (Morfeusz_VERSION "${Morfeusz_VERSION}_${Morfeusz_VERSION_TWEAK}")
12 12 endif ()
13   -set (CMAKE_BUILD_TYPE Debug)
  13 +set (CMAKE_BUILD_TYPE Release)
14 14 #~ set (CMAKE_SKIP_RPATH ON)
15 15  
16 16 message ("Version=${Morfeusz_VERSION}")
17 17  
18 18 add_definitions (-DMORFEUSZ2_VERSION="${Morfeusz_VERSION}")
  19 +add_definitions (-DDEFAULT_DICT_NAME="${DEFAULT_DICT_NAME}")
19 20 add_definitions (-DBUILDING_MORFEUSZ)
20 21  
21 22 if (NOT CMAKE_CROSSCOMPILING AND NOT SKIP_TESTING)
... ... @@ -34,7 +35,8 @@ elseif ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "")
34 35 elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
35 36 set (ARCHITECTURE "amd64")
36 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 40 endif ()
39 41  
40 42 # PROJECT_VERSION
... ... @@ -157,11 +159,6 @@ include (CPack)
157 159 ##### END initialize some vars #####
158 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 162 ###### add main sources ########
166 163  
167 164 add_subdirectory (morfeusz)
... ... @@ -175,6 +172,12 @@ macro (test_analyzer analyzerDir)
175 172 add_test(TestAnalyzer_${dirname} ./doTest.sh morfeusz analyzer ${analyzerDir})
176 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 181 file (GLOB analyzerTestDirs "tests/analyzer/*")
179 182 if (UNIX)
180 183 foreach (analyzerTestDir ${analyzerTestDirs})
... ... @@ -182,6 +185,13 @@ if (UNIX)
182 185 endforeach()
183 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 195 if (UNIX)
186 196 add_test(TestJavaWrapper ./testJavaWrapper.sh "${CMAKE_CURRENT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}")
187 197 add_test(TestPythonWrapper ./testPythonWrapper.sh "${PROJECT_BINARY_DIR}")
... ...
buildAll.sh
... ... @@ -3,36 +3,30 @@
3 3 set -e -o pipefail
4 4  
5 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 7 exit 1
8 8 fi
9 9  
10 10 export CROSSMORFEUSZ_ROOT="$1"
11 11 export INPUT_DICTIONARIES="$2"
12   -export VERSION_SUFFIX="$3"
  12 +export DEFAULT_DICT_NAME="$3"
13 13 export ANALYZER_DICTIONARY_CPP=`mktemp`.cpp
14 14 export GENERATOR_DICTIONARY_CPP=`mktemp`.cpp
  15 +export DICT_DIR=`mktemp -d`
15 16  
16 17 function buildDictionaries {
17 18  
18   - INPUT_TAGSET=input/sgjp-morfeusz.tagset
  19 + INPUT_TAGSET=input/morfeusz-sgjp.tagset
19 20 SEGMENT_RULES_FILE=input/segmenty.dat
20 21  
21 22 python fsabuilder/morfeusz_builder \
22   - --analyzer \
23 23 --input-files="$INPUT_DICTIONARIES" \
24 24 --tagset-file="$INPUT_TAGSET" \
25 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 31 echo "DONE building dictionaries" >&2
38 32 }
... ... @@ -62,7 +56,7 @@ function build {
62 56 -D TARGET_DIR=$targetDir \
63 57 -D ANALYZER_DICTIONARY_CPP=$ANALYZER_DICTIONARY_CPP \
64 58 -D GENERATOR_DICTIONARY_CPP=$GENERATOR_DICTIONARY_CPP \
65   - -D VERSION_SUFFIX=$VERSION_SUFFIX \
  59 + -D DEFAULT_DICT_NAME=$DEFAULT_DICT_NAME \
66 60 -D SKIP_DICTIONARY_BUILDING=1 \
67 61 $srcDir 2>&1
68 62 echo "building $toolchain" >&2
... ... @@ -97,6 +91,6 @@ buildDictionaries 2&gt;&amp;1 | log All all
97 91 echo "build Windows amd64 package package-java 2>&1 | log Windows amd64"
98 92 echo "build Windows i386 package package-java 2>&1 | log Windows i386"
99 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 15 from morfeuszbuilder.fsa.serializer import Serializer, SerializationMethod
16 16 from morfeuszbuilder.tagset.tagset import Tagset
17 17 from morfeuszbuilder.segrules import rulesParser
  18 +from morfeuszbuilder.utils import exceptions, limits
18 19 from optparse import OptionParser
19 20  
20 21 def _checkOption(opt, parser, msg):
... ... @@ -168,7 +169,6 @@ def _parseOptions():
168 169 return opts
169 170  
170 171 def _concatFiles(inputFiles):
171   -# return open(inputFiles[0], 'r')
172 172 for inputFile in inputFiles:
173 173 if inputFile:
174 174 with open(inputFile, 'r') as f:
... ... @@ -178,14 +178,31 @@ def _concatFiles(inputFiles):
178 178 else:
179 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 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 201 yield entry
185 202  
186   -def _readPolimorfInput4Generator(inputFiles, tagset, encoder, segmentRulesManager):
  203 +def _readPolimorfInput4Generator(inputFiles, tagset, namesMap, qualifiersMap, encoder, segmentRulesManager):
187 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 206 yield entry
190 207  
191 208 def _readTrainData(trainFile):
... ... @@ -210,10 +227,10 @@ def _printStats(fsa):
210 227 logging.info('sink states num: '+str(sinkNum))
211 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 231 encoder = encode.MorphEncoder()
215 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 234 # print word, data
218 235 fsa.addEntry(word, data)
219 236 del word
... ... @@ -223,12 +240,12 @@ def buildAnalyzerFromPoliMorf(inputFiles, tagset, segmentRulesManager):
223 240 logging.info('Analyzer FSA stats:')
224 241 logging.info('------')
225 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 246 encoder = encode.Encoder4Generator()
230 247 fsa = FSA(encoder, tagset)
231   - inputData = _readPolimorfInput4Generator(inputFiles, tagset, encoder, segmentRulesManager)
  248 + inputData = _readPolimorfInput4Generator(inputFiles, tagset, namesMap, qualifiersMap, encoder, segmentRulesManager)
232 249 for word, data in inputData:
233 250 fsa.addEntry(word, data)
234 251 fsa.close()
... ... @@ -236,21 +253,32 @@ def buildGeneratorFromPoliMorf(inputFiles, tagset, segmentRulesManager):
236 253 logging.info('Generator FSA stats:')
237 254 logging.info('------')
238 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 261 rulesParserVersion = rulesParser.RulesParser.PARSE4ANALYZER if not isGenerator else rulesParser.RulesParser.PARSE4GENERATOR
244 262 segmentRulesManager = rulesParser.RulesParser(tagset, rulesParserVersion).parse(opts.segmentsFile)
245   - fsa, qualifiersMap = buildAnalyzerFromPoliMorf(opts.inputFiles, tagset, segmentRulesManager)
246 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 273 fsa.train(_readTrainData(opts.analyzerTrainFile))
251 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 282 if opts.generatorCpp and isGenerator:
255 283 serializer.serialize2CppFile(opts.generatorCpp, isGenerator=isGenerator)
256 284 if opts.analyzerCpp and not isGenerator:
... ... @@ -267,14 +295,19 @@ def main(opts):
267 295 else:
268 296 logging.basicConfig(level=logging.INFO)
269 297  
270   - logging.info('reading tagset from %s', opts.tagsetFile)
  298 + logging.info('reading tagset')
271 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 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 312 if __name__ == '__main__':
280 313 import os
... ...
fsabuilder/morfeuszbuilder/fsa/convertinput.py
... ... @@ -27,7 +27,7 @@ def _mergeEntries(inputLines, lowercase):
27 27 if prevInterps:
28 28 yield (prevKey, frozenset(prevInterps))
29 29  
30   -def _parseLine(line):
  30 +def parseLine(line):
31 31 splitLine = line.strip().split(u'\t')
32 32 if len(splitLine) == 5:
33 33 orth, base, tag, name, qualifier = splitLine
... ... @@ -44,8 +44,10 @@ def _parseLine(line):
44 44  
45 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 48 self.tagset = tagset
  49 + self.namesMap = namesMap
  50 + self.qualifiersMap = qualifiersMap
49 51 self.encoder = encoder
50 52 self.inputEncoding = inputEncoding
51 53 self.segmentRulesManager = segmentRulesManager
... ... @@ -55,18 +57,21 @@ class PolimorfConverter4Analyzer(object):
55 57 for line in inputLines:
56 58 line = line.decode(self.inputEncoding).strip('\n')
57 59 if line:
58   - orth, base, tag, name, qualifier = _parseLine(line)
  60 + orth, base, tag, name, qualifier = parseLine(line)
59 61  
60 62 tagnum = self.tagset.getTagnum4Tag(tag)
61   - namenum = self.tagset.getNamenum4Name(name)
  63 + namenum = self.namesMap[name]
62 64 typenum = self.segmentRulesManager.lexeme2SegmentTypeNum(base, tagnum)
  65 + qualifiers = qualifier.split('|') if qualifier else frozenset([u''])
  66 + qualsnum = self.qualifiersMap[frozenset(qualifiers)]
63 67 yield '\t'.join((
64 68 orth.encode(self.inputEncoding),
65 69 base.encode(self.inputEncoding),
66 70 str(tagnum),
67 71 str(namenum),
68 72 str(typenum),
69   - qualifier.encode(self.inputEncoding)))
  73 + str(qualsnum)))
  74 + #~ qualifier.encode(self.inputEncoding)))
70 75  
71 76 # input lines are encoded and partially parsed
72 77 def _sortLines(self, inputLines):
... ... @@ -77,20 +82,23 @@ class PolimorfConverter4Analyzer(object):
77 82 for line in inputLines:
78 83 line = line.decode(self.inputEncoding).strip(u'\n')
79 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 86 tagnum = int(tagnum)
82 87 namenum = int(namenum)
83 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 93 def convert(self, inputLines):
88 94 return _mergeEntries(self._reallyParseLines(self._sortLines(self._partiallyParseLines(inputLines))), lowercase=True)
89 95  
90 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 99 self.tagset = tagset
  100 + self.namesMap = namesMap
  101 + self.qualifiersMap = qualifiersMap
94 102 self.encoder = encoder
95 103 self.inputEncoding = inputEncoding
96 104 self.segmentRulesManager = segmentRulesManager
... ... @@ -100,7 +108,7 @@ class PolimorfConverter4Generator(object):
100 108 for line in inputLines:
101 109 line = line.decode(self.inputEncoding).strip('\n')
102 110 if line:
103   - orth, base, tag, name, qualifier = _parseLine(line)
  111 + orth, base, tag, name, qualifier = parseLine(line)
104 112 if base:
105 113 homonymId = u''
106 114 if u':' in base:
... ... @@ -108,7 +116,9 @@ class PolimorfConverter4Generator(object):
108 116 if assumedBase != u'' and assumedHomonymId != u'' and assumedHomonymId.isalnum():
109 117 base, homonymId = assumedBase, assumedHomonymId
110 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 122 typenum = self.segmentRulesManager.lexeme2SegmentTypeNum(base, tagnum)
113 123  
114 124 #~ print '\t'.join((
... ... @@ -126,7 +136,7 @@ class PolimorfConverter4Generator(object):
126 136 str(namenum),
127 137 str(typenum),
128 138 homonymId.encode(self.inputEncoding),
129   - qualifier.encode(self.inputEncoding)))
  139 + str(qualsnum)))
130 140 else:
131 141 logging.warn('Ignoring line: "%s" - contains empty lemma', line.strip())
132 142  
... ... @@ -139,15 +149,16 @@ class PolimorfConverter4Generator(object):
139 149 for line in inputLines:
140 150 line = line.decode(self.inputEncoding).strip(u'\n')
141 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 153 # print orth.encode('utf8'), base.encode('utf8'), homonymId
144 154 tagnum = int(tagnum)
145 155 namenum = int(namenum)
146 156 typenum = int(typenum)
147 157 del prevLine
148 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 163 def convert(self, inputLines):
153 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 21 '''
22 22 self.lowercase = lowercase
23 23 self.encoding = encoding
24   - self.qualifiersMap = { frozenset(): 0}
  24 + #~ self.qualifiersMap = { frozenset(): 0}
25 25  
26 26 def encodeWord(self, word, lowercase=True):
27 27 assert type(word) == unicode
... ... @@ -47,19 +47,20 @@ class Encoder(object):
47 47 u'Too many segment types. The limit is %d' % limits.MAX_SEGMENT_TYPES)
48 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 65 def _hasUpperPrefix(self, casePattern):
65 66 for i in range(len(casePattern) + 1):
... ... @@ -213,7 +214,7 @@ class MorphEncoder(Encoder):
213 214 encodedInterpsList.extend(self._encodeCasePattern(interp.encodedForm.casePattern))
214 215 encodedInterpsList.extend(htons(interp.tagnum))
215 216 encodedInterpsList.append(interp.namenum)
216   - encodedInterpsList.extend(self._encodeQualifiers(interp.qualifiers))
  217 + encodedInterpsList.extend(htons(interp.qualifiers))
217 218  
218 219 res.extend(htons(len(encodedInterpsList)))
219 220 res.extend(encodedInterpsList)
... ... @@ -238,7 +239,7 @@ class Encoder4Generator(Encoder):
238 239 encodedInterpsList.extend(serializeString(interp.encodedForm.suffixToAdd))
239 240 encodedInterpsList.extend(htons(interp.tagnum))
240 241 encodedInterpsList.append(interp.namenum)
241   - encodedInterpsList.extend(self._encodeQualifiers(interp.qualifiers))
  242 + encodedInterpsList.extend(htons(interp.qualifiers))
242 243  
243 244 res.extend(htons(len(encodedInterpsList)))
244 245 res.extend(encodedInterpsList)
... ...
fsabuilder/morfeuszbuilder/fsa/serializer.py
... ... @@ -21,17 +21,19 @@ class Serializer(object):
21 21 def __init__(self, fsa):
22 22 self._fsa = fsa
23 23 self.tagset = None
  24 + self.namesMap = None
24 25 self.qualifiersMap = None
25 26 self.segmentationRulesData = None
26 27  
27 28 @staticmethod
28   - def getSerializer(serializationMethod, fsa, tagset, qualifiersMap, segmentationRulesData):
  29 + def getSerializer(serializationMethod, fsa, tagset, namesMap, qualifiersMap, segmentationRulesData):
29 30 res = {
30 31 SerializationMethod.SIMPLE: SimpleSerializer,
31 32 SerializationMethod.V1: VLengthSerializer1,
32 33 SerializationMethod.V2: VLengthSerializer2,
33 34 }[serializationMethod](fsa)
34 35 res.tagset = tagset
  36 + res.namesMap = namesMap
35 37 res.qualifiersMap = qualifiersMap
36 38 res.segmentationRulesData = segmentationRulesData
37 39 return res
... ... @@ -77,8 +79,10 @@ class Serializer(object):
77 79 raise NotImplementedError('Not implemented')
78 80  
79 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 84 qualifiersData = self.serializeQualifiersMap()
  85 + #~ qualifiersData = self._serializeTags(self.qualifiersMap)
82 86 segmentationRulesData = self.segmentationRulesData
83 87 res = bytearray()
84 88 res.extend(self.serializePrologue())
... ... @@ -103,24 +107,26 @@ class Serializer(object):
103 107 return res
104 108  
105 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 117 def serializeQualifiersMap(self):
114   - res = bytearray()
115   - res.extend(htons(len(self.qualifiersMap)))
116 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 124 #~ for qualifiers, n in sorted(self.qualifiersMap.iteritems(), key=lambda (qs, n): n):
119 125 #~ res.append(len(qualifiers))
120 126 #~ for q in qualifiers:
121 127 #~ res.extend(q.encode('utf8'))
122 128 #~ res.append(0)
123   - return res
  129 + #~ return res
124 130  
125 131 def serializePrologue(self):
126 132 res = bytearray()
... ...
fsabuilder/morfeuszbuilder/tagset/tagset.py
... ... @@ -14,26 +14,27 @@ class Tagset(object):
14 14 SEP = '\t'
15 15  
16 16 def __init__(self, filename=None, encoding='utf8'):
17   - self._tag2tagnum = {}
18   - self._name2namenum = {}
  17 + self.tag2tagnum = {}
  18 + #~ self._name2namenum = {}
19 19 if filename:
20 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 23 def _doInit(self, filename, encoding):
24   - addingTo = None
  24 + insideTags = False
25 25 with codecs.open(filename, 'r', encoding) as f:
26 26 for linenum, line in enumerate(f, start=1):
27 27 line = line.strip('\n\r')
28 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 32 elif line and not line.startswith(u'#'):
33   - if not addingTo in [Tagset.TAGS, Tagset.NAMES]:
  33 + if not insideTags:
34 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 38 tagNum = line.split(Tagset.SEP)[0]
38 39 tag = line.split(Tagset.SEP)[1]
39 40 if tag in res:
... ... @@ -41,19 +42,13 @@ class Tagset(object):
41 42 res[tag] = int(tagNum)
42 43  
43 44 def getAllTags(self):
44   - return self._tag2tagnum.keys()
  45 + return self.tag2tagnum.keys()
45 46  
46 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 50 else:
50 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 53 def getTag4Tagnum(self, tagnum):
59 54 return self._tagnum2tag[tagnum]
... ...
initializeAnalyzerTest.sh
... ... @@ -6,14 +6,15 @@ DIR=$1
6 6 shift
7 7 ARGS=`cat $DIR/ARGS`
8 8  
9   -DICT_FILE=`mktemp`
  9 +DICT_DIR=`mktemp -d`
  10 +DICT=test
10 11  
11 12 python fsabuilder/morfeusz_builder \
12   - --analyzer \
  13 + --only-analyzer \
13 14 --input-files $DIR/dictionary.tab \
14   - -o $DICT_FILE \
  15 + --dict-dir=$DICT_DIR \
  16 + --dict=$DICT \
15 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 772 # (special)
773 773 236 naj
774 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 */
7 7  
8 8 #include <fstream>
  9 +#include "morfeusz2.h"
9 10 #include "DictionariesRepository.hpp"
10 11 #include "data/default_fsa.hpp"
11 12 #include "const.hpp"
... ... @@ -40,7 +41,7 @@ namespace morfeusz {
40 41 DictionariesRepository::RepositoryEntry defaultEntry;
41 42 defaultEntry.analyzerDictionary = new Dictionary(DEFAULT_FSA, ANALYZER);
42 43 defaultEntry.generatorDictionary = new Dictionary(DEFAULT_SYNTH_FSA, GENERATOR);
43   - res[string()] = defaultEntry;
  44 + res[Morfeusz::getDefaultDictName()] = defaultEntry;
44 45 return res;
45 46 }
46 47  
... ... @@ -49,8 +50,7 @@ namespace morfeusz {
49 50 }
50 51  
51 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 56 Dictionary* DictionariesRepository::RepositoryEntry::getDictionary(MorfeuszProcessorType processorType) const {
... ...
morfeusz/Dictionary.cpp
... ... @@ -42,4 +42,12 @@ namespace morfeusz {
42 42 availableAgglOptions(getAvailableOptions(segrulesFSAsMap, "aggl")),
43 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 25 struct Dictionary {
26 26 Dictionary(const unsigned char* ptr, MorfeuszProcessorType processorType);
27 27  
  28 + bool isCompatibleWith(const Dictionary& other) const;
  29 +
28 30 FSAType* fsa;
29 31 IdResolverImpl idResolver;
30 32 std::vector<uint32_t> separatorsList;
... ...
morfeusz/Environment.cpp
... ... @@ -38,8 +38,9 @@ namespace morfeusz {
38 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 44 caseConverter(),
44 45 dictionary(DictionariesRepository::instance.getDefaultDictionary(processorType)),
45 46 idResolver(dictionary->idResolver),
... ... @@ -169,11 +170,11 @@ namespace morfeusz {
169 170 }
170 171  
171 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 178 idResolver = dictionary->idResolver;
178 179 this->idResolver.setCharsetConverter(currentCharsetConverter);
179 180 currSegrulesOptions = dictionary->defaultSegrulesOptions;
... ... @@ -209,5 +210,4 @@ namespace morfeusz {
209 210 const set<string>& Environment::getAvailablePraetOptions() const {
210 211 return this->dictionary->availablePraetOptions;
211 212 }
212   -
213 213 }
... ...
morfeusz/Environment.hpp
... ... @@ -43,7 +43,7 @@ public:
43 43 * @param morfeuszProcessor
44 44 * @param fileStartPtr
45 45 */
46   - explicit Environment(MorfeuszProcessorType morfeuszProcessor);
  46 + explicit Environment(MorfeuszProcessorType morfeuszProcessor, bool usable);
47 47  
48 48 /**
49 49 * Sets charset for this environment.
... ... @@ -90,11 +90,11 @@ public:
90 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 100 * Sets segmentation rules option.
... ... @@ -156,6 +156,7 @@ public:
156 156  
157 157 virtual ~Environment();
158 158 private:
  159 + bool usable;
159 160 const CharsetConverter* currentCharsetConverter;
160 161 const CaseConverter caseConverter;
161 162  
... ...
morfeusz/IdResolverImpl.cpp
... ... @@ -130,4 +130,10 @@ namespace morfeusz {
130 130 size_t IdResolverImpl::getLabelsCount() const {
131 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 44 std::vector<std::string> id2String;
45 45 std::map<std::string, int> string2Id;
46 46 };
47   -
  47 +
  48 + bool isCompatibleWith(const IdResolverImpl& other) const;
  49 +
48 50 private:
49 51  
50 52 IdStringMapping tags;
... ...
morfeusz/Morfeusz.cpp
... ... @@ -11,6 +11,11 @@ namespace morfeusz {
11 11 static string version = MORFEUSZ2_VERSION;
12 12 return version;
13 13 }
  14 +
  15 + string Morfeusz::getDefaultDictName() {
  16 + static string dictName = DEFAULT_DICT_NAME;
  17 + return dictName;
  18 + }
14 19  
15 20 Morfeusz* Morfeusz::createInstance(MorfeuszUsage usage) {
16 21 return new MorfeuszImpl(usage);
... ...
morfeusz/MorfeuszImpl.cpp
... ... @@ -22,6 +22,7 @@
22 22 #include "const.hpp"
23 23 #include "charset/utf8.h"
24 24 #include "ChunkBounds.hpp"
  25 +#include "DictionariesRepository.hpp"
25 26  
26 27 // TODO - konstruktor kopiujący działający Tak-Jak-Trzeba
27 28  
... ... @@ -114,9 +115,10 @@ namespace morfeusz {
114 115 }
115 116  
116 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 122 options(createDefaultOptions()),
121 123 accum(),
122 124 notMatchingCaseSegs(0),
... ... @@ -131,19 +133,42 @@ namespace morfeusz {
131 133 }
132 134  
133 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 168 const Environment& MorfeuszImpl::getAnyEnvironment() const {
143 169 if (analyzerEnv.isUsable()) {
144 170 return analyzerEnv;
145   - }
146   - else {
  171 + } else {
147 172 return generatorEnv;
148 173 }
149 174 }
... ...
morfeusz/MorfeuszImpl.hpp
... ... @@ -189,7 +189,10 @@ namespace morfeusz {
189 189 void ensureIsGenerator() const;
190 190  
191 191 const Environment& getAnyEnvironment() const;
  192 +
  193 + void doSetDictionary(const std::string& dictName);
192 194  
  195 + std::string currDictionary;
193 196 MorfeuszUsage usage;
194 197 Environment analyzerEnv;
195 198 Environment generatorEnv;
... ...
morfeusz/morfeusz2.h
... ... @@ -108,6 +108,12 @@ namespace morfeusz {
108 108 * @return
109 109 */
110 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 119 * Creates actual instance of Morfeusz class.
... ...
morfeusz/wrappers/java/CMakeLists.txt
... ... @@ -54,7 +54,6 @@ endif ()
54 54  
55 55 # build jmorfeusz
56 56 file(GLOB_RECURSE JAVA_SOURCES "${JAVA_SRC_DIR}" "${JAVA_SRC_DIR}/*.java")
57   -message("SOURCES: ${JAVA_SOURCES}")
58 57 add_jar (jmorfeusz
59 58 SOURCES "${JAVA_SOURCES}"
60 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 69 DEPENDS package-python-deb-build
70 70 )
71 71 list (APPEND PACKAGE_DEPENDS package-python-deb)
72   - message ("PACKAGE_DEPENDS=${PACKAGE_DEPENDS}")
73 72 add_custom_target (package-python
74 73 DEPENDS pymorfeusz ${PACKAGE_DEPENDS})
75 74 elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND NOT CMAKE_CROSSCOMPILING)
... ...
nbproject/configurations.xml
... ... @@ -168,9 +168,8 @@
168 168 <rebuildPropChanged>false</rebuildPropChanged>
169 169 </toolsSet>
170 170 <flagsDictionary>
171   - <element flagsID="0" commonFlags="-std=c++98"/>
  171 + <element flagsID="0" commonFlags="-std=c++98 -O3"/>
172 172 <element flagsID="1" commonFlags="-std=c++98 -O3 -fPIC"/>
173   - <element flagsID="2" commonFlags="-std=c++98 -fPIC"/>
174 173 </flagsDictionary>
175 174 <codeAssistance>
176 175 <includeAdditional>true</includeAdditional>
... ... @@ -192,7 +191,6 @@
192 191 <pElem>build/fsa</pElem>
193 192 </incDir>
194 193 <preprocessorList>
195   - <Elem>NDEBUG</Elem>
196 194 <Elem>_OPTIMIZE__=1</Elem>
197 195 <Elem>__PIC__=2</Elem>
198 196 <Elem>__pic__=2</Elem>
... ... @@ -213,7 +211,6 @@
213 211 <pElem>build/fsa</pElem>
214 212 </incDir>
215 213 <preprocessorList>
216   - <Elem>NDEBUG</Elem>
217 214 <Elem>_OPTIMIZE__=1</Elem>
218 215 <Elem>__PIC__=2</Elem>
219 216 <Elem>__pic__=2</Elem>
... ... @@ -226,12 +223,13 @@
226 223 </ccTool>
227 224 </item>
228 225 <item path="build/morfeusz/default_fsa.cpp" ex="false" tool="1" flavor2="4">
229   - <ccTool flags="2">
  226 + <ccTool flags="1">
230 227 <incDir>
231 228 <pElem>morfeusz</pElem>
232 229 </incDir>
233 230 <preprocessorList>
234 231 <Elem>BUILDING_MORFEUSZ</Elem>
  232 + <Elem>DEFAULT_DICT_NAME=""</Elem>
235 233 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
236 234 </preprocessorList>
237 235 </ccTool>
... ... @@ -240,12 +238,13 @@
240 238 ex="false"
241 239 tool="1"
242 240 flavor2="4">
243   - <ccTool flags="2">
  241 + <ccTool flags="1">
244 242 <incDir>
245 243 <pElem>morfeusz</pElem>
246 244 </incDir>
247 245 <preprocessorList>
248 246 <Elem>BUILDING_MORFEUSZ</Elem>
  247 + <Elem>DEFAULT_DICT_NAME=""</Elem>
249 248 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
250 249 </preprocessorList>
251 250 </ccTool>
... ... @@ -266,7 +265,6 @@
266 265 <pElem>build/morfeusz/java</pElem>
267 266 </incDir>
268 267 <preprocessorList>
269   - <Elem>NDEBUG</Elem>
270 268 <Elem>_OPTIMIZE__=1</Elem>
271 269 <Elem>__PIC__=2</Elem>
272 270 <Elem>__pic__=2</Elem>
... ... @@ -293,7 +291,6 @@
293 291 <pElem>build/morfeusz/perl</pElem>
294 292 </incDir>
295 293 <preprocessorList>
296   - <Elem>NDEBUG</Elem>
297 294 <Elem>_OPTIMIZE__=1</Elem>
298 295 <Elem>morfeusz_perl_EXPORTS</Elem>
299 296 </preprocessorList>
... ... @@ -316,7 +313,6 @@
316 313 <pElem>build/morfeusz/python</pElem>
317 314 </incDir>
318 315 <preprocessorList>
319   - <Elem>NDEBUG</Elem>
320 316 <Elem>_OPTIMIZE__=1</Elem>
321 317 <Elem>__PIC__=2</Elem>
322 318 <Elem>__pic__=2</Elem>
... ... @@ -338,20 +334,21 @@
338 334 ex="false"
339 335 tool="1"
340 336 flavor2="4">
341   - <ccTool flags="2">
  337 + <ccTool flags="1">
342 338 </ccTool>
343 339 </item>
344 340 <item path="build/morfeusz/wrappers/morfeuszPERL_wrap.cxx"
345 341 ex="false"
346 342 tool="1"
347 343 flavor2="4">
348   - <ccTool flags="2">
  344 + <ccTool flags="1">
349 345 <incDir>
350 346 <pElem>/usr/lib/perl/5.14/CORE</pElem>
351 347 <pElem>build/morfeusz/wrappers/perl</pElem>
352 348 </incDir>
353 349 <preprocessorList>
354 350 <Elem>BUILDING_MORFEUSZ</Elem>
  351 + <Elem>DEFAULT_DICT_NAME=""</Elem>
355 352 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
356 353 <Elem>morfeusz_perl_EXPORTS</Elem>
357 354 </preprocessorList>
... ... @@ -374,7 +371,6 @@
374 371 <pElem>morfeusz/build/morfeusz</pElem>
375 372 </incDir>
376 373 <preprocessorList>
377   - <Elem>NDEBUG</Elem>
378 374 <Elem>_OPTIMIZE__=1</Elem>
379 375 </preprocessorList>
380 376 <undefinedList>
... ... @@ -392,7 +388,6 @@
392 388 <pElem>morfeusz/build/morfeusz</pElem>
393 389 </incDir>
394 390 <preprocessorList>
395   - <Elem>NDEBUG</Elem>
396 391 <Elem>_OPTIMIZE__=1</Elem>
397 392 </preprocessorList>
398 393 <undefinedList>
... ... @@ -408,7 +403,9 @@
408 403 </incDir>
409 404 <preprocessorList>
410 405 <Elem>BUILDING_MORFEUSZ</Elem>
  406 + <Elem>DEFAULT_DICT_NAME=""</Elem>
411 407 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  408 + <Elem>NDEBUG</Elem>
412 409 <Elem>libmorfeusz_EXPORTS</Elem>
413 410 </preprocessorList>
414 411 </ccTool>
... ... @@ -421,7 +418,9 @@
421 418 </incDir>
422 419 <preprocessorList>
423 420 <Elem>BUILDING_MORFEUSZ</Elem>
  421 + <Elem>DEFAULT_DICT_NAME=""</Elem>
424 422 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  423 + <Elem>NDEBUG</Elem>
425 424 <Elem>libmorfeusz_EXPORTS</Elem>
426 425 </preprocessorList>
427 426 </ccTool>
... ... @@ -434,7 +433,9 @@
434 433 </incDir>
435 434 <preprocessorList>
436 435 <Elem>BUILDING_MORFEUSZ</Elem>
  436 + <Elem>DEFAULT_DICT_NAME=""</Elem>
437 437 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  438 + <Elem>NDEBUG</Elem>
438 439 <Elem>libmorfeusz_EXPORTS</Elem>
439 440 </preprocessorList>
440 441 </ccTool>
... ... @@ -447,7 +448,9 @@
447 448 </incDir>
448 449 <preprocessorList>
449 450 <Elem>BUILDING_MORFEUSZ</Elem>
  451 + <Elem>DEFAULT_DICT_NAME=""</Elem>
450 452 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  453 + <Elem>NDEBUG</Elem>
451 454 <Elem>libmorfeusz_EXPORTS</Elem>
452 455 </preprocessorList>
453 456 </ccTool>
... ... @@ -460,7 +463,9 @@
460 463 </incDir>
461 464 <preprocessorList>
462 465 <Elem>BUILDING_MORFEUSZ</Elem>
  466 + <Elem>DEFAULT_DICT_NAME=""</Elem>
463 467 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  468 + <Elem>NDEBUG</Elem>
464 469 <Elem>libmorfeusz_EXPORTS</Elem>
465 470 </preprocessorList>
466 471 </ccTool>
... ... @@ -473,7 +478,9 @@
473 478 </incDir>
474 479 <preprocessorList>
475 480 <Elem>BUILDING_MORFEUSZ</Elem>
  481 + <Elem>DEFAULT_DICT_NAME=""</Elem>
476 482 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  483 + <Elem>NDEBUG</Elem>
477 484 <Elem>libmorfeusz_EXPORTS</Elem>
478 485 </preprocessorList>
479 486 </ccTool>
... ... @@ -486,7 +493,9 @@
486 493 </incDir>
487 494 <preprocessorList>
488 495 <Elem>BUILDING_MORFEUSZ</Elem>
  496 + <Elem>DEFAULT_DICT_NAME=""</Elem>
489 497 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  498 + <Elem>NDEBUG</Elem>
490 499 <Elem>libmorfeusz_EXPORTS</Elem>
491 500 </preprocessorList>
492 501 </ccTool>
... ... @@ -620,6 +629,13 @@
620 629 <output>${TESTDIR}/TestFiles/f9</output>
621 630 </linkerTool>
622 631 </folder>
  632 + <folder path="build">
  633 + <ccTool>
  634 + <preprocessorList>
  635 + <Elem>NDEBUG</Elem>
  636 + </preprocessorList>
  637 + </ccTool>
  638 + </folder>
623 639 <folder path="build/morfeusz">
624 640 <ccTool>
625 641 <incDir>
... ... @@ -634,6 +650,7 @@
634 650 </incDir>
635 651 <preprocessorList>
636 652 <Elem>BUILDING_MORFEUSZ</Elem>
  653 + <Elem>DEFAULT_DICT_NAME=""</Elem>
637 654 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
638 655 <Elem>libjmorfeusz_EXPORTS</Elem>
639 656 </preprocessorList>
... ... @@ -645,9 +662,6 @@
645 662 <pElem>build</pElem>
646 663 <pElem>/usr/include/python2.7</pElem>
647 664 </incDir>
648   - <preprocessorList>
649   - <Elem>NDEBUG</Elem>
650   - </preprocessorList>
651 665 </ccTool>
652 666 </folder>
653 667 <folder path="java">
... ... @@ -674,6 +688,7 @@
674 688 <folder path="morfeusz">
675 689 <ccTool>
676 690 <preprocessorList>
  691 + <Elem>NDEBUG</Elem>
677 692 <Elem>libmorfeusz_EXPORTS</Elem>
678 693 </preprocessorList>
679 694 </ccTool>
... ... @@ -688,7 +703,6 @@
688 703 <pElem>/usr/lib/jvm/default-java/include</pElem>
689 704 </incDir>
690 705 <preprocessorList>
691   - <Elem>NDEBUG</Elem>
692 706 <Elem>_OPTIMIZE__=1</Elem>
693 707 <Elem>libjmorfeusz_EXPORTS</Elem>
694 708 </preprocessorList>
... ... @@ -708,172 +722,192 @@
708 722 ex="false"
709 723 tool="1"
710 724 flavor2="4">
711   - <ccTool flags="2">
  725 + <ccTool flags="1">
712 726 <incDir>
713 727 <pElem>morfeusz</pElem>
714 728 <pElem>build/morfeusz</pElem>
715 729 </incDir>
716 730 <preprocessorList>
717 731 <Elem>BUILDING_MORFEUSZ</Elem>
  732 + <Elem>DEFAULT_DICT_NAME=""</Elem>
718 733 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  734 + <Elem>NDEBUG</Elem>
719 735 <Elem>libmorfeusz_EXPORTS</Elem>
720 736 </preprocessorList>
721 737 </ccTool>
722 738 </item>
723 739 <item path="morfeusz/Dictionary.cpp" ex="false" tool="1" flavor2="4">
724   - <ccTool flags="2">
  740 + <ccTool flags="1">
725 741 <incDir>
726 742 <pElem>morfeusz</pElem>
727 743 <pElem>build/morfeusz</pElem>
728 744 </incDir>
729 745 <preprocessorList>
730 746 <Elem>BUILDING_MORFEUSZ</Elem>
  747 + <Elem>DEFAULT_DICT_NAME=""</Elem>
731 748 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  749 + <Elem>NDEBUG</Elem>
732 750 <Elem>libmorfeusz_EXPORTS</Elem>
733 751 </preprocessorList>
734 752 </ccTool>
735 753 </item>
736 754 <item path="morfeusz/Environment.cpp" ex="false" tool="1" flavor2="4">
737   - <ccTool flags="2">
  755 + <ccTool flags="1">
738 756 <incDir>
739 757 <pElem>morfeusz</pElem>
740 758 <pElem>build/morfeusz</pElem>
741 759 </incDir>
742 760 <preprocessorList>
743 761 <Elem>BUILDING_MORFEUSZ</Elem>
  762 + <Elem>DEFAULT_DICT_NAME=""</Elem>
744 763 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  764 + <Elem>NDEBUG</Elem>
745 765 <Elem>libmorfeusz_EXPORTS</Elem>
746 766 </preprocessorList>
747 767 </ccTool>
748 768 </item>
749 769 <item path="morfeusz/IdResolverImpl.cpp" ex="false" tool="1" flavor2="4">
750   - <ccTool flags="2">
  770 + <ccTool flags="1">
751 771 <incDir>
752 772 <pElem>morfeusz</pElem>
753 773 <pElem>build/morfeusz</pElem>
754 774 </incDir>
755 775 <preprocessorList>
756 776 <Elem>BUILDING_MORFEUSZ</Elem>
  777 + <Elem>DEFAULT_DICT_NAME=""</Elem>
757 778 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  779 + <Elem>NDEBUG</Elem>
758 780 <Elem>libmorfeusz_EXPORTS</Elem>
759 781 </preprocessorList>
760 782 </ccTool>
761 783 </item>
762 784 <item path="morfeusz/InflexionGraph.cpp" ex="false" tool="1" flavor2="4">
763   - <ccTool flags="2">
  785 + <ccTool flags="1">
764 786 <incDir>
765 787 <pElem>morfeusz</pElem>
766 788 <pElem>build/morfeusz</pElem>
767 789 </incDir>
768 790 <preprocessorList>
769 791 <Elem>BUILDING_MORFEUSZ</Elem>
  792 + <Elem>DEFAULT_DICT_NAME=""</Elem>
770 793 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  794 + <Elem>NDEBUG</Elem>
771 795 <Elem>libmorfeusz_EXPORTS</Elem>
772 796 </preprocessorList>
773 797 </ccTool>
774 798 </item>
775 799 <item path="morfeusz/Morfeusz.cpp" ex="false" tool="1" flavor2="4">
776   - <ccTool flags="2">
  800 + <ccTool flags="1">
777 801 <incDir>
778 802 <pElem>morfeusz</pElem>
779 803 <pElem>build/morfeusz</pElem>
780 804 </incDir>
781 805 <preprocessorList>
782 806 <Elem>BUILDING_MORFEUSZ</Elem>
  807 + <Elem>DEFAULT_DICT_NAME=""</Elem>
783 808 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  809 + <Elem>NDEBUG</Elem>
784 810 <Elem>libmorfeusz_EXPORTS</Elem>
785 811 </preprocessorList>
786 812 </ccTool>
787 813 </item>
788 814 <item path="morfeusz/MorfeuszImpl.cpp" ex="false" tool="1" flavor2="4">
789   - <ccTool flags="2">
  815 + <ccTool flags="1">
790 816 <incDir>
791 817 <pElem>morfeusz</pElem>
792 818 <pElem>build/morfeusz</pElem>
793 819 </incDir>
794 820 <preprocessorList>
795 821 <Elem>BUILDING_MORFEUSZ</Elem>
  822 + <Elem>DEFAULT_DICT_NAME=""</Elem>
796 823 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  824 + <Elem>NDEBUG</Elem>
797 825 <Elem>libmorfeusz_EXPORTS</Elem>
798 826 </preprocessorList>
799 827 </ccTool>
800 828 </item>
801 829 <item path="morfeusz/MorphInterpretation.cpp" ex="false" tool="1" flavor2="4">
802   - <ccTool flags="2">
  830 + <ccTool flags="1">
803 831 <incDir>
804 832 <pElem>morfeusz</pElem>
805 833 <pElem>build/morfeusz</pElem>
806 834 </incDir>
807 835 <preprocessorList>
808 836 <Elem>BUILDING_MORFEUSZ</Elem>
  837 + <Elem>DEFAULT_DICT_NAME=""</Elem>
809 838 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  839 + <Elem>NDEBUG</Elem>
810 840 <Elem>libmorfeusz_EXPORTS</Elem>
811 841 </preprocessorList>
812 842 </ccTool>
813 843 </item>
814 844 <item path="morfeusz/ResultsIteratorImpl.cpp" ex="false" tool="1" flavor2="4">
815   - <ccTool flags="2">
  845 + <ccTool flags="1">
816 846 <incDir>
817 847 <pElem>morfeusz</pElem>
818 848 <pElem>build/morfeusz</pElem>
819 849 </incDir>
820 850 <preprocessorList>
821 851 <Elem>BUILDING_MORFEUSZ</Elem>
  852 + <Elem>DEFAULT_DICT_NAME=""</Elem>
822 853 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  854 + <Elem>NDEBUG</Elem>
823 855 <Elem>libmorfeusz_EXPORTS</Elem>
824 856 </preprocessorList>
825 857 </ccTool>
826 858 </item>
827 859 <item path="morfeusz/c_api/ResultsManager.cpp" ex="false" tool="1" flavor2="4">
828   - <ccTool flags="2">
  860 + <ccTool flags="1">
829 861 </ccTool>
830 862 </item>
831 863 <item path="morfeusz/case/CaseConverter.cpp" ex="false" tool="1" flavor2="4">
832   - <ccTool flags="2">
  864 + <ccTool flags="1">
833 865 </ccTool>
834 866 </item>
835 867 <item path="morfeusz/case/CasePatternHelper.cpp"
836 868 ex="false"
837 869 tool="1"
838 870 flavor2="4">
839   - <ccTool flags="2">
  871 + <ccTool flags="1">
840 872 </ccTool>
841 873 </item>
842 874 <item path="morfeusz/case/caseconv.cpp" ex="false" tool="1" flavor2="4">
843   - <ccTool flags="2">
  875 + <ccTool flags="1">
844 876 </ccTool>
845 877 </item>
846 878 <item path="morfeusz/charset/CharsetConverter.cpp"
847 879 ex="false"
848 880 tool="1"
849 881 flavor2="4">
850   - <ccTool flags="2">
  882 + <ccTool flags="1">
851 883 </ccTool>
852 884 </item>
853 885 <item path="morfeusz/charset/TextReader.cpp" ex="false" tool="1" flavor2="4">
854   - <ccTool flags="2">
  886 + <ccTool flags="1">
855 887 </ccTool>
856 888 </item>
857 889 <item path="morfeusz/charset/conversion_tables.cpp"
858 890 ex="false"
859 891 tool="1"
860 892 flavor2="4">
861   - <ccTool flags="2">
  893 + <ccTool flags="1">
862 894 </ccTool>
863 895 </item>
864 896 <item path="morfeusz/cli/cli.cpp" ex="false" tool="1" flavor2="4">
865   - <ccTool flags="2">
  897 + <ccTool flags="1">
866 898 </ccTool>
867 899 </item>
868 900 <item path="morfeusz/const.cpp" ex="false" tool="1" flavor2="4">
869   - <ccTool flags="2">
  901 + <ccTool flags="1">
870 902 <incDir>
871 903 <pElem>morfeusz</pElem>
872 904 <pElem>build/morfeusz</pElem>
873 905 </incDir>
874 906 <preprocessorList>
875 907 <Elem>BUILDING_MORFEUSZ</Elem>
  908 + <Elem>DEFAULT_DICT_NAME=""</Elem>
876 909 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  910 + <Elem>NDEBUG</Elem>
877 911 <Elem>libmorfeusz_EXPORTS</Elem>
878 912 </preprocessorList>
879 913 </ccTool>
... ... @@ -882,50 +916,52 @@
882 916 ex="false"
883 917 tool="1"
884 918 flavor2="4">
885   - <ccTool flags="2">
  919 + <ccTool flags="1">
886 920 </ccTool>
887 921 </item>
888 922 <item path="morfeusz/deserialization/MorphDeserializer.cpp"
889 923 ex="false"
890 924 tool="1"
891 925 flavor2="4">
892   - <ccTool flags="2">
  926 + <ccTool flags="1">
893 927 </ccTool>
894 928 </item>
895 929 <item path="morfeusz/deserialization/morphInterps/InterpretedChunksDecoder.cpp"
896 930 ex="false"
897 931 tool="1"
898 932 flavor2="4">
899   - <ccTool flags="2">
  933 + <ccTool flags="1">
900 934 </ccTool>
901 935 </item>
902 936 <item path="morfeusz/deserialization/morphInterps/InterpretedChunksDecoder4Analyzer.cpp"
903 937 ex="false"
904 938 tool="1"
905 939 flavor2="4">
906   - <ccTool flags="2">
  940 + <ccTool flags="1">
907 941 </ccTool>
908 942 </item>
909 943 <item path="morfeusz/deserialization/morphInterps/InterpretedChunksDecoder4Generator.cpp"
910 944 ex="false"
911 945 tool="1"
912 946 flavor2="4">
913   - <ccTool flags="2">
  947 + <ccTool flags="1">
914 948 </ccTool>
915 949 </item>
916 950 <item path="morfeusz/fsa/const.cpp" ex="false" tool="1" flavor2="4">
917   - <ccTool flags="2">
  951 + <ccTool flags="1">
918 952 </ccTool>
919 953 </item>
920 954 <item path="morfeusz/morfeusz2_c.cpp" ex="false" tool="1" flavor2="4">
921   - <ccTool flags="2">
  955 + <ccTool flags="1">
922 956 <incDir>
923 957 <pElem>morfeusz</pElem>
924 958 <pElem>build/morfeusz</pElem>
925 959 </incDir>
926 960 <preprocessorList>
927 961 <Elem>BUILDING_MORFEUSZ</Elem>
  962 + <Elem>DEFAULT_DICT_NAME=""</Elem>
928 963 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  964 + <Elem>NDEBUG</Elem>
929 965 <Elem>libmorfeusz_EXPORTS</Elem>
930 966 </preprocessorList>
931 967 </ccTool>
... ... @@ -938,7 +974,9 @@
938 974 </incDir>
939 975 <preprocessorList>
940 976 <Elem>BUILDING_MORFEUSZ</Elem>
  977 + <Elem>DEFAULT_DICT_NAME=""</Elem>
941 978 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  979 + <Elem>NDEBUG</Elem>
942 980 </preprocessorList>
943 981 </ccTool>
944 982 </item>
... ... @@ -950,16 +988,18 @@
950 988 </incDir>
951 989 <preprocessorList>
952 990 <Elem>BUILDING_MORFEUSZ</Elem>
  991 + <Elem>DEFAULT_DICT_NAME=""</Elem>
953 992 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  993 + <Elem>NDEBUG</Elem>
954 994 </preprocessorList>
955 995 </ccTool>
956 996 </item>
957 997 <item path="morfeusz/segrules/SegrulesFSA.cpp" ex="false" tool="1" flavor2="4">
958   - <ccTool flags="2">
  998 + <ccTool flags="1">
959 999 </ccTool>
960 1000 </item>
961 1001 <item path="morfeusz/segrules/segrules.cpp" ex="false" tool="1" flavor2="4">
962   - <ccTool flags="2">
  1002 + <ccTool flags="1">
963 1003 </ccTool>
964 1004 </item>
965 1005 <item path="morfeusz/test_runner.cpp" ex="false" tool="1" flavor2="4">
... ... @@ -970,7 +1010,9 @@
970 1010 </incDir>
971 1011 <preprocessorList>
972 1012 <Elem>BUILDING_MORFEUSZ</Elem>
  1013 + <Elem>DEFAULT_DICT_NAME=""</Elem>
973 1014 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  1015 + <Elem>NDEBUG</Elem>
974 1016 </preprocessorList>
975 1017 </ccTool>
976 1018 </item>
... ... @@ -984,7 +1026,9 @@
984 1026 </incDir>
985 1027 <preprocessorList>
986 1028 <Elem>BUILDING_MORFEUSZ</Elem>
  1029 + <Elem>DEFAULT_DICT_NAME=""</Elem>
987 1030 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  1031 + <Elem>NDEBUG</Elem>
988 1032 </preprocessorList>
989 1033 </ccTool>
990 1034 </item>
... ... @@ -996,7 +1040,9 @@
996 1040 </incDir>
997 1041 <preprocessorList>
998 1042 <Elem>BUILDING_MORFEUSZ</Elem>
  1043 + <Elem>DEFAULT_DICT_NAME=""</Elem>
999 1044 <Elem>MORFEUSZ2_VERSION="2.0.0"</Elem>
  1045 + <Elem>NDEBUG</Elem>
1000 1046 </preprocessorList>
1001 1047 </ccTool>
1002 1048 </item>
... ...
tests/analyzer/test_digits/tagset.dat
... ... @@ -726,32 +726,3 @@
726 726 721 winien:sg:n1.n2:pri:imperf
727 727 722 winien:sg:n1.n2:sec:imperf
728 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
... ...