diff --git a/CMakeLists.txt b/CMakeLists.txt
index 383e739..6a6f173 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -147,7 +147,7 @@ endif ()
include (CPack)
##### END initialize some vars #####
-file (COPY fsabuilder testfiles input test.sh DESTINATION .)
+file (COPY fsabuilder testfiles input test.sh doTest.sh DESTINATION .)
configure_file (
"${PROJECT_SOURCE_DIR}/morfeusz/morfeusz2_version.h.in"
@@ -161,6 +161,19 @@ add_subdirectory (fsabuilder)
########## add tests ##########
+macro (test_analyzer analyzerDir)
+ message ("adding test dir ${analyzerDir}")
+ get_filename_component (dirname ${analyzerTestDir} NAME)
+ add_test(TestAnalyzer_${dirname} ./doTest.sh morfeusz analyzer ${analyzerDir})
+endmacro()
+
+file (GLOB analyzerTestDirs "tests/analyzer/*")
+if (UNIX)
+ foreach (analyzerTestDir ${analyzerTestDirs})
+ test_analyzer(${analyzerTestDir})
+ endforeach()
+endif()
+
#macro (test_build_and_recognize fname method)
# add_test (TestBuild-${method}-${fname} python fsabuilder/morfeusz_builder --analyzer --input-files testfiles/${fname} -o /tmp/test-${method}-${fname}.fsa --tagset-file=testfiles/polimorf.tagset --segments-file=testfiles/segmenty.dat --serialization-method=${method})
# add_test (TestBuild4Synth-${method}-${fname} python fsabuilder/morfeusz_builder --generator --input-files testfiles/${fname} -o /tmp/test-synth-${method}-${fname}.fsa --tagset-file=testfiles/polimorf.tagset --serialization-method=${method})
diff --git a/doTest.sh b/doTest.sh
new file mode 100755
index 0000000..147749e
--- /dev/null
+++ b/doTest.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+WORKDIR=$1
+WHAT=$2
+CMD=$WORKDIR/morfeusz_$WHAT
+DIR=$3
+
+echo "build test FSA for $DIR"
+
+TMP_DICTIONARY=`mktemp`
+python fsabuilder/morfeusz_builder \
+ --$WHAT \
+ --input-files $DIR/dictionary.tab \
+ -o $TMP_DICTIONARY \
+ --tagset-file=$DIR/tagset.dat \
+ --segments-file=$DIR/segmentation.dat \
+ --serialization-method=V1
+
+echo "testing $DIR"
+
+INPUT=$DIR/input.txt
+OUTPUT=$DIR/output.txt
+TMP_OUTPUT=`mktemp`
+ARGS=`cat $DIR/ARGS`
+
+$CMD -i $TMP_DICTIONARY $ARGS < $INPUT > $TMP_OUTPUT
+
+if [ $? -ne 0 ]
+then
+ echo "command '$ARGS < $INPUT > $TMP_OUTPUT' returned non-zero exit status" >&2
+ exit 1
+fi
+diff=`diff --brief $OUTPUT $TMP_OUTPUT`
+if [ "$diff" != "" ]
+then
+ diff -u $OUTPUT $TMP_OUTPUT
+ echo "#### Output for '$INPUT' differs from '$OUTPUT' contents" >&2
+ exit 1
+fi
diff --git a/fsabuilder/morfeusz_builder b/fsabuilder/morfeusz_builder
index 8a52981..264a0b8 100644
--- a/fsabuilder/morfeusz_builder
+++ b/fsabuilder/morfeusz_builder
@@ -146,7 +146,7 @@ def _concatFiles(inputFiles):
if inputFile:
with open(inputFile, 'r') as f:
for line in f:
- if not ' ' in ''.join(line.split('\t')[:2]):
+ if line and not ' ' in ''.join(line.split('\t')[:2]):
yield line
else:
logging.warn(u'Ignoring line: "%s" - contains space in text form or lemma' % line.strip().decode('utf8'))
@@ -258,11 +258,12 @@ def main(opts):
if __name__ == '__main__':
import os
opts = _parseOptions()
+ main(opts)
try:
main(opts)
except Exception as ex:
print >> sys.stderr, u'Building dictionary file failed:', unicode(ex).encode('utf8'), 'type of error:', type(ex)
-# raise ex
+ raise ex
sys.exit(1)
finally:
pass
diff --git a/fsabuilder/morfeuszbuilder/fsa/convertinput.py b/fsabuilder/morfeuszbuilder/fsa/convertinput.py
index b0fd56e..2f4422c 100644
--- a/fsabuilder/morfeuszbuilder/fsa/convertinput.py
+++ b/fsabuilder/morfeuszbuilder/fsa/convertinput.py
@@ -24,7 +24,8 @@ def _mergeEntries(inputLines, lowercase):
yield (prevKey, frozenset(prevInterps))
prevKey = key
prevInterps = [interp]
- yield (prevKey, frozenset(prevInterps))
+ if prevInterps:
+ yield (prevKey, frozenset(prevInterps))
def _parseLine(line):
splitLine = line.strip().split(u'\t')
diff --git a/fsabuilder/morfeuszbuilder/fsa/fsa.py b/fsabuilder/morfeuszbuilder/fsa/fsa.py
index f23a0bb..4e973fb 100644
--- a/fsabuilder/morfeuszbuilder/fsa/fsa.py
+++ b/fsabuilder/morfeuszbuilder/fsa/fsa.py
@@ -7,6 +7,7 @@ Created on Oct 8, 2013
import state
import register
import logging
+from morfeuszbuilder.utils import exceptions
class FSA(object):
'''
@@ -47,7 +48,8 @@ class FSA(object):
self.label2Freq[label] = self.label2Freq.get(label, 0) + 1
def close(self):
- assert self.n > 0
+ if self.n == 0:
+ raise exceptions.FSABuilderException('empty input')
assert not self.closed
self.initialState = self._replaceOrRegister(self.initialState, self.encodedPrevWord)
self.encodedPrevWord = None
diff --git a/fsabuilder/morfeuszbuilder/tagset/tagset.py b/fsabuilder/morfeuszbuilder/tagset/tagset.py
index 7c43230..2b8d944 100644
--- a/fsabuilder/morfeuszbuilder/tagset/tagset.py
+++ b/fsabuilder/morfeuszbuilder/tagset/tagset.py
@@ -35,7 +35,8 @@ class Tagset(object):
Tagset.NAMES: self._name2namenum}[addingTo]
tagNum = line.split(Tagset.SEP)[0]
tag = line.split(Tagset.SEP)[1]
- assert tag not in res
+ if tag in res:
+ raise FSABuilderException('duplicate tag: "%s"' % tag)
res[tag] = int(tagNum)
def getAllTags(self):
diff --git a/initializeAnalyzerTest.sh b/initializeAnalyzerTest.sh
new file mode 100755
index 0000000..8f59731
--- /dev/null
+++ b/initializeAnalyzerTest.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+set -exo pipefail
+
+DIR=$1
+shift
+ARGS=`cat $DIR/ARGS`
+
+DICT_FILE=`mktemp`
+
+python fsabuilder/morfeusz_builder \
+ --analyzer \
+ --input-files $DIR/dictionary.tab \
+ -o $DICT_FILE \
+ --tagset-file=$DIR/tagset.dat \
+ --segments-file=$DIR/segmentation.dat \
+ --serialization-method=V1
+
+build/morfeusz/morfeusz_analyzer -i $DICT_FILE $ARGS < $DIR/input.txt > $DIR/output.txt
diff --git a/morfeusz/Environment.cpp b/morfeusz/Environment.cpp
index 739f99e..e534592 100644
--- a/morfeusz/Environment.cpp
+++ b/morfeusz/Environment.cpp
@@ -9,7 +9,6 @@
#include <algorithm>
#include "Environment.hpp"
#include "deserialization/MorphDeserializer.hpp"
-#include "exceptions.hpp"
#include "deserialization/morphInterps/InterpretedChunksDecoder.hpp"
#include "deserialization/morphInterps/InterpretedChunksDecoder4Analyzer.hpp"
#include "deserialization/morphInterps/InterpretedChunksDecoder4Generator.hpp"
diff --git a/morfeusz/MorfeuszInternal.hpp b/morfeusz/MorfeuszInternal.hpp
index 9c14aa1..320d8cc 100644
--- a/morfeusz/MorfeuszInternal.hpp
+++ b/morfeusz/MorfeuszInternal.hpp
@@ -26,7 +26,6 @@
#include "InflexionGraph.hpp"
#include "MorfeuszOptions.hpp"
#include "const.hpp"
-#include "exceptions.hpp"
#include "Environment.hpp"
#include "ResultsIteratorImpl.hpp"
diff --git a/morfeusz/cli/cli.cpp b/morfeusz/cli/cli.cpp
index 66dc133..de5575f 100644
--- a/morfeusz/cli/cli.cpp
+++ b/morfeusz/cli/cli.cpp
@@ -217,7 +217,7 @@ namespace morfeusz {
default:
break;
}
- printf("Using dictionary from %s\n", dictFile.c_str());
+ cerr << "Using dictionary from " << dictFile << endl;
}
if (opt.isSet("-a")) {
string aggl;
diff --git a/morfeusz/exceptions.hpp b/morfeusz/exceptions.hpp
deleted file mode 100644
index a9fc285..0000000
--- a/morfeusz/exceptions.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * File: exceptions.hpp
- * Author: mlenart
- *
- * Created on 22 styczeń 2014, 13:16
- */
-
-#ifndef EXCEPTIONS_HPP
-#define EXCEPTIONS_HPP
-
-#include <exception>
-#include <string>
-
-namespace morfeusz {
-
-//class MorfeuszException : public std::exception {
-//public:
-//
-// MorfeuszException(const std::string& what) : msg(what.c_str()) {
-// }
-//
-// virtual ~MorfeuszException() throw () {
-// }
-//
-// virtual const char* what() const throw () {
-// return this->msg.c_str();
-// }
-//private:
-// const std::string msg;
-//};
-
-}
-
-#endif /* EXCEPTIONS_HPP */
-
diff --git a/nbproject/configurations.xml b/nbproject/configurations.xml
index fcc97ab..c068e65 100644
--- a/nbproject/configurations.xml
+++ b/nbproject/configurations.xml
@@ -64,6 +64,8 @@
<in>test_result_equals.cpp</in>
</df>
<df name="tests">
+ <in>TestCAPI.cpp</in>
+ <in>TestMorfeusz.cpp</in>
<in>test_c_api.cpp</in>
</df>
<in>DefaultTagset.cpp</in>
@@ -78,6 +80,7 @@
<in>morfeusz2_c.cpp</in>
<in>morfeusz_analyzer.cpp</in>
<in>morfeusz_generator.cpp</in>
+ <in>test_runner.cpp</in>
</df>
<logicalFolder name="morfeusz"
displayName="morfeusz"
@@ -165,9 +168,8 @@
<rebuildPropChanged>false</rebuildPropChanged>
</toolsSet>
<flagsDictionary>
- <element flagsID="0" commonFlags="-std=c++98"/>
+ <element flagsID="0" commonFlags="-std=c++98 -O3"/>
<element flagsID="1" commonFlags="-std=c++98 -O3 -fPIC"/>
- <element flagsID="2" commonFlags="-std=c++98 -fPIC"/>
</flagsDictionary>
<codeAssistance>
</codeAssistance>
@@ -177,6 +179,12 @@
<buildCommand>${MAKE} -f Makefile</buildCommand>
<cleanCommand>${MAKE} -f Makefile clean</cleanCommand>
<executablePath>build/morfeusz/morfeusz_analyzer</executablePath>
+ <ccTool flags="-std=c++98">
+ <incDir>
+ <pElem>build</pElem>
+ <pElem>morfeusz</pElem>
+ </incDir>
+ </ccTool>
</makeTool>
</makefileType>
<item path="build/default_fsa.cpp" ex="false" tool="1" flavor2="4">
@@ -186,7 +194,6 @@
<pElem>build/fsa</pElem>
</incDir>
<preprocessorList>
- <Elem>NDEBUG</Elem>
<Elem>_OPTIMIZE__=1</Elem>
<Elem>__PIC__=2</Elem>
<Elem>__pic__=2</Elem>
@@ -205,7 +212,6 @@
<pElem>build/fsa</pElem>
</incDir>
<preprocessorList>
- <Elem>NDEBUG</Elem>
<Elem>_OPTIMIZE__=1</Elem>
<Elem>__PIC__=2</Elem>
<Elem>__pic__=2</Elem>
@@ -218,11 +224,15 @@
</ccTool>
</item>
<item path="build/morfeusz/default_fsa.cpp" ex="false" tool="1" flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="build/morfeusz/default_synth_fsa.cpp"
ex="false"
tool="1"
flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="build/morfeusz/java/swigJAVA.cpp" ex="false" tool="1" flavor2="4">
</item>
@@ -238,7 +248,6 @@
<pElem>build/morfeusz/java</pElem>
</incDir>
<preprocessorList>
- <Elem>NDEBUG</Elem>
<Elem>_OPTIMIZE__=1</Elem>
<Elem>__PIC__=2</Elem>
<Elem>__pic__=2</Elem>
@@ -263,7 +272,6 @@
<pElem>build/morfeusz/perl</pElem>
</incDir>
<preprocessorList>
- <Elem>NDEBUG</Elem>
<Elem>_OPTIMIZE__=1</Elem>
<Elem>morfeusz_perl_EXPORTS</Elem>
</preprocessorList>
@@ -284,7 +292,6 @@
<pElem>build/morfeusz/python</pElem>
</incDir>
<preprocessorList>
- <Elem>NDEBUG</Elem>
<Elem>_OPTIMIZE__=1</Elem>
<Elem>__PIC__=2</Elem>
<Elem>__pic__=2</Elem>
@@ -306,12 +313,14 @@
ex="false"
tool="1"
flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="build/morfeusz/wrappers/morfeuszPERL_wrap.cxx"
ex="false"
tool="1"
flavor2="4">
- <ccTool flags="2">
+ <ccTool flags="1">
<incDir>
<pElem>/usr/lib/perl/5.14/CORE</pElem>
<pElem>build/morfeusz/wrappers/perl</pElem>
@@ -331,7 +340,6 @@
<pElem>morfeusz/build/morfeusz</pElem>
</incDir>
<preprocessorList>
- <Elem>NDEBUG</Elem>
<Elem>_OPTIMIZE__=1</Elem>
</preprocessorList>
<undefinedList>
@@ -347,7 +355,6 @@
<pElem>morfeusz/build/morfeusz</pElem>
</incDir>
<preprocessorList>
- <Elem>NDEBUG</Elem>
<Elem>_OPTIMIZE__=1</Elem>
</preprocessorList>
<undefinedList>
@@ -355,97 +362,71 @@
</undefinedList>
</ccTool>
</item>
- <folder path="0/c_api">
+ <folder path="0">
<ccTool>
<incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
<pElem>build/morfeusz</pElem>
</incDir>
+ </ccTool>
+ </folder>
+ <folder path="0/c_api">
+ <ccTool>
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</folder>
<folder path="0/case">
<ccTool>
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</folder>
<folder path="0/charset">
<ccTool>
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</folder>
<folder path="0/cli">
<ccTool>
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</folder>
<folder path="0/deserialization">
<ccTool>
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</folder>
<folder path="0/fsa">
<ccTool>
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</folder>
<folder path="0/segrules">
<ccTool>
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</folder>
<folder path="0/test">
<ccTool>
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
<preprocessorList>
<Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
@@ -583,10 +564,9 @@
</folder>
<folder path="build">
<ccTool>
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- </incDir>
+ <preprocessorList>
+ <Elem>NDEBUG</Elem>
+ </preprocessorList>
</ccTool>
</folder>
<folder path="build/morfeusz/wrappers/java">
@@ -602,8 +582,6 @@
<folder path="java">
<ccTool>
<incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
<pElem>build/morfeusz</pElem>
<pElem>build/fsa</pElem>
<pElem>build1</pElem>
@@ -622,11 +600,8 @@
</folder>
<folder path="morfeusz">
<ccTool>
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- </incDir>
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
@@ -639,7 +614,6 @@
<pElem>/usr/lib/jvm/default-java/include</pElem>
</incDir>
<preprocessorList>
- <Elem>NDEBUG</Elem>
<Elem>_OPTIMIZE__=1</Elem>
<Elem>libjmorfeusz_EXPORTS</Elem>
</preprocessorList>
@@ -656,134 +630,114 @@
</ccTool>
</folder>
<item path="morfeusz/DefaultTagset.cpp" ex="false" tool="1" flavor2="4">
- <ccTool flags="2">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <ccTool flags="1">
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</item>
<item path="morfeusz/Environment.cpp" ex="false" tool="1" flavor2="4">
- <ccTool flags="2">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <ccTool flags="1">
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</item>
<item path="morfeusz/InflexionGraph.cpp" ex="false" tool="1" flavor2="4">
- <ccTool flags="2">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <ccTool flags="1">
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</item>
<item path="morfeusz/Morfeusz.cpp" ex="false" tool="1" flavor2="4">
- <ccTool flags="2">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <ccTool flags="1">
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</item>
<item path="morfeusz/MorfeuszInternal.cpp" ex="false" tool="1" flavor2="4">
- <ccTool flags="2">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <ccTool flags="1">
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</item>
<item path="morfeusz/MorphInterpretation.cpp" ex="false" tool="1" flavor2="4">
- <ccTool flags="2">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <ccTool flags="1">
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</item>
<item path="morfeusz/Qualifiers.cpp" ex="false" tool="1" flavor2="4">
- <ccTool flags="2">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <ccTool flags="1">
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</item>
<item path="morfeusz/ResultsIteratorImpl.cpp" ex="false" tool="1" flavor2="4">
- <ccTool flags="2">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <ccTool flags="1">
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</item>
<item path="morfeusz/c_api/ResultsManager.cpp" ex="false" tool="1" flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/case/CaseConverter.cpp" ex="false" tool="1" flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/case/CasePatternHelper.cpp"
ex="false"
tool="1"
flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/case/caseconv.cpp" ex="false" tool="1" flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/charset/CharsetConverter.cpp"
ex="false"
tool="1"
flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/charset/TextReader.cpp" ex="false" tool="1" flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/charset/conversion_tables.cpp"
ex="false"
tool="1"
flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/cli/cli.cpp" ex="false" tool="1" flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/const.cpp" ex="false" tool="1" flavor2="4">
- <ccTool flags="2">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <ccTool flags="1">
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
@@ -792,62 +746,70 @@
ex="false"
tool="1"
flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/deserialization/MorphDeserializer.cpp"
ex="false"
tool="1"
flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/deserialization/morphInterps/InterpretedChunksDecoder.cpp"
ex="false"
tool="1"
flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/deserialization/morphInterps/InterpretedChunksDecoder4Analyzer.cpp"
ex="false"
tool="1"
flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/deserialization/morphInterps/InterpretedChunksDecoder4Generator.cpp"
ex="false"
tool="1"
flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/fsa/const.cpp" ex="false" tool="1" flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/morfeusz2_c.cpp" ex="false" tool="1" flavor2="4">
- <ccTool flags="2">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <ccTool flags="1">
<preprocessorList>
+ <Elem>NDEBUG</Elem>
<Elem>libmorfeusz_EXPORTS</Elem>
</preprocessorList>
</ccTool>
</item>
<item path="morfeusz/morfeusz_analyzer.cpp" ex="false" tool="1" flavor2="4">
<ccTool flags="0">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <preprocessorList>
+ <Elem>NDEBUG</Elem>
+ </preprocessorList>
</ccTool>
</item>
<item path="morfeusz/morfeusz_generator.cpp" ex="false" tool="1" flavor2="4">
<ccTool flags="0">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <preprocessorList>
+ <Elem>NDEBUG</Elem>
+ </preprocessorList>
</ccTool>
</item>
<item path="morfeusz/segrules/SegrulesFSA.cpp" ex="false" tool="1" flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/segrules/segrules.cpp" ex="false" tool="1" flavor2="4">
+ <ccTool flags="1">
+ </ccTool>
</item>
<item path="morfeusz/test/test_recognize_dict.cpp"
ex="false"
@@ -861,34 +823,28 @@
</item>
<item path="morfeusz/test_runner.cpp" ex="false" tool="1" flavor2="4">
<ccTool flags="0">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <preprocessorList>
+ <Elem>NDEBUG</Elem>
+ </preprocessorList>
</ccTool>
</item>
<item path="morfeusz/tests/.cpp" ex="true" tool="3" flavor2="0">
</item>
<item path="morfeusz/tests/TestCAPI.cpp" ex="false" tool="1" flavor2="4">
<ccTool flags="0">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <preprocessorList>
+ <Elem>NDEBUG</Elem>
+ </preprocessorList>
</ccTool>
</item>
<item path="morfeusz/tests/TestMorfeusz.cpp" ex="false" tool="1" flavor2="4">
<ccTool flags="0">
- <incDir>
- <pElem>build</pElem>
- <pElem>morfeusz</pElem>
- <pElem>build/morfeusz</pElem>
- </incDir>
+ <preprocessorList>
+ <Elem>NDEBUG</Elem>
+ </preprocessorList>
</ccTool>
</item>
- <item path="morfeusz/tests/test_c_api.cpp" ex="false" tool="1" flavor2="0">
+ <item path="morfeusz/tests/test_c_api.cpp" ex="false" tool="1" flavor2="4">
</item>
</conf>
</confs>
diff --git a/tests/analyzer/test_digits/ARGS b/tests/analyzer/test_digits/ARGS
new file mode 100644
index 0000000..4fd99ea
--- /dev/null
+++ b/tests/analyzer/test_digits/ARGS
@@ -0,0 +1 @@
+--aggl permissive
diff --git a/tests/analyzer/test_digits/dictionary.tab b/tests/analyzer/test_digits/dictionary.tab
new file mode 100644
index 0000000..cfd1767
--- /dev/null
+++ b/tests/analyzer/test_digits/dictionary.tab
@@ -0,0 +1,10 @@
+0 0 dig
+1 1 dig
+2 2 dig
+3 3 dig
+4 4 dig
+5 5 dig
+6 6 dig
+7 7 dig
+8 8 dig
+9 9 dig
diff --git a/tests/analyzer/test_digits/input.txt b/tests/analyzer/test_digits/input.txt
new file mode 100644
index 0000000..af63b3c
--- /dev/null
+++ b/tests/analyzer/test_digits/input.txt
@@ -0,0 +1,7 @@
+1
+12
+123
+1234
+012341
+1234seasdfa
+sdfa123
diff --git a/tests/analyzer/test_digits/output.txt b/tests/analyzer/test_digits/output.txt
new file mode 100644
index 0000000..dd00cac
--- /dev/null
+++ b/tests/analyzer/test_digits/output.txt
@@ -0,0 +1,8 @@
+[0,1,1,1,dig,_,_]
+[0,1,12,12,dig,_,_]
+[0,1,123,123,dig,_,_]
+[0,1,1234,1234,dig,_,_]
+[0,1,012341,012341,dig,_,_]
+[0,1,1234seasdfa,1234seasdfa,ign,_,_]
+[0,1,sdfa123,sdfa123,ign,_,_]
+
diff --git a/tests/analyzer/test_digits/segmentation.dat b/tests/analyzer/test_digits/segmentation.dat
new file mode 100644
index 0000000..4bac5b3
--- /dev/null
+++ b/tests/analyzer/test_digits/segmentation.dat
@@ -0,0 +1,47 @@
+[options]
+aggl=strict permissive isolated
+praet=split composite
+
+[combinations]
+#define wsz_interp (interp|kropka|przecinek|dywiz)*
+
+#define moze_interp(segmenty) wsz_interp segmenty wsz_interp
+
+# Segmenty występujące samodzielnie:
+#
+# domyślny typ segmentu samodzielnego:
+moze_interp(samodz)
+
+# Pojedyncze znaki interpunkcyjne
+moze_interp(interp|kropka|przecinek|dywiz)
+
+# Liczba zapisana jako ciąg cyfr:
+moze_interp( dig>* dig )
+
+[segment types]
+interp
+kropka
+przecinek
+dywiz
+dig
+samodz
+
+[lexemes]
+kropka .:interp
+przecinek ,:interp
+dywiz -:interp
+
+[tags]
+dig dig
+interp interp
+samodz %
+
+[separator chars]
+# ,
+44
+
+# .
+46
+
+# ;
+59
diff --git a/tests/analyzer/test_digits/tagset.dat b/tests/analyzer/test_digits/tagset.dat
new file mode 100644
index 0000000..7758137
--- /dev/null
+++ b/tests/analyzer/test_digits/tagset.dat
@@ -0,0 +1,757 @@
+#!MORFEUSZ-TAGSET 0.1
+
+[TAGS]
+
+0 ign
+1 sp
+2 adja
+3 adjc
+4 adjp
+5 adj:pl:acc:m1.p1:com
+6 adj:pl:acc:m1.p1:pos
+7 adj:pl:acc:m1.p1:sup
+8 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:com
+9 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:pos
+10 adj:pl:acc:m2.m3.f.n1.n2.p2.p3:sup
+11 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:com
+12 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
+13 adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
+14 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:com
+15 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
+16 adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
+17 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:com
+18 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
+19 adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
+20 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:com
+21 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:pos
+22 adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:sup
+23 adj:pl:nom:m1.p1:pos
+24 adj:pl:nom:m2.m3.f.n1.n2.p2.p3:pos
+25 adj:pl:nom.voc:m1.p1:com
+26 adj:pl:nom.voc:m1.p1:pos
+27 adj:pl:nom.voc:m1.p1:sup
+28 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:com
+29 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:pos
+30 adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:sup
+31 adj:sg:acc:f:com
+32 adj:sg:acc:f:pos
+33 adj:sg:acc:f:sup
+34 adj:sg:acc:m1.m2:com
+35 adj:sg:acc:m1.m2:pos
+36 adj:sg:acc:m1.m2:sup
+37 adj:sg:acc:m3:com
+38 adj:sg:acc:m3:pos
+39 adj:sg:acc:m3:sup
+40 adj:sg:acc:n1.n2:com
+41 adj:sg:acc:n1.n2:pos
+42 adj:sg:acc:n1.n2:sup
+43 adj:sg:dat:f:com
+44 adj:sg:dat:f:pos
+45 adj:sg:dat:f:sup
+46 adj:sg:dat:m1.m2.m3.n1.n2:com
+47 adj:sg:dat:m1.m2.m3.n1.n2:pos
+48 adj:sg:dat:m1.m2.m3.n1.n2:sup
+49 adj:sg:gen:f:com
+50 adj:sg:gen:f:pos
+51 adj:sg:gen:f:sup
+52 adj:sg:gen:m1.m2.m3.n1.n2:com
+53 adj:sg:gen:m1.m2.m3.n1.n2:pos
+54 adj:sg:gen:m1.m2.m3.n1.n2:sup
+55 adj:sg:inst:f:com
+56 adj:sg:inst:f:pos
+57 adj:sg:inst:f:sup
+58 adj:sg:inst:m1.m2.m3.n1.n2:com
+59 adj:sg:inst:m1.m2.m3.n1.n2:pos
+60 adj:sg:inst:m1.m2.m3.n1.n2:sup
+61 adj:sg:loc:f:com
+62 adj:sg:loc:f:pos
+63 adj:sg:loc:f:sup
+64 adj:sg:loc:m1.m2.m3.n1.n2:com
+65 adj:sg:loc:m1.m2.m3.n1.n2:pos
+66 adj:sg:loc:m1.m2.m3.n1.n2:sup
+67 adj:sg:nom:f:pos
+68 adj:sg:nom:m1.m2.m3:pos
+69 adj:sg:nom:n1.n2:pos
+70 adj:sg:nom.voc:f:com
+71 adj:sg:nom.voc:f:pos
+72 adj:sg:nom.voc:f:sup
+73 adj:sg:nom.voc:m1.m2.m3:com
+74 adj:sg:nom.voc:m1.m2.m3:pos
+75 adj:sg:nom.voc:m1.m2.m3:sup
+76 adj:sg:nom.voc:n1.n2:com
+77 adj:sg:nom.voc:n1.n2:pos
+78 adj:sg:nom.voc:n1.n2:sup
+79 adv
+80 adv:com
+81 adv:pos
+82 adv:sup
+83 aglt:pl:pri:imperf:nwok
+84 aglt:pl:pri:imperf:wok
+85 aglt:pl:sec:imperf:nwok
+86 aglt:pl:sec:imperf:wok
+87 aglt:sg:pri:imperf:nwok
+88 aglt:sg:pri:imperf:wok
+89 aglt:sg:sec:imperf:nwok
+90 aglt:sg:sec:imperf:wok
+91 bedzie:pl:pri:imperf
+92 bedzie:pl:sec:imperf
+93 bedzie:pl:ter:imperf
+94 bedzie:sg:pri:imperf
+95 bedzie:sg:sec:imperf
+96 bedzie:sg:ter:imperf
+97 brev:pun
+98 burk
+99 comp
+100 cond:pl:m1.p1:pri:imperf
+101 cond:pl:m1.p1:pri:imperf.perf
+102 cond:pl:m1.p1:pri:perf
+103 cond:pl:m1.p1:sec:imperf
+104 cond:pl:m1.p1:sec:imperf.perf
+105 cond:pl:m1.p1:sec:perf
+106 cond:pl:m1.p1:ter:imperf
+107 cond:pl:m1.p1:ter:imperf.perf
+108 cond:pl:m1.p1:ter:perf
+109 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf
+110 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf.perf
+111 cond:pl:m2.m3.f.n1.n2.p2.p3:pri:perf
+112 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
+113 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf.perf
+114 cond:pl:m2.m3.f.n1.n2.p2.p3:sec:perf
+115 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
+116 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf.perf
+117 cond:pl:m2.m3.f.n1.n2.p2.p3:ter:perf
+118 cond:sg:f:pri:imperf
+119 cond:sg:f:pri:imperf.perf
+120 cond:sg:f:pri:perf
+121 cond:sg:f:sec:imperf
+122 cond:sg:f:sec:imperf.perf
+123 cond:sg:f:sec:perf
+124 cond:sg:f:ter:imperf
+125 cond:sg:f:ter:imperf.perf
+126 cond:sg:f:ter:perf
+127 cond:sg:m1.m2.m3:pri:imperf
+128 cond:sg:m1.m2.m3:pri:imperf.perf
+129 cond:sg:m1.m2.m3:pri:perf
+130 cond:sg:m1.m2.m3:sec:imperf
+131 cond:sg:m1.m2.m3:sec:imperf.perf
+132 cond:sg:m1.m2.m3:sec:perf
+133 cond:sg:m1.m2.m3:ter:imperf
+134 cond:sg:m1.m2.m3:ter:imperf.perf
+135 cond:sg:m1.m2.m3:ter:perf
+136 cond:sg:n1.n2:imperf
+137 cond:sg:n1.n2:imperf.perf
+138 cond:sg:n1.n2:perf
+139 cond:sg:n1.n2:pri:imperf
+140 cond:sg:n1.n2:pri:imperf.perf
+141 cond:sg:n1.n2:pri:perf
+142 cond:sg:n1.n2:sec:imperf
+143 cond:sg:n1.n2:sec:imperf.perf
+144 cond:sg:n1.n2:sec:perf
+145 cond:sg:n1.n2:ter:imperf
+146 cond:sg:n1.n2:ter:imperf.perf
+147 cond:sg:n1.n2:ter:perf
+148 conj
+149 depr:pl:nom:m2
+150 depr:pl:voc:m2
+151 dig
+152 emoticon
+153 fin:pl:pri:imperf
+154 fin:pl:pri:imperf.perf
+155 fin:pl:pri:perf
+156 fin:pl:sec:imperf
+157 fin:pl:sec:imperf.perf
+158 fin:pl:sec:perf
+159 fin:pl:ter:imperf
+160 fin:pl:ter:imperf.perf
+161 fin:pl:ter:perf
+162 fin:sg:pri:imperf
+163 fin:sg:pri:imperf.perf
+164 fin:sg:pri:perf
+165 fin:sg:sec:imperf
+166 fin:sg:sec:imperf.perf
+167 fin:sg:sec:perf
+168 fin:sg:ter:imperf
+169 fin:sg:ter:imperf.perf
+170 fin:sg:ter:perf
+171 ger:pl:dat.loc:n2:imperf:aff
+172 ger:pl:dat.loc:n2:imperf:neg
+173 ger:pl:dat.loc:n2:imperf.perf:aff
+174 ger:pl:dat.loc:n2:imperf.perf:neg
+175 ger:pl:dat.loc:n2:perf:aff
+176 ger:pl:dat.loc:n2:perf:neg
+177 ger:pl:gen:n2:imperf:aff
+178 ger:pl:gen:n2:imperf:neg
+179 ger:pl:gen:n2:imperf.perf:aff
+180 ger:pl:gen:n2:imperf.perf:neg
+181 ger:pl:gen:n2:perf:aff
+182 ger:pl:gen:n2:perf:neg
+183 ger:pl:inst:n2:imperf:aff
+184 ger:pl:inst:n2:imperf:neg
+185 ger:pl:inst:n2:imperf.perf:aff
+186 ger:pl:inst:n2:imperf.perf:neg
+187 ger:pl:inst:n2:perf:aff
+188 ger:pl:inst:n2:perf:neg
+189 ger:pl:nom.acc:n2:imperf:aff
+190 ger:pl:nom.acc:n2:imperf:neg
+191 ger:pl:nom.acc:n2:imperf.perf:aff
+192 ger:pl:nom.acc:n2:imperf.perf:neg
+193 ger:pl:nom.acc:n2:perf:aff
+194 ger:pl:nom.acc:n2:perf:neg
+195 ger:sg:dat.loc:n2:imperf:aff
+196 ger:sg:dat.loc:n2:imperf:neg
+197 ger:sg:dat.loc:n2:imperf.perf:aff
+198 ger:sg:dat.loc:n2:imperf.perf:neg
+199 ger:sg:dat.loc:n2:perf:aff
+200 ger:sg:dat.loc:n2:perf:neg
+201 ger:sg:gen:n2:imperf:aff
+202 ger:sg:gen:n2:imperf:neg
+203 ger:sg:gen:n2:imperf.perf:aff
+204 ger:sg:gen:n2:imperf.perf:neg
+205 ger:sg:gen:n2:perf:aff
+206 ger:sg:gen:n2:perf:neg
+207 ger:sg:inst:n2:imperf:aff
+208 ger:sg:inst:n2:imperf:neg
+209 ger:sg:inst:n2:imperf.perf:aff
+210 ger:sg:inst:n2:imperf.perf:neg
+211 ger:sg:inst:n2:perf:aff
+212 ger:sg:inst:n2:perf:neg
+213 ger:sg:nom.acc:n2:imperf:aff
+214 ger:sg:nom.acc:n2:imperf:neg
+215 ger:sg:nom.acc:n2:imperf.perf:aff
+216 ger:sg:nom.acc:n2:imperf.perf:neg
+217 ger:sg:nom.acc:n2:perf:aff
+218 ger:sg:nom.acc:n2:perf:neg
+219 imps:imperf
+220 imps:imperf.perf
+221 imps:perf
+222 impt:pl:pri:imperf
+223 impt:pl:pri:imperf.perf
+224 impt:pl:pri:perf
+225 impt:pl:sec:imperf
+226 impt:pl:sec:imperf.perf
+227 impt:pl:sec:perf
+228 impt:sg:sec:imperf
+229 impt:sg:sec:imperf.perf
+230 impt:sg:sec:perf
+231 inf:imperf
+232 inf:imperf.perf
+233 inf:perf
+234 interj
+235 interp
+236 naj
+237 nie
+238 num:comp
+239 num:pl:acc:m1:rec
+240 num:pl:dat.loc:n1.p1.p2:congr.rec
+241 num:pl:dat:m1.m2.m3.n2.f:congr
+242 num:pl:gen.dat.inst.loc:m1.m2.m3.f.n1.n2.p1.p2:congr
+243 num:pl:gen.dat.inst.loc:m1.m2.m3.f.n2:congr
+244 num:pl:gen.dat.loc:m1.m2.m3.n2.f:congr
+245 num:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2:congr
+246 num:pl:gen.loc:m1.m2.m3.n2.f:congr
+247 num:pl:gen:n1.p1.p2:rec
+248 num:pl:inst:f:congr
+249 num:pl:inst:m1.m2.m3.f.n1.n2.p1.p2:congr
+250 num:pl:inst:m1.m2.m3.f.n2:congr
+251 num:pl:inst:m1.m2.m3.n2:congr
+252 num:pl:inst:m1.m2.m3.n2.f:congr
+253 num:pl:inst:n1.p1.p2:rec
+254 num:pl:nom.acc:m1.m2.m3.f.n1.n2.p1.p2:rec
+255 num:pl:nom.acc.voc:f:congr
+256 num:pl:nom.acc.voc:m1:rec
+257 num:pl:nom.acc.voc:m2.m3.f.n1.n2.p1.p2:rec
+258 num:pl:nom.acc.voc:m2.m3.f.n2:rec
+259 num:pl:nom.acc.voc:m2.m3.n2:congr
+260 num:pl:nom.acc.voc:m2.m3.n2.f:congr
+261 num:pl:nom.acc.voc:n1.p1.p2:rec
+262 num:pl:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.f.n1.n2.p1.p2:rec
+263 num:pl:nom.voc:m1:congr
+264 num:pl:nom.voc:m1:rec
+265 num:sg:nom.gen.dat.inst.acc.loc.voc:f:rec
+266 num:sg:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.n1.n2:rec
+267 pact:pl:acc:m1.p1:imperf:aff
+268 pact:pl:acc:m1.p1:imperf:neg
+269 pact:pl:acc:m1.p1:imperf.perf:aff
+270 pact:pl:acc:m1.p1:imperf.perf:neg
+271 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
+272 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
+273 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
+274 pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
+275 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
+276 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
+277 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
+278 pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
+279 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
+280 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
+281 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
+282 pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
+283 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:aff
+284 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:neg
+285 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:aff
+286 pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:neg
+287 pact:pl:nom.voc:m1.p1:imperf:aff
+288 pact:pl:nom.voc:m1.p1:imperf:neg
+289 pact:pl:nom.voc:m1.p1:imperf.perf:aff
+290 pact:pl:nom.voc:m1.p1:imperf.perf:neg
+291 pact:sg:acc.inst:f:imperf:aff
+292 pact:sg:acc.inst:f:imperf:neg
+293 pact:sg:acc.inst:f:imperf.perf:aff
+294 pact:sg:acc.inst:f:imperf.perf:neg
+295 pact:sg:acc:m1.m2:imperf:aff
+296 pact:sg:acc:m1.m2:imperf:neg
+297 pact:sg:acc:m1.m2:imperf.perf:aff
+298 pact:sg:acc:m1.m2:imperf.perf:neg
+299 pact:sg:acc:m3:imperf:aff
+300 pact:sg:acc:m3:imperf:neg
+301 pact:sg:acc:m3:imperf.perf:aff
+302 pact:sg:acc:m3:imperf.perf:neg
+303 pact:sg:dat:m1.m2.m3.n1.n2:imperf:aff
+304 pact:sg:dat:m1.m2.m3.n1.n2:imperf:neg
+305 pact:sg:dat:m1.m2.m3.n1.n2:imperf.perf:aff
+306 pact:sg:dat:m1.m2.m3.n1.n2:imperf.perf:neg
+307 pact:sg:gen.dat.loc:f:imperf:aff
+308 pact:sg:gen.dat.loc:f:imperf:neg
+309 pact:sg:gen.dat.loc:f:imperf.perf:aff
+310 pact:sg:gen.dat.loc:f:imperf.perf:neg
+311 pact:sg:gen:m1.m2.m3.n1.n2:imperf:aff
+312 pact:sg:gen:m1.m2.m3.n1.n2:imperf:neg
+313 pact:sg:gen:m1.m2.m3.n1.n2:imperf.perf:aff
+314 pact:sg:gen:m1.m2.m3.n1.n2:imperf.perf:neg
+315 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf:aff
+316 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf:neg
+317 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:aff
+318 pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:neg
+319 pact:sg:nom.acc.voc:n1.n2:imperf:aff
+320 pact:sg:nom.acc.voc:n1.n2:imperf:neg
+321 pact:sg:nom.acc.voc:n1.n2:imperf.perf:aff
+322 pact:sg:nom.acc.voc:n1.n2:imperf.perf:neg
+323 pact:sg:nom.voc:f:imperf:aff
+324 pact:sg:nom.voc:f:imperf:neg
+325 pact:sg:nom.voc:f:imperf.perf:aff
+326 pact:sg:nom.voc:f:imperf.perf:neg
+327 pact:sg:nom.voc:m1.m2.m3:imperf:aff
+328 pact:sg:nom.voc:m1.m2.m3:imperf:neg
+329 pact:sg:nom.voc:m1.m2.m3:imperf.perf:aff
+330 pact:sg:nom.voc:m1.m2.m3:imperf.perf:neg
+331 pant:perf
+332 pcon:imperf
+333 ppas:pl:acc:m1.p1:imperf:aff
+334 ppas:pl:acc:m1.p1:imperf:neg
+335 ppas:pl:acc:m1.p1:imperf.perf:aff
+336 ppas:pl:acc:m1.p1:imperf.perf:neg
+337 ppas:pl:acc:m1.p1:perf:aff
+338 ppas:pl:acc:m1.p1:perf:neg
+339 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
+340 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
+341 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
+342 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
+343 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
+344 ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
+345 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
+346 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
+347 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
+348 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
+349 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
+350 ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
+351 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff
+352 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg
+353 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff
+354 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg
+355 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff
+356 ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg
+357 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:aff
+358 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:neg
+359 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:aff
+360 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:neg
+361 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:perf:aff
+362 ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:perf:neg
+363 ppas:pl:nom.voc:m1.p1:imperf:aff
+364 ppas:pl:nom.voc:m1.p1:imperf:neg
+365 ppas:pl:nom.voc:m1.p1:imperf.perf:aff
+366 ppas:pl:nom.voc:m1.p1:imperf.perf:neg
+367 ppas:pl:nom.voc:m1.p1:perf:aff
+368 ppas:pl:nom.voc:m1.p1:perf:neg
+369 ppas:sg:acc.inst:f:imperf:aff
+370 ppas:sg:acc.inst:f:imperf:neg
+371 ppas:sg:acc.inst:f:imperf.perf:aff
+372 ppas:sg:acc.inst:f:imperf.perf:neg
+373 ppas:sg:acc.inst:f:perf:aff
+374 ppas:sg:acc.inst:f:perf:neg
+375 ppas:sg:acc:m1.m2:imperf:aff
+376 ppas:sg:acc:m1.m2:imperf:neg
+377 ppas:sg:acc:m1.m2:imperf.perf:aff
+378 ppas:sg:acc:m1.m2:imperf.perf:neg
+379 ppas:sg:acc:m1.m2:perf:aff
+380 ppas:sg:acc:m1.m2:perf:neg
+381 ppas:sg:acc:m3:imperf:aff
+382 ppas:sg:acc:m3:imperf:neg
+383 ppas:sg:acc:m3:imperf.perf:aff
+384 ppas:sg:acc:m3:imperf.perf:neg
+385 ppas:sg:acc:m3:perf:aff
+386 ppas:sg:acc:m3:perf:neg
+387 ppas:sg:dat:m1.m2.m3.n1.n2:imperf:aff
+388 ppas:sg:dat:m1.m2.m3.n1.n2:imperf:neg
+389 ppas:sg:dat:m1.m2.m3.n1.n2:imperf.perf:aff
+390 ppas:sg:dat:m1.m2.m3.n1.n2:imperf.perf:neg
+391 ppas:sg:dat:m1.m2.m3.n1.n2:perf:aff
+392 ppas:sg:dat:m1.m2.m3.n1.n2:perf:neg
+393 ppas:sg:gen.dat.loc:f:imperf:aff
+394 ppas:sg:gen.dat.loc:f:imperf:neg
+395 ppas:sg:gen.dat.loc:f:imperf.perf:aff
+396 ppas:sg:gen.dat.loc:f:imperf.perf:neg
+397 ppas:sg:gen.dat.loc:f:perf:aff
+398 ppas:sg:gen.dat.loc:f:perf:neg
+399 ppas:sg:gen:m1.m2.m3.n1.n2:imperf:aff
+400 ppas:sg:gen:m1.m2.m3.n1.n2:imperf:neg
+401 ppas:sg:gen:m1.m2.m3.n1.n2:imperf.perf:aff
+402 ppas:sg:gen:m1.m2.m3.n1.n2:imperf.perf:neg
+403 ppas:sg:gen:m1.m2.m3.n1.n2:perf:aff
+404 ppas:sg:gen:m1.m2.m3.n1.n2:perf:neg
+405 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf:aff
+406 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf:neg
+407 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:aff
+408 ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:neg
+409 ppas:sg:inst.loc:m1.m2.m3.n1.n2:perf:aff
+410 ppas:sg:inst.loc:m1.m2.m3.n1.n2:perf:neg
+411 ppas:sg:nom.acc.voc:n1.n2:imperf:aff
+412 ppas:sg:nom.acc.voc:n1.n2:imperf:neg
+413 ppas:sg:nom.acc.voc:n1.n2:imperf.perf:aff
+414 ppas:sg:nom.acc.voc:n1.n2:imperf.perf:neg
+415 ppas:sg:nom.acc.voc:n1.n2:perf:aff
+416 ppas:sg:nom.acc.voc:n1.n2:perf:neg
+417 ppas:sg:nom.voc:f:imperf:aff
+418 ppas:sg:nom.voc:f:imperf:neg
+419 ppas:sg:nom.voc:f:imperf.perf:aff
+420 ppas:sg:nom.voc:f:imperf.perf:neg
+421 ppas:sg:nom.voc:f:perf:aff
+422 ppas:sg:nom.voc:f:perf:neg
+423 ppas:sg:nom.voc:m1.m2.m3:imperf:aff
+424 ppas:sg:nom.voc:m1.m2.m3:imperf:neg
+425 ppas:sg:nom.voc:m1.m2.m3:imperf.perf:aff
+426 ppas:sg:nom.voc:m1.m2.m3:imperf.perf:neg
+427 ppas:sg:nom.voc:m1.m2.m3:perf:aff
+428 ppas:sg:nom.voc:m1.m2.m3:perf:neg
+429 ppron12:pl:acc:_:pri
+430 ppron12:pl:acc:_:sec
+431 ppron12:pl:dat:_:pri
+432 ppron12:pl:dat:_:sec
+433 ppron12:pl:gen:_:pri
+434 ppron12:pl:gen:_:sec
+435 ppron12:pl:inst:_:pri
+436 ppron12:pl:inst:_:sec
+437 ppron12:pl:loc:_:pri
+438 ppron12:pl:loc:_:sec
+439 ppron12:pl:nom:_:pri
+440 ppron12:pl:nom:_:sec
+441 ppron12:pl:voc:_:pri
+442 ppron12:pl:voc:_:sec
+443 ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:akc
+444 ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:nakc
+445 ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:akc
+446 ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:nakc
+447 ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:akc
+448 ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:nakc
+449 ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:akc
+450 ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:nakc
+451 ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:akc
+452 ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:nakc
+453 ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:akc
+454 ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:nakc
+455 ppron12:sg:inst:m1.m2.m3.f.n1.n2:pri
+456 ppron12:sg:inst:m1.m2.m3.f.n1.n2:sec
+457 ppron12:sg:loc:m1.m2.m3.f.n1.n2:pri
+458 ppron12:sg:loc:m1.m2.m3.f.n1.n2:sec
+459 ppron12:sg:nom:m1.m2.m3.f.n1.n2:pri
+460 ppron12:sg:nom:m1.m2.m3.f.n1.n2:sec
+461 ppron12:sg:voc:m1.m2.m3.f.n1.n2:sec
+462 ppron3:pl:acc:m1.p1:ter:_:npraep
+463 ppron3:pl:acc:m1.p1:ter:_:praep
+464 ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:npraep
+465 ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:praep
+466 ppron3:pl:dat:_:ter:_:npraep
+467 ppron3:pl:dat:_:ter:_:praep
+468 ppron3:pl:gen:_:ter:_:npraep
+469 ppron3:pl:gen:_:ter:_:praep
+470 ppron3:pl:inst:_:ter:_:_
+471 ppron3:pl:loc:_:ter:_:_
+472 ppron3:pl:nom:m1.p1:ter:_:_
+473 ppron3:pl:nom:m2.m3.f.n1.n2.p2.p3:ter:_:_
+474 ppron3:sg:acc:f:ter:_:npraep
+475 ppron3:sg:acc:f:ter:_:praep
+476 ppron3:sg:acc:m1.m2.m3:ter:akc:npraep
+477 ppron3:sg:acc:m1.m2.m3:ter:akc:praep
+478 ppron3:sg:acc:m1.m2.m3:ter:nakc:npraep
+479 ppron3:sg:acc:m1.m2.m3:ter:nakc:praep
+480 ppron3:sg:acc:n1.n2:ter:_:npraep
+481 ppron3:sg:acc:n1.n2:ter:_:praep
+482 ppron3:sg:dat:f:ter:_:npraep
+483 ppron3:sg:dat:f:ter:_:praep
+484 ppron3:sg:dat:m1.m2.m3:ter:akc:npraep
+485 ppron3:sg:dat:m1.m2.m3:ter:nakc:npraep
+486 ppron3:sg:dat:m1.m2.m3:ter:_:praep
+487 ppron3:sg:dat:n1.n2:ter:akc:npraep
+488 ppron3:sg:dat:n1.n2:ter:nakc:npraep
+489 ppron3:sg:dat:n1.n2:ter:_:praep
+490 ppron3:sg:gen.acc:m1.m2.m3:ter:nakc:praep
+491 ppron3:sg:gen:f:ter:_:npraep
+492 ppron3:sg:gen:f:ter:_:praep
+493 ppron3:sg:gen:m1.m2.m3:ter:akc:npraep
+494 ppron3:sg:gen:m1.m2.m3:ter:akc:praep
+495 ppron3:sg:gen:m1.m2.m3:ter:nakc:npraep
+496 ppron3:sg:gen:m1.m2.m3:ter:nakc:praep
+497 ppron3:sg:gen:n1.n2:ter:akc:npraep
+498 ppron3:sg:gen:n1.n2:ter:nakc:npraep
+499 ppron3:sg:gen:n1.n2:ter:_:praep
+500 ppron3:sg:inst:f:ter:_:praep
+501 ppron3:sg:inst:m1.m2.m3:ter:_:_
+502 ppron3:sg:inst:n1.n2:ter:_:_
+503 ppron3:sg:loc:f:ter:_:_
+504 ppron3:sg:loc:m1.m2.m3:ter:_:_
+505 ppron3:sg:loc:n1.n2:ter:_:_
+506 ppron3:sg:nom:f:ter:_:_
+507 ppron3:sg:nom:m1.m2.m3:ter:_:_
+508 ppron3:sg:nom:n1.n2:ter:_:_
+509 praet:pl:m1.p1:imperf
+510 praet:pl:m1.p1:imperf.perf
+511 praet:pl:m1.p1:perf
+512 praet:pl:m1.p1:pri:imperf
+513 praet:pl:m1.p1:pri:imperf.perf
+514 praet:pl:m1.p1:pri:perf
+515 praet:pl:m1.p1:sec:imperf
+516 praet:pl:m1.p1:sec:imperf.perf
+517 praet:pl:m1.p1:sec:perf
+518 praet:pl:m1.p1:ter:imperf
+519 praet:pl:m1.p1:ter:imperf.perf
+520 praet:pl:m1.p1:ter:perf
+521 praet:pl:m2.m3.f.n1.n2.p2.p3:imperf
+522 praet:pl:m2.m3.f.n1.n2.p2.p3:imperf.perf
+523 praet:pl:m2.m3.f.n1.n2.p2.p3:perf
+524 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf
+525 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf.perf
+526 praet:pl:m2.m3.f.n1.n2.p2.p3:pri:perf
+527 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
+528 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf.perf
+529 praet:pl:m2.m3.f.n1.n2.p2.p3:sec:perf
+530 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
+531 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf.perf
+532 praet:pl:m2.m3.f.n1.n2.p2.p3:ter:perf
+533 praet:sg:f:imperf
+534 praet:sg:f:imperf.perf
+535 praet:sg:f:perf
+536 praet:sg:f:pri:imperf
+537 praet:sg:f:pri:imperf.perf
+538 praet:sg:f:pri:perf
+539 praet:sg:f:sec:imperf
+540 praet:sg:f:sec:imperf.perf
+541 praet:sg:f:sec:perf
+542 praet:sg:f:ter:imperf
+543 praet:sg:f:ter:imperf.perf
+544 praet:sg:f:ter:perf
+545 praet:sg:m1.m2.m3:imperf
+546 praet:sg:m1.m2.m3:imperf:agl
+547 praet:sg:m1.m2.m3:imperf:nagl
+548 praet:sg:m1.m2.m3:imperf.perf
+549 praet:sg:m1.m2.m3:perf
+550 praet:sg:m1.m2.m3:perf:agl
+551 praet:sg:m1.m2.m3:perf:nagl
+552 praet:sg:m1.m2.m3:pri:imperf
+553 praet:sg:m1.m2.m3:pri:imperf.perf
+554 praet:sg:m1.m2.m3:pri:perf
+555 praet:sg:m1.m2.m3:sec:imperf
+556 praet:sg:m1.m2.m3:sec:imperf.perf
+557 praet:sg:m1.m2.m3:sec:perf
+558 praet:sg:m1.m2.m3:ter:imperf
+559 praet:sg:m1.m2.m3:ter:imperf.perf
+560 praet:sg:m1.m2.m3:ter:perf
+561 praet:sg:n1.n2:imperf
+562 praet:sg:n1.n2:imperf.perf
+563 praet:sg:n1.n2:perf
+564 praet:sg:n1.n2:pri:imperf
+565 praet:sg:n1.n2:pri:imperf.perf
+566 praet:sg:n1.n2:pri:perf
+567 praet:sg:n1.n2:sec:imperf
+568 praet:sg:n1.n2:sec:imperf.perf
+569 praet:sg:n1.n2:sec:perf
+570 praet:sg:n1.n2:ter:imperf
+571 praet:sg:n1.n2:ter:imperf.perf
+572 praet:sg:n1.n2:ter:perf
+573 pred
+574 prefa
+575 prefppas
+576 prefs
+577 prefv
+578 prep:acc
+579 prep:acc:nwok
+580 prep:acc:wok
+581 prep:dat
+582 prep:gen
+583 prep:gen:nwok
+584 prep:gen:wok
+585 prep:inst
+586 prep:inst:nwok
+587 prep:inst:wok
+588 prep:loc
+589 prep:loc:nwok
+590 prep:loc:wok
+591 prep:nom
+592 qub
+593 romandig
+594 siebie:acc
+595 siebie:dat
+596 siebie:gen
+597 siebie:inst
+598 siebie:loc
+599 substa
+600 subst:pl:acc:f
+601 subst:pl:acc:m1
+602 subst:pl:acc:m2
+603 subst:pl:acc:m3
+604 subst:pl:acc:n1
+605 subst:pl:acc:n2
+606 subst:pl:acc:p1
+607 subst:pl:acc:p2
+608 subst:pl:acc:p3
+609 subst:pl:dat:f
+610 subst:pl:dat:m1
+611 subst:pl:dat:m2
+612 subst:pl:dat:m3
+613 subst:pl:dat:n1
+614 subst:pl:dat:n2
+615 subst:pl:dat:p1
+616 subst:pl:dat:p2
+617 subst:pl:dat:p3
+618 subst:pl:gen:f
+619 subst:pl:gen:m1
+620 subst:pl:gen:m2
+621 subst:pl:gen:m3
+622 subst:pl:gen:n1
+623 subst:pl:gen:n2
+624 subst:pl:gen:p1
+625 subst:pl:gen:p2
+626 subst:pl:gen:p3
+627 subst:pl:inst:f
+628 subst:pl:inst:m1
+629 subst:pl:inst:m2
+630 subst:pl:inst:m3
+631 subst:pl:inst:n1
+632 subst:pl:inst:n2
+633 subst:pl:inst:p1
+634 subst:pl:inst:p2
+635 subst:pl:inst:p3
+636 subst:pl:loc:f
+637 subst:pl:loc:m1
+638 subst:pl:loc:m2
+639 subst:pl:loc:m3
+640 subst:pl:loc:n1
+641 subst:pl:loc:n2
+642 subst:pl:loc:p1
+643 subst:pl:loc:p2
+644 subst:pl:loc:p3
+645 subst:pl:nom:f
+646 subst:pl:nom:m1
+647 subst:pl:nom:m2
+648 subst:pl:nom:m3
+649 subst:pl:nom:n1
+650 subst:pl:nom:n2
+651 subst:pl:nom:p1
+652 subst:pl:nom:p2
+653 subst:pl:nom:p3
+654 subst:pl:voc:f
+655 subst:pl:voc:m1
+656 subst:pl:voc:m2
+657 subst:pl:voc:m3
+658 subst:pl:voc:n1
+659 subst:pl:voc:n2
+660 subst:pl:voc:p1
+661 subst:pl:voc:p2
+662 subst:pl:voc:p3
+663 subst:sg:acc:f
+664 subst:sg:acc:m1
+665 subst:sg:acc:m2
+666 subst:sg:acc:m3
+667 subst:sg:acc:n1
+668 subst:sg:acc:n2
+669 subst:sg:dat:f
+670 subst:sg:dat:m1
+671 subst:sg:dat:m2
+672 subst:sg:dat:m3
+673 subst:sg:dat:n1
+674 subst:sg:dat:n2
+675 subst:sg:gen:f
+676 subst:sg:gen:m1
+677 subst:sg:gen:m2
+678 subst:sg:gen:m3
+679 subst:sg:gen:n1
+680 subst:sg:gen:n2
+681 subst:sg:inst:f
+682 subst:sg:inst:m1
+683 subst:sg:inst:m2
+684 subst:sg:inst:m3
+685 subst:sg:inst:n1
+686 subst:sg:inst:n2
+687 subst:sg:loc:f
+688 subst:sg:loc:m1
+689 subst:sg:loc:m2
+690 subst:sg:loc:m3
+691 subst:sg:loc:n1
+692 subst:sg:loc:n2
+693 subst:sg:nom:f
+694 subst:sg:nom:m1
+695 subst:sg:nom:m2
+696 subst:sg:nom:m3
+697 subst:sg:nom:n1
+698 subst:sg:nom:n2
+699 subst:sg:voc:f
+700 subst:sg:voc:m1
+701 subst:sg:voc:m2
+702 subst:sg:voc:m3
+703 subst:sg:voc:n1
+704 subst:sg:voc:n2
+705 winien:pl:m1.p1:imperf
+706 winien:pl:m1.p1:pri:imperf
+707 winien:pl:m1.p1:sec:imperf
+708 winien:pl:m1.p1:ter:imperf
+709 winien:pl:m2.m3.f.n1.n2.p2.p3:imperf
+710 winien:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf
+711 winien:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf
+712 winien:sg:f:imperf
+713 winien:sg:f:pri:imperf
+714 winien:sg:f:sec:imperf
+715 winien:sg:f:ter:imperf
+716 winien:sg:m1.m2.m3:imperf
+717 winien:sg:m1.m2.m3:pri:imperf
+718 winien:sg:m1.m2.m3:sec:imperf
+719 winien:sg:m1.m2.m3:ter:imperf
+720 winien:sg:n1.n2:imperf
+721 winien:sg:n1.n2:pri:imperf
+722 winien:sg:n1.n2:sec:imperf
+723 winien:sg:n1.n2:ter:imperf
+
+
+[NAMES]
+0
+1 astr.
+2 budowla
+3 członek rodu
+4 człon nazwiska
+5 człon nazwiska (herb)
+6 człon nazwy firmy
+7 firma
+8 geograficzna
+9 imię
+10 instytucja
+11 język programowania
+12 krój pisma
+13 marka
+14 nazwisko
+15 oprogramowanie
+16 organizacja
+17 patronimicum
+18 pospolita
+19 przydomek
+20 pseudonim
+21 sufiks nazwiska
+22 środek lokomocji
+23 święto
+24 tytuł
+25 własna